Add MODE=pcb layout exam job with AI and deterministic checks.
Parallel pcb_status pipeline: parse board, classify domains/groups, inventory traces, PE-LAY/PLC/SI/DRT checks, per-IC datasheet review. Findings merge into the report UI. No auto-place or pcbnew write-back.
This commit is contained in:
@@ -42,6 +42,7 @@ export function FindingsList({ findings, graph, onViewReference, projectId, isRe
|
||||
const componentParam = searchParams.get("component");
|
||||
const reviewParam = searchParams.get("review");
|
||||
const searchParam = searchParams.get("q") ?? "";
|
||||
const domainParam = searchParams.get("domain");
|
||||
|
||||
const statusFilters = useMemo(() => {
|
||||
if (!statusParam) return new Set<FindingStatus>(["ERROR", "WARNING", "INFO"]);
|
||||
@@ -84,9 +85,23 @@ export function FindingsList({ findings, graph, onViewReference, projectId, isRe
|
||||
const st = f.finding_id ? reviews?.[f.finding_id]?.state : undefined;
|
||||
if (st && st !== "open") return false;
|
||||
}
|
||||
if (domainParam === "layout") {
|
||||
const layout =
|
||||
(f.finding_id || "").startsWith("PCB-") ||
|
||||
f.source === "pcb_review" ||
|
||||
(f.rule_id || "").startsWith("PE-PLC") ||
|
||||
(f.rule_id || "").startsWith("PE-LAY") ||
|
||||
(f.rule_id || "").startsWith("PE-SI") ||
|
||||
(f.rule_id || "").startsWith("PE-DRT");
|
||||
if (!layout) return false;
|
||||
} else if (domainParam === "schema") {
|
||||
const layout =
|
||||
(f.finding_id || "").startsWith("PCB-");
|
||||
if (layout) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
[statusFilters, componentParam, searchParam, reviewParam, reviews]
|
||||
[statusFilters, componentParam, searchParam, reviewParam, reviews, domainParam]
|
||||
);
|
||||
|
||||
const filtered = useMemo(() => {
|
||||
@@ -131,6 +146,8 @@ export function FindingsList({ findings, graph, onViewReference, projectId, isRe
|
||||
onToggleNeedsReview={() =>
|
||||
updateParams({ review: reviewParam === "open" ? null : "open" })
|
||||
}
|
||||
domain={domainParam ?? "all"}
|
||||
onDomainChange={(v) => updateParams({ domain: v })}
|
||||
designators={designators}
|
||||
/>
|
||||
<div className="space-y-1">
|
||||
|
||||
Reference in New Issue
Block a user