Commit Graph

1094 Commits

Author SHA1 Message Date
gsxdsm
194dfa9387 FN-5758: add cited-goal audit aggregation and runtime route
Add end-to-end goal-citation audit trail plumbing across core, engine, CLI, and dashboard.

- extend goal citation extraction with aggregation logic and new core coverage
- expose cited-goal runtime data through dashboard routes with dedicated API tests
- wire goal-citation audit details into engine diagnostics and CLI extension audit expectations
- document the new audit behavior and publish a patch changeset for @runfusion/fusion

Files changed:
 .changeset/fn-5758-goal-citation-audit.md          |  9 +++
 docs/dashboard-guide.md                            |  2 +
 docs/diagnostics.md                                |  4 ++
 .../__tests__/extension-goal-tools-audit.test.ts   |  6 +-
 packages/cli/src/extension.ts                      |  3 +
 .../goal-citation-audit-aggregation.test.ts        | 63 ++++++++++++++++++
 packages/core/src/goal-citation-extractor.ts       | 54 ++++++++++++++-
 packages/core/src/index.ts                         |  1 +
 .../src/__tests__/routes-run-cited-goals.test.ts   | 77 ++++++++++++++++++++++
 packages/dashboard/src/routes.ts                   | 11 ++++
 .../src/routes/register-agent-runtime-routes.ts    | 49 ++++++++++++++
 .../src/__tests__/goal-anchoring-audit.test.ts     | 40 +++++++----
 packages/engine/src/goal-anchoring-audit.ts        |  4 ++
 packages/engine/src/goal-injection-diagnostics.ts  |  1 +
 14 files changed, 308 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-5758

Fusion-Task-Lineage: b077c0b7-6ca4-489d-8c36-73d80a2afdb2
2026-05-30 22:53:24 -07:00
gsxdsm
d98ff8780c FN-5759: inject active-goal context across engine lanes
Enable always-on active-goal prompt injection and diagnostic wiring across triage/executor flows.

- Refactor goal-context injection so agent heartbeat, executor, and triage all apply the active-goal seam consistently.
- Extend goal injection diagnostics implementation and exports, plus anchoring audit touchpoints.
- Add and update tests for goal context injection behavior and diagnostics wiring.
- Update architecture and diagnostics docs to describe the new always-on seam.

Files changed:
 docs/architecture.md                               |  2 +-
 docs/diagnostics.md                                |  2 +-
 .../src/__tests__/goal-context-injection.test.ts   | 19 ++++-
 .../goal-injection-diagnostics-wiring.test.ts      | 98 +++++++++++++++++++++-
 packages/engine/src/agent-heartbeat.ts             | 31 ++-----
 packages/engine/src/executor.ts                    | 32 ++-----
 packages/engine/src/goal-anchoring-audit.ts        |  2 +-
 packages/engine/src/goal-injection-diagnostics.ts  | 42 +++++++++-
 packages/engine/src/index.ts                       |  2 +
 packages/engine/src/triage.ts                      | 28 +++++--
 10 files changed, 191 insertions(+), 67 deletions(-)

Fusion-Task-Id: FN-5759

Fusion-Task-Lineage: 1419de34-2e86-4459-bcd4-426f15c067fe
2026-05-30 21:54:06 -07:00
gsxdsm
c9b159f4e5 FN-5743: cut over merge dequeue authority to merge-request queue
Shift merge dequeue enforcement to merge-request queue/marker authority with reliability coverage updates.

- Enforce merge eligibility and dequeue ownership via merge-request queue/marker checks in engine and scheduler paths.
- Add hard-cancel behavior coverage to ensure queued merge requests are canceled when tasks are user-canceled.
- Extend core merge-request record/store tests and reliability interaction suites for dual-observe and cancel-on-hard-cancel seams.
- Document the FN-5741/FN-5743 reliability backstop updates in AGENTS.md and architecture docs.

Files changed:
 AGENTS.md                                          |  2 +
 docs/architecture.md                               |  2 +
 packages/core/src/__tests__/merge-request-record.test.ts     | 18 ++++
 packages/core/src/store.ts                         | 13 +++
 packages/engine/src/__tests__/reliability-interactions/dual-observe-merge-seam.test.ts                | 57 +++++++++++++
 packages/engine/src/__tests__/reliability-interactions/merge-request-cancel-on-hard-cancel.test.ts    | 87 +++++++++++++++++++
 packages/engine/src/project-engine.ts              | 98 +++++++++++++++++++++-
 packages/engine/src/scheduler.ts                   | 12 ++-
 8 files changed, 284 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-5743

Fusion-Task-Lineage: b9a49aeb-ed73-42fe-924d-25c7097d1bb9
2026-05-30 20:48:16 -07:00
gsxdsm
8609669a56 FN-5742: add dual-observe merge-request parity seam
Add a dual-observe merge-request seam that preserves legacy authority while emitting parity signals.

- Add scheduler parity helpers for dependency satisfaction and shadow lease state, keeping legacy scheduling decisions authoritative.
- Extend ProjectEngine/run-audit merge dequeue flow with shadow-candidate selection and parity audit emission.
- Add reliability interaction coverage for dual-observe dependency parity, shadow dequeue parity, lease parity, and runnable guard behavior.
- Document FN-5742 reliability backstop coverage in architecture docs.

Files changed:
 docs/architecture.md                               |   2 +
 packages/engine/src/__tests__/reliability-interactions/dual-observe-merge-seam.test.ts                | 193 +++++++++++++++++++++
 packages/engine/src/__tests__/scheduler.test.ts    |  64 +++++++
 packages/engine/src/project-engine.ts              |  42 +++++
 packages/engine/src/run-audit.ts                   |   3 +
 packages/engine/src/scheduler.ts                   | 158 +++++++++++++++--
 6 files changed, 448 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-5742

Fusion-Task-Lineage: dc4c0212-fe75-4860-bf06-2765a0b18d38
2026-05-30 18:52:19 -07:00
gsxdsm
5396730033 FN-5755: harden mission validation recovery flow
Ensure mission feature assertions recover and validate consistently across startup and periodic maintenance.

- add FN-5755 changeset and AGENTS reliability backstop note
- document canonical zero-assertion auto-pass and assertion validation lifecycle updates in missions docs
- expand mission execution loop and reliability interaction tests for startup recovery, periodic replay, and idempotency
- wire self-healing maintenance to replay active mission validation recovery via runtime callback

Files changed:
 .../fn-5755-mission-validation-end-to-end.md       |  5 ++
 AGENTS.md                                          |  1 +
 docs/missions-completion-contract.md               | 15 ++--
 docs/missions.md                                   |  4 +-
 .../src/__tests__/mission-execution-loop.test.ts   | 88 +++++++++++++++++++++-
 .../mission-validation-trigger-gap.test.ts         | 42 ++++++++++-
 packages/engine/src/runtimes/in-process-runtime.ts |  6 ++
 packages/engine/src/self-healing.ts                | 11 +++
 8 files changed, 159 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-5755

Fusion-Task-Lineage: e54ac4dc-7b8c-4fc9-8cd6-18702708546f
2026-05-30 17:45:11 -07:00
gsxdsm
0e0b17f3c4 FN-5754: re-triage stranded features in active mission slices
Ensure active mission slices recover stranded features by linking or auto-triaging them during scheduler and self-healing reconciliation.

