Sub of #13624. The team-converged root fix for the 18-day-stale Golden Path forecast (#13750).
Context (the basics — measured read-only on live memory-core-graph.sqlite)
- Nodes 122,215 · Edges 101,040 · GraphLog 805,017 (~3M granular items w/ node-properties). Huge + intentional.
- The
dream (REM graph extraction) digests that graph → intrinsically heavy, not a defect. The golden-path synthesis is cheap (rank + summarize the current graph) but was gated behind the heavy dream via two coupling surfaces — so it froze for days behind the multi-hour digest.
Delivered (PR #13783) — decouple golden-path from dream
Golden Path re-ranks the current graph on its (already-hourly) cadence → freshness ("not perfect, but better than empty / 18d-stale"). Both coupling surfaces removed:
- Scheduling —
golden-path.dependencies: ['dream'] → [] (picker's filterUnmetDependencies no longer drops it).
- Execution —
MaintenanceBackpressureService.DEFAULT_GOLDEN_PATH_DEPENDENCY_TASK_NAMES: ['dream'] → [] (the dominant runtime gate; executeWithGoldenPathDependencyGate no longer defers it). Stays a reactive config leaf (goldenPathDependencyTaskNames), reversible per-deployment.
grace V-B-A'd that the synthesizer reads the current graph (not the dream digest) → no functional dependency; the only cost is bounded staleness.
Descoped to follow-on — the dream off-peak (midnight) cadence
The original scope bundled "dream → off-peak (midnight) cadence." That half is descoped from this ticket: post-convergence the decouple is THE freshness root-fix, and the dream off-peak cadence is a complementary optimization being re-evaluated against grace's #13781 lease-yield (it may be unnecessary if the decouple + lease-yield suffice). Per grace's review, the dream→midnight + within-day fairness (#13780/#13781) are separate, complementary tickets. The cadence primitive is preserved (stashed dream.mjs offPeakAnchorMs + a dreamOffPeakHour-gated getDueTask branch) and will be filed as its own sub of #13624 only if the re-evaluation confirms it's needed — rather than ship a half-done bundle.
Authored by @neo-opus-vega (Vega).
Sub of #13624. The team-converged root fix for the 18-day-stale Golden Path forecast (#13750).
Context (the basics — measured read-only on live
memory-core-graph.sqlite)dream(REM graph extraction) digests that graph → intrinsically heavy, not a defect. Thegolden-pathsynthesis is cheap (rank + summarize the current graph) but was gated behind the heavy dream via two coupling surfaces — so it froze for days behind the multi-hour digest.Delivered (PR #13783) — decouple golden-path from dream
Golden Path re-ranks the current graph on its (already-hourly) cadence → freshness ("not perfect, but better than empty / 18d-stale"). Both coupling surfaces removed:
golden-path.dependencies: ['dream'] → [](picker'sfilterUnmetDependenciesno longer drops it).MaintenanceBackpressureService.DEFAULT_GOLDEN_PATH_DEPENDENCY_TASK_NAMES: ['dream'] → [](the dominant runtime gate;executeWithGoldenPathDependencyGateno longer defers it). Stays a reactive config leaf (goldenPathDependencyTaskNames), reversible per-deployment.grace V-B-A'd that the synthesizer reads the current graph (not the dream digest) → no functional dependency; the only cost is bounded staleness.
Descoped to follow-on — the dream off-peak (midnight) cadence
The original scope bundled "dream → off-peak (midnight) cadence." That half is descoped from this ticket: post-convergence the decouple is THE freshness root-fix, and the dream off-peak cadence is a complementary optimization being re-evaluated against grace's #13781 lease-yield (it may be unnecessary if the decouple + lease-yield suffice). Per grace's review, the dream→midnight + within-day fairness (#13780/#13781) are separate, complementary tickets. The cadence primitive is preserved (stashed
dream.mjsoffPeakAnchorMs+ adreamOffPeakHour-gatedgetDueTaskbranch) and will be filed as its own sub of #13624 only if the re-evaluation confirms it's needed — rather than ship a half-done bundle.Authored by @neo-opus-vega (Vega).