Five rows came back tombstoned but not retired — a zombie beside the correct record derived from the same file. Two of my own changes combined to produce it. Releasing the identifier destroys the evidence that made the row a re-key: the tombstoned slug is no longer a work-record identifier, and a legacy row is not UUID-derived, so both guards fall through to path matching — which matches the very file the row was retired for and resurrects it. And the release loop ran before matching, so it also stamped rows that were about to derive again, leaving them unable to match their own file and never un-retired. Two changes. A retired row is now matched by UUID or by its own identifier, and never by the path heuristics; a record that genuinely returns still un-retires, because its identifier is unchanged. And the release exempts any row the forge still derives. 746 pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 2583210@bnt-lap001 Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006 |
||
|---|---|---|
| .. | ||
| edge | ||
| events | ||
| models | ||
| routers | ||
| schemas | ||
| services | ||
| classification.py | ||
| config.py | ||
| database.py | ||
| doi_engine.py | ||
| flow_defs.py | ||
| main.py | ||
| task_status.py | ||
| workplan_status.py | ||