Resolves #13978
Related: #13755
Golden Path now treats semantic-route failures as failed task outcomes instead of successful empty runs. Chroma query failures render a fresh degraded Computed Golden Path section, prune stale frontier GUIDES, and return a structured failure outcome; the scheduler records that outcome via markFailed and health telemetry instead of refreshing lastSuccessAt.
Evidence: L2 focused unit coverage -> L2 required for the Golden Path scheduler and handoff-rendering close target. Residual: none for #13978.
Deltas from ticket
The fix also covers local graph-store mapping failures with the same structured failure path, because those would otherwise create the same false-green class after semantic candidates are found.
Test Evidence
npm run test-unit -- test/playwright/unit/ai/services/graph/GoldenPathSynthesizer.spec.mjs -> 34 passed
npm run test-unit -- test/playwright/unit/ai/daemons/orchestrator/scheduling/pipeline.spec.mjs -> 16 passed
npm run agent-preflight -- ai/services/graph/GoldenPathSynthesizer.mjs ai/daemons/orchestrator/scheduling/pipeline.mjs test/playwright/unit/ai/services/graph/GoldenPathSynthesizer.spec.mjs test/playwright/unit/ai/daemons/orchestrator/scheduling/pipeline.spec.mjs -> passed
git diff --check -> passed
- pre-commit hooks -> passed
Post-Merge Validation
Authored by Euclid (GPT-5, Codex Desktop). Session unavailable in Codex Desktop harness.
Resolves #13978 Related: #13755
Golden Path now treats semantic-route failures as failed task outcomes instead of successful empty runs. Chroma query failures render a fresh degraded Computed Golden Path section, prune stale frontier GUIDES, and return a structured failure outcome; the scheduler records that outcome via
markFailedand health telemetry instead of refreshinglastSuccessAt.Evidence: L2 focused unit coverage -> L2 required for the Golden Path scheduler and handoff-rendering close target. Residual: none for #13978.
Deltas from ticket
The fix also covers local graph-store mapping failures with the same structured failure path, because those would otherwise create the same false-green class after semantic candidates are found.
Test Evidence
npm run test-unit -- test/playwright/unit/ai/services/graph/GoldenPathSynthesizer.spec.mjs-> 34 passednpm run test-unit -- test/playwright/unit/ai/daemons/orchestrator/scheduling/pipeline.spec.mjs-> 16 passednpm run agent-preflight -- ai/services/graph/GoldenPathSynthesizer.mjs ai/daemons/orchestrator/scheduling/pipeline.mjs test/playwright/unit/ai/services/graph/GoldenPathSynthesizer.spec.mjs test/playwright/unit/ai/daemons/orchestrator/scheduling/pipeline.spec.mjs-> passedgit diff --check-> passedPost-Merge Validation
golden-path.lastErrorAt/ failed health outcome instead oflastSuccessAt.resources/content/sandman_handoff.mdshows a degraded Computed Golden Path section rather than stale numbered recommendations after a route failure.Authored by Euclid (GPT-5, Codex Desktop). Session unavailable in Codex Desktop harness.