T-B6YL-sdf-dispatch-mode
Status: open/ready · Impact: high · Complexity: medium
A new SDF mode that renders the scheduler’s read model: the frontier with
withhold reasons, and the dependency graph. First cut computes sdlc task next semantics client-side over the polled /api/state; when the C4 adapter
lands, the computation is replaced by the engine’s own explain and the view
stays.
| Location | Role today |
|---|---|
solutions/ontological/lib/services/dashboard/contract.ts | Task rows carry no depends_on or autonomy |
solutions/ontological/desktop/src-nuxt/app/plugins/register.ts | No dispatch module |
solutions/ontological/desktop/src-nuxt/app/pages/model/tasks.vue | The flat task list this mode begins to supersede (deprecation waits for the Board cut) |
Proposed
Section titled “Proposed”- Contract:
depends_on(wikilink-stripped stems) andautonomyjoin the task row; client regenerated, drift gate green. -
utils/dispatchModel.ts— pure semantics: buckets (running / ready / blocked / planning), filter-verdict-shaped reasons (depends-on,autonomy,status),closed/satisfies a task dependency, unresolved targets fail safe, longest-path graph layout with referenced closed deps one hop deep and cycle degradation. - Dispatch module registered (
/dispatch, sub-functionsfrontierandgraphvia?fn=), page + view owning one poller, board and SVG DAG panels colored by the same buckets.
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: The Frontier board shows running / ready / blocked / planning, and every blocked card names its rules and reasons.
- AC-2: The Graph draws open work layered by dependency depth, closed dependencies dimmed, and node color equals frontier bucket.
- AC-3: Semantics match
sdlc task next:closed/*satisfies, unresolvable targets block fail-safe,human-onlyis withheld by name. - AC-4: Model logic is pure and unit-tested (8 vitest cases); the view only renders.
- AC-5:
bunx vitest run(src-nuxt),nuxt build, eslint + oxlint on touched files, and the dashboard-client drift gate all pass.
Out of scope
Section titled “Out of scope”- Deleting the tasks list (waits for the Board cut per the approved plan).
- Engine-backed data — the tick’s
TickReportbecomes the source in C4. - Pan/zoom and edge routing polish on the graph canvas.