LearnNewsExamplesServices
Frontmatter
titlefix(ai): replenish Golden Path candidates after liveness filters
authorneo-gpt
stateOpen
createdAt12:57 AM
updatedAt12:57 AM
closedAt
mergedAt
branchesdevcodex/15105-gp-candidate-liveness
urlhttps://github.com/neomjs/neo/pull/15116
contentTrust
projected
quarantined0
signals[]
Open
neo-gpt
neo-gpt commented on 12:57 AM

Refs #15105

Related: #14472

Golden Path now replenishes the semantic candidate prefix after state, blocker, actionability, and typed Discussion-liveness filtering instead of treating the raw top 20 as the route contract. A single trusted-root Discussion classifier projects lifecycle facts through sync and ingestion; the graph exposes RLS-safe total versus decaying inbound support; canonical ranking math remains unchanged; final-pass rejection evidence stays in the existing stage-isolated ledger.

Evidence: L2 (exact affected matrix: 212 passed, 8 substrate-dependent skips; non-skipped DreamService fixture: 1 passed) → L3 required (live non-destructive sync → ingest → isolated graph → fresh handoff-file hindcast with selected nodes recorded). Residual: live hindcast AC from #15105.

Deltas from ticket

  • The persisted lifecycle tuple is normalized atomically: any malformed or contradictory v1 field set degrades together to legacy undetermined rather than mixing current and legacy authority.
  • Requester-scoped vicinity markers preserve RLS isolation across sequential tenants; SQLite invalidation removes every stale same-id secondary-index reference before lazy reload.
  • Active/archive Discussion mirrors are canonicalized by current source timestamps and deterministic source precedence. Operational graph/vector failures propagate; malformed YAML remains a bounded local skip.
  • The graph projection excludes canonical protected fact edges and prior frontier → GUIDES output from decaying support, preventing Golden Path from authorizing its own next run.
  • Adaptive admission is count-bounded, ID-deduplicated, SQLite-chunked, and fail-loud at its safe ceiling. Strict nonnegative finite ANN distances prevent malformed vector results from becoming healthy scores.
  • Adaptive admission publishes only the final whole-prefix attempt; later query, distance, or structural failures discard provisional routes and ledger rows through the existing fail-loud result.
  • The one physical rejection stream now retains its actionability and Discussion-liveness stages independently, so liveness pressure cannot evict the actionability view.
  • No ranking formula, Direction-GP input, Bird View, hook renderer, config leaf, or new ledger was added.

Test Evidence

  • NEO_TEST_SKIP_CI=true npm run test-unit -- <10 affected specs>212 passed, 8 skipped on the exact final tree.
  • npm run test-unit -- DreamServiceGoldenPath.spec.mjs --workers=11 passed with a hermetic exact-fixture vector boundary; no unrelated shared Chroma candidate can satisfy the oracle.
  • Independent final-diff matrix on alternate isolated Chroma port — 199 passed before the final malformed-distance fold; the added exact falsifier plus three adjacent admission/Hebbian tests then passed 4/4.
  • npm run ai:audit-discussion-lifecycle -- --self-test — passed.
  • npm run --silent ai:structure-map -- --files --loc — passed; the new pure helper remains in the existing GitHub Workflow shared-helper home.
  • npm run agent-preflight -- --no-fix <20 changed/new .mjs files> — 0 ticket-archaeology violations; all requested gates passed.
  • node --check <20 changed/new .mjs files> and git diff --check — passed.
  • Broad-suite receipts are disclosed, not promoted: the 9-worker hermetic run was killed with exit 137 after 5,363/6,895 tests; the 4-worker hermetic run reached the full test list but ended with 6,738 passed, 116 skipped, 15 cross-suite shared-state failures, 26 non-runs, and one non-test error. The exact affected matrix above is green.

Residual / Pre-Review Validation

  • Complete the isolated L3 live-chain hindcast before ready-for-review. The receipt must deep-equal SQLite and Chroma values for routingDispositionSchemaVersion, routingDisposition, routingDispositionReason, routingDispositionEvidence, plus separate lifecycle state; render a non-empty legitimate route; and exclude the terminal/undetermined/closed cohort.
  • Replace Refs #15105 with Resolves #15105 only after that receipt passes.

Evidence Incident

The first L3 attempt accidentally reached a resident Chroma endpoint and refreshed 212 IDs before containment. A read-only audit found the resident collection healthy; no restore or drop was performed. The subsequent truly isolated run stopped because the embedding provider degraded before a valid chain receipt. Neither attempt counts as L3 evidence.

Post-Merge Validation

  • Inspect the next scheduled Golden Path pass for candidate-admission stop reason, final requested width, and stage-isolated Discussion-liveness rejection counts.

Evolution

The implementation retained the ticket's source → graph → canonical-ranking composition while tightening falsified shortcuts: lifecycle classification never reads comments or raw timestamps; liveness never treats protected history or prior Golden Path output as motion; malformed ANN distances never become priority; and tenant-scoped lazy loading cannot reuse another requester's visibility marker. The live-evidence incident also exposed why ad-hoc Chroma diagnostics require resolved-coordinate guards before any collection access.

Authored by Euclid (GPT-5, Codex Desktop). Session 837ad74b-c2d2-413d-9aab-b7165a93a82a.