LearnNewsExamplesServices
Frontmatter
id14588
titleComputed GP: contradiction guard collapses to zero routes post-release
stateClosed
labels
bugai
assigneesneo-fable
createdAtJul 4, 2026, 3:58 AM
updatedAtJul 4, 2026, 5:57 AM
githubUrlhttps://github.com/neomjs/neo/issues/14588
authorneo-fable
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 4, 2026, 5:57 AM

Computed GP: contradiction guard collapses to zero routes post-release

neo-fable
neo-fable commented on Jul 4, 2026, 3:58 AM

Context

Operator-reported live (2026-07-04 01:50Z handoff, verbatim paste in the original body — preserved in edit history): "huge friction... not picking up new tickets or sandboxes" — the Computed Golden Path rendered Selected routed nodes: 0 on every pass post-v13.1.

Scope note (2026-07-04 ~02:32Z, author re-scope per PR neomjs/neo#14596 cross-family review): this ticket is narrowed to the ROOT-CAUSE DEFECT the shipped diff genuinely resolves. The three follow-up behaviors originally listed here (focus-as-route fallback · guard-filter ledger recording · the release-window config/SSOT leaf) are split to neomjs/neo-agent-brain#115 with their ACs carried verbatim. The single-actionable-candidate narrowness remains neomjs/neo#14503's lane.

The Problem (narrowed)

CURRENT_FOCUS_ROUTING_CONFLICT_REASONS hardcoded the literal 'v13.1' (ai/services/graph/computedGoldenPathRouting.mjs:37). Post-release, every still-open release-tail focus candidate (#14575/#14310/#13448) kept arming the contradiction guard forever; with the pass's single actionable candidate (#14475 — blocked via its documentation label, while being release work itself) filtered, the route surface zeroed on every pass. Same stale-release-boundary class as neomjs/neo#14531.

The Fix (as shipped, PR neomjs/neo#14596)

Remove the release-version literal; the conflict-reason set becomes deliberately release-INDEPENDENT (incident, prio-zero); the class-lesson recorded behaviorally in the constant's JSDoc (release-window guarding, if reintroduced, rides a config/SSOT leaf with a publish-cleared lifecycle — never a literal; that leaf = neomjs/neo-agent-brain#115 item 3). Plus a new unit spec pinning the guard semantics.

Acceptance Criteria (narrowed to the shipped defect)

  • The 'v13.1' literal removed from the routing conflict-reason set; no release-version literal in computedGoldenPathRouting.mjs (falsifying grep).
  • Release-version focus reasons never arm the routing guard (unit-pinned: the live reproducer shape → findComputedFocusContradiction → null).
  • incident/prio-zero guard behavior unchanged (unit-pinned).
  • Partial-block fallback-to-next behavior test-pinned (content blocks, non-content survives).
  • Post-merge: the next Golden Path pass renders a numbered recommendation on the reproducer state (Selected routed nodes ≥ 1).

Out of Scope (split/siblings)

neomjs/neo-agent-brain#115 (focus-as-route · ledger recording · release-window leaf incl. the issueFocusSections.mjs emitter literals) · neomjs/neo#14503 (candidate narrowness) · neomjs/neo#14575 (portal-index test — currently gating PR neomjs/neo#14596's CI).

Related

PR neomjs/neo#14596 (the fix) · neomjs/neo-agent-brain#115 (the split follow-ups) · neomjs/neo#14531 (stale-literal sibling) · neomjs/neo#14454 · neomjs/neo#14503 · neomjs/neo-agent-brain#117/ADR 0033 (the fail-open route-surface principle) · D#14561 Lane-4 lane-goal.

Origin Session ID: a5af7cf6-45a3-42db-8a30-f04f4241a55c Retrieval Hint: "computed golden path routing guard zero routes v13.1 literal stale release boundary"