Item 2 of the semantic-mapping follow-ups (after #215).
2a — cache the control embedding index.ControlIndex::load_or_build persists the embedded corpus to snapshot_dir keyed by a corpus hash (control ids + requirement text). A later scan reuses the embeddings unless the catalog changed, turning the per-scan re-embed of the ~13.6k master-control corpus into a one-time cost. Atomic write (temp + rename), self-invalidates on catalog change. ControlCheckSpec gains Serialize/Deserialize.
2b — auto-wire. Orchestrator Stage 5c runs semantic_stamp_findings after control triage, gated on breakpilot.semantic_mapping (env BREAKPILOT_SEMANTIC_MAPPING, default off). Stays off until verified live against a deployed master-controls catalog; safe no-op meanwhile (endpoint 400s pre-deploy, pass warns + returns 0).
Tests: index cache round-trip + corpus-hash stability/identity. All green locally (clippy -D warnings, fmt, full test suite).
Item 2 of the semantic-mapping follow-ups (after #215).
**2a — cache the control embedding index.** `ControlIndex::load_or_build` persists the embedded corpus to `snapshot_dir` keyed by a corpus hash (control ids + requirement text). A later scan reuses the embeddings unless the catalog changed, turning the per-scan re-embed of the ~13.6k master-control corpus into a one-time cost. Atomic write (temp + rename), self-invalidates on catalog change. `ControlCheckSpec` gains Serialize/Deserialize.
**2b — auto-wire.** Orchestrator Stage 5c runs `semantic_stamp_findings` after control triage, gated on `breakpilot.semantic_mapping` (env `BREAKPILOT_SEMANTIC_MAPPING`, default off). Stays off until verified live against a deployed master-controls catalog; safe no-op meanwhile (endpoint 400s pre-deploy, pass warns + returns 0).
Tests: index cache round-trip + corpus-hash stability/identity. All green locally (clippy -D warnings, fmt, full test suite).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Item 2 of the semantic-mapping follow-ups.
Caching (2a): ControlIndex::load_or_build persists the embedded corpus to
snapshot_dir keyed by a corpus hash (control ids + requirement text). A later
scan reuses the embeddings unless the catalog changed, turning the per-scan
re-embed of the ~13.6k master-control corpus into a one-time cost. Atomic
write (temp + rename); self-invalidates on catalog change. ControlCheckSpec
gains Serialize/Deserialize to persist.
Auto-wire (2b): orchestrator Stage 5c runs semantic_stamp_findings after control
triage, gated on breakpilot.semantic_mapping (env BREAKPILOT_SEMANTIC_MAPPING,
default off). Stays off until verified live against a deployed master-controls
catalog; safe no-op meanwhile (the endpoint 400s pre-deploy and the pass warns +
returns 0).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
sharang
merged commit 0ef2cd1b23 into main2026-07-21 11:29:17 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Item 2 of the semantic-mapping follow-ups (after #215).
2a — cache the control embedding index.
ControlIndex::load_or_buildpersists the embedded corpus tosnapshot_dirkeyed by a corpus hash (control ids + requirement text). A later scan reuses the embeddings unless the catalog changed, turning the per-scan re-embed of the ~13.6k master-control corpus into a one-time cost. Atomic write (temp + rename), self-invalidates on catalog change.ControlCheckSpecgains Serialize/Deserialize.2b — auto-wire. Orchestrator Stage 5c runs
semantic_stamp_findingsafter control triage, gated onbreakpilot.semantic_mapping(envBREAKPILOT_SEMANTIC_MAPPING, default off). Stays off until verified live against a deployed master-controls catalog; safe no-op meanwhile (endpoint 400s pre-deploy, pass warns + returns 0).Tests: index cache round-trip + corpus-hash stability/identity. All green locally (clippy -D warnings, fmt, full test suite).
🤖 Generated with Claude Code