- Extend mission feature reconciliation to auto-triage defined features in active slices when mission autopilot/auto-advance is enabled and no linked task can be found.
- Emit a new mission:stranded-feature-triaged audit event whenever stranded features are linked or triaged, and wire reconciliation into self-healing maintenance runs.
- Add regression coverage for scheduler and reliability interactions, and document the new backstop in AGENTS and mission docs.

Files changed:
 AGENTS.md                                          |   1 +
 docs/missions-completion-contract.md               |   1 +
 docs/missions.md                                   |   1 +
 .../mission-stranded-feature-retriage.test.ts      | 160 +++++++++++++++++++++
 packages/engine/src/__tests__/scheduler.test.ts    | 155 ++++++++++++++++++++
 packages/engine/src/run-audit.ts                   |   1 +
 packages/engine/src/runtimes/in-process-runtime.ts |   1 +
 packages/engine/src/scheduler.ts                   |  64 ++++++++-
 packages/engine/src/self-healing.ts                |  11 ++
 9 files changed, 394 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-5754

Fusion-Task-Lineage: 6b29754a-2fdf-4528-aa43-af294c4210df
2026-05-30 16:47:15 -07:00
gsxdsm
24e0c44b4a FN-5731: require confirmation before archiving near-duplicate tasks
Stop silent near-duplicate auto-archive by routing duplicates through explicit user confirmation in API, engine, and dashboard flows.

- add new near-duplicate confirmation metadata/types and preserve duplicate task rows until confirmation
- update workflow routes and triage logic to return confirmation-required outcomes instead of immediate archive
- add TaskCard and TaskDetailModal UI/actions plus styling and hook updates for confirming or rejecting duplicate handling
- expand dashboard and engine tests and task-management docs to cover the new confirmation path

Files changed:
docs/task-management.md                            | 14 ++++-
packages/core/src/types.ts                         |  4 ++
packages/dashboard/app/api/legacy.ts               |  1 +
packages/dashboard/app/components/TaskCard.css     | 59 ++++++++++++++++++
packages/dashboard/app/components/TaskCard.tsx     | 46 +++++++++++++-
packages/dashboard/app/components/TaskDetailModal.css   | 34 +++++++++++
packages/dashboard/app/components/TaskDetailModal.tsx   | 71 +++++++++++++++++++++-
packages/dashboard/app/components/__tests__/TaskCard.test.tsx     | 71 ++++++++++++++++++++++
packages/dashboard/app/components/__tests__/TaskDetailModal.rendering.test.tsx   | 68 +++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts           |  2 +-
packages/dashboard/src/__tests__/routes-tasks-near-duplicate.test.ts  | 45 ++++++++++++++
packages/dashboard/src/routes/register-task-workflow-routes.ts    |  9 ++-
packages/engine/src/__tests__/reliability-interactions/near-duplicate-intake.test.ts                  | 16 +++--
packages/engine/src/triage.ts                      | 19 +++---
14 files changed, 433 insertions(+), 26 deletions(-)

Fusion-Task-Id: FN-5731

Fusion-Task-Lineage: fa004129-7bce-4457-b8c3-ceb9fb953319
2026-05-30 15:52:46 -07:00
gsxdsm
784c58f5c3 FN-5756: document ratified dependency and merge back-pressure decisions
Add the FN-5756 ratification addendum to the executor/merger decoupling RFC.

- Record approval for dual-run dependency satisfaction via in-review or completion_handoff_accepted marker
- Require audit diff logging when legacy and new dependency signals disagree during dual-run
- Record approval to make merge back-pressure branch-group aware by default with global safety caps retained

Files changed:
 docs/rfcs/FN-5719-decouple-executor-merger.md | 4 ++++
 1 file changed, 4 insertions(+)

Fusion-Task-Id: FN-5756

Fusion-Task-Lineage: 54077cc9-a4ae-4462-99b0-4c28d06652cc
2026-05-30 15:23:16 -07:00
gsxdsm
1594470144 FN-5738: make mission loop no-assertion auto-pass deterministic
Ensure mission validation loop advancement is deterministic when no assertions are linked and audit output is emitted once.

- update mission execution loop handling to auto-pass zero-assertion validations deterministically
- emit and guard validation_auto_passed_no_assertions audit behavior against duplicate recovery re-fire
- expand mission loop and reliability interaction tests for loop state, validator status, and replay safety
- refresh mission/architecture docs and add the FN-5738 changeset entry

Files changed:
 .changeset/fn-5732a-loop-advance.md                |  5 ++
 AGENTS.md                                          |  1 +
 docs/architecture.md                               |  3 +-
 docs/missions-completion-contract.md               |  2 +-
 docs/missions.md                                   |  4 +-
 .../src/__tests__/mission-execution-loop.test.ts   | 27 ++++++++++-
 .../mission-validation-trigger-gap.test.ts         | 22 +++++++--
 packages/engine/src/mission-execution-loop.ts      | 54 +++++++++++++---------
 8 files changed, 86 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-5738
Fusion-Task-Lineage: 141b73e3-fa49-468a-87b0-f36e091e716f
2026-05-30 15:04:26 -07:00
gsxdsm
3a6820422b FN-5746: ratify executor-merger decoupling RFC
Record CEO ratification outcomes in the decoupling RFC and unblock follow-on implementation.

- Update RFC status from draft to ratified with FN-5746/date context.
- Clarify the CEO ratification gate language as a completed gating artifact.
- Add explicit approval decisions for persisted merge-request record storage and Phase-1 completion handoff marker.
- Mark follow-on task FN-5723 as unblocked.

Files changed:
docs/rfcs/FN-5719-decouple-executor-merger.md | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5746

Fusion-Task-Lineage: bb71138a-4d05-4224-a34e-213783e20a9f
2026-05-30 14:55:26 -07:00
gsxdsm
20c1c3261e FN-5741: persist merge-request handoff shadow contract
Introduce Phase 1 write-only persistence for merge-request handoff acceptance across core and engine paths.

- add persisted merge-request record types, schema/settings plumbing, and store write-path support
- update merger/executor/self-healing/run-audit flows to emit and consume the handoff-accepted shadow marker
- expand core/engine/roadmap tests and docs to cover the new merge-request shadow contract
- add a patch changeset for @runfusion/fusion for this bundled package update

Files changed:
 .changeset/fn-5741-merge-request-shadow.md         |   5 +
 AGENTS.md                                          |   1 +
 docs/architecture.md                               |   2 +
 docs/settings-reference.md                         |   1 +
 packages/core/src/__tests__/db-migrate.test.ts     |  12 +-
 packages/core/src/__tests__/db.test.ts             |  34 ++--
 packages/core/src/__tests__/goals-schema.test.ts   |   2 +-
 packages/core/src/__tests__/insight-store.test.ts  |  10 +-
 .../src/__tests__/merge-request-record.test.ts     |  97 +++++++++++
 packages/core/src/__tests__/mission-store.test.ts  |   2 +-
 packages/core/src/__tests__/run-audit.test.ts      |   2 +-
 packages/core/src/__tests__/secrets-schema.test.ts |   6 +-
 .../core/src/__tests__/settings-parity.test.ts     |   3 +
 .../core/src/__tests__/store-merge-queue.test.ts   |   2 +-
 packages/core/src/__tests__/task-documents.test.ts |   2 +-
 packages/core/src/db.ts                            |  49 +++++-
 packages/core/src/index.ts                         |   4 +-
 packages/core/src/settings-schema.ts               |  30 ++++
 packages/core/src/store.ts                         | 189 ++++++++++++++++++++-
 packages/core/src/types.ts                         |  37 ++++
 .../src/__tests__/merger-merge-lifecycle.test.ts   |  54 ++++++
 .../merge-request-shadow-handoff.test.ts           |  74 ++++++++
 packages/engine/src/executor.ts                    |  15 +-
 packages/engine/src/merger.ts                      |  37 ++++
 packages/engine/src/run-audit.ts                   |   1 +
 packages/engine/src/self-healing.ts                |  16 +-
 .../src/store/__tests__/roadmap-store.test.ts      |   4 +-
 27 files changed, 646 insertions(+), 45 deletions(-)

