Context
Vega approved #14066 with three non-blocking follow-ups. The core #14062 repair fix is merge-eligible, but two cleanup points should not remain review-thread-only:
anyRepairAborted() is no longer used by the production CLI path after #14066 switched operator status to anyRepairNonClean(). It is still exported and unit-tested on the #14066 branch, but a direct tree grep of origin/codex/14062-memory-core-partial-repair-promotion found no production consumer.
- Partial promotion intentionally retains the parked source collection via
deleteParking: false / parking-retained, but repeated partial runs can create timestamp/uuid parking collections. The retention/boundedness behavior needs to be explicit instead of incidental.
Duplicate sweep:
- Latest-open issue sweep at 2026-06-26T05:45Z found adjacent #14062, #14023, #14027, #14030, but no issue for retained parking boundedness or
anyRepairAborted retirement.
- KB sweep for
partial-promoted, retained parking, anyRepairAborted, and cleanup found no existing technical context/ticket.
- Targeted GitHub search syntax failed through
gh search issues; the live latest-open issue list still covers the active v13.1 queue and shows no duplicate.
The Problem
#14066 correctly makes partial promotion durable but non-clean: recovered rows become available, unrecoverables stay auditable, and the CLI exits non-zero. That leaves two follow-up hygiene risks:
- A stale exported predicate can confuse future readers into thinking aborted-only is still the operator status contract.
- A retained parked collection is a recovery asset, but without a documented bound or cleanup rule it can become long-term Chroma shadow state.
The Fix
- Decide whether
anyRepairAborted() should be removed, made private to tests, or explicitly documented as a compatibility/test seam. Prefer removal if no production consumer exists after #14066 merges.
- Define the retained-parking lifecycle for partial-promoted Memory Core repair:
- what collection name pattern is retained;
- whether a subsequent repair run overwrites, reuses, or accumulates retained parking;
- what cleanup command/path is safe after operator recovery;
- what state marker points to the retained parking collection.
- Add focused unit coverage or source comments so the lifecycle is visible to future repair work.
Contract Ledger
| Surface |
Required contract |
anyRepairAborted() |
Either has a documented production/test consumer after #14066, or is removed with tests updated to use anyRepairNonClean() where appropriate. |
| Retained parking collection |
Partial-promoted repair must have a bounded, documented retention/cleanup lifecycle; retained source is a recovery asset, not unbounded Chroma clutter. |
| Operator note of record |
The intended chain is documented: partial-promoted repair exits non-zero, #14061 supervisor escalation pages the operator, and retained parking remains available for unrecoverable residue inspection. |
Acceptance Criteria
Related
Refs #14039
Refs #14066
Refs #14062
Refs #14061
Origin Session ID: 019efe4c-5d55-76c0-aba5-665f86d9cbdc
Context
Vega approved #14066 with three non-blocking follow-ups. The core #14062 repair fix is merge-eligible, but two cleanup points should not remain review-thread-only:
anyRepairAborted()is no longer used by the production CLI path after #14066 switched operator status toanyRepairNonClean(). It is still exported and unit-tested on the #14066 branch, but a direct tree grep oforigin/codex/14062-memory-core-partial-repair-promotionfound no production consumer.deleteParking: false/parking-retained, but repeated partial runs can create timestamp/uuid parking collections. The retention/boundedness behavior needs to be explicit instead of incidental.Duplicate sweep:
anyRepairAbortedretirement.partial-promoted,retained parking,anyRepairAborted, and cleanup found no existing technical context/ticket.gh search issues; the live latest-open issue list still covers the active v13.1 queue and shows no duplicate.The Problem
#14066 correctly makes partial promotion durable but non-clean: recovered rows become available, unrecoverables stay auditable, and the CLI exits non-zero. That leaves two follow-up hygiene risks:
The Fix
anyRepairAborted()should be removed, made private to tests, or explicitly documented as a compatibility/test seam. Prefer removal if no production consumer exists after #14066 merges.Contract Ledger
anyRepairAborted()anyRepairNonClean()where appropriate.Acceptance Criteria
anyRepairAborted()has either a proven retained consumer or is removed/retired.exit 1-> supervised failure escalation -> operator page.Related
Refs #14039 Refs #14066 Refs #14062 Refs #14061
Origin Session ID: 019efe4c-5d55-76c0-aba5-665f86d9cbdc