Files
fusion/docs
gsxdsm 7784cb1fe8 self-healing: six recovery sweeps that never ran on a renamed board — and the guards widening their queries activates (#2838)
**Six self-healing sweeps did not run at all on a renamed board. Each is
a recovery path — the thing that unsticks a card when something has
already gone wrong.**

#2800 measured this class and could not fix it: a read happens *before*
any task is in hand, so there is nothing to resolve a per-task lane
from. `resolveProjectColumnsForRoles` (landed separately) is the seam
that was missing.

## What was silently dead

| sweep | what stayed broken on a renamed board |
| --- | --- |
| `reconcileDoneTaskIntegrity` | a landed card kept **no commit sha**,
forever |
| `recoverAlreadyMergedReviewTasks` | a card whose merge **succeeded**
stayed parked with `status: "failed"` |
| `recoverStuckMergeDeadlocks` | **doubly blind** — no candidates *and*
no dependents |
| `recoverInterruptedMergingTasks` | a task interrupted mid-merge sat in
`merging` indefinitely |
| `recoverMergeableReviewTasks` | a card ready to merge was never
re-enqueued |
| `recoverReviewTasksWithFailedPreMergeSteps` | a card parked on a
failed review step was never revived |

The census scored the `task.column === "..."` re-assertion *inside* each
loop, never the query above it. Converting those comparisons would have
dropped six counts and changed nothing — the loop bodies were already
unreachable.

## The conversion shape — five parts, three of which review taught me

Documented in `self-healing-sweeps-are-blind-on-a-renamed-board.md`,
because the second sweep **drifted from the first**: I wrote it from the
pre-review version and reproduced a flaw already fixed one commit
earlier.

1. **Read** — project union, query each column, dedupe by id. Legacy ids
unioned so a board mid-rename is not skipped.
2. **Verdict** — per card against **its own** workflow. Widening the
read and widening the verdict are different decisions: *a missed row is
invisible, a wrong row is a write.* Using the project union as a
per-card test claims a card because some **other** board calls its
column that role.
3. **Provenance** — the resolver **substitutes** the built-in IR rather
than failing, so `length > 0` reads as "this card answered" when nobody
did. It does not change the verdict (measured: identical) — it makes the
unrepaired card **reportable**.
4. **The log strings** — widening a query invalidates every message
naming the old literal. One logged `"stale merging task(s) in
in-review"` after its read covered several lanes.
5. **The guards the query ACTIVATES.**

## Part 5 is the one that bites

A guard downstream of a literal query is **unreachable** on a renamed
board — and unreachable is indistinguishable from correct. That is why
these sit unwired indefinitely.

`recoverReviewTasksWithFailedPreMergeSteps` filters on `blocker !==
"task has failed pre-merge workflow steps"` — an **exact string match**.
Unwired, the blocker returns `"task is in 'checking', must be in
'in-review'"`, so widening the query alone would have made the sweep
**find every card and reject every card**.

Measured: **6 sweeps hold both a literal query and an unwired lane
guard**; 30 hold a literal query with no such guard. All six are named
in the doc.

**One of the six was my own already-converted sweep.** I widened
`recoverAlreadyMergedReviewTasks` two commits before noticing its
`getTaskHardMergeBlocker` was unwired — so for two commits it found
renamed-board cards and declined them. The scan must run **before**
widening; I did it after, and only caught it because the next sweep
forced the question. `getTaskHardMergeBlocker` was the blind spot for
four of the six: a wrapper, no lane parameter at all, every caller
behind a literal query.

## Corrections to my own work, kept visible

- The project union used as a **per-card verdict** — the flat-set
mistake `project-lane-vocabulary.ts` warns about in its own header,
which I quoted while writing it.
- A **provenance fix that was a no-op**: measured identical verdicts in
every state, revert passed its own new test, so it was thrown away
rather than shipped with a comment claiming otherwise.
- The second sweep **reproducing the first's pre-fix shape**.
- Three assertions that were **vacuous until the revert exposed them** —
including one where the write needed a real git repo, so `commitSha`
could not distinguish accepted from rejected.

## Verification

- `pnpm test:gate` — 161 + 487 + 13 + 71
- `self-healing.test.ts` 412, query-blindness suite 12
- `tsc` on core and engine; `pnpm lint`; `check:changesets`; census
`--strict` — all clean, each run explicitly
- Every conversion revert-measured, **each direction independently**
where a sweep has two (read and guard)

## Scope

**42 queries remain**, 5 of the 6 activation-risk sweeps among them.
Each is per-sweep work — its own filter semantics, its own downstream
guards, its own log strings — so they land one at a time with the
pattern proven, never swept.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Self-healing workflows now work correctly on boards with renamed
lifecycle columns.
- Improved recovery for completed, in-review, interrupted, stalled, and
failed-merge tasks.
- Prevented tasks from being incorrectly classified using another
workflow’s columns.
  - Added warnings when a task’s workflow lanes cannot be resolved.

- **Documentation**
- Expanded guidance on renamed-board recovery behavior and related
diagnostic limitations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 15:38:10 -07:00
..

Fusion Documentation

← Back to repository root

Fusion is an AI-orchestrated task board that turns ideas into reviewed, merged code using a structured workflow: planning → todo → in-progress → in-review → done.

Fusion Dashboard Overview

Quick Start

Start the local dashboard with pnpm dev dashboard, then create your first task from the board or CLI.

For a full walkthrough (installation, onboarding, first task, and daily workflow basics):

➡️ Getting Started

Documentation Index

Getting Started

Guide Description
Getting Started Installation, first-run, first task, and daily workflow basics
Dashboard Guide Board/list views, left/right sidebar navigation, Artifacts, Import Tasks, chat, workflow selection/editor, terminal, git manager, files, planning, and UI tools
CLI Reference Complete fn command reference with subcommands, flags, and examples
Remote Access Operator runbook for Tailscale/Cloudflare setup, tokenized login links, security caveats, and troubleshooting
Native Shell Connection Guide Canonical mobile/desktop shell onboarding, profile management, QR/manual setup, and remote handoff behavior

Task & Project Management

Guide Description
Task Management Task creation modes, lifecycle, prompt specs, comments, archiving, and GitHub integration
Todo View Canonical guide for the experimental Todo View, including enablement, usage, API routes, and storage
Missions Mission hierarchy, planning flow, activation, progress tracking, and autopilot behavior
Goals Refinement Gate Evidence gate for activating the conditional post-v1 goals refinement slice only after real usage pain is documented
Goals Refinement Evidence Pack Structured observation template and two-observation threshold for conditional Slice 4 activation requests
Research Research runs, provider setup, dashboard/CLI usage, findings, exports, and task integration
Research View UX Spec Canonical layout and capability-state messaging spec for the Research dashboard view (FN-4138, informs FN-4134/FN-4135)
Workflow Steps Workflow overview, built-in workflow catalog, per-task selection, runtime semantics, reusable quality gates, templates, phases, and execution results
Workflow Editor Visual workflow editor guide for opening, viewing, authoring, validating, importing/exporting, custom fields/columns/settings, and tuning workflows
Custom Workflow Reliability Acceptance Map End-to-end reliability acceptance criteria for custom workflow authoring, selection, execution, recovery, restart durability, and deferred journeys
Custom Non-Coding Workflows MVP Spec MVP framing for user-authored non-coding workflows, lifecycle mapping, metrics, and risk checklist
Task Evaluations Eval scoring contract, evidence persistence, score categories, and evaluation pipeline
Multi-Project Central registry architecture, project management, isolation modes, and migration paths

Configuration & Agents

| Settings Reference | Global/project settings, workflow setting values, model/fallback lane hierarchy, defaults, and API endpoints | | MCP | Model Context Protocol server configuration, secret references, validation, CLI, dashboard, and import/export workflows | | Agents | Agent management, presets, prompts, heartbeat behavior, spawning, and mailbox workflows | | Planner Oversight (see Settings Reference, Dashboard Guide, Architecture) | Workflow-native oversight levels (off/observe/steer/autonomous), per-task overrides, notification verbosity, the human-confirmation gate on merge/PR and destructive actions, and the Task Detail overseer controls/Intervention Timeline |

Architecture & Development

Guide Description
Architecture System architecture, package layout, storage model, and engine execution flow
Secrets Store (SecretsStore) Core encrypted secret subsystem overview: scopes, AES-256-GCM at-rest model, policy semantics, and public store API surface
Dashboard Real-Time Canonical event-stream architecture contract (shared /api/events bus + dedicated stream boundaries), with project/node scoping, reconnect/cleanup behavior, and realtime pitfalls
Storage PostgreSQL runtime storage, archive, migration compatibility, and file-backed payloads
DAG Architecture Deliverables Milestone A DAG architecture documents plus Milestone B prototype scaffold docs (schema migration plan, DagCoordinator design, implementation checklist)
Dev Server Module Audit Analysis of parallel dashboard dev-server module families, production wiring, and consolidation guidance
Shared Cluster Protocol Shared PostgreSQL multi-node contract: claims/leases, membership, auth, and retired multi-leader mesh replication
Signals Connectors HMAC-signed external signal connectors for setup, payload mapping, and security notes across Sentry, Datadog, PagerDuty, and generic webhooks
Multi-Project Sequencing and Dependency Analysis Sequencing guidance for FN-3448/FN-3449/FN-3503/FN-3182, including identity boundaries and recommended board dependency edges
Contributing Local development setup, testing, release flow, and contributor conventions
Docker Container builds, deployment, and persistence configuration
Code Signing macOS and Windows code signing configuration for release binaries
Diagnostics Engine diagnostic logging subsystems, structured log keys, and key diagnostic points catalog
Sandbox Backends Pluggable sandbox backends for executor command isolation (bubblewrap, spawn-based)
Secrets Encrypted secrets storage, per-secret access policies, scopes, and agent tool wiring
Testing Full testing lanes, worker fanout guidance, test taxonomy, and file organization
Real iOS Safari Acceptance Surface Provisioning runbook and harness usage for terminal verification gates on physical or cloud real-iOS Safari
Solutions Catalog Documented solutions to past problems (bugs, architecture patterns, best practices) organized by category
Localization Contributing Guide Conventions for contributing translations, locale file structure, and i18n tooling
Mobile Capacitor/PWA mobile development setup and workflow

Plugins

Guide Description
Plugin Management End-user guide for discovering, installing, enabling, configuring, updating, uninstalling, and troubleshooting Fusion plugins
Plugin Authoring Developer guide for building Fusion plugins (manifest, SDK hooks, routes, UI/runtime contributions)
Even Realities Glasses Plugin Task-focused Even Realities glasses bridge with quick capture, polling notifications, and agent actions
Reports Plugin Reports plugin rendering, export, standalone HTML generation, and section configuration
Even Realities Plugin API Even Realities plugin API endpoint reference and test coverage matrix
Memory Plugin Contract Pluggable memory backend architecture, interface contract, and migration strategy
Compound Engineering Plugin CE workflow dashboard surface: artifact hub, interactive sessions, work→board bridge, and bidirectional sync
External Plugin Authoring Step-by-step guide for authoring plugins using an installed fn CLI (no monorepo access needed)
External Plugin Proof-Point Runbook Repeatable release-validation runbook for proving an external plugin runs against a published Fusion CLI build

Audit Reports

Report Description
Test Feedback-Loop Baseline Weekly FN-6612 signal-per-second baseline for gate/test wall-time, slowest files, and quarantine trends
Test Value Audit Heuristic test-value audit generated by scripts/test-value-audit.mjs to support human deletion and review decisions
Test Velocity Baseline Weekly feedback-loop velocity baseline for merge-gate, boot-smoke, changed-test, and quarantine metrics
UX Audit Report Comprehensive UX audit with prioritized recommendations for dashboard improvements
Codebase Improvement Audit Evidence-based technical debt and reliability gap audit with prioritized recommendations
Gap Analysis System completeness analysis comparing Fusion to Paperclip feature set
Permanent Agent Heartbeat Playbooks Worked manager/IC/message/blocked/no-task heartbeat scenarios and anti-patterns
Agent Sandbox Research Research on agent isolation, capability enforcement, and sandboxing approaches
Even Realities Integration Research (FN-3737) Research summary and recommended integration topology for Even Realities glasses + Fusion
pi-autoresearch Analysis for Fusion Port Upstream architecture/license analysis and Fusion integration mapping for autoresearch capabilities
pi-autoresearch Audit vs Fusion Research Audit comparing Fusion's research subsystem against upstream pi-autoresearch capabilities and parity gaps (FN-4136)
Research Hardening Preflight Baseline Verified research subsystem baseline, lifecycle contracts, and hardening pressure points
Test Audit Report Test coverage and effectiveness audit with recommendations
Skipped Test Inventory Current intentional test-skip inventory and reconciliation status for older skip follow-ups
Dev Server Module Boundary Audit Boundary/ownership audit for parallel dev-server-* vs devserver-* dashboard modules and FN-2212 prioritization guidance
spawn_agent Approval Evaluation (FN-3973) Decision to keep fn_spawn_agent under generic action-gate governance rather than durable agent provisioning policy
Task Lineage Reconciliation Notes Historical task-ID reuse patterns, confidence semantics for commit attribution, and reconciliation methodology (FN-3953, FN-3998)
Dashboard Load Performance (historical) Pre-cutover SQLite index analysis retained for performance archaeology
CLI Printing Press Plugin Design Architecture design for the CLI printing press bundled plugin (FN-3762)
CLI Printing Press Research Upstream cli-printing-press analysis and Fusion integration mapping (FN-3761)
Research vs Experiment Session Naming Decision Naming decision record: hybrid approach retaining research_* for cited-search/synthesis and adding experiment_session_* for upstream parity (FN-4223)
Experiment Executor Design Experiment executor architecture: lifecycle, run state machine, and worktree isolation model
Experiment Finalize Flow Experiment finalize contract: branch grouping, dry-run planning, and session completion semantics
Experiment Session Model Experiment session data model: state transitions, iteration tracking, and persisted run state
Experiment Session MVP Spec MVP specification for the experiment session feature: scope, invariants, and delivery milestones
Sandbox Options Research (FN-4635) Pluggable sandbox options research: threat model, backend evaluation, and spawn-based isolation design
Triage Duplicate Detection Postmortem Postmortem on duplicate task detection gaps and scheduler dedup hardening
Multi-Node Runtime Readiness (FN-4814) Runtime readiness assessment for multi-node distributed coordination
Distributed Multi-Node Coordination Gap (FN-4819) Gap analysis for distributed multi-node agent coordination and cross-node task assignment
Cross-Node Assignment Wake Contract (FN-4824) Contract specification for cross-node task assignment wake signaling
Multi-Node Coordination Validation Findings (FN-4820) Validation findings from multi-node coordination testing and edge-case analysis
Secrets Sync Auth Parity Review (FN-4886) Review of node secrets sync API authentication parity and security boundaries
Test Speed Audit (FN-5048) Measured baseline test performance, offender list, and optimization priorities
Soft-Delete Verification Matrix Authoritative checklist for the FN-5105 → FN-5143 soft-delete stream: scenario × layer coverage
Self-Healing Backward Move Audit Audit of self-healing backward-move safety checks and edge-case validation
Workflow Policy Ownership Map U1 characterization map classifying production merge, retry, scheduling, and recovery policy branches before workflow-policy migration cutover
Test-Speed Baseline (2026-06-03) Measured per-file test timing baseline and optimization targets (successor to FN-5048 audit)
ACP Runtime Contract Agent Client Protocol plugin launch/readiness contract and failure taxonomy
ACP MCP Passthrough & Permission Forwarding Upstream Sponsorship (FN-6475) Ready-to-file upstream sponsorship for claude-code-cli-acp ACP session/new.mcpServers passthrough and permission-gate traversal; Route A remains NOT GO until proven
Mission Completion Gate Contract Decision record for mission completion gate invariants and acceptance flow

| Lost-Work Tasks Incident (2026-05-23) | Incident catalog of 9 lost-work tasks from no-op finalize and reuse-handoff bugs | | GitLab Parity Inventory (FN-7421) | Implementation map for first-class GitLab support: import, linked issue tracking, comments, auth/settings UI, CLI/extension, and Command Center surfaces to mirror or explicitly exclude | | PostgreSQL Runtime Cutover Review (2026-07-14) | Current end-to-end authority inventory, intentional legacy SQLite readers, deployment contract, and verification record | | SQLite → PostgreSQL Migration Review (2026-06-26, historical) | Historical multi-agent review of the incomplete migration branch and its original findings | | Dashboard Theme & UI Plugin System Proposal (2026-07-01) | Feasibility-spike proposal for a controlled dashboard theme/UI shell extension point sharing one backend source of truth | | Full-loop Agent Tool-Surface Audit and Delivery Plan | Source-grounded audit of engine-agent and dashboard chat tool factories, gap analysis for mission hierarchy integration, and delivery plan (FN-8280) | | Dashboard Modal Inventory | Canonical classification of all 45 dashboard modal surfaces (classes A–D) with file:line evidence, FloatingWindow migration targets, and the shared migration contract (FN-8605 → FN-8617) |

External Resources

Suggested Reading Paths

  • New user: Getting Started → Dashboard Guide → Task Management
  • Workflow author: Dashboard Guide → Workflow Editor → Workflow Steps → Settings Reference
  • Power user / automation owner: Settings Reference → Workflow Steps → Agents → Planner Oversight (Settings Reference § Workflow Settings)
  • Maintainer / contributor: Architecture → Multi-Project → Contributing