Fusion-Task-Id: FN-5741

Fusion-Task-Lineage: 3fec14c3-47ff-4f14-bc02-24021518c992
2026-05-30 14:42:50 -07:00
gsxdsm
9c4e8edf39 FN-5733: enforce mission completion-gate assertions for live Goals mission
Realize the mission completion-gate contract by surfacing and enforcing structured assertion coverage for milestone completion.

- add milestone rollup signaling for prose-only acceptance criteria and wire it into mission-store completion gating
- update mission execution loop reliability paths so validator-trigger continuity is preserved across completion and startup recovery
- expose the new rollup flag in dashboard mission types/API and show an autopilot warning badge in MissionManager when prose exists without structured assertions
- extend core, engine, and dashboard tests plus mission docs, and add a patch changeset for @runfusion/fusion

Files changed:
 .changeset/fn-5733-mission-completion-gate.md      | 10 +++
 docs/missions-completion-contract.md               | 11 +++
 docs/missions.md                                   |  4 +
 packages/core/src/__tests__/mission-store.test.ts  | 81 ++++++++++++++++++++
 packages/core/src/mission-store.ts                 | 89 ++++++++++++++++++++++
 packages/core/src/mission-types.ts                 |  2 +
 packages/dashboard/app/api/legacy.ts               |  1 +
 .../dashboard/app/components/MissionManager.css    | 42 +++++++++-
 .../dashboard/app/components/MissionManager.tsx    | 22 +++++-
 .../components/__tests__/MissionManager.test.tsx   | 20 ++++-
 packages/dashboard/app/components/mission-types.ts |  1 +
 .../src/__tests__/mission-execution-loop.test.ts   | 23 ++++++
 .../mission-validation-trigger-gap.test.ts         | 41 ++++++++++
 packages/engine/src/mission-execution-loop.ts      | 21 ++++-
 14 files changed, 357 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-5733

Fusion-Task-Lineage: 259418c6-5404-4773-8fd2-db8d7e9cadd3
2026-05-30 14:07:20 -07:00
gsxdsm
797ee8df5e FN-5729: document custom non-coding workflow MVP spec
Add a decision-ready MVP spec for user-authored non-coding workflows.

- Add docs/custom-workflows-mvp-spec.md covering user needs, minimal YAML contract, lifecycle mapping, mission relationship, one-week MVP slice, success metrics, and launch risks/open questions.
- Link the new spec from docs/README.md under Task & Project Management.

Files changed:
 docs/README.md                    |   1 +
 docs/custom-workflows-mvp-spec.md | 171 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 172 insertions(+)

Fusion-Task-Id: FN-5729

Fusion-Task-Lineage: 1d4e210a-b672-4846-8b39-220a399cb4fa
2026-05-30 13:03:11 -07:00
gsxdsm
5ff7f37c24 FN-5728: fake-timer store-watcher polling tests
Speed up store-watcher polling coverage by replacing real-time waits with deterministic fake-timer advancement.

- Apply Vitest fake timers to watch-active polling tests in store-watcher coverage.
- Advance timers explicitly around polling cycles and task creation to avoid interval-based delays.
- Ensure watcher teardown restores real timers and stops polling cleanly.
- Update FN-5048 speed audit notes with the fake-timer rewrite details and new runtime sample.

Files changed:
 docs/test-speed-audit-FN-5048.md                  |  4 ++--
 packages/core/src/__tests__/store-watcher.test.ts | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5728

Fusion-Task-Lineage: 7cc1eed6-fe86-458d-94c3-8d0780ff7828
2026-05-30 12:58:47 -07:00
gsxdsm
16a82cf0ad FN-5722: suppress __SKIP__ sentinel room replies
Treat __SKIP__ room responder outputs as intentional silence so they never appear in persisted or rendered chat history.

- export ROOM_SKIP_SENTINEL and helper detection in chat orchestration
- skip persisting responder outputs that are trimmed-exact __SKIP__ sentinels
- avoid room reply failure errors when responders intentionally skip
- filter sentinel-only room messages in ChatView rendering
- add backend and UI tests covering sentinel suppression and substring pass-through
- document sentinel no-op behavior in dashboard chat room guide

Files changed:
 docs/dashboard-guide.md                            |  1 +
 packages/dashboard/app/components/ChatView.tsx     |  8 ++-
 packages/dashboard/app/components/__tests__/ChatView.rooms.test.tsx   | 16 +++++
 packages/dashboard/src/__tests__/chat.rooms.test.ts     | 80 +++++++++++++++++++++-
 packages/dashboard/src/chat.ts                     | 15 +++-
 5 files changed, 116 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-5722

Fusion-Task-Lineage: 242085fc-4b88-46c1-81aa-e398f5276fec
2026-05-30 10:21:49 -07:00
gsxdsm
d57ded1461 FN-5719: document executor-merger lifecycle decoupling RFC
Add an RFC that defines a merge-request handoff seam to decouple executor completion from merger orchestration.

- Document current executor/merger coupling points and failure modes across store, scheduler, self-healing, and merger paths.
- Propose a decoupled merge-request state machine with explicit handoff ownership, queueing, lease boundaries, and autoMerge true/false flows.
- Map reliability invariants (including FN-5147 and FN-5704) to preserved/modified behavior and define phased rollout plus follow-on test strategy.

Files changed:
 docs/rfcs/FN-5719-decouple-executor-merger.md | 149 ++++++++++++++++++++++++++
 1 file changed, 149 insertions(+)

Fusion-Task-Id: FN-5719

Fusion-Task-Lineage: 4a13c088-48a5-4b37-a969-a8602d82da4a
2026-05-30 10:15:58 -07:00
gsxdsm
da3f4aa967 FN-5717: add per-task auto-merge override in new task form
Add a New Task form option to override auto-merge behavior per task and wire it through task creation APIs.

- add TaskForm UI state/prop support for enabling or disabling per-task auto-merge override
- pass override values through NewTaskModal and legacy task creation API payloads
- persist and validate settings.autoMerge overrides in task workflow route handling
- add dashboard and route tests covering override defaults and explicit true/false behavior
- document per-task auto-merge override behavior in dashboard and settings docs

Files changed:
 docs/dashboard-guide.md                            |  1 +
 docs/settings-reference.md                         |  2 +-
 packages/dashboard/app/api/legacy.ts               |  2 +
 packages/dashboard/app/components/NewTaskModal.tsx | 11 ++++-
 packages/dashboard/app/components/TaskForm.tsx     | 27 ++++++++++++
 .../app/components/__tests__/NewTaskModal.test.tsx | 51 ++++++++++++++++++++++
 .../dashboard/src/__tests__/routes-tasks.test.ts   | 33 ++++++++++++++
 .../src/routes/register-task-workflow-routes.ts    |  6 +++
 8 files changed, 130 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5717

