gsxdsm
0971eced30
FN-5920: prefer mission detail event count for activity tab
...
Use mission detail event counts as the authoritative pre-load source for mission activity.
- add mission hierarchy eventCount support in core and dashboard mission types
- return mission eventCount from mission detail APIs and document the field
- prefer the detail eventCount over stale list summaries before activity events load
- add coverage for store, API, and MissionManager pre-load count behavior
Files changed:
docs/missions.md | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 18 +++++++++
packages/core/src/mission-store.ts | 6 +++
packages/core/src/mission-types.ts | 2 +
packages/dashboard/app/api/legacy.ts | 2 +
packages/dashboard/app/components/MissionManager.tsx | 12 +++++-
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 46 +++++++++++++++++++++-
packages/dashboard/app/components/mission-types.ts | 1 +
packages/dashboard/src/__tests__/mission-e2e.test.ts | 2 +
9 files changed, 86 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-5920
Fusion-Task-Lineage: a0269499-d34a-495d-89fc-0534bb62a94e
2026-06-02 23:47:32 -07:00
gsxdsm
6d3b1c9810
FN-5931: fix board viewport fill on narrow widths
...
Keep the board stretched between the header and footer across narrow layouts.
- make .project-content and .board flex-aware with min-size guards so board columns fill the remaining viewport space
- keep the board resize stabilization cleanup defensive when visualViewport lacks removeEventListener
- extend board mobile regression coverage and document footer-safe fill layout guidance
Files changed:
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/Board.tsx | 8 ++-
packages/dashboard/app/components/ProjectSelector.css | 2 +
packages/dashboard/app/components/__tests__/board-mobile-initial-render.test.tsx | 81 ++++++++++++++++++++--
packages/dashboard/app/styles.css | 7 +-
5 files changed, 89 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-5931
Fusion-Task-Lineage: 0031ad20-82e5-465d-9326-2b6c2d45de69
2026-06-02 23:33:11 -07:00
gsxdsm
a1b7556c7b
FN-5924: throttle OAuth expiry alerts across restarts
...
Persist OAuth expiry alert state so repeated provider expiry warnings are suppressed for 12 hours across engine restarts.
- add a persisted OAuth alert state store under ~/.fusion/agent and share it between the expiry monitor and startup validity logger
- throttle repeated oauth-token-expired notifications and startup expiry warnings per provider for 12 hours, while clearing stale state when providers disappear or change
- cover persisted throttling, restart behavior, failure handling, and wiring updates in engine notification tests
- document the persisted 12-hour OAuth alert throttle and add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5924-oauth-alert-throttle.md | 5 +
docs/settings-reference.md | 4 +-
packages/engine/src/__tests__/project-engine-soft-delete-merge-abort.test.ts | 3 +
packages/engine/src/__tests__/project-engine.test.ts | 17 ++-
packages/engine/src/__tests__/reliability-interactions/soft-delete-in-flight-abort.test.ts | 3 +
packages/engine/src/auth-storage.ts | 6 +-
packages/engine/src/notification/__tests__/oauth-alert-state.test.ts | 72 ++++++++++
packages/engine/src/notification/__tests__/oauth-expiry-monitor.test.ts | 148 ++++++++++++++++---
packages/engine/src/notification/__tests__/oauth-validity-logger.test.ts | 159 ++++++++++++++++++---
packages/engine/src/notification/index.ts | 3 +
packages/engine/src/notification/oauth-alert-state.ts | 144 +++++++++++++++++++
packages/engine/src/notification/oauth-expiry-monitor.ts | 12 +-
packages/engine/src/notification/oauth-validity-logger.ts | 16 ++-
packages/engine/src/project-engine.ts | 13 +-
14 files changed, 554 insertions(+), 51 deletions(-)
Fusion-Task-Id: FN-5924
Fusion-Task-Lineage: 83255a25-40c7-44d4-8302-b068ae51250e
2026-06-02 23:13:16 -07:00
gsxdsm
ee00d9f1b7
FN-5928: enforce surface enumeration for bug-fix invariants
...
Require bug-fix specs and reviews to enumerate affected surfaces and reject repro-only regression coverage.
- add a required `## Surface Enumeration` section to triage prompt templates and bug-fix planning guidance
- tighten reviewer guidance to block missing surface enumeration and repro-only regression tests
- document the canonical surface checklist in `docs/testing.md` and cover the new wording with prompt/reviewer tests
Files changed:
AGENTS.md | 6 ++--
docs/testing.md | 9 +++++
packages/core/src/__tests__/agent-prompts.test.ts | 22 ++++++++++++
packages/core/src/agent-prompts.ts | 16 +++++++++
packages/engine/src/__tests__/reviewer.test.ts | 17 ++++++++++
packages/engine/src/__tests__/triage.test.ts | 41 ++++++++++++++++++++---
packages/engine/src/reviewer.ts | 3 ++
packages/engine/src/triage.ts | 24 +++++++++++++
8 files changed, 131 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5928
Fusion-Task-Lineage: 717ddcbe-f3a6-4589-ad90-4e640f7a9ff2
2026-06-02 21:57:21 -07:00
gsxdsm
0041962309
FN-5915: show unread badge on header mailbox
...
Add unread mailbox status to the desktop header toggle while keeping pending approvals prioritized.
- show an unread status dot on the desktop header mailbox toggle when unread mail exists without pending approvals
- keep pending-approval indicators taking precedence and hide mailbox indicators while the mailbox view is active
- extend Header coverage for unread-only, pending-only, combined, zero-count, and active-mailbox states
- update restart integration coverage to reuse an existing worktree during orphaned resume concurrency
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/Header.tsx | 9 +++++--
.../app/components/__tests__/Header.test.tsx | 26 ++++++++++++++++---
.../src/__tests__/restart.integration.test.ts | 29 ++++++++++++++++++++--
4 files changed, 58 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-5915
Fusion-Task-Lineage: 3a207e2c-ca58-402f-94cf-3a9e514fe263
2026-06-02 19:19:33 -07:00
gsxdsm
cf23c6f571
FN-5909: run configured merge bootstrap before verification
...
Ensure AI merge verification reuses the configured worktree bootstrap command.
- run merge dependency sync unconditionally when a non-blank worktreeInitCommand is configured
- reuse the configured init command instead of inferred package-manager install commands during merge verification
- add merger verification coverage for warm/cold worktrees, inferred-install fallback, and whitespace-only init commands
- document the expanded worktreeInitCommand behavior and add a published changeset
Files changed:
.changeset/fn-5909-merge-install-script.md | 5 +
docs/settings-reference.md | 2 +-
packages/engine/src/__tests__/merger-verification.test.ts | 159 +++++++++++++++------
packages/engine/src/merger.ts | 30 +++-
4 files changed, 143 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-5909
Fusion-Task-Lineage: 8530c641-9574-45e2-b9ac-82e42c9c00a7
2026-06-02 18:43:29 -07:00
gsxdsm
5c4c765134
FN-5904: feat(FN-5904): add browse-and-install flow for skills.sh catalog in Skills view
...
Add end-to-end browse-and-install flow for skills.sh catalog entries in the dashboard Skills view, enabling users to install skills directly from the catalog UI.
- Add POST /api/skills/install route with source validation and scoped project cwd
- Add installSkill method to SkillsAdapter using supervised npx skills add spawn
- Add installSkill client API function and Install button on catalog cards
- Refresh discovered skills list automatically after successful install
- Handle install errors with structured error codes (invalid_source, install_failed, install_timeout, spawn_error)
- Add card header layout with install button, disabled state, and loading spinner
- Add comprehensive tests: adapter unit tests, route integration tests, component tests
- Add changeset for @runfusion/fusion minor bump
- Update dashboard-guide.md with install endpoint documentation
Files changed:
.changeset/four-oranges-film.md | 5 +
docs/dashboard-guide.md | 45 +++++++
packages/dashboard/app/__tests__/api-skills.test.ts | 46 +++++++
packages/dashboard/app/api/legacy.ts | 12 ++
packages/dashboard/app/components/SkillsView.css | 16 +++
packages/dashboard/app/components/SkillsView.tsx | 83 +++++++++---
packages/dashboard/app/components/__tests__/SkillsView.test.tsx | 72 +++++++++++
packages/dashboard/src/__tests__/routes-skills.test.ts | 67 ++++++++++
packages/dashboard/src/__tests__/skills-adapter.test.ts | 113 ++++++++++++++++
packages/dashboard/src/routes/__tests__/register-agent-skills-routes.test.ts | 144 +++++++++++++++++++++
packages/dashboard/src/routes/register-agent-skills-routes.ts | 51 ++++++++
packages/dashboard/src/skills-adapter.ts | 103 +++++++++++++++
12 files changed, 736 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-5904
Fusion-Task-Lineage: 338d53e3-baba-4c6c-9173-8e214242403c
2026-06-02 18:29:53 -07:00
gsxdsm
577ce12a18
FN-5898: add unlinked mission goal indicator
...
Document the manual no-backfill mission-goal policy and flag active missions that still need explicit goal links.
- document the mission→goal linkage model, explicit no-backfill decision, and manual linkage workflow in missions docs
- include linkedGoalCount in mission summaries and cover single-summary/batched-summary behavior in MissionStore tests
- show an Unlinked badge for active non-interview missions with zero linked goals and add MissionManager coverage
Files changed:
.changeset/fn-5898-mission-goal-unlinked-indicator.md | 5 ++
docs/missions.md | 18 ++++--
packages/core/src/__tests__/mission-store.test.ts | 32 +++++++++-
packages/core/src/mission-store.ts | 25 +++++++-
packages/dashboard/app/components/MissionManager.css | 6 ++
packages/dashboard/app/components/MissionManager.tsx | 14 ++++
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 74 ++++++++++++++++++++++
packages/dashboard/app/components/mission-types.ts | 1 +
8 files changed, 166 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-5898
Fusion-Task-Lineage: e31e9544-4e03-4b52-afbb-e372314b997e
2026-06-02 18:15:14 -07:00
gsxdsm
cc18206bc5
FN-5902: make mission validation AI-run all criteria
...
Route every mission feature through validator-backed completion checks.
- lazily restore a managed feature assertion before validation instead of auto-passing zero-assertion features
- thread milestone acceptance criteria into validator prompts and system instructions as enforced requirements
- update MissionManager copy/tests to present criteria as AI-validated runtime gates and remove informational-only/zero-assertion warnings
- document the all-criteria AI-run contract and add a changeset for @runfusion/fusion
Files changed:
.changeset/fn-5902-mission-validation-ai-run.md | 5 +
AGENTS.md | 2 +-
docs/architecture.md | 2 +-
docs/missions-completion-contract.md | 198 ++++++---------------
docs/missions.md | 5 +-
packages/core/src/__tests__/mission-store.test.ts | 23 ++-
packages/core/src/mission-store.ts | 10 ++
packages/dashboard/app/components/MissionManager.css | 31 ----
packages/dashboard/app/components/MissionManager.tsx | 86 +++------
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 60 +++++--
packages/engine/src/__tests__/mission-execution-loop.test.ts | 111 +++++++++---
packages/engine/src/__tests__/reliability-interactions/mission-validation-trigger-gap.test.ts | 57 +++---
packages/engine/src/mission-execution-loop.ts | 78 ++++----
13 files changed, 318 insertions(+), 350 deletions(-)
Fusion-Task-Id: FN-5902
Fusion-Task-Lineage: 5f25caad-33c9-42ff-822b-1ea092afc29f
2026-06-02 18:11:26 -07:00
gsxdsm
abbeaec0a8
FN-5897: surface linked goals in mission read paths
...
Expose mission-linked goals across mission detail surfaces.
- load linked goal records into mission hierarchy reads in core and return them from the mission detail API
- show linked goals in mission detail views, add goal-chip navigation, and anchor highlighted goal cards in GoalsView
- extend CLI mission output, docs, tests, and add a published changeset for the new read-path support
Files changed:
.changeset/fn-5897-linked-goals-read-paths.md | 5 +++
docs/missions.md | 6 ++-
packages/cli/src/__tests__/extension.test.ts | 48 +++++++++++++++++++++-
packages/cli/src/extension.ts | 10 +++++
packages/core/src/__tests__/mission-store.test.ts | 14 +++++++
packages/core/src/mission-store.ts | 29 +++++++++++++
packages/core/src/mission-types.ts | 4 ++
packages/dashboard/app/App.tsx | 16 +++++++-
packages/dashboard/app/components/GoalsView.css | 6 +++
packages/dashboard/app/components/GoalsView.tsx | 42 +++++++++++++++++--
packages/dashboard/app/components/MissionManager.css | 44 ++++++++++++++++++++
packages/dashboard/app/components/MissionManager.tsx | 31 +++++++++++++-
packages/dashboard/app/components/__tests__/GoalsView.test.tsx | 31 ++++++++++++++
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 45 ++++++++++++++++++++
packages/dashboard/app/components/mission-types.ts | 2 +
packages/dashboard/src/__tests__/mission-e2e.test.ts | 4 ++
packages/dashboard/src/mission-routes.ts | 5 ++-
17 files changed, 332 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-5897
Fusion-Task-Lineage: 5176270d-9885-447a-845b-4e0d69d531a0
2026-06-02 17:58:41 -07:00
gsxdsm
6c7ed1e1fc
docs: add compound-engineering plugin implementation plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 17:41:26 -07:00
gsxdsm
d9941c3886
docs: add compound-engineering plugin requirements (brainstorm + review)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 17:24:17 -07:00
gsxdsm
a75e3c18da
docs: add open ideation pass for Fusion
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 16:19:23 -07:00
gsxdsm
3b9ff42073
FN-5901: reap stale mission validator runs
...
Add self-healing recovery for stale mission validator runs left behind after execution ownership disappears.
- add mission-store support to find and reap stale running validator runs, preserving terminal error status and resetting eligible features to needs_fix
- teach the mission execution loop and self-healing maintenance sweep to skip live validations, reap abandoned runs, record audit events, and avoid double-completing runs
- extend regression coverage, mission docs, architecture notes, and add a published-package changeset for the new recovery behavior
Files changed:
.changeset/fn-5901-validator-run-reaper.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 2 +
docs/missions.md | 26 ++-
packages/core/src/__tests__/mission-store.test.ts | 99 +++++++++
packages/core/src/mission-store.ts | 91 ++++++++
packages/engine/src/__tests__/mission-execution-loop.test.ts | 232 +++++++++++++++++++++
packages/engine/src/__tests__/reliability-interactions/mission-validator-run-reaper.test.ts | 181 ++++++++++++++++
packages/engine/src/mission-execution-loop.ts | 102 +++++++--
packages/engine/src/runtimes/in-process-runtime.ts | 8 +-
packages/engine/src/self-healing.ts | 22 ++
11 files changed, 746 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-5901
Fusion-Task-Lineage: 87eb2f3f-fc31-4e0a-b0fc-b771f6dc48a3
2026-06-02 15:33:31 -07:00
gsxdsm
93e8bd9940
FN-5899: add mission-goal linking commands and tools
...
Add mission↔goal linkage support across the API, CLI, and pi-extension surfaces.
- add mission goal list/link/unlink REST endpoints and dashboard route coverage
- add `fn mission goals`, `fn mission link-goal`, and `fn mission unlink-goal` CLI commands with tests
- add `fn_mission_list_goals`, `fn_mission_link_goal`, and `fn_mission_unlink_goal` extension tools plus skill/docs updates
- add a changeset for the published CLI package release
Files changed:
.changeset/FN-5899-mission-goal-tooling.md | 5 +
docs/cli-reference.md | 11 +-
docs/missions.md | 27 ++++
packages/cli/skill/fusion/SKILL.md | 2 +-
packages/cli/skill/fusion/references/extension-tools.md | 26 ++++
packages/cli/skill/fusion/references/fusion-capabilities.md | 3 +
packages/cli/src/__tests__/bin.test.ts | 21 +++
packages/cli/src/__tests__/extension-mission-goal-tools.test.ts | 140 +++++++++++++++++
packages/cli/src/bin.ts | 32 +++-
packages/cli/src/commands/__tests__/mission.test.ts | 99 +++++++++++-
packages/cli/src/commands/mission.ts | 102 +++++++++++++-
packages/cli/src/extension.ts | 170 +++++++++++++++++++++
packages/dashboard/src/__tests__/mission-goal-links-routes.test.ts | 151 ++++++++++++++++++
packages/dashboard/src/mission-routes.ts | 153 ++++++++++++++++++-
14 files changed, 930 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-5899
Fusion-Task-Lineage: c63b0f4b-c77e-4229-ade4-537a4dda0f5f
2026-06-02 14:47:51 -07:00
gsxdsm
30a09e3422
FN-5896: persist mission-goal linkage in schema
...
Persist mission↔goal relationships through the core mission schema and store APIs.
- add the mission_goals join table, schema migration coverage, and schema version bump to 101
- add MissionStore goal link/unlink/list helpers plus a MissionGoalLink type and emitted linkage events
- add regression tests for persistence, idempotency, ordering, and cascade behavior, and document the new linkage model with a published changeset
Files changed:
.changeset/fn-5896-mission-goal-linkage.md | 5 +
docs/missions.md | 19 +++
docs/storage.md | 1 +
packages/core/src/__tests__/db-migrate.test.ts | 49 ++++++-
packages/core/src/__tests__/db.test.ts | 34 ++---
packages/core/src/__tests__/goals-schema.test.ts | 4 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../src/__tests__/merge-request-record.test.ts | 2 +-
.../core/src/__tests__/mission-goals-link.test.ts | 142 +++++++++++++++++++++
packages/core/src/__tests__/mission-store.test.ts | 4 +-
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 | 31 ++++-
packages/core/src/mission-store.ts | 111 ++++++++++++++++
packages/core/src/mission-types.ts | 6 +
.../src/store/__tests__/roadmap-store.test.ts | 2 +-
18 files changed, 391 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-5896
Fusion-Task-Lineage: a4c7c495-b20a-454b-9605-782671cdd8c8
2026-06-02 14:41:41 -07:00
gsxdsm
8d9bbc1906
FN-5895: fix MissionManager interview resume behavior
...
Keep MissionManager mission interview state and detail rendering in sync while stabilizing the failing test coverage.
- reload assertion-linked feature data when mission details or milestone panels load
- keep selected mission detail state synchronized after mission update events instead of forcing a full mission reload
- hide the sidebar edit form while the selected mission is already being edited in the detail pane
- add a non-destructive Send to background action for resume-launched mission interview modals
- tighten MissionManager tests to target the detail pane and slice-scoped controls that now render alongside sidebar content
Files changed:
docs/missions.md | 2 +-
.../app/components/MissionInterviewModal.tsx | 30 ++++++++
.../dashboard/app/components/MissionManager.tsx | 77 +++++++++++--------
.../components/__tests__/MissionManager.test.tsx | 88 +++++++++++++++-------
4 files changed, 137 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-5895
Fusion-Task-Lineage: d018a945-33a7-4471-9636-35bc36dc88a9
2026-06-02 14:30:35 -07:00
gsxdsm
65ddb4d4f5
FN-5893: require invariant-level bug regression coverage
...
Add invariant-first regression guidance to triage prompts and testing docs.
- add an AGENTS standing rule to cover bug-fix invariants across all known surfaces
- update standard, fast, and core triage prompt templates to require invariant-level regression tests
- add triage regression tests that lock the new wording into standard, fast, and core prompts
- link docs/testing guidance back to the new invariant-over-repro rule
Files changed:
AGENTS.md | 7 ++++++
docs/testing.md | 1 +
packages/core/src/agent-prompts.ts | 3 ++-
packages/engine/src/__tests__/triage.test.ts | 32 ++++++++++++++++++++++++++++
packages/engine/src/triage.ts | 6 ++++--
5 files changed, 46 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5893
Fusion-Task-Lineage: 31c082c6-2a0a-4619-a13b-94dad97eef62
2026-06-02 14:02:36 -07:00
gsxdsm
bd3190ba19
FN-5769: clarify workflow IR v1 agent-call semantics
...
Document that workflow IR v1 keeps agent-call and typed-edge semantics as conventions rather than a 1.1 schema bump.
- replace the deferred-v1.1 note with the FN-5769 evaluation outcome
- record that prompt config and edge.condition remain the canonical v1 representation for parity rollout
Files changed:
docs/workflow-steps.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Fusion-Task-Id: FN-5769
Fusion-Task-Lineage: 341ce4fe-d87d-4c25-a1fc-652ccfbc2e94
2026-06-02 13:37:33 -07:00
gsxdsm
dab1569ac3
FN-5892: dedupe planning sessions and persist history deletion
...
Prevent duplicate planning-history rows and keep deletions visible only after the backend confirms persistence.
- dedupe Planning Mode history by session id across initial loads, live updates, archive toggles, and draft creation
- make deleteAiSession surface backend/content-type errors instead of silently succeeding on failed deletes
- keep failed history deletions visible, refresh the list, and show an error toast when persistence fails
- add dashboard tests covering session deduplication, delete API failures, and persistence-aware Planning Mode deletion behavior
- document the history dedupe/delete semantics and add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5892-planning-history-fix.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/api/__tests__/deleteAiSession.test.ts | 54 +++++
packages/dashboard/app/api/legacy.ts | 41 +++-
packages/dashboard/app/components/PlanningModeModal.tsx | 70 ++++---
packages/dashboard/app/components/__tests__/PlanningModeModal.autosize.test.tsx | 11 +
packages/dashboard/app/components/__tests__/PlanningModeModal.dedupeSessionsById.test.ts | 44 ++++
packages/dashboard/app/components/__tests__/PlanningModeModal.initial.test.tsx | 11 +
packages/dashboard/app/components/__tests__/PlanningModeModal.planning-flow.test.tsx | 226 ++++++++++++++++++++-
packages/dashboard/app/components/__tests__/PlanningModeModal.test-helpers.ts | 1 +
10 files changed, 439 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-5892
Fusion-Task-Lineage: 7453bc34-6d57-4d67-ac92-8fb50084fbee
2026-06-02 12:42:04 -07:00
gsxdsm
a6989ed7f4
FN-5891: respect validator model settings in mission validation
...
Use the configured validator lane when creating mission validation sessions.
- resolve mission validation session models from test mode, assigned agent runtime, and validator/default task settings in precedence order
- surface validation session creation failures as mission validation errors instead of triggering fix-feature retries
- add regression coverage and documentation for mission validation model resolution and error handling
Files changed:
AGENTS.md | 1 +
docs/missions.md | 4 +-
docs/settings-reference.md | 6 +-
.../src/__tests__/mission-execution-loop.test.ts | 252 ++++++++++++++++++++-
packages/engine/src/mission-execution-loop.ts | 63 +++++-
5 files changed, 316 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-5891
Fusion-Task-Lineage: 6254daee-fb6b-4ebb-9fb4-3636237404b1
2026-06-02 12:38:09 -07:00
gsxdsm
8156382d76
FN-5889: suppress post-done continuation wedges
...
Keep completed post-done continuation errors from wedging review tasks in a failed state.
- route step-session non-continuable continuation errors through the executor recovery path before marking tasks failed
- add self-healing recovery and run-audit events for in-review tasks already wedged by post-done non-continuable errors
- extend reliability coverage and architecture/backstop docs for the new post-done wedge handling
Files changed:
AGENTS.md | 1 +
docs/architecture.md | 3 +-
packages/engine/src/__tests__/reliability-interactions/post-done-continuation-no-wedge.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/executor.ts | 11 +-
packages/engine/src/run-audit.ts | 2 +
packages/engine/src/self-healing.ts | 97 ++++++++++++++-
6 files changed, 236 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-5889
Fusion-Task-Lineage: c22716f2-cddb-4c98-ac87-0282017e7c82
2026-06-02 11:03:18 -07:00
gsxdsm
a66b128089
FN-5883: restore planning-mode single-task history
...
Keep completed planning sessions restorable after single-task creation.
- preserve completed planning-session rows after create-task by releasing only in-memory runtime state
- keep completed sessions in the Planning Mode history UI and add coverage for history restoration flows
- document the restored Planning Mode history behavior and add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5883-planning-restore.md | 5 +
docs/dashboard-guide.md | 2 +
.../dashboard/app/components/PlanningModeModal.tsx | 17 +--
.../PlanningModeModal.planning-flow.test.tsx | 118 ++++++++++++++++++++-
.../src/__tests__/routes-planning.test.ts | 86 +++++++++++----
packages/dashboard/src/planning.ts | 7 +-
.../src/routes/register-planning-subtask-routes.ts | 14 +--
7 files changed, 207 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-5883
Fusion-Task-Lineage: 47824bac-3083-45a4-a0d5-b8c7540966c1
2026-06-02 10:07:08 -07:00
gsxdsm
cc5e61dbc4
FN-5882: fix mission interview draft resume handling
...
Keep mission interview drafts recoverable when closing and refreshing Missions.
- make MissionInterviewModal use a single non-destructive close path for header, Escape, and backdrop actions
- refresh mission interview draft/session rows on mission and ai-session SSE updates and reconnects
- open Plan New Mission as a fresh interview instead of always resuming the last session, with regression coverage and docs updates
Files changed:
docs/missions.md | 2 +-
.../app/components/MissionInterviewModal.tsx | 89 +++-----
.../dashboard/app/components/MissionManager.tsx | 156 ++++++++++----
.../__tests__/MissionInterviewModal.test.tsx | 100 ++++++++-
.../components/__tests__/MissionManager.test.tsx | 224 +++++++++++++++++++++
5 files changed, 455 insertions(+), 116 deletions(-)
Fusion-Task-Id: FN-5882
Fusion-Task-Lineage: 75de9e94-edef-4564-a266-91782e60c2ac
2026-06-02 10:04:38 -07:00
gsxdsm
9e00a72d7d
FN-5884: preserve quick chat session across reopens
...
Keep quick chat warm and restore the last opened conversation per project.
- persist the active quick chat session id in per-project local storage and restore it before falling back to latest activity
- retain in-memory quick chat state across close/reopen while resetting chat state correctly when the project changes
- add storage, hook, and FAB coverage for restored sessions, warm reopen behavior, and project switching; document the updated quick chat behavior
Files changed:
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/QuickChatFAB.tsx | 29 ++++--
.../app/components/__tests__/QuickChatFAB.test.tsx | 112 +++++++++++++++++++--
.../__tests__/quickChatLastSessionStorage.test.ts | 55 ++++++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 70 +++++++++++++
.../app/hooks/quickChatLastSessionStorage.ts | 41 ++++++++
packages/dashboard/app/hooks/useQuickChat.ts | 25 +++++
7 files changed, 319 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-5884
Fusion-Task-Lineage: 4d689611-1824-41db-8fc2-d543407316ff
2026-06-02 09:34:19 -07:00
gsxdsm
fa68edf9fa
FN-5885: fix terminal copy/paste shortcuts
...
Restore expected terminal clipboard shortcuts.
- intercept Ctrl/Cmd+C in the dashboard terminal to copy the current selection while preserving plain SIGINT when nothing is selected
- intercept Ctrl/Cmd+V to read clipboard text and send it into the active PTY session
- add terminal shortcut regression coverage and document the new integrated terminal behavior
- add a patch changeset for @runfusion/fusion
Files changed:
.changeset/friendly-ravens-hammer.md | 5 +
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/TerminalModal.tsx | 48 +++++++++
packages/dashboard/app/components/__tests__/TerminalModal.test.tsx | 113 +++++++++++++++++++++
4 files changed, 168 insertions(+)
Fusion-Task-Id: FN-5885
Fusion-Task-Lineage: f8b3658c-2b52-4094-8cef-79c762f4d78d
2026-06-02 09:20:31 -07:00
gsxdsm
48e08c07eb
FN-5880: recover plan-ready mission interview drafts
...
Keep completed mission interview summaries resumable until they are approved or discarded.
- include mission interview sessions in dashboard, CLI, and extension draft listings
- relabel complete drafts as plan-ready review items and reopen them at the summary approval step
- add regression coverage and docs/changeset updates for resumable complete drafts
Files changed:
.../fn-5880-mission-interview-complete-draft.md | 5 ++
docs/missions.md | 8 +--
packages/cli/src/__tests__/extension.test.ts | 13 +++-
.../cli/src/commands/__tests__/mission.test.ts | 11 ++-
packages/cli/src/commands/mission.ts | 17 ++++-
packages/cli/src/extension.ts | 7 +-
.../dashboard/app/components/MissionManager.tsx | 24 ++++---
.../components/__tests__/MissionManager.test.tsx | 70 ++++++++++++++++++
packages/dashboard/app/components/mission-types.ts | 2 +-
.../mission-interview-drafts-routes.test.ts | 18 ++++ -
.../src/__tests__/mission-interview.test.ts | 82 ++++++++++++++++++++++
packages/dashboard/src/mission-interview.ts | 36 +++++-----
12 files changed, 252 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-5880
Fusion-Task-Lineage: 18a9c25c-3f59-4179-9e9c-63f0747acb7f
2026-06-02 09:02:48 -07:00
gsxdsm
f20c37471d
FN-5881: guard project status badges against unknown states
...
Prevent Projects view status rendering from crashing on unknown or missing project states.
- add fallback status config helpers to ProjectCard, ProjectHealthBadge, and ProjectSelector
- format unknown status strings into readable labels and default missing values to Unknown
- add regression tests for unknown and missing statuses across project dashboard components
- document graceful degradation for transient registry or health status mismatches
Files changed:
docs/multi-project.md | 1 +
packages/dashboard/app/components/ProjectCard.tsx | 36 ++++++++++++++++-
.../app/components/ProjectHealthBadge.tsx | 36 ++++++++++++++++-
.../dashboard/app/components/ProjectSelector.tsx | 15 ++++++-
.../app/components/__tests__/ProjectCard.test.tsx | 31 +++++++++++++-
.../__tests__/ProjectHealthBadge.test.tsx | 47 ++++++++++++++++++++++
.../components/__tests__/ProjectSelector.test.tsx | 24 ++++++++++-
7 files changed, 182 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-5881
Fusion-Task-Lineage: 55a9df6f-3fcb-46e8-9e83-3494312b4c24
2026-06-02 08:49:25 -07:00
gsxdsm
419d6cda86
FN-5877: add sync-with-origin remotes action
...
Add a one-click Remotes sync flow that rebases on pull before pushing.
- add a Sync button in Git Manager Remotes that runs pull --rebase and then push
- stop before pushing when the rebase pull reports a conflict or fails, and surface toasts/status updates
- cover successful, conflicting, failing, and loading sync behavior in GitManagerModal tests
- document the new Sync action in the dashboard guide
Files changed:
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/GitManagerModal.tsx | 39 ++++++++
.../components/__tests__/GitManagerModal.test.tsx | 100 +++++++++++++++++++++
3 files changed, 140 insertions(+)
Fusion-Task-Id: FN-5877
Fusion-Task-Lineage: 2e28c00d-b965-4f44-a6fa-26536d91d16d
2026-06-02 08:25:46 -07:00
gsxdsm
336010007c
FN-5870: speed up routes-agents workflow tests
...
Reduce routes-agents workflow route test overhead while preserving coverage.
- collapse repetitive workflow-step create and update route permutations into helper-driven it.each tables
- reuse shared Express app fixtures across workflow-step, refine, diagnostics, and template describe blocks to avoid repeated setup cost
- update the FN-5048 speed audit with the new routes-agents timing improvement and landed optimization notes
Files changed:
docs/test-speed-audit-FN-5048.md | 4 +-
.../dashboard/src/__tests__/routes-agents.test.ts | 1076 +++++++++++---------
2 files changed, 591 insertions(+), 489 deletions(-)
Fusion-Task-Id: FN-5870
Fusion-Task-Lineage: 64d25216-72d1-4fd7-a949-f5f1bc4bd90c
2026-06-02 07:44:21 -07:00
gsxdsm
41c891d7d8
FN-5850: add AI goal description drafting
...
Add AI-assisted goal description drafting from the Goals view add form.
- add a readonly AI drafting flow for goal descriptions with title validation and shared rate limiting
- expose a new /api/ai/draft-goal-description endpoint and dashboard API helper for requesting drafts
- add Goals view UI, styling, tests, and dashboard docs covering the draft workflow
Files changed:
docs/dashboard-guide.md | 6 +
packages/dashboard/app/api/legacy.ts | 24 +++-
packages/dashboard/app/components/GoalsView.css | 14 ++
packages/dashboard/app/components/GoalsView.tsx | 46 +++++-
packages/dashboard/app/components/__tests__/GoalsView.test.tsx | 50 +++++++
packages/dashboard/src/__tests__/ai-refine.test.ts | 75 ++++++++++
packages/dashboard/src/__tests__/routes-agents.test.ts | 92 ++++++++++++
packages/dashboard/src/ai-refine.ts | 155 ++++++++++++++++++---
packages/dashboard/src/routes.ts | 58 ++++++++
9 files changed, 489 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-5850
Fusion-Task-Lineage: $#%
!
2026-06-01 22:50:41 -07:00
gsxdsm
70e7a6b30a
FN-5852: persist queued chat messages across navigation
...
Keep queued follow-up chat drafts across session switches, reloads, and view re-entry.
- persist queued pending-message text per chat session in shared localStorage helpers
- restore and flush queued follow-up messages in full Chat when returning to an active session
- restore and flush queued follow-up messages in Quick Chat and cover the recovery path with tests
- document queued-message persistence behavior in the dashboard guide
Files changed:
docs/dashboard-guide.md | 2 +
.../dashboard/app/hooks/__tests__/useChat.test.ts | 119 +++++++++++++++++-
.../app/hooks/__tests__/useQuickChat.test.ts | 135 +++++++++++++++++++++
.../app/hooks/chatPendingMessageStorage.ts | 48 ++++++++
packages/dashboard/app/hooks/useChat.ts | 38 ++++++
packages/dashboard/app/hooks/useQuickChat.ts | 35 ++++++
6 files changed, 376 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-5852
Fusion-Task-Lineage: 1cddfb19-7e02-40e5-b373-5d593dfcfe2a
2026-06-01 22:11:30 -07:00
gsxdsm
e561290174
FN-5846: route shared-group member finalization to shared branch
...
Ensure shared branch-group members keep their routed shared-branch target through merge finalization and recovery.
- ignore a shared member's default-base branch when resolving branch-group merge routing
- reroute merge-confirmed fast paths and self-healing recovery flows to the branch-group integration branch
- stamp merge target metadata, record member landings, and add regression coverage plus architecture/changeset updates
Files changed:
.changeset/fn-5846-shared-group-merge-routing.md | 5 +
docs/architecture.md | 4 +-
packages/engine/src/__tests__/group-merge-coordinator.test.ts | 26 +++
packages/engine/src/__tests__/reliability-interactions/shared-branch-group-lifecycle.test.ts | 73 +++++--
packages/engine/src/group-merge-coordinator.ts | 11 +-
packages/engine/src/project-engine.ts | 49 ++++-
packages/engine/src/self-healing.ts | 212 ++++++++++++++++++++-
7 files changed, 357 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-5846
Fusion-Task-Lineage: c8fbf8b8-3cbe-4ee5-96d9-9040bd4f0df5
2026-06-01 20:19:37 -07:00
gsxdsm
0a418e6875
FN-5844: add plugin dev loop and external authoring docs
...
Add a local plugin development loop plus publishable external plugin guidance.
- add `fn plugin dev` routing and implementation with supervised build, install, and hot-reload behavior
- export plugin loader/store helpers and add CLI tests for dev flow, pack shape validation, and scaffold docs coverage
- document external plugin authoring, update CLI/plugin authoring docs, and add a patch changeset for `@runfusion/fusion`
Files changed:
.changeset/fn-5844-external-plugin-authoring.md | 5 +
docs/PLUGIN_AUTHORING.md | 10 +-
docs/cli-reference.md | 3 +-
docs/plugins/external-authoring.md | 114 +++++++++++
packages/cli/src/__tests__/bin.test.ts | 16 +-
packages/cli/src/__tests__/plugin-dev.test.ts | 138 ++++++++++++++
.../cli/src/__tests__/plugin-pack-shape.test.ts | 94 +++++++++
packages/cli/src/__tests__/plugin-scaffold.test.ts | 3 +
packages/cli/src/bin.ts | 16 +-
packages/cli/src/commands/plugin-dev.ts | 212 +++++++++++++++++++++
packages/cli/src/commands/plugin-scaffold.ts | 6 +-
packages/cli/src/commands/plugin.ts | 6 +-
12 files changed, 613 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-5844
Fusion-Task-Lineage: 80afa0a0-225c-486d-901a-909d14e7b056
2026-06-01 19:40:28 -07:00
gsxdsm
d4db0b0b00
FN-5847: honor onboarding completion marker in auto-launch
...
CLI onboarding auto-launch now skips once the persisted completion marker is present.
- Load `cliOnboardingCompletedAt` from global settings before launching onboarding when the central DB is missing.
- Preserve existing skip precedence for non-TTY, command, flag, environment, and central DB guards.
- Add unit and backcompat coverage for completion-marker and skipped-central-DB scenarios.
- Document the updated auto-launch behavior and add a patch changeset.
Files changed:
.changeset/fn-5847-onboard-autolaunch-marker.md | 5 ++
docs/cli-reference.md | 12 +--
.../onboard-autolaunch-backcompat-e2e.test.ts | 7 ++
.../onboard-autolaunch-backcompat.test.ts | 8 ++
.../__tests__/onboard-autolaunch-bypass.test.ts | 7 ++
.../commands/__tests__/onboard-autolaunch.test.ts | 93 ++++++++++++++++++++++
packages/cli/src/commands/onboard-autolaunch.ts | 46 ++++++++++-
7 files changed, 171 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5847
Fusion-Task-Lineage: db3e474e-e4b8-4299-8087-07b6cd1f4518
2026-06-01 18:52:28 -07:00
gsxdsm
c676cbe12f
FN-5813: update fn onboard help and CLI docs
...
Align onboarding HELP text and CLI reference with current fn onboarding behavior.
- Document onboarding auto-launch conditions around missing central DB and interactive command flow.
- Add and clarify onboarding escape hatches: --skip-onboarding and FUSION_SKIP_ONBOARDING.
- Add an onboard docs parity test to keep HELP and docs aligned for key onboarding terms.
- Add a patch changeset for @runfusion/fusion describing the documentation/help update.
Files changed:
.changeset/fn-5813-onboard-docs.md | 5 ++++
docs/cli-reference.md | 21 +++++++++-----
packages/cli/src/bin.ts | 4 ++-
packages/cli/src/commands/__tests__/onboard-docs.test.ts | 33 ++++++++++++++++++++++
4 files changed, 55 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-5813
Fusion-Task-Lineage: 14a74ad9-5f09-471a-878d-aa120a28ef41
2026-06-01 17:15:11 -07:00
gsxdsm
245129e24c
FN-5812: add onboard autolaunch backcompat guard coverage
...
Protect onboarding autolaunch behavior so legacy projects and agent-run commands are not blocked.
- add end-to-end CLI test coverage for onboarding autolaunch backcompat guard behavior
- document the onboarding autolaunch compatibility behavior in the CLI reference
- add a patch changeset for @runfusion/fusion release tracking
Files changed:
.changeset/fn-5812-onboard-backcompat-guard.md | 5 +
docs/cli-reference.md | 6 +
packages/cli/src/commands/__tests__/onboard-autolaunch-backcompat-e2e.test.ts | 161 +++++++++++++++++++++
3 files changed, 172 insertions(+)
Fusion-Task-Id: FN-5812
Fusion-Task-Lineage: d735ef0e-1abc-4c22-bd11-07c2de69ace1
2026-06-01 16:55:56 -07:00
gsxdsm
8376781864
FN-5845: fix mobile agent log scroll and add collapsible branch group card
...
Improve dashboard mobile log usability and make branch group cards collapsible for cleaner review workflows.
- preserve/restore AgentLogViewer scroll position when toggling mobile drawer and lock body scroll while open
- add collapse/expand state to BranchGroupCard with a summary header and hidden details when collapsed
- add regression tests for AgentLogViewer mobile scroll behavior and BranchGroupCard collapse interactions
- add a changeset and dashboard guide note for the new branch group card behavior
Files changed:
.changeset/fn-5845-branch-group-collapse.md | 5 ++
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/AgentLogViewer.tsx | 21 ++++++++
.../dashboard/app/components/BranchGroupCard.css | 23 ++++++++
.../dashboard/app/components/BranchGroupCard.tsx | 63 +++++++++++++++++-----
.../components/__tests__/AgentLogViewer.test.tsx | 48 +++++++++++++++++
.../components/__tests__/BranchGroupCard.test.tsx | 18 +++++++
7 files changed, 166 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-5845
Fusion-Task-Lineage: 6a0f2967-5df8-4761-ae6c-50991f01ab78
2026-06-01 16:24:21 -07:00
gsxdsm
9cbb54906f
FN-5843: scaffold standalone external-author plugins with reference template
...
Add a standalone external-author plugin scaffold flow and reference plugin output for fn plugin new.
- add standalone scaffold mode to plugin generator with external-author defaults
- generate reference plugin files and metadata tailored for out-of-tree/plugin-author usage
- update CLI wiring and command behavior for the new scaffold path
- expand CLI and scaffold tests to cover standalone generation behavior
- document the updated plugin scaffolding flow in CLI reference docs
Files changed:
docs/cli-reference.md | 3 +-
packages/cli/src/__tests__/bin.test.ts | 12 +-
packages/cli/src/__tests__/plugin-scaffold.test.ts | 114 ++++++---
packages/cli/src/bin.ts | 18 +-
packages/cli/src/commands/plugin-scaffold.ts | 269 +++++++++++++++++++--
5 files changed, 356 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-5843
Fusion-Task-Lineage: 4383e9ed-0b12-451e-a946-2d002f7e8faf
2026-06-01 16:20:52 -07:00
gsxdsm
af6e5b5eaf
FN-5842: publish plugin SDK subpath export
...
Expose the plugin SDK as a published CLI subpath while preserving existing workspace behavior.
- add a prepack transform helper that injects the ./plugin-sdk and ./package.json exports only in packed manifests
- split tsup config into dedicated CLI and plugin-sdk builds so dist/plugin-sdk JS and DTS are emitted with @fusion deps inlined
- add coverage for definePlugin/validatePluginManifest behavior and manifest/build export guarantees
- document the new published @runfusion/fusion/plugin-sdk surface for plugin authors
Files changed:
docs/agents.md | 2 +
packages/cli/scripts/prepare-publish-manifest.mjs | 61 +++++++++++++++-------
packages/cli/src/__tests__/plugin-sdk-export.test.ts| 50 ++++++++++++++++++
packages/cli/tsup.config.ts | 31 +++++++++--
4 files changed, 121 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-5842
Fusion-Task-Lineage: b6b481ae-aaac-46c0-a6f7-8cc1e9eed1ce
2026-06-01 16:09:35 -07:00
gsxdsm
40b491958f
FN-5806: make onboarding steps individually skippable
...
Allow each fn onboard stage to be skipped without exiting the overall onboarding flow.
- add a reusable skippable-step helper that prompts before each onboarding section
- gate central DB setup, provider setup, project init, core settings, and next-steps output behind per-step skip prompts
- preserve onboarding completion persistence while keeping cancellation semantics intact
- expand onboarding command tests for full skip, selective skip, and cancellation coverage
- document per-step skip behavior in the CLI reference
- add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5806-onboard-step-skip.md | 5 +
docs/cli-reference.md | 3 +-
packages/cli/src/commands/__tests__/onboard.test.ts | 72 ++++++++++++-
packages/cli/src/commands/onboard.ts | 112 ++++++++++++---------
4 files changed, 141 insertions(+), 51 deletions(-)
Fusion-Task-Id: FN-5806
Fusion-Task-Lineage: d122d67a-2a13-4b2f-a1aa-459dc548d370
2026-06-01 13:20:55 -07:00
gsxdsm
3602fb9a23
FN-5839: prevent stale integration-advance sync prompts
...
Treat rewritten integration-branch advances as handled when the working tree is already aligned.
- Add a new `superseded` resolution for unreachable advance SHAs that remain after history rewrites while HEAD matches the local integration tip.
- Update Git status collection logic and route/API status typings to propagate the new resolution state.
- Update Git Manager modal messaging and dismiss behavior so handled `superseded` entries do not show a sync CTA.
- Extend dashboard route and modal tests, and refresh dashboard guide docs for the new classification behavior.
Files changed:
docs/dashboard-guide.md | 5 +--
packages/dashboard/app/api/legacy.ts | 2 +-
.../dashboard/app/components/GitManagerModal.tsx | 6 ++--
.../components/__tests__/GitManagerModal.test.tsx | 5 ++-
.../dashboard/src/__tests__/routes-git.test.ts | 36 ++++++++++++++++++++--
.../dashboard/src/routes/register-git-github.ts | 13 ++++++--
6 files changed, 55 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-5839
Fusion-Task-Lineage: 6b4afb73-587d-4319-8ad8-f1d5d54bc7bf
2026-06-01 11:52:02 -07:00
gsxdsm
4a20aa140e
FN-5838: suppress stale integration-advance action prompts
...
Refine merge-advance status handling so Git Manager only requests action when the checkout is truly behind.
- classify recent integration advances as reachable, orphaned, subsumed, or pending before marking them actionable
- detect subsumed advances by comparing commit patch fingerprints from recent HEAD history
- expose advance resolution metadata in API status payloads and route exports
- update Git Manager UI to count only pending actionable advances, gate Sync Working Tree visibility, and allow dismissing handled orphaned/subsumed rows
- expand dashboard tests and docs to cover stale false-positive scenarios and new resolution behavior
Files changed:
docs/dashboard-guide.md | 6 ++
packages/dashboard/app/api/legacy.ts | 1 +
.../dashboard/app/components/GitManagerModal.tsx | 45 ++++++----
.../components/__tests__/GitManagerModal.test.tsx | 63 ++++++++++++++
.../dashboard/src/__tests__/routes-git.test.ts | 97 +++++++++++++++++++++-
.../dashboard/src/routes/register-git-github.ts | 94 ++++++++++++++-------
6 files changed, 259 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-5838
Fusion-Task-Lineage: 65d1317a-7618-4fff-9875-c845474888ed
2026-06-01 11:05:22 -07:00
gsxdsm
130f6f1e9a
FN-5834: enforce explicit developer-role compatibility for custom providers
...
Prevent unsupported developer-role API failures by making provider role compatibility explicit and covered by regression safeguards.
- Add explicit supportsDeveloperRole capability to custom provider metadata/types and wire it through provider registration.
- Update CLI custom-provider registration behavior and tests to persist and validate developer-role compatibility settings.
- Add/adjust engine regression coverage for openai-completions message role conversion, including reasoning-model fallback behavior.
- Document the new custom provider setting and add a published changeset for @runfusion/fusion.
Files changed:
.changeset/fn-5834-developer-role-compat.md | 5 ++
docs/settings-reference.md | 2 +-
packages/cli/src/commands/__tests__/custom-provider-registry.test.ts | 44 +++++++++++-
packages/cli/src/commands/custom-provider-registry.ts | 9 ++-
packages/core/src/types.ts | 5 ++
packages/engine/src/__tests__/custom-providers-openai-completions.test.ts | 84 +++++++++++-----------
6 files changed, 106 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-5834
Fusion-Task-Lineage: 4edc80c9-5e60-41e4-bce1-662d18255d88
2026-06-01 09:05:18 -07:00
gsxdsm
f76716e55b
FN-5833: fix custom Responses API model lookup
...
Ensure custom OpenAI Responses providers resolve configured models without requiring registry entries.
- update global settings model resolution to preserve custom provider model configuration
- adjust engine custom-provider and fn-agent creation paths to avoid false 'model not found' failures
- add regression tests for OpenAI Responses custom providers and pi create-fn-agent flows
- document the custom provider model behavior and add a changeset for @runfusion/fusion
Files changed:
.../FN-5833-custom-provider-responses-fix.md | 10 ++++
docs/settings-reference.md | 2 +-
packages/core/src/global-settings.ts | 56 +++++++++----------
packages/core/src/index.ts | 2 +-
.../custom-providers-openai-responses.test.ts | 64 ++++++++++++++++++++++
.../engine/src/__tests__/custom-providers.test.ts | 33 ++++++++++-
.../src/__tests__/pi-create-fn-agent.test.ts | 11 +++-
packages/engine/src/custom-providers.ts | 4 +-
packages/engine/src/pi.ts | 21 +++++--
9 files changed, 162 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-5833
Fusion-Task-Lineage: a59481cf-faf5-42b8-97ce-7b3eca27b4fb
2026-06-01 08:23:02 -07:00
gsxdsm
5af7eeb60b
FN-5823: add shared-branch-group entry-point verification coverage
...
Add end-to-end checks to keep branch entry points aligned with shared-branch-group flow.
- add dashboard integration tests covering shared-branch-group entry behavior across entry points
- update TaskCard branch-group chip rendering to match shared assignment metadata handling
- extend mission store test/docs coverage for shared-branch-group alignment expectations
Files changed:
docs/missions.md | 10 +
packages/core/src/__tests__/mission-store.test.ts | 4 +
packages/dashboard/app/components/TaskCard.tsx | 22 +-
packages/dashboard/src/__tests__/shared-branch-group-entry-points.test.ts | 354 +++++++++++++++++++++
4 files changed, 381 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-5823
Fusion-Task-Lineage: 7c06e2d2-0233-4a02-a79e-daecab47f0a9
2026-06-01 06:36:15 -07:00
gsxdsm
3373c0beed
FN-5830: re-land shared branch promotion gate and API
...
Reintroduce shared-branch-group completion gating and promotion endpoints with reliability coverage.
- add GroupMergeCoordinator promotion gate behavior and shared branch group promotion logic updates
- expose promotion flow wiring through engine index and project engine APIs
- expand coordinator tests and add reliability interaction coverage for branch-group promotion
- document the new reliability backstop and add a changeset for @runfusion/fusion
Files changed:
.changeset/fn-5830-branch-group-promotion.md | 5 +
AGENTS.md | 1 +
docs/architecture.md | 3 +-
.../src/__tests__/group-merge-coordinator.test.ts | 170 ++++++++++++++++++-
.../branch-group-promotion.test.ts | 166 +++++++++++++++++++
packages/engine/src/group-merge-coordinator.ts | 183 ++++++++++++++++++++-
packages/engine/src/index.ts | 4 +
packages/engine/src/project-engine.ts | 37 +++++
8 files changed, 566 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5830
Fusion-Task-Lineage: e9823f51-df0e-4da8-8f51-58dfefdc293d
2026-06-01 05:39:01 -07:00
gsxdsm
eb425d17d9
FN-5825: add dedicated grouped-task modal popup
...
Introduce a dedicated modal flow for grouped shared-branch tasks in the dashboard.
- Add GroupTaskModal component and styles for grouped task details and actions.
- Wire grouped-task modal state through App, modal manager hooks, and modal container components.
- Update board/column/task-card interactions to open grouped tasks in the new modal.
- Adjust subtask breakdown behavior and add focused tests for grouped task modal/task-card flows.
- Document the grouped-task modal behavior and add a changeset for @runfusion/fusion.
Files changed:
.changeset/fn-5825-group-task-modal.md | 5 +
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/App.tsx | 6 +
packages/dashboard/app/components/AppModals.tsx | 24 ++++
packages/dashboard/app/components/Board.tsx | 4 +-
packages/dashboard/app/components/Column.tsx | 4 +-
.../dashboard/app/components/GroupTaskModal.css | 79 ++++++++++
.../dashboard/app/components/GroupTaskModal.tsx | 159 +++++++++++++++++++++
.../app/components/SubtaskBreakdownModal.tsx | 16 ++-
packages/dashboard/app/components/TaskCard.tsx | 8 ++
.../components/__tests__/GroupTaskModal.test.tsx | 105 ++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 18 +++
packages/dashboard/app/hooks/useModalManager.ts | 16 +++
packages/dashboard/vitest.config.ts | 2 +-
14 files changed, 445 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-5825
Fusion-Task-Lineage: d9317a58-05ce-4437-8311-b7e2a186537b
2026-06-01 05:15:14 -07:00
gsxdsm
e9de195ef5
FN-5822: wire shared branch-group visibility and merge controls
...
Add dashboard and API support for viewing shared branch groups and triggering group merge actions.
- add branch-group API routes and register them in integrated routers
- extend dashboard legacy API client with branch-group fetch and merge-control actions
- add BranchGroupCard UI + styles and surface it in task/detail/subtask views
- add dashboard/API test coverage for branch-group routes and UI integration points
- document branch-group behavior and add a changeset for @runfusion/fusion
Files changed:
.changeset/fn-5822-branch-group-dashboard.md | 5 +
docs/dashboard-guide.md | 31 ++++++
packages/dashboard/app/api/legacy.ts | 54 +++++++++
.../dashboard/app/components/BranchGroupCard.css | 83 ++++++++++++++
.../dashboard/app/components/BranchGroupCard.tsx | 123 +++++++++++++++++++++
.../app/components/SubtaskBreakdownModal.tsx | 3 +
packages/dashboard/app/components/TaskCard.tsx | 19 ++++
.../dashboard/app/components/TaskDetailModal.tsx | 4 +
.../components/__tests__/BranchGroupCard.test.tsx | 96 ++++++++++++++++
.../__tests__/SubtaskBreakdownModal.test.tsx | 1 +
.../app/components/__tests__/TaskCard.test.tsx | 16 ++++
.../components/__tests__/TaskDetailModal.test.tsx | 22 ++++
.../src/__tests__/routes-branch-groups.test.ts | 119 ++++++++++++++++++++
.../src/routes/register-branch-groups-routes.ts | 118 ++++++++++++++++++++
.../src/routes/register-integrated-routers.ts | 13 +++
packages/dashboard/vitest.config.ts | 4 +-
16 files changed, 709 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5822
Fusion-Task-Lineage: 199c25b8-f6ec-43b4-8fab-509f23fb5ac7
2026-06-01 04:47:19 -07:00
gsxdsm
2546065674
FN-5828: route shared mission triage to per-task working branches
...
Ensure mission shared-branch triage creates unique task branches while preserving a single shared merge target.
- Compute branch assignment during mission feature triage with resolveEntryPointBranchAssignment and persist per-task working branches in shared mode.
- Keep shared branch-group initialization tied to the mission merge-target branch for shared assignment flows.
- Update core and dashboard mission triage tests to assert distinct per-task branches under shared strategy and verify branch-group behavior.
- Refresh mission docs to clarify shared vs per-task-derived branch strategy semantics.
Files changed:
docs/missions.md | 8 +--
packages/core/src/__tests__/mission-store.test.ts | 42 +++++++++++++--
packages/core/src/mission-store.ts | 19 ++++---
packages/dashboard/src/__tests__/mission-e2e.test.ts | 63 ++++++++++++++++++++--
4 files changed, 115 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-5828
Fusion-Task-Lineage: 9854ea25-6926-4883-92ae-36a5c0a817c5
2026-06-01 03:09:50 -07:00