[PROVISIONAL_UNGRADUATED: D#17084]
This reduction is not code-ready until the successor discussion converges on the smaller vector-generation safety authority and records the ADR-0014 §8 disposition. No implementation assignment should be taken from this ticket meanwhile.
The same standard the merge gate applied to PR #17031 (2,753-line runner → #17036), applied to the vector-generation substrate from PR #17029: keep only complexity that has a named production authority, while preserving Neo's no-mixed-generation invariant.
Current evidence
- #17026 closed
NOT_PLANNED / superseded, and PR #17040 was Drop+Supersede; the fixed-profile deployment replaced the {1,2,4} provider-resource election.
- Both audited planes reported
vectorGeneration: {status: "missing"} after cutover.
- The Aug 1 recovery did not execute
restore-empty-target: it used ai:restore --mode merge before the restore election hooks existed (receipt).
- Current source still carries 2,391 lines across
generationElectionStore.mjs, electionGatedPromote.mjs, and their dedicated specs.
- The write lifecycle and generic promote helper have zero non-test consumers. Read-only health/path projection and
createEmbeddingGenerationId() remain live.
Why this is provisional
Accepted ADR-0014 §8 and D#17015 AC-C require any embedding-coordinate change to create one coordinated KB + all-MC vector generation: every collection validates before the commit barrier, partial promotion is never advertised, and the complete prior generation remains rollback authority.
Retiring the provider-resource election did not retire that corpus-safety contract. Zero production writers proves the current implementation is unintegrated or oversized; it does not authorize deleting the contract without replacement.
D#17084 now owns divergence between:
- retaining the hot coordinated runtime election;
- compressing it to one cold in-place rebuild authority;
- immutable whole-plane/volume replacement; and
- a smaller immediate deletion that cannot weaken the future transition contract.
Mechanism disposition — evidence, not yet implementation authority
| Bucket |
Surface |
Current evidence |
Decision dependency |
| Retain |
projectVectorGenerationHealth, strict legacy reader/path, createEmbeddingGenerationId |
Live KB/MC health and poison-store consumers. |
Legacy observability/migration decision in D#17084. |
| Candidate for removal |
baseline/candidate/receipt/commit/renew/admissibility/rollback/unpark/accept mutators |
Zero production writer roots. |
Replacement transition authority + ADR wording. |
| Candidate for removal |
electionGatedPromote.mjs and captured promote-view seams |
No production helper consumer; restore hooks have no production receipt. |
Prove removal preserves the converged transition class. |
| Preserve independently |
KB shadow swap; ADR-0027 restore writer fence, ordered promotion, reconciliation, strict ledger, committed-only eligibility |
Existing production owners and tests independent of the election overlay. |
None; these are not debt targets. |
Contract Ledger
| Target Surface |
Source of Authority |
Required Behavior |
Fallback / Edge Case |
Evidence |
| Generation identity |
ADR-0014 §8 + D#17015 |
One immutable coordinate tuple identifies one vector generation across KB and every MC embedding collection. |
Any coordinate change must not reuse or partially advertise the prior live set. |
Exact ADR/D#17015 contract. |
| Transition authority |
D#17084 (ungraduated) |
One explicit operational authority builds, validates, commits, and retains rollback for the complete set. |
Failure before commit leaves the prior complete generation authoritative. |
Graduation must name the receipt and failure matrix. |
| Legacy health |
Existing KB/MC health consumers |
Preserve strict missing / valid projection / unavailable behavior until migration disposition says otherwise. |
Legacy partial records remain observable but must not silently gain authority. |
Current consumer census + focused reader fixtures. |
| Embedding generation ID |
Poison-store join-key contract |
Preserve byte-identical SHA-256 derivation. |
Invalid/incomplete coordinates remain rejected. |
Existing equivalence matrix. |
| KB/MC promotion and restore |
Existing service owners + ADR-0027 |
Preserve independent shadow, writer-fence, ordered-promotion, reconciliation, and ledger guarantees. |
Existing contained failure/resume behavior stays authoritative. |
Existing service and restore suites. |
Acceptance Criteria
Out of Scope
- Inventing a second transition framework before D#17084 converges.
- Weakening ADR-0027 restore ordering, fences, crash containment, or eligibility.
- Treating the retired
{1,2,4} resource election as proof that corpus-generation safety was retired.
- Reopening tickets already closed by resolving PRs.
Decision Record impact
Challenges/amends ADR-0014 §8, depending on D#17084 convergence. Aligned with ADR-0027: its target-set restore contract remains independent and binding.
Related
D#17015 · D#17084 · #17018 · #17023 · #17035 · #17036 · #17081 · ADR-0014 §8 · ADR-0027
Origin Session ID: 8637b4b9-b852-45d9-b057-de34184aae8b
Retrieval Hint: "right-size vector generation safety hot election cold rebuild immutable plane replacement"
The same standard the merge gate applied to PR #17031 (2,753-line runner → #17036), applied to the vector-generation substrate from PR #17029: keep only complexity that has a named production authority, while preserving Neo's no-mixed-generation invariant.
Current evidence
NOT_PLANNED/ superseded, and PR #17040 was Drop+Supersede; the fixed-profile deployment replaced the{1,2,4}provider-resource election.vectorGeneration: {status: "missing"}after cutover.restore-empty-target: it usedai:restore --mode mergebefore the restore election hooks existed (receipt).generationElectionStore.mjs,electionGatedPromote.mjs, and their dedicated specs.createEmbeddingGenerationId()remain live.Why this is provisional
Accepted ADR-0014 §8 and D#17015 AC-C require any embedding-coordinate change to create one coordinated KB + all-MC vector generation: every collection validates before the commit barrier, partial promotion is never advertised, and the complete prior generation remains rollback authority.
Retiring the provider-resource election did not retire that corpus-safety contract. Zero production writers proves the current implementation is unintegrated or oversized; it does not authorize deleting the contract without replacement.
D#17084 now owns divergence between:
Mechanism disposition — evidence, not yet implementation authority
projectVectorGenerationHealth, strict legacy reader/path,createEmbeddingGenerationIdelectionGatedPromote.mjsand captured promote-view seamsContract Ledger
missing/ valid projection /unavailablebehavior until migration disposition says otherwise.Acceptance Criteria
Out of Scope
{1,2,4}resource election as proof that corpus-generation safety was retired.Decision Record impact
Challenges/amends ADR-0014 §8, depending on D#17084 convergence. Aligned with ADR-0027: its target-set restore contract remains independent and binding.
Related
D#17015 · D#17084 · #17018 · #17023 · #17035 · #17036 · #17081 · ADR-0014 §8 · ADR-0027
Origin Session ID:
8637b4b9-b852-45d9-b057-de34184aae8bRetrieval Hint: "right-size vector generation safety hot election cold rebuild immutable plane replacement"