Fusion-Task-Lineage: 3bdbb561-9c6d-4f64-ad4b-ae723e73223e
2026-05-30 10:11:23 -07:00
gsxdsm
eeedb8153e FN-5718: define mission completion gate contract
Document the mission completion gate so authored criteria and validator enforcement stay unambiguous.

- Add a new mission completion contract spec defining canonical enforcement via linked assertions.
- Clarify enforced vs informational surfaces, zero-assertion behavior, and FN-5696 legacy linkage handling.
- Define follow-on UI reconciliation and engineering acceptance criteria for deterministic mission/slice advance.
- Cross-link docs/missions.md to the new contract as the authoritative reference.

Files changed:
 docs/missions-completion-contract.md | 158 +++++++++++++++++++++++++++++++++++
 docs/missions.md                     |   4 +
 2 files changed, 162 insertions(+)

Fusion-Task-Id: FN-5718

Fusion-Task-Lineage: 4ca12798-b982-4c9c-ac88-fbc90f0e63e7
2026-05-30 10:04:16 -07:00
gsxdsm
3255965ad5 FN-5715: gate mission feature completion on assertion validation
Prevent mission-linked done tasks from bypassing assertion validation and recover stalled validation triggers after restart.

- require assertion-linked done features to have a passed validator result before slice/milestone completion
- keep assertion-linked features in progress when linked tasks move to done/archived until validation passes
- restart mission loop recovery when needed and re-trigger done/archived implementing features that still need validation
- add regression coverage for scheduler, mission loop recovery, mission store completion gating, and reliability trigger continuity
- document the new FN-5715 reliability backstop and recovery behavior

Files changed:
 .changeset/fn-5715-mission-validation-trigger.md   |   7 +
 AGENTS.md                                          |   1 +
 docs/architecture.md                               |   1 +
 docs/missions.md                                   |  11 +-
 packages/core/src/__tests__/mission-integration.test.ts |   2 +-
 packages/core/src/__tests__/mission-store.test.ts  |  30 +++-
 packages/core/src/mission-store.ts                 |  19 ++-
 packages/engine/src/__tests__/mission-execution-loop.test.ts   |  95 +++++++++++++
 packages/engine/src/__tests__/reliability-interactions/mission-validation-trigger-gap.test.ts         | 151 +++++++++++++++++++++
 packages/engine/src/__tests__/scheduler.test.ts    |  54 ++++++++
 packages/engine/src/mission-autopilot.ts           |   7 +-
 packages/engine/src/mission-execution-loop.ts      |  25 ++++
 packages/engine/src/mission-feature-sync.ts        |  32 ++++-
 packages/engine/src/scheduler.ts                   |  12 +-
 14 files changed, 431 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-5715

Fusion-Task-Lineage: 98b1cbd6-6b68-40a0-b4b3-c512183adf8b
2026-05-30 09:43:02 -07:00
gsxdsm
98e6a7364e FN-5716: replace base-branch input with branch dropdown
Switch task base-branch selection to prefer existing branches while preserving custom entry when needed.

- fetch local git branches for TaskForm and sort common integration branches (main/master/trunk/develop) first
- render base branch as a dropdown with default and Custom… options, with fallback custom input mode and toggle back to dropdown
- update TaskForm/NewTaskModal tests for branch loading, dropdown ordering, unknown-branch fallback, and fetch failure behavior
- document the new branch dropdown + custom fallback behavior in dashboard guide branch planning rules

Files changed:
 docs/dashboard-guide.md                            |   4 +-
 packages/dashboard/app/components/TaskForm.tsx     | 100 +++++++++++++++++++--
 .../app/components/__tests__/NewTaskModal.test.tsx |   1 +
 .../app/components/__tests__/TaskForm.test.tsx     |  66 +++++++++++++-
 4 files changed, 156 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5716

Fusion-Task-Lineage: 0ed72020-d8a0-4675-92d3-9476f53a173a
2026-05-30 09:40:44 -07:00
gsxdsm
f5e738be14 Merge pull request #1177 from plarson/fix/fn202-dashboard-column-filter
fix: respect dashboard task column filters
2026-05-30 08:40:53 -07:00
gsxdsm
3b594879a8 FN-5713: add mission update tool and docs
Add mission-update support to Fusion tooling and document it across mission references.

- register new `fn_mission_update` extension tool to patch mission title/description with validation and not-found handling
- add extension tests covering successful mission updates and error cases
- allowlist `fn_mission_update` in workflow-step readonly gating policy tests and classifications
- update Fusion skill and mission docs to describe mission updates and extension tool usage
- add a changeset for `@runfusion/fusion` patch release

Files changed:
 .changeset/fn-5713-mission-update-tool.md          |  5 ++
 docs/missions.md                                   | 13 ++++
 packages/cli/skill/fusion/SKILL.md                 |  2 +-
 packages/cli/skill/fusion/references/extension-tools.md | 10 +++
 packages/cli/skill/fusion/references/fusion-capabilities.md |  1 +
 packages/cli/src/__tests__/extension.test.ts       | 71 ++++++++++++++++++++++
 packages/cli/src/extension.ts                      | 69 +++++++++++++++++++++
 packages/engine/src/__tests__/workflow-step-readonly-allowlist.test.ts |  1 +
 packages/engine/src/gating-classifications.ts      |  1 +
 9 files changed, 172 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-5713
Fusion-Task-Lineage: e491973a-2d5d-4ef8-bf13-39b3669918ee
2026-05-30 08:39:38 -07:00
Phil Larson
6ba3cbf495 fix: respect dashboard task column filters 2026-05-30 08:29:04 -07:00
gsxdsm
9b54f52b39 FN-5707: fix Android executor footer overlap after keyboard dismiss
Adjust mobile keyboard bar flags so Android keeps the executor footer stacked above the nav bar while iOS retains collapse behavior.

- extract mobile bar keyboard flag computation into a dedicated utility
- keep nav keyboard pinning cross-platform while limiting footer keyboard-collapse to iOS
- add focused unit tests for Android/iOS/modal/desktop keyboard flag scenarios
- update ExecutorStatusBar keyboard-open test assertion and dashboard guide keyboard behavior notes

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/App.tsx                     | 23 ++++---
 .../__tests__/ExecutorStatusBar.test.tsx           |  6 +-
 .../utils/__tests__/mobileBarKeyboardFlags.test.ts | 73 ++++++++++++++++++++++
 .../dashboard/app/utils/mobileBarKeyboardFlags.ts  | 36 +++++++++++
 5 files changed, 129 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-5707

Fusion-Task-Lineage: ed01fcb0-d814-4595-9479-5baf97326ae7
2026-05-29 21:03:12 -07:00
gsxdsm
ee0b1cd9c8 FN-5658: add goal injection visibility diagnostics
Improve anchoring visibility by classifying and emitting goal-injection diagnostics across engine lanes.

- add goal-injection diagnostics module with result/failure classification and audit emission helpers
- wire heartbeat and executor prompt construction to resolve classified goal context and emit diagnostic events
- expose diagnostic APIs from engine index and add new run-audit event type for prompt goal injection
- add unit and wiring tests plus diagnostics docs updates for the new observability path

