feat(iace): KI-Vorschlag Button im FMEA-Tab
Build + Deploy / build-admin-compliance (push) Successful in 16s
Build + Deploy / build-backend-compliance (push) Successful in 24s
Build + Deploy / build-ai-sdk (push) Successful in 12s
Build + Deploy / build-developer-portal (push) Successful in 12s
Build + Deploy / build-tts (push) Successful in 34s
Build + Deploy / build-document-crawler (push) Successful in 11s
Build + Deploy / build-dsms-gateway (push) Successful in 11s
Build + Deploy / build-dsms-node (push) Successful in 14s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / loc-budget (push) Failing after 16s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 2m49s
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Successful in 43s
CI / test-python-backend (push) Successful in 37s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 23s
CI / validate-canonical-controls (push) Successful in 13s
Build + Deploy / trigger-orca (push) Successful in 2m25s

- Dropdown: Komponente waehlen → "KI-Vorschlag" klicken
- Ruft POST /projects/:id/components/:cid/suggest-fms auf
- Zeigt LLM-generierte oder Bibliotheks-FMs als Overlay
- Jeder Vorschlag mit Name, Auswirkung, S/O/D, RPZ

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-12 10:07:10 +02:00
parent 93028b443e
commit 65b4857be5
2 changed files with 87 additions and 4 deletions
@@ -130,5 +130,31 @@ export function useFMEA(projectId: string) {
acceptable: rows.filter((r) => r.rpz <= 100).length,
}
return { rows, loading, stats }
const [suggesting, setSuggesting] = useState(false)
const [suggestions, setSuggestions] = useState<FailureMode[]>([])
const [suggestSource, setSuggestSource] = useState<string>('')
async function suggestFMs(componentId: string) {
setSuggesting(true)
setSuggestions([])
try {
const res = await fetch(`/api/sdk/v1/iace/projects/${projectId}/components/${componentId}/suggest-fms`, {
method: 'POST',
})
if (res.ok) {
const json = await res.json()
setSuggestions(json.suggestions || [])
setSuggestSource(json.source || 'unknown')
}
} catch (err) {
console.error('FM suggest failed:', err)
} finally {
setSuggesting(false)
}
}
// Get unique components for the suggest button
const components = [...new Map(rows.map((r) => [r.component.id, r.component])).values()]
return { rows, loading, stats, components, suggestFMs, suggesting, suggestions, suggestSource, setSuggestions }
}