Files
fusion/docs/dag/milestone-b-implementation-checklist.md
Fusion 0cae02e132 docs(FN-4491): complete Step 3 — implementation checklist
Fusion-Task-Id: FN-4491
Fusion-Task-Lineage: 83356e98-5ab8-4f3e-8b46-2960c350a79e
2026-05-14 11:55:05 -07:00

4.0 KiB

Milestone B Implementation Checklist (Executor-Ready)

Related tasks: FN-4491, FN-4490, FN-4487, FN-4471, governance gate FN-4359.

See also: Schema migration plan · DagCoordinator design · ADR v1

Gate (must be first)

  • FN-4359 freeze lifted or explicit carve-out granted for DAG prototype implementation. Until then, do not implement.
    • Policy quote (AGENTS.md): “Reliability mechanism changes are currently under freeze pending FN-4359 governance hardening; treat new reliability-layer behavior changes as blocked unless explicitly approved in task scope.”

Ordered milestones

ADR traceability: sequence follows ADR-0001 Decision (SQLite DAG + enqueue-only coordinator) and Consequences #1/#2/#4 (additive storage, non-blocking runtime, unchanged merge path).

  1. Land additive migration(s) from plan

    • Outcome: dag_run, dag_node, dag_edge created via next schema version block.
    • File scope hints: packages/core/src/db.ts, packages/core/src/__tests__/db*.test.ts.
    • Verification: pnpm test, pnpm build.
  2. Add DagCoordinator skeleton behind feature flag, no subscribers yet

    • Outcome: inert class and wiring seam exists but disabled by default.
    • File scope hints: packages/engine/src/dag-coordinator.ts, packages/engine/src/project-engine.ts (or equivalent bootstrap).
    • Verification: pnpm test, pnpm build.
  3. Wire event subscriptions behind same flag

    • Outcome: listens to existing task:created|task:moved|task:updated and performs enqueue-only transitions.
    • File scope hints: packages/engine/src/dag-coordinator.ts, runtime registration surfaces.
    • Verification: pnpm test, pnpm build.
  4. Add focused unit tests

    • Outcome: readiness evaluation, enqueue path, block/fail/complete event coverage.
    • File scope hints: packages/engine/src/__tests__/dag-coordinator.test.ts (new), helper fixtures.
    • Verification: pnpm test.
  5. Add reliability interaction regression tests

    • Outcome: explicit interaction coverage in reliability backstop suite for scheduler/executor/self-healing/restart recovery adjacency.
    • File scope hints: packages/engine/src/__tests__/reliability-interactions/.
    • Verification: pnpm test.
  6. Add opt-in integration test for 2-node DAG

    • Outcome: validates end-to-end enqueue-only orchestration with real SQLite state and mocked/controlled wakeups.
    • File scope hints: packages/engine/src/__tests__/dag-coordinator.integration.test.ts.
    • Verification: pnpm test, pnpm build.
  7. Finalize docs + changeset when implementation lands

    • Outcome: update DAG docs and settings docs for shipped flag/behavior.
    • File scope hints: docs/dag/*.md, docs/settings-reference.md, .changeset/*.md.
    • Verification: pnpm test, pnpm build.

Config flag proposal

  • Proposed setting: experimentalDagCoordinator: boolean (default false).
  • Planned definition locations when implementation lands:
    • packages/core/src/types.ts (project settings type)
    • settings read/write plumbing
    • docs/settings-reference.md (documented only when implemented)

Changeset requirement for implementation task

When Milestone B implementation (code) lands, include a changeset for @runfusion/fusion because it introduces new user-facing functionality behind a flag.

  • Acceptable bump: patch (if strictly bugfix-like/internal behavior) or minor (if introducing opt-in new capability surface).
  • This current FN-4491 design-only task does not add a changeset.

Non-goals (self-contained)

  • No scheduler replacement.
  • No direct AgentSemaphore manipulation.
  • No checkout-lease bypass.
  • No merger/audit/file-scope invariant changes.
  • No dashboard DAG UX/productization (Milestone C / FN-4492).
  • No cross-project/cross-node DAG orchestration.
  • No replay/time-travel/autoscaling orchestration engine.