Files changed:
 docs/diagnostics.md                                |   8 +
 .../goal-injection-diagnostics-wiring.test.ts      |  87 +++++++++
 .../__tests__/goal-injection-diagnostics.test.ts   | 150 +++++++++++++++
 packages/engine/src/agent-heartbeat.ts             |  34 +++-
 packages/engine/src/executor.ts                    |  35 +++-
 packages/engine/src/goal-injection-diagnostics.ts  | 209 +++++++++++++++++++++
 packages/engine/src/index.ts                       |  10 +
 packages/engine/src/run-audit.ts                   |   7 +-
 8 files changed, 521 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-5658

Fusion-Task-Lineage: f4feaa37-d9b1-4bb6-b8c9-35a9b7a02f57
2026-05-29 20:50:08 -07:00
gsxdsm
ab1f6a7ffa FN-5706: hide chat input overflow until max-height
Prevent the chat composer from showing a right-edge scrollbar line before it reaches the autosize cap.

- set chat textarea default overflow to hidden in ChatView CSS
- add resolveChatInputOverflowY to switch overflow to auto only past the 640px cap
- apply overflow mode during composer autosize updates
- extend chat input autosize tests and docs to cover overflow behavior

Files changed:
 docs/dashboard-guide.md                                          | 2 +-
 packages/dashboard/app/components/ChatView.css                   | 1 +
 packages/dashboard/app/components/ChatView.tsx                   | 5 +++++
 packages/dashboard/app/components/__tests__/ChatView.chat-input-autosize.test.tsx   | 9 ++++++++-
 4 files changed, 15 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5706

Fusion-Task-Lineage: 4619aa30-c02f-453b-bdf2-f60f360e9372
2026-05-29 20:47:13 -07:00
gsxdsm
beab117771 FN-5705: wire task-detail opens into navigation history
Ensure task detail modal openings consistently register browser history so Android back swipe/button dismisses the modal from all entry paths.

- add a shared openDetailTaskWithNav callback in AppModals that opens task detail and pushes a modal close handler into navigation history
- route onboarding view-task, activity log open-task, and task-to-task detail navigation through the new history-aware opener
- extend AppModals tests with a navigation history wrapper and popstate assertions for onboarding/activity log/task-to-task flows
- document that these task detail entry points now participate in navigation history for consistent Android back behavior

Files changed:
 docs/dashboard-guide.md                            |   1 +
 packages/dashboard/app/components/AppModals.tsx    |  21 ++++-
 .../app/components/__tests__/AppModals.test.tsx    | 101 ++++++++++++++++++++-
 3 files changed, 115 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-5705

Fusion-Task-Lineage: fd0309ae-e0da-4489-95e4-c34699287e7c
2026-05-29 20:26:43 -07:00
gsxdsm
afc3b4749f FN-5655: add goal anchoring audit events across lanes
Add audit guardrails that track goal anchoring injection across executor, heartbeat, and CLI/dashboard surfaces.

- add a dedicated engine goal-anchoring audit emitter and export it
- emit goal anchoring audit events from executor and heartbeat goal-context injection paths
- extend run-audit wiring and CLI extension output to surface goal anchoring events
- add engine, CLI, and dashboard regression tests for goal-tool and audit event behavior
- document the new audit coverage and include a published changeset entry

Files changed:
 .changeset/fn-5655-goal-anchoring-audit.md         |  7 ++
 docs/architecture.md                               |  1 +
 docs/dashboard-guide.md                            |  1 +
 .../__tests__/extension-goal-tools-audit.test.ts   | 65 +++++++++++++++
 packages/cli/src/extension.ts                      | 28 +++++++
 .../__tests__/routes-run-audit-goal-events.test.ts | 72 ++++++++++++++++
 .../src/__tests__/goal-anchoring-audit.test.ts     | 95 ++++++++++++++++++++++
 packages/engine/src/agent-heartbeat.ts             | 20 +++--
 packages/engine/src/executor.ts                    | 20 +++--
 packages/engine/src/goal-anchoring-audit.ts        | 89 ++++++++++++++++++++
 packages/engine/src/index.ts                       | 10 +++
 packages/engine/src/run-audit.ts                   |  6 +-
 12 files changed, 399 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5655

Fusion-Task-Lineage: f3c10568-4050-42c4-9fe2-b84bf749b89d
2026-05-29 20:05:14 -07:00
gsxdsm
0dbb1cd6f9 FN-5704: escalate self-owned execution limbo instead of endless resume
Escalate reclaimable in-progress resume limbo into an explicit failure path to stop infinite self-healing loops.

- add resume-limbo escalation handling in self-healing/executor flow so self-owned stuck execution is failed and surfaced
- extend core task/run-audit types and retry-reset/store behavior to persist and expose the new escalation state
- add reliability interaction coverage for reclaim self-owned resume limbo escalation and update related schema/store/CLI/plugin tests and docs

Files changed:
 AGENTS.md                                          |   1 +
 docs/architecture.md                               |   2 +
 packages/cli/src/commands/__tests__/task.test.ts   |   2 +
 packages/core/src/__tests__/db-migrate.test.ts     |  12 +-
 packages/core/src/__tests__/db.test.ts             |  34 ++---
 packages/core/src/__tests__/goals-schema.test.ts   |   2 +-
 packages/core/src/__tests__/insight-store.test.ts  |  10 +-
 packages/core/src/__tests__/mission-store.test.ts  |   2 +-
 packages/core/src/__tests__/run-audit.test.ts      |   2 +-
 packages/core/src/__tests__/secrets-schema.test.ts |   6 +-
 .../core/src/__tests__/store-merge-queue.test.ts   |   2 +-
 packages/core/src/__tests__/task-documents.test.ts |   2 +-
 packages/core/src/db.ts                            |  13 +-
 packages/core/src/manual-retry-reset.ts            |   1 +
 packages/core/src/store.ts                         |  37 ++++-
 packages/core/src/types.ts                         |  11 ++
 ...laim-self-owned-resume-limbo-escalation.test.ts | 168 +++++++++++++++++++++
 packages/engine/src/executor.ts                    |   5 +
 packages/engine/src/run-audit.ts                   |   1 +
 packages/engine/src/self-healing.ts                |  72 +++++++++
 .../src/store/__tests__/roadmap-store.test.ts      |   4 +-
 21 files changed, 345 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-5704

Fusion-Task-Lineage: c8f73d16-d95b-450f-a514-e7d3c2f7aebe
2026-05-29 20:05:14 -07:00
gsxdsm
129e17d16c FN-5702: keep mobile footer and nav pinned when keyboard opens
Add viewport-offset handling so mobile bottom bars stay anchored while virtual keyboards resize the visual viewport.

- add a shared viewportOffset utility to compute keyboard-related visual viewport compensation
- update dashboard app bootstrap/index logic to apply compensation variables for pinned footer/nav layout
- extend mobile keyboard layout coverage with dedicated viewport compensation and bottom-bar tests
- document the keyboard/pinned-bar behavior update in dashboard guide

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../mobile-bottom-bars-keyboard-layout.test.ts     | 12 ++-
 .../viewport-compensation-keyboard.test.ts         | 24 ++++++
 packages/dashboard/app/index.html                  | 39 +++++++++-
 .../app/utils/__tests__/viewportOffset.test.ts     | 86 ++++++++++++++++++++++
 packages/dashboard/app/utils/viewportOffset.ts     | 64 ++++++++++++++++
 6 files changed, 223 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-5702

