Observed
While landing PR #531, the pre-commit hook (`cora review --staged`, cora 0.13.0 static stage) reported:
`[MAJOR] src/engine/llm.rs:795: [index-breaking-change] Removing `build_review_prompt` breaks 2 caller(s)`
But the commit did not remove anything — it only changed the function's visibility and added a parameter. The finding disappeared after rebuilding the index with the fresh binary.
Root cause hypothesis
The breaking-change scanner compares symbol sets against the global index built before the change; a signature-only edit looks like removed + re-added, and an out-of-date index turns it into a phantom removal. Same staleness class as #522/#519.
Suggested directions
- Detect same-name symbols in the new snapshot before reporting a removal (signature drift ≠ removal)
- Or refresh/incrementally update the index immediately before the scan stage inside the review pipeline
- Optionally downgrade confidence when `index_status` reports older `last_indexed` than the diff base
Acceptance
- Fixture: rename-only/signature-drift diff against a stale index produces no `index-breaking-change` finding
Related: #522, #519
Observed
While landing PR #531, the pre-commit hook (`cora review --staged`, cora 0.13.0 static stage) reported:
But the commit did not remove anything — it only changed the function's visibility and added a parameter. The finding disappeared after rebuilding the index with the fresh binary.
Root cause hypothesis
The breaking-change scanner compares symbol sets against the global index built before the change; a signature-only edit looks like removed + re-added, and an out-of-date index turns it into a phantom removal. Same staleness class as #522/#519.
Suggested directions
Acceptance
Related: #522, #519