Skip to content

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.

LocationRole today
solutions/ontological/lib/services/dashboard/contract.tsTask rows carry no depends_on or autonomy
solutions/ontological/desktop/src-nuxt/app/plugins/register.tsNo dispatch module
solutions/ontological/desktop/src-nuxt/app/pages/model/tasks.vueThe flat task list this mode begins to supersede (deprecation waits for the Board cut)
  • Contract: depends_on (wikilink-stripped stems) and autonomy join 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-functions frontier and graph via ?fn=), page + view owning one poller, board and SVG DAG panels colored by the same buckets.
  • 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-only is 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.
  • Deleting the tasks list (waits for the Board cut per the approved plan).
  • Engine-backed data — the tick’s TickReport becomes the source in C4.
  • Pan/zoom and edge routing polish on the graph canvas.

← Back to Tasks