Fusion-Task-Lineage: be47ad0c-82df-4c38-9577-94c2eee49a0e
2026-05-29 20:05:14 -07:00
gsxdsm
ff575f8b06 FN-5653: inject active goal context into heartbeat and executor prompts
Align heartbeat and executor prompt assembly so both lanes receive the same active-goal context block.

- inject goalContext into heartbeat and executor buildPromptLayers inputs using buildGoalContextSection
- extend goal-context regression coverage with parity tests for heartbeat/executor injection and empty-goal behavior
- update executor test helpers for goal-store access and document the shared prompt-lane behavior in architecture/agents docs

Files changed:
 docs/agents.md                                     |  1 +
 docs/architecture.md                               |  1 +
 packages/engine/src/__tests__/executor-test-helpers.ts  |  3 +
 packages/engine/src/__tests__/goal-context-injection.test.ts   | 72 ++++++++++++++++++++++
 packages/engine/src/agent-heartbeat.ts             | 12 +++-
 packages/engine/src/executor.ts                    | 12 +++-
 packages/engine/src/prompt-layers.ts               |  9 ++-
 7 files changed, 107 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5653
Fusion-Task-Lineage: d2670585-57f7-409d-bb11-cef3448267a6
2026-05-29 20:05:14 -07:00
gsxdsm
dac9b96262 FN-5681: clarify mission run controls and autopilot states
Improve Mission Manager run-state UX by separating mission run controls from autopilot behavior.

- Group mission run settings in the detail view and add explicit Start mission / Stop mission / Resume mission buttons with contextual helper text.
- Humanize autopilot state labels (Off, Watching, Activating slice, Completing) and add explanatory autopilot description copy.
- Update Mission Manager styling to support the new run-settings layout and helper text blocks in list/detail views.
- Extend MissionManager tests to verify labeled run controls, endpoint wiring for start/stop/resume, and humanized autopilot badge labels.
- Update mission docs to clarify the distinction between mission run-state controls and the autopilot toggle.

Files changed:
 docs/missions.md                                   |   2 +-
 packages/dashboard/app/components/MissionManager.css    |  62 ++++-
 packages/dashboard/app/components/MissionManager.tsx    | 272 +++++++++++++--------
 packages/dashboard/app/components/__tests__/MissionManager.test.tsx   | 107 +++++++-
 4 files changed, 330 insertions(+), 113 deletions(-)

Fusion-Task-Id: FN-5681

Fusion-Task-Lineage: 0dcac659-2eff-435b-a176-b66e7646b054
2026-05-29 20:05:13 -07:00
gsxdsm
668e3a5099 FN-5679: default new missions to stopped state
Ensure mission creation always starts in a stopped planning state with autopilot off.

- Force MissionStore createMission to ignore create-time autopilotEnabled and persist stopped defaults
- Update mission POST route behavior to stop auto-watching on create and keep optional create-time updates scoped
- Add/adjust core and dashboard tests to assert stopped-by-default creation semantics
- Document mission autopilot creation behavior and add a patch changeset for @runfusion/fusion

Files changed:
 .changeset/fn-5679-missions-default-stopped.md         |  7 +++++++
 docs/missions.md                                       |  4 +++-
 .../mission-factory-parity.integration.test.ts         |  6 +++---
 packages/core/src/__tests__/mission-store.test.ts      | 18 ++++++++++++++++++
 packages/core/src/mission-store.ts                     |  5 +++--
 packages/dashboard/src/__tests__/mission-e2e.test.ts   |  8 +++++---
 packages/dashboard/src/mission-routes.ts               |  9 +--------
 7 files changed, 40 insertions(+), 17 deletions(-)

Fusion-Task-Id: FN-5679

Fusion-Task-Lineage: 05eff3cb-07d8-4b52-ac7f-065979e78816
2026-05-29 15:45:20 -07:00
gsxdsm
0605d13ab5 FN-5675: add mission branch strategy and planning breakdown controls
Add mission-level branch strategy support and expose planning breakdown controls across mission flows.

- Extend mission/core data models and store logic to track and persist base-branch strategy metadata.
- Update mission API routes and legacy adapters to read/write new mission branch strategy fields.
- Enhance MissionManager and PlanningModeModal UX to configure branch strategy and planning breakdown behavior.
- Add/adjust coverage across core, dashboard, and roadmap plugin tests for mission branch and planning flow behavior.
- Add a changeset and mission docs updates for the new mission branch strategy behavior.

Files changed:
 .changeset/fn-5675-mission-branch-strategy.md      |   9 +
 docs/missions.md                                   |  13 ++
 packages/core/src/__tests__/db-migrate.test.ts     |  12 +-
 .../src/__tests__/db-mission-base-branch.test.ts   |  14 +-
 packages/core/src/__tests__/db.test.ts             |  34 ++--
 packages/core/src/__tests__/goals-schema.test.ts   |   2 +-
 packages/core/src/__tests__/insight-store.test.ts  |  10 +-
 packages/core/src/__tests__/mission-store.test.ts  | 148 +++++++++++++-
 packages/core/src/__tests__/run-audit.test.ts      |   2 +-
 packages/core/src/__tests__/secrets-schema.test.ts |   6 +-
 .../core/src/__tests__/store-merge-queue.test.ts   |   2 +-
 packages/core/src/__tests__/task-documents.test.ts |   2 +-
 packages/core/src/db.ts                            |   9 +-
 packages/core/src/index.ts                         |   1 +
 packages/core/src/mission-store.ts                 |  64 ++++--
 packages/core/src/mission-types.ts                 |   9 +
 packages/dashboard/app/api/legacy.ts               |  23 ++-
 .../dashboard/app/components/MissionManager.tsx    | 226 +++++++++++++++++++--
 .../dashboard/app/components/PlanningModeModal.tsx |   9 +-
 .../components/__tests__/MissionManager.test.tsx   | 100 +++++++++
 .../PlanningModeModal.planning-flow.test.tsx       |  91 +++++++++
 packages/dashboard/app/components/mission-types.ts |   4 +
 .../dashboard/src/__tests__/mission-e2e.test.ts    |  49 ++++-
 packages/dashboard/src/mission-routes.ts           |  41 +++-
 .../src/store/__tests__/roadmap-store.test.ts      |   4 +-
 25 files changed, 808 insertions(+), 76 deletions(-)

Fusion-Task-Id: FN-5675

Fusion-Task-Lineage: cfd13c13-9eff-4b82-90c3-88505d51bfb2
2026-05-29 15:25:47 -07:00
gsxdsm
dae4c0ea5d FN-5696: backfill missing mission feature assertion links
Backfill and repair missing mission feature assertion links so validator coverage stays intact for legacy mission data.

- add MissionStore backfillFeatureAssertions with dry-run and mission-scoped repair support
- centralize feature assertion text derivation and reuse it for create/update/backfill flows
- add regression tests for repair behavior, idempotency, and dry-run semantics
- document the operator repair workflow and add a dedicated backfill script for FN-5696

Files changed:
 docs/missions.md                                  |   2 +
 packages/core/src/__tests__/mission-store.test.ts |  84 +++++++++++
 packages/core/src/mission-store.ts                | 116 ++++++++++++++-
 scripts/backfill-fn-5696-feature-assertions.mjs   | 174 ++++++++++++++++++++++
 4 files changed, 373 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-5696

Fusion-Task-Lineage: 483bf2cc-be03-4007-860b-66d841e6aa15
2026-05-29 13:58:13 -07:00
gsxdsm
bac12d1e28 FN-5695: sync feature assertions for late-added mission features
Close the assertion-graph gap by making mission feature assertions store-managed and automatically synchronized.

- add `sourceFeatureId` to contract assertions (types, schema migration, persistence, snapshot restore)
- auto-create/update/delete managed assertions when features are added, edited, or removed in `MissionStore`
- remove duplicate/manual assertion creation from mission routes and rely on centralized store behavior
- expand core, dashboard, engine, and plugin tests plus docs to cover validator behavior for later-added features

Files changed:
 docs/missions.md                                   | 11 ++-
 docs/storage.md                                    |  2 +-
 packages/core/src/__tests__/db-migrate.test.ts     | 12 ++--
 packages/core/src/__tests__/db.test.ts             | 34 ++++-----
 packages/core/src/__tests__/goals-schema.test.ts   |  2 +-
 packages/core/src/__tests__/insight-store.test.ts  | 10 +--
 packages/core/src/__tests__/mission-store.test.ts  | 82 +++++++++++++++++++---
 packages/core/src/__tests__/run-audit.test.ts      |  2 +-
 packages/core/src/__tests__/secrets-schema.test.ts |  6 +-
 .../core/src/__tests__/store-merge-queue.test.ts   |  2 +-
 packages/core/src/__tests__/task-documents.test.ts |  2 +-
 packages/core/src/db.ts                            | 11 ++-
 packages/core/src/mission-store.ts                 | 69 ++++++++++++++++--
 packages/core/src/mission-types.ts                 |  4 ++
 .../dashboard/src/__tests__/mission-e2e.test.ts    | 70 ++++++++++++------
 packages/dashboard/src/mission-routes.ts           | 16 +----
 .../src/__tests__/mission-execution-loop.test.ts   | 46 +++++++++++-
 .../src/store/__tests__/roadmap-store.test.ts      |  4 +-
 18 files changed, 288 insertions(+), 97 deletions(-)

Fusion-Task-Id: FN-5695
Fusion-Task-Lineage: 337f030c-e883-41aa-b982-13ebe45bd5ee
2026-05-29 13:35:13 -07:00
gsxdsm
d5b33367c1 FN-5698: clear OAuth relogin banner after successful login
Clear OAuth re-login banner entries immediately after provider re-authentication.

- add a shared oauth relogin success browser event constant in auth utilities
- dispatch relogin success events from Settings and Model Onboarding OAuth success flows
- update OAuthReloginBanner to listen for relogin success, optimistically clear matching provider rows, and trigger immediate status refresh
- add banner tests covering immediate clearing, refetch behavior, unrelated-provider events, and poll-only behavior
- document the immediate-clear behavior in dashboard docs and add a patch changeset for @runfusion/fusion

Files changed:
 .changeset/fn-5698-relogin-banner-auto-clear.md    |  5 ++
 docs/dashboard-guide.md                            |  4 +
 packages/dashboard/app/auth.ts                     |  1 +
 .../app/components/ModelOnboardingModal.tsx        |  3 +-
 .../app/components/OAuthReloginBanner.tsx          | 70 +++++++++--------
 .../dashboard/app/components/SettingsModal.tsx     |  3 +-
 .../__tests__/OAuthReloginBanner.test.tsx          | 90 ++++++++++++++++++++++
 7 files changed, 144 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-5698

Fusion-Task-Lineage: 1e2f8055-4f77-4e16-ac15-44891de13f55
2026-05-29 11:25:11 -07:00
gsxdsm
72214132d2 FN-5678: add branch-group data model foundation
Establish per-mission/per-planning branch-group persistence and task metadata plumbing for shared auto-merge behavior.

- add `branch_groups` schema, indexes, exports, and store types for mission/planning branch assignment
- wire task source metadata branch-context helpers and branch-group row handling into core store flows
- add branch-group and migration coverage plus roadmap schema-version assertion wording fix
- add published changeset and storage doc note for the new branch-group persistence layer
- preserve forward-only migration safety by advancing schema to 96 and gating branch-group migration at `< 96`

Files changed:
 .changeset/per-mission-automerge-foundation.md     |  11 ++
 docs/storage.md                                    |   1 +
 packages/core/src/__tests__/backup.test.ts         |  32 ++++
 .../core/src/__tests__/branch-group-store.test.ts  | 148 ++++++++++++++++++
 packages/core/src/__tests__/db-migrate.test.ts     |  40 +++++
 packages/core/src/__tests__/db.test.ts             |  16 ++
 packages/core/src/__tests__/mission-store.test.ts  |  16 ++
 packages/core/src/db.ts                            |  52 ++++++-
 packages/core/src/index.ts                         |   2 +-
 packages/core/src/mission-store.ts                 |  19 ++-
 packages/core/src/mission-types.ts                 |   4 +
 packages/core/src/store.ts                         | 171 ++++++++++++++++++++-
 packages/core/src/types.ts                         |  59 +++++++
 13 files changed, 556 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5678
Fusion-Task-Lineage: cd6e5312-a9c5-475f-a0de-1d3090395bdd
2026-05-29 11:16:00 -07:00
gsxdsm
a014c6d42d FN-5697: retry transient auto-merge failures and fix migration versioning
Treat transient auto-merge/provider abort errors as bounded retries while preserving correct schema migration ordering.

- Add transient merge retry handling with capped exponential backoff, queue re-enqueue, and exhaustion logging before failing tasks.
- Extend task/core types and evaluator evidence plumbing for merge transient retry tracking and MergeTransientRetryExhausted visibility.
- Add regression coverage for transient auto-merge retries and exhaustion behavior in merge error recovery tests.
- Resolve migration collision by promoting workflow_steps.gateMode migration to version 77, shifting subsequent migrations, and bumping schema version to 95.
- Add a changeset and architecture note documenting transient retry behavior.

Files changed:
 .changeset/fn-5697-auto-merge-transient-retry.md   |  5 ++
 docs/architecture.md                               |  1 +
 packages/core/src/db.ts                            | 85 +++++++++++----------
 packages/core/src/eval-types.ts                    |  1 +
 packages/core/src/store.ts                         | 19 +++--
 packages/core/src/types.ts                         |  7 ++
 packages/engine/src/__tests__/evaluator-evidence.test.ts       |  1 +
 packages/engine/src/__tests__/merge-error-recovery.test.ts     | 87 ++++++++++++++++++++++
 packages/engine/src/evaluator-evidence.ts          |  1 +
 packages/engine/src/project-engine.ts              | 68 +++++++++++++++++
 10 files changed, 231 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-5697

Fusion-Task-Lineage: c8be7374-7cb6-444e-9920-9227e05a43dc
2026-05-29 10:23:59 -07:00
gsxdsm
32c877a16a FN-5682: render mission markdown across manager views
Render mission, milestone, slice, and feature text as Markdown in MissionManager.

- add a shared markdown renderer using react-markdown with GFM support
- render mission descriptions, milestone acceptance criteria, slice verification, and feature description/acceptance fields as markdown
- render feature-derived completion criteria and mission list descriptions as markdown
- add MissionManager markdown styling and update mission docs/tests for markdown behavior

Files changed:
 docs/missions.md                                   |  2 +
 .../dashboard/app/components/MissionManager.css    | 45 ++++++++++++
 .../dashboard/app/components/MissionManager.tsx    | 46 ++++++++----
 .../components/__tests__/MissionManager.test.tsx   | 85 ++++++++++++++++++----
 4 files changed, 146 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-5682

Fusion-Task-Lineage: 521193fb-7150-44ab-981f-045c094f32df
2026-05-29 10:11:49 -07:00
gsxdsm
4fee2c1324 FN-5671: add branch-strategy selection to new task creation
Add branch-strategy based task branch handling from modal through task creation routes.

- add branch strategy dropdown + validation in New Task modal and TaskForm, including required branch-name handling for existing/custom-new modes
- send structured branchSelection payload from dashboard API client and cover UI/API behavior with new tests
- add server-side branch selection mode parsing, auto-new branch derivation (fusion/<task-id>-<slug>), and response updates when auto branch is generated
- update engine/worktree and dashboard route tests plus dashboard guide documentation
- add a changeset for @runfusion/fusion patch release

Files changed:
 .changeset/fn-5671-branch-strategy-dropdown.md     |  7 ++
 docs/dashboard-guide.md                            | 16 +++++
 packages/dashboard/app/__tests__/api-tasks.test.ts | 21 ++++++
 packages/dashboard/app/api/legacy.ts               |  9 +++
 packages/dashboard/app/components/NewTaskModal.css |  8 +++
 packages/dashboard/app/components/NewTaskModal.tsx | 41 +++++++++---
 packages/dashboard/app/components/TaskForm.tsx     | 30 ++++++++-
 .../app/components/__tests__/NewTaskModal.test.tsx | 77 +++++++++++++++++++---
 .../src/__tests__/branch-selection.test.ts         | 13 ++++
 .../dashboard/src/__tests__/routes-tasks.test.ts   | 72 ++++++++++++++++++++
 packages/dashboard/src/routes/branch-selection.ts  | 45 ++++++++-----
 .../src/routes/register-task-workflow-routes.ts    | 22 +++++--
 .../engine/src/__tests__/worktree-pool.test.ts     | 41 ++++++++++++
 packages/engine/src/worktree-pool.ts               |  2 +-
 14 files changed, 361 insertions(+), 43 deletions(-)

Fusion-Task-Id: FN-5671
Fusion-Task-Lineage: 7f2e7b68-050d-4a2c-af0b-cb895de35576
2026-05-29 09:44:17 -07:00
gsxdsm
71e2aec5b7 FN-5663: add goal-citation audit trail to agent reasoning
Record goal citation evidence so agent reasoning can be traced end-to-end.

- add core goal citation types, extraction helper, persistence schema, and store APIs for citation create/list workflows
- add CLI support and tests for goal citation flows, including command wiring and regression coverage
- update docs and add a published changeset for @runfusion/fusion describing the new audit-trail capability

Files changed:
 .changeset/fn-5663-goal-citation-audit-trail.md    |  10 +
 docs/agents.md                                     |  15 ++
 docs/cli-reference.md                              |   6 +-
 packages/cli/src/__tests__/bin.test.ts             |   2 +
 .../cli/src/__tests__/goals-citations-cli.test.ts  |  82 ++++++++
 packages/cli/src/bin.ts                            |  19 +-
 packages/cli/src/commands/goals.ts                 |  43 +++++
 packages/core/src/__tests__/db-migrate.test.ts     |  10 +-
 packages/core/src/__tests__/db.test.ts             |  34 ++--
 .../src/__tests__/goal-citation-extractor.test.ts  |  56 ++++++
 .../src/__tests__/goal-citations-store.test.ts     | 175 +++++++++++++++++
 packages/core/src/__tests__/goals-schema.test.ts   |   2 +-
 packages/core/src/__tests__/insight-store.test.ts  |  10 +-
 packages/core/src/__tests__/mission-store.test.ts  |   2 +-
 packages/core/src/__tests__/run-audit.test.ts      |   2 +-
 packages/core/src/__tests__/secrets-schema.test.ts |   6 +-
 .../core/src/__tests__/store-merge-queue.test.ts   |   2 +-
 packages/core/src/__tests__/task-documents.test.ts |   2 +-
 packages/core/src/db.ts                            |  51 ++++-
 packages/core/src/goal-citation-extractor.ts       |  56 ++++++
 packages/core/src/index.ts                         |  13 ++
 packages/core/src/store.ts                         | 210 ++++++++++++++++++++-
 packages/core/src/types.ts                         |  51 ++++-
 .../src/store/__tests__/roadmap-store.test.ts      |   4 +-
 24 files changed, 817 insertions(+), 46 deletions(-)

Fusion-Task-Id: FN-5663

Fusion-Task-Lineage: 720f2c4b-4363-464a-a76f-472ec6aca136
2026-05-29 08:25:38 -07:00
gsxdsm
7ba5ad0781 FN-5649: wire GoalsView to Goals API workflows
Replace mock-only goals behavior with live API-backed create/edit/archive flows in GoalsView.

- load goals from GET /api/goals when initial goals are not injected
- add inline create form that POSTs goals and handles active-goal cap 409 errors
- add per-goal edit form that PATCHes title/description changes
- add archive/unarchive actions wired to archive endpoints with inline error handling
- refresh GoalsView docs and expand component tests for loading, CRUD, cap errors, and status transitions

Files changed:
 docs/dashboard-guide.md                            |  18 +-
 packages/dashboard/app/components/GoalsView.css    |  52 ++-
 packages/dashboard/app/components/GoalsView.tsx    | 402 +++++++++++++++++----
 packages/dashboard/app/components/__tests__/GoalsView.test.tsx    | 250 +++++++++++--
 4 files changed, 600 insertions(+), 122 deletions(-)

Fusion-Task-Id: FN-5649

Fusion-Task-Lineage: b787c8e3-64c5-4243-ae84-0f20f12ea09e
2026-05-29 08:06:46 -07:00
gsxdsm
b8c8642cae FN-5645: fix mission autopilot progression to wait for assertion runs
Fusion-Task-Id: FN-5645

Fusion-Task-Lineage: ed9d2045-2bfe-4070-a7e3-caca010e6cc6
2026-05-28 23:58:47 -07:00
gsxdsm
230efa1cdc FN-5644: default AI merge commit body to summarize changes
Fusion-Task-Id: FN-5644

Fusion-Task-Lineage: 5cf0133b-2a14-4bb4-a1c4-2d5bef5793bc
2026-05-28 23:45:40 -07:00
gsxdsm
41ee331429 FN-5648: show in-progress feedback while merging PRs
Fusion-Task-Id: FN-5648

Fusion-Task-Lineage: f056a665-4d52-4472-8495-487a1865aea4
2026-05-28 23:31:03 -07:00
gsxdsm
1df1b479dd FN-5640: refresh PR status from Check PR Status footer action
Fusion-Task-Id: FN-5640

Fusion-Task-Lineage: 80074933-2486-4aa6-b23d-1d0e049808cb
2026-05-28 21:40:01 -07:00
gsxdsm
cec191eac3 FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope
Fusion-Task-Id: FN-5638

Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
2026-05-28 21:23:48 -07:00
gsxdsm
f258a75162 FN-5634: fix ntfy JSON publish priority mapping
Fusion-Task-Id: FN-5634

Fusion-Task-Lineage: 20868ce3-fe31-4638-87f6-83577f46caab
2026-05-28 21:17:02 -07:00
gsxdsm
fb27ead6b3 Recovery: re-land PR tab spacing tokens onto main 2026-05-28 19:50:53 -07:00