gsxdsm
c710c5af4c
FN-5798: update README with chat rooms and CLI docs
...
Refresh README highlights to cover newly surfaced collaboration and documentation entry points.
- Add a Multi-agent Chat Rooms feature row in the key capabilities table, including experimental enablement path and docs link
- Add CLI Reference to the documentation links table
- Add Chat Rooms (Experimental) to the feature bullets with behavior summary and activation guidance
Files changed:
README.md | 3 +++
1 file changed, 3 insertions(+)
Fusion-Task-Id: FN-5798
Fusion-Task-Lineage: 23bfad02-71f1-4dd9-8146-3f6edef96849
2026-05-31 21:07:18 -07:00
gsxdsm
77a109958b
FN-5796: make plugin same-state transitions idempotent
...
Prevent duplicate-state plugin updates from throwing invalid transition errors.
- treat updatePluginState calls where next state equals current state as idempotent no-ops
- allow same-state updates with an explicit error payload to persist error changes and emit plugin:updated
- add regression tests for same-state no-op behavior, no extra stateChanged event emission, and error payload updates
- add a patch changeset documenting the Dependency Graph plugin fix
Files changed:
.changeset/fn-5796-plugin-state-noop.md | 7 +++++
packages/core/src/__tests__/plugin-store.test.ts | 34 ++++++++++++++++++++++++
packages/core/src/plugin-store.ts | 15 +++++++++++
3 files changed, 56 insertions(+)
Fusion-Task-Id: FN-5796
Fusion-Task-Lineage: 0da1d035-383f-456c-a212-0903dc029874
2026-05-31 20:50:09 -07:00
gsxdsm
a8c920daf9
chore(release): v0.39.0
...
Version bump via changesets.
2026-05-31 20:05:32 -07:00
gsxdsm
5930c18b4d
FN-5795: send ntfy notification when agents create tasks
...
Add agent task-created ntfy notifications with configurable settings and coverage.
- add notification plumbing to emit a dedicated event when an agent creates a task
- extend ntfy provider/settings typing and dashboard settings coverage for the new event toggle
- add regression tests for notification service, notifier integration, and ntfy provider behavior
- add a changeset and documentation updates describing the new notification capability
Files changed:
.changeset/fn-5795-task-created-notification.md | 9 +++
docs/architecture.md | 4 +-
docs/settings-reference.md | 4 +-
docs/storage.md | 2 +-
packages/core/src/types.ts | 4 +-
.../dashboard/app/components/SettingsModal.tsx | 1 +
.../components/__tests__/SettingsModal.test.tsx | 27 +++++++-
.../src/__tests__/notification-service.test.ts | 71 ++++++++++++++++++++++
packages/engine/src/__tests__/notifier.test.ts | 5 ++
.../engine/src/__tests__/ntfy-provider.test.ts | 32 ++++++++++
.../src/notification/notification-service.ts | 53 +++++++++++++++-
packages/engine/src/notification/ntfy-provider.ts | 21 +++++--
12 files changed, 220 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-5795
Fusion-Task-Lineage: 4cfa3b46-8e9c-451e-ab2d-b7d5c9bf5968
2026-05-31 19:59:32 -07:00
gsxdsm
fa428a487b
FN-5794: run worktree init for fresh merge workspaces
...
Run merge worktree initialization automatically when a merge workspace is newly created.
- detect when integration worktree creation is fresh and invoke the configured init command
- preserve existing behavior for already-initialized worktrees while improving setup reliability
- add integration tests covering init command execution paths for merge worktree setup
Files changed:
.changeset/fn-5794-merge-worktree-init.md | 5 +++
.../__tests__/merger-integration-worktree.test.ts | 16 +++++++++
packages/engine/src/merger.ts | 39 +++++++++++++++++++++-
3 files changed, 59 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-5794
Fusion-Task-Lineage: f368099f-a179-466e-b994-2a503167112c
2026-05-31 17:52:57 -07:00
gsxdsm
fc4fc9c3cf
FN-5793: replace Discord settings icon with official logo
...
Swap the Settings modal Discord link icon to the official Discord mark and cover it with a focused regression test.
- add an inline Discord SVG icon component and use it in the Discord footer link
- remove the previous lucide MessageCircle icon import and usage
- extend SettingsModal tests to assert the Discord SVG renders and the old icon is absent
Files changed:
packages/dashboard/app/components/SettingsModal.tsx | 20 ++++++++++++++++++--
packages/dashboard/app/components/__tests__/SettingsModal.test.tsx | 3 +++
2 files changed, 21 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5793
Fusion-Task-Lineage: eebbad06-311b-4770-b739-19b33fc29e6a
2026-05-31 17:36:31 -07:00
gsxdsm
ffadb0c77f
FN-5792: fix GitHub auto-close reconciliation for soft-deleted tasks
...
Ensure GitHub issue auto-close reconciliation still processes soft-deleted and archived tracked tasks after restart.
- Add pagination-aware reconcile scanning in core store with combined deleted+archived coverage and hasMore metadata.
- Update dashboard GitHub tracking reconciler and route handling to consume paged reconcile batches safely.
- Expand reconcile tests (core + dashboard) with restart/periodic sweep and source-issue scenarios to lock behavior.
- Add release changeset and dashboard guide note for the reconciliation sweep behavior.
Files changed:
.changeset/fn-5792-github-tracking-sweep.md | 5 +
docs/dashboard-guide.md | 1 +
.../store-github-tracking-reconcile.test.ts | 45 ++++++++-
packages/core/src/store.ts | 32 ++++--
.../github-source-issue-reconciler.test.ts | 22 ++--
...ithub-tracking-periodic-reconcile-sweep.test.ts | 90 +++++++++++++++++
.../__tests__/github-tracking-reconciler.test.ts | 111 +++++----------------
.../dashboard/src/github-tracking-reconciler.ts | 19 ++--
.../dashboard/src/routes/register-git-github.ts | 57 +++++++++--
9 files changed, 257 insertions(+), 125 deletions(-)
Fusion-Task-Id: FN-5792
Fusion-Task-Lineage: 259f07cf-3470-47c7-b47a-86d212d44d52
2026-05-31 17:23:26 -07:00
gsxdsm
716f3964c5
FN-5790: harden room chat send handling and optimistic reconciliation
...
Prevent duplicate room sends and avoid restoring composer text when ambiguous failures still delivered the message.
- guard room composer sends with an in-flight ref to prevent double-dispatch
- treat ambiguous post-send refresh failures as delivered when recovery confirms the user message
- centralize optimistic/SSE user-message reconciliation to replace temp messages instead of duplicating them
- add and update chat room hook/component tests that cover double-send prevention and delivered-on-ambiguous-failure behavior
- add a patch changeset for @runfusion/fusion documenting the room chat reliability fix
Files changed:
.changeset/few-dingos-smile.md | 5 ++
packages/dashboard/app/components/ChatView.tsx | 8 +++
.../components/__tests__/ChatView.rooms.test.tsx | 27 ++++++++++
.../app/hooks/__tests__/useChatRooms.test.ts | 48 +++++++++++++++--
packages/dashboard/app/hooks/useChatRooms.ts | 62 +++++++++++++++-------
5 files changed, 126 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-5790
Fusion-Task-Lineage: a1ac5e4f-4cc2-4cf9-8bc1-42587d0d1d1b
2026-05-31 16:57:42 -07:00
gsxdsm
2140ab2dcf
FN-5789: normalize missing sentence spaces in streamed deltas
...
Repair provider-agnostic streaming deltas so sentence boundaries keep expected spacing in chat and agent logs.
- add shared streaming-delta normalization helpers for text/thinking events
- apply normalization at executor and PI message_update chokepoints before emitting deltas
- add focused engine tests covering punctuation-boundary repairs and no-op cases
- add a patch changeset for @runfusion/fusion describing the fix
Files changed:
.changeset/fn-5789-streaming-space-repair.md | 5 ++
.../engine/src/__tests__/streaming-delta.test.ts | 84 ++++++++++++++++++++
packages/engine/src/executor.ts | 11 ++-
packages/engine/src/pi.ts | 13 +++-
packages/engine/src/streaming-delta.ts | 91 ++++++++++++++++++++++
5 files changed, 197 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5789
Fusion-Task-Lineage: e60ed2ae-c006-42f9-9ab0-f4e79560fb66
2026-05-31 16:48:28 -07:00
gsxdsm
d585ac2181
FN-5791: add markdown goal descriptions with show-more toggle
...
Improve goal card descriptions to support markdown formatting while keeping long content scannable.
- render goal descriptions with markdown + GFM support in GoalsView
- collapse long or multi-line descriptions by default and add Show more/Show less disclosure
- style collapsed description layout and add responsive clamp adjustments
- add tests for markdown rendering, long-description toggle behavior, and short-description no-toggle behavior
Files changed:
packages/dashboard/app/components/GoalsView.css | 27 +++++++++++++
packages/dashboard/app/components/GoalsView.tsx | 46 +++++++++++++++++++++-
packages/dashboard/app/components/__tests__/GoalsView.test.tsx | 42 ++++++++++++++++++++
3 files changed, 114 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-5791
Fusion-Task-Lineage: a3a0be5c-4a8d-4dc1-93a3-40891ab7762b
2026-05-31 16:43:58 -07:00
gsxdsm
7b70e7fb72
FN-5788: add group promotion gate to merge coordinator
...
Add lifecycle wiring so branch-group promotion respects group-level auto-merge gating.
- Extend merge coordinator/merger flow to apply group promotion precedence and pause/override reasons.
- Hook the group-promotion coordinator into engine lifecycle startup.
- Add reliability and coordinator coverage for branch group promotion gating behavior.
- Add release changeset and update architecture/AGENTS backstop notes.
Files changed:
.changeset/fn-5788-branch-group-promotion-gate.md | 5 +
AGENTS.md | 1 +
docs/architecture.md | 3 +-
.../src/__tests__/group-merge-coordinator.test.ts | 95 ++++++++++++++-
.../branch-group-promotion-gate.test.ts | 129 +++++++++++++++++++++
packages/engine/src/group-merge-coordinator.ts | 46 +++++---
packages/engine/src/index.ts | 2 +
packages/engine/src/merger.ts | 34 +++---
8 files changed, 283 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-5788
Fusion-Task-Lineage: 5930f662-908e-4cf0-a0d4-68b2f4360074
2026-05-31 15:59:59 -07:00
gsxdsm
06d84905ba
FN-5783: enforce branch-group autoMerge precedence for shared promotions
...
Honor group-level autoMerge precedence when promoting shared branch groups.
- add core/store helpers to preserve branch-group autoMerge overrides and resolve effective precedence against task/project settings
- gate branch-group promotion eligibility in engine merge coordination and emit promotion-gated audit metadata
- update dashboard planning/subtask flows for shared mission triage routing and add reliability/unit coverage
- include docs and changeset updates for branch-group autoMerge precedence behavior
Files changed:
.../fn-5783-branch-group-automerge-precedence.md | 5 +
AGENTS.md | 1 +
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 +
.../core/src/__tests__/branch-group-store.test.ts | 18 ++++
packages/core/src/__tests__/task-merge.test.ts | 18 ++++
packages/core/src/index.ts | 1 +
packages/core/src/mission-store.ts | 13 +++
packages/core/src/store.ts | 17 ++++
packages/core/src/task-merge.ts | 8 ++
.../dashboard/src/__tests__/mission-e2e.test.ts | 98 ++++++++++++++++--
.../src/__tests__/routes-planning.test.ts | 109 ++++++++++++++++++++-
packages/dashboard/src/planning.ts | 1 +
.../src/routes/register-planning-subtask-routes.ts | 28 ++++++
packages/dashboard/src/subtask-breakdown.ts | 1 +
.../branch-group-automerge-precedence.test.ts | 102 +++++++++++++++++++
packages/engine/src/group-merge-coordinator.ts | 31 +++++-
packages/engine/src/merger.ts | 30 ++++--
18 files changed, 466 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-5783
Fusion-Task-Lineage: 74327984-b14f-445c-81cd-5295ee562382
2026-05-31 15:17:11 -07:00
gsxdsm
c8ae94db6b
FN-5785: fix branch group PR typecheck errors
...
Export BranchGroupPrState from @fusion/core, narrow task.branchContext
before group lookup, and populate the full PrInfo shape when
reconstructing the group PR from branch_groups metadata.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 14:01:50 -07:00
gsxdsm
e2101ea721
FN-5785: add group-level pull request support for branch_groups
...
Add a single group-level pull request path for branch_groups in task lifecycle workflows.
- add CLI task lifecycle logic to create one pull request per branch group
- update task lifecycle tests to cover grouped pull request behavior and edge cases
- document the pull/merge dashboard behavior update
- add a changeset for @runfusion/fusion patch release
Files changed:
.changeset/fn-5785-group-pr.md | 7 +
docs/dashboard-guide.md | 1 +
.../src/commands/__tests__/task-lifecycle.test.ts | 294 ++++++++++++++++++++-
packages/cli/src/commands/task-lifecycle.ts | 156 ++++++++++-
4 files changed, 443 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-5785
Fusion-Task-Lineage: 3100dedd-5b41-4cde-a56c-291410563568
2026-05-31 13:50:23 -07:00
gsxdsm
0c425788cb
FN-5782: wire branch groups into merge routing
...
Connect branch_group metadata through planning and merge execution for grouped integration branches.
- propagate `branchGroup` and `branchGroupName` through core store types, merge metadata, and CLI task lifecycle APIs
- add merge coordination that computes branch-group plans and routes grouped tasks via `group-merge-coordinator`
- extend finalize-plan, merger, and reliability tests to cover grouped merge routing and integration behavior
- document the architecture update and add a patch changeset for `@runfusion/fusion`
Files changed:
.changeset/fn-5782-branch-group-merge.md | 7 +
docs/architecture.md | 2 +
packages/cli/src/commands/__tests__/task-lifecycle.test.ts | 64 ++++++++-
packages/cli/src/commands/task-lifecycle.ts | 4 +
packages/core/src/__tests__/branch-group-store.test.ts | 20 +++
packages/core/src/__tests__/task-merge.test.ts | 64 +++++++++
packages/core/src/store.ts | 22 ++-
packages/core/src/task-merge.ts | 26 +++-
packages/core/src/types.ts | 2 +-
packages/engine/src/__tests__/experiment-finalize-plan.test.ts | 33 ++++-
packages/engine/src/__tests__/group-merge-coordinator.test.ts | 62 +++++++++
packages/engine/src/__tests__/reliability-interactions/branch-group-merge-routing.test.ts | 153 +++++++++++++++++++++
packages/engine/src/experiment/finalize-plan.ts | 62 +++++++--
packages/engine/src/group-merge-coordinator.ts | 51 +++++++
packages/engine/src/index.ts | 4 +
packages/engine/src/merger.ts | 47 ++++++-
16 files changed, 601 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-5782
Fusion-Task-Lineage: 0a70cfaa-2379-4955-b295-64de1f3093c8
2026-05-31 13:50:23 -07:00
gsxdsm
f1aba5b534
Merge pull request #1226 from plarson/fix/dirty-integration-merge-block
...
fix(engine): block dirty integration merge landings
2026-05-31 13:49:58 -07:00
Phil Larson
3dee395d67
fix(engine): block dirty integration merge landings
...
Refuse AI merge landing on a checked-out dirty integration worktree by default. This prevents Fusion from stashing/restoring unrelated project-root edits into main and then marking tasks done against contaminated state.
Fusion-Task-Id: FN-5780
2026-05-31 13:12:13 -07:00
gsxdsm
53e0741aca
FN-5787: normalize streamed sentence spacing in event bridge
...
Normalize missing sentence spaces in streamed droid deltas for chat and agent logs.
- add targeted delta normalization for punctuation-to-sentence-start boundaries
- apply normalization to both text and thinking streaming deltas, including cross-block fallback context
- add regression tests covering repaired boundaries and non-regression cases (lowercase/property access/existing spaces)
Files changed:
plugins/fusion-plugin-droid-runtime/src/__tests__/event-bridge.test.ts | 118 +++++++++++++++++++++
plugins/fusion-plugin-droid-runtime/src/event-bridge.ts | 57 +++++++++-
2 files changed, 171 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-5787
Fusion-Task-Lineage: 21a91f46-2269-4406-bce6-b19a57f445e0
2026-05-31 11:55:11 -07:00
gsxdsm
fca6e7f7db
FN-5781: move settings Help link to footer version row
...
Relocate the Settings Help/discussions action from the header controls to the footer version area for clearer placement.
- Remove the Help button from the settings header action group and keep Star/Discord there.
- Add the Help link beside the footer version/update-check section with the same hardened external-link attributes.
- Update Settings modal styling for the new footer help placement and spacing behavior.
- Adjust Settings modal and mobile CSS tests to assert the new Help location and height contract selectors.
Files changed:
.../dashboard/app/components/SettingsModal.css | 12 ++++++++----
.../dashboard/app/components/SettingsModal.tsx | 22 +++++++++++-----------
.../components/__tests__/SettingsModal.test.tsx | 12 +++++++++++-
.../components/__tests__/settings-mobile.test.tsx | 4 ++--
4 files changed, 32 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-5781
Fusion-Task-Lineage: 90fe2f30-c2fe-438b-b486-3b6ef14e21a6
2026-05-31 11:55:11 -07:00
gsxdsm
b6b902485e
FN-5779: restore Star on GitHub header button
...
Restore the Settings header GitHub star CTA while removing its configurability.
- keep the Star on GitHub link in Settings header with refreshed split-pill styling and alignment
- reintroduce GitHub star count fetching/caching and click-tracking helpers used by the header control
- update Settings modal header-action test expectations to include the GitHub star link
- revise the changeset note to reflect removing only the showGitHubStarButton setting/toggle
Files changed:
.changeset/FN-5777-removal.md | 4 +-
packages/dashboard/app/components/SettingsModal.css | 51 ++++++++-
packages/dashboard/app/components/SettingsModal.tsx | 118 ++++++++++++++++++++-
packages/dashboard/app/components/__tests__/SettingsModal.test.tsx | 4 +-
4 files changed, 170 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5779
Fusion-Task-Lineage: f485a062-6110-4a79-b42d-70710e3ce5da
2026-05-31 11:55:11 -07:00
gsxdsm
793da2c749
FN-5780: inherit source GitHub tracking when refining tasks
...
Preserve GitHub linking intent when creating refinement tasks from completed work.
- Set refinement `githubTracking` from the source task state during `refineTask`
- Opt out refinements when the source task is unlinked or explicitly disabled
- Carry forward `enabled` and optional `repoOverride` for linked sources without copying source issue metadata
- Add store-level tests covering unlinked, disabled, linked, and issue-only source tracking states
- Document refinement GitHub tracking inheritance behavior in task-management docs
- Add a patch changeset for `@runfusion/fusion`
Files changed:
.changeset/fn-5780-refine-github-tracking.md | 5 ++
docs/task-management.md | 1 +
packages/core/src/__tests__/store-ops.test.ts | 71 +++++++++++++++++++++++++++
packages/core/src/store.ts | 12 +++++
4 files changed, 89 insertions(+)
Fusion-Task-Id: FN-5780
Fusion-Task-Lineage: 88c1ce01-6efd-48c1-bbdd-704a821055d7
2026-05-31 11:55:11 -07:00
gsxdsm
9f29935525
FN-5778: throttle OAuth expiry notifications per provider
...
Limit repeated oauth-token-expired alerts by enforcing a per-provider minimum notification interval.
- add a 12-hour default min notify interval to OAuthExpiryMonitor and track last notification time by provider
- skip dispatch when a provider was already notified within the configured window, even if expiry timestamps change
- clear per-provider notification timestamps when no OAuth providers are configured
- add regression coverage for 12-hour throttling and changed-expiry throttling behavior
- add a patch changeset for @runfusion/fusion documenting the notification throttle
Files changed:
.changeset/fn-5778-oauth-notify-throttle.md | 5 +++
packages/engine/src/notification/__tests__/oauth-expiry-monitor.test.ts | 40 ++++++++++++++++++++++
packages/engine/src/notification/oauth-expiry-monitor.ts | 15 ++++++++
3 files changed, 60 insertions(+)
Fusion-Task-Id: FN-5778
Fusion-Task-Lineage: a9741101-e8da-4dae-ac7f-817e564b4f23
2026-05-31 11:55:11 -07:00
gsxdsm
62bc1e4458
FN-5777: remove GitHub star setting and button
...
Remove the dashboard setting and UI entry points for the GitHub star prompt.
- Remove the Star on GitHub option from settings state types and schema definitions.
- Delete SettingsModal UI, handlers, and styles tied to the star button and related layout.
- Update SettingsModal tests and add a changeset documenting the patch release impact.
Files changed:
.changeset/FN-5777-removal.md | 7 ++
packages/core/src/settings-schema.ts | 1 -
packages/core/src/types.ts | 4 -
.../dashboard/app/components/SettingsModal.css | 51 +-------
.../dashboard/app/components/SettingsModal.tsx | 137 +--------------------
.../components/__tests__/SettingsModal.test.tsx | 5 +-
6 files changed, 13 insertions(+), 192 deletions(-)
Fusion-Task-Id: FN-5777
Fusion-Task-Lineage: 16367ba6-ad22-4ba0-a033-005ccc420c19
2026-05-31 11:55:10 -07:00
gsxdsm
69f22c0140
Merge pull request #1221 from plarson/fix/incomplete-stuck-loop-parking
...
fix(engine): requeue incomplete stuck-loop exhaustion
2026-05-31 11:54:47 -07:00
Phil Larson
a7bd44ca96
fix(engine): split stuck requeue fallback handling
2026-05-31 10:57:54 -07:00
Phil Larson
5a163ce07a
fix(engine): resolve stuck-loop requeue review feedback
2026-05-31 10:50:58 -07:00
gsxdsm
93e8a5f78a
FN-5775: persist AI merge agent output in merger logs
...
Ensure AI merger runs persist agent output signals so merge activity is visible in task logs.
- Persist merger agent text, thinking, tool start, and tool result output via AgentLogger in AI merge/review sessions.
- Add regression coverage validating persisted merger agent logs and prompt/commit guidance behavior.
- Add a patch changeset for @runfusion/fusion describing AI merge log persistence.
Files changed:
.changeset/fn-5775-ai-merge-logs.md | 5 ++
packages/engine/src/__tests__/merger-ai.test.ts | 62 +++++++++++++++++++++++++
packages/engine/src/merger-ai.ts | 40 +++++++++++++++-
3 files changed, 105 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5775
Fusion-Task-Lineage: 7e1b803f-135a-412e-81d9-bad0aa655855
2026-05-31 08:50:23 -07:00
Phil Larson
5861884456
fix(engine): requeue incomplete stuck-loop exhaustion
2026-05-31 08:35:36 -07:00
gsxdsm
b154844286
FN-5772: re-anchor nested task worktree paths
...
Fix executor worktree invariant handling by re-anchoring nested task worktree paths to the actual git top-level.
- add nested worktree root detection that only re-anchors when the top-level is a registered worktree inside the configured worktrees directory
- update executor liveness gating and verifyWorktreeInvariants to persist re-anchored task.worktree values and retry checks safely
- emit a new run-audit git mutation (worktree:reanchored) and add reliability tests/docs coverage plus a patch changeset
Files changed:
.changeset/fn-5772-worktree-reanchor.md | 7 +++
docs/architecture.md | 4 +-
packages/engine/src/__tests__/reliability-interactions/executor-liveness-gate.test.ts | 33 ++++++++++
packages/engine/src/__tests__/verify-worktree-invariants-missing.test.ts | 62 +++++++++++++++++-
packages/engine/src/__tests__/worktree-reanchor-nested-root.test.ts | 73 ++++++++++++++++++++++
packages/engine/src/executor.ts | 54 ++++++++++++++--
packages/engine/src/run-audit.ts | 1 +
packages/engine/src/worktree-pool.ts | 63 +++++++++++++++++++
8 files changed, 290 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5772
Fusion-Task-Lineage: 475de161-7bc1-4359-bb76-20c4c07196d9
2026-05-31 08:32:01 -07:00
gsxdsm
5b4eecb5d4
FN-5768: add dual-observe workflow parity instrumentation
...
Add default-off workflow interpreter dual-observe parity instrumentation across core and engine.
- add workflow parity comparison primitives and exports in @fusion/core
- add engine parity observer seam with experimental flag and public exports
- add regression coverage for parity contracts and dual-observe reliability behavior
- document the dual-observe parity mode, events, and contract in workflow docs
- add a patch changeset for @runfusion/fusion release notes
Files changed:
.changeset/fn-5768-workflow-parity-observer.md | 9 +
docs/workflow-steps.md | 18 ++
.../core/src/__tests__/workflow-parity.test.ts | 143 ++++++++++++++
packages/core/src/index.ts | 18 ++
packages/core/src/workflow-parity.ts | 205 +++++++++++++++++++++
.../workflow-interpreter-dual-observe.test.ts | 144 +++++++++++++++
packages/engine/src/index.ts | 7 +
packages/engine/src/workflow-parity-observer.ts | 116 ++++++++++++
8 files changed, 660 insertions(+)
Fusion-Task-Id: FN-5768
Fusion-Task-Lineage: fb4f8111-f48d-482c-b1d9-9106c43c829a
2026-05-31 08:32:01 -07:00
gsxdsm
5c33ab133e
FN-5773: add safe reconcile-done endpoint for shipped mission features
...
Add a guarded API path to reconcile mission features to done after delivery tasks have already shipped.
- add POST /api/missions/features/:featureId/reconcile-done with validation for feature id, task id, task linkage, and terminal task columns (done/archived)
- keep active-work protections by rejecting non-terminal task columns and mismatched existing task links with clear conflict responses
- extend mission API e2e coverage for success and failure cases, including done/archived reconciliation, missing inputs, invalid ids, missing tasks/features, and mismatched links
- document reconcile-done behavior, safety gates, and error semantics in missions docs
Files changed:
docs/missions.md | 31 ++++++
packages/dashboard/src/__tests__/mission-e2e.test.ts | 105 +++++++++++++++++++++
packages/dashboard/src/mission-routes.ts | 59 ++++++++++++
3 files changed, 195 insertions(+)
Fusion-Task-Id: FN-5773
Fusion-Task-Lineage: c638b43f-d66f-479a-82c1-a9378a628ca3
2026-05-31 08:32:01 -07:00
gsxdsm
ba81d1f0ac
FN-5767: wire workflow graph executor to legacy seams
...
Complete Phase 3 interpreter parity by routing workflow graph execution through legacy seam handlers.
- Simplify workflow IR schema and built-in coding workflow to seam-based v1 nodes/edges.
- Add workflow node handler layer with default legacy seam adapters and dedicated handler/parity tests.
- Update engine exports/executor behavior for conditional traversal, retries, outcome context, and parity assertions.
- Refresh core workflow IR tests/coverage for the new shape (including seam-stage expectations without triage) and remove obsolete schema fixture test.
Files changed:
.changeset/fn-5767-interpreter-parity.md | 5 +
.github/actions/setup-node-pnpm/action.yml | 41 +---
docs/workflow-steps.md | 17 ++
.../__tests__/builtin-coding-workflow-ir.test.ts | 25 +--
packages/core/src/__tests__/workflow-ir.test.ts | 70 ------
packages/core/src/builtin-coding-workflow-ir.ts | 71 ++----
packages/core/src/index.ts | 31 +--
packages/core/src/workflow-ir-types.ts | 91 +-------
packages/core/src/workflow-ir.ts | 246 ++-------------------
.../workflow-graph-executor-handlers.test.ts | 201 +++++++++++++++++
.../workflow-graph-executor-parity.test.ts | 126 ++++++++---
.../src/__tests__/workflow-node-handlers.test.ts | 50 +++++
packages/engine/src/index.ts | 16 +-
packages/engine/src/workflow-graph-executor.ts | 205 ++++++++++++-----
packages/engine/src/workflow-node-handlers.ts | 56 +++++
15 files changed, 661 insertions(+), 590 deletions(-)
Fusion-Task-Id: FN-5767
Fusion-Task-Lineage: 0c68586e-2709-4521-a2ce-938ba1006ae0
2026-05-31 08:32:01 -07:00
gsxdsm
1edbb54fce
FN-5766: add flagged-off workflow graph executor scaffold
...
Add the Phase 2 workflow-graph interpreter scaffold and builtin coding IR wiring while keeping execution behavior unchanged by default.
- add BUILTIN_CODING_WORKFLOW_IR and builder in @fusion/core with coverage tests
- export new coding workflow IR APIs from core index
- add WorkflowGraphExecutor scaffold in @fusion/engine plus parity-focused test coverage
- document the flagged-off interpreter scaffold, parity gate, and v1 IR gap reconciliation in workflow docs
- include a changeset for published @runfusion/fusion
Files changed:
.../fn-5766-workflow-graph-executor-scaffold.md | 11 +++
docs/workflow-steps.md | 27 +++++++
.../__tests__/builtin-coding-workflow-ir.test.ts | 34 +++++++++
packages/core/src/builtin-coding-workflow-ir.ts | 60 ++++++++++++++++
packages/core/src/index.ts | 4 ++
.../workflow-graph-executor-parity.test.ts | 32 +++++++++
packages/engine/src/index.ts | 7 ++
packages/engine/src/workflow-graph-executor.ts | 82 ++++++++++++++++++++++
8 files changed, 257 insertions(+)
Fusion-Task-Id: FN-5766
Fusion-Task-Lineage: 4bbef713-a415-4d42-a20b-9ae4f3235419
2026-05-31 08:32:01 -07:00
gsxdsm
3d22a98cf2
FN-5761: add workflow IR parsing and serialization contract
...
Implement the v1 workflow IR contract in core with validation, serialization, and coverage.
- add workflow IR type definitions, parser, serializer, and structured validation errors in @fusion/core
- export workflow IR APIs from core index and add comprehensive unit tests for valid/invalid shapes and metadata parsing
- document the workflow IR contract in workflow step docs and include release tracking via changesets, including plugin-sdk DOM lib prerequisite for Windows compilation
Files changed:
.changeset/fn-5761-workflow-ir-contract.md | 5 +
.changeset/windows-release-plugin-sdk-dom-lib.md | 5 +
docs/workflow-steps.md | 24 +++
packages/core/src/__tests__/workflow-ir.test.ts | 70 +++++++
packages/core/src/index.ts | 15 ++
packages/core/src/workflow-ir-types.ts | 103 ++++++++++
packages/core/src/workflow-ir.ts | 244 +++++++++++++++++++++++
packages/plugin-sdk/tsconfig.json | 7 +-
8 files changed, 472 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-5761
Fusion-Task-Lineage: 2cd5491e-89c8-418c-a913-76d0c13b466c
2026-05-31 08:32:01 -07:00
gsxdsm
acad46cc10
FN-5764: expose mission assertion backfill through API and CLI
...
Expose mission assertion backfill controls and run paths across engine, API, and CLI surfaces.
- add mission assertion backfill gating classification and reliability coverage for assertion-linked validation recovery
- add dashboard mission routes plus legacy API coverage and e2e checks for running assertion backfill
- expose new extension tool support and update Fusion skill docs/capability references
- add a changeset for @runfusion/fusion and refresh mission documentation
Files changed:
.changeset/fn-5764-mission-backfill-assertions.md | 9 ++
docs/missions-completion-contract.md | 7 +-
docs/missions.md | 7 +-
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 9 ++
.../skill/fusion/references/fusion-capabilities.md | 1 +
packages/cli/src/__tests__/extension.test.ts | 41 +++++++
packages/cli/src/extension.ts | 43 +++++++
.../dashboard/app/__tests__/api-missions.test.ts | 44 +++++++
packages/dashboard/app/api/legacy.ts | 34 ++++++
.../dashboard/src/__tests__/mission-e2e.test.ts | 127 +++++++++++++++++++++
packages/dashboard/src/mission-routes.ts | 29 +++++
.../mission-validation-trigger-gap.test.ts | 66 +++++++++++
.../workflow-step-readonly-allowlist.test.ts | 1 +
packages/engine/src/gating-classifications.ts | 1 +
15 files changed, 418 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5764
Fusion-Task-Lineage: b16123c2-7cfe-4b17-a899-4e30044a7a49
2026-05-31 08:32:01 -07:00
gsxdsm
ec92434f4c
FN-5765: move settings version check from header to footer
...
Relocate Settings version/update UI into the modal footer to reduce header crowding.
- Remove the version/update-check control block from the Settings modal header.
- Add a dedicated footer version container and keep the update-check action/result rendering there.
- Update Settings modal CSS for the new footer layout and mobile wrapping behavior.
- Extend mobile tests to verify footer placement and update-check button clickability.
Files changed:
packages/dashboard/app/components/SettingsModal.css | 25 +++++++--
packages/dashboard/app/components/SettingsModal.tsx | 64 +++++++++++-----------
packages/dashboard/app/components/__tests__/settings-mobile.test.tsx | 27 ++++++++-
3 files changed, 77 insertions(+), 39 deletions(-)
Fusion-Task-Id: FN-5765
Fusion-Task-Lineage: 97923f08-e787-4274-a4ce-8b615b909468
2026-05-31 08:32:01 -07:00
gsxdsm
0ffe7f0604
FN-5762: add mission hierarchy delete tools with linked-task guards
...
Add mission delete tooling across core, dashboard routes, and CLI extension surfaces.
- Add `fn_feature_delete`, `fn_slice_delete`, and `fn_milestone_delete` tools to the CLI extension with `force` override support.
- Enforce live-task linkage guards for feature/slice/milestone deletes in mission store logic and expose conflict behavior through mission routes.
- Extend coverage and docs for delete behavior, allowlist/gating metadata, and published Fusion skill/tool references.
Files changed:
.changeset/fn-5762-feature-delete.md | 7 +
docs/missions.md | 15 +++
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 27 ++++
.../skill/fusion/references/fusion-capabilities.md | 3 +
packages/cli/src/__tests__/extension.test.ts | 34 +++++
packages/cli/src/extension.ts | 106 +++++++++++++++
packages/core/src/__tests__/mission-store.test.ts | 146 ++++++++++++++++++++-
packages/core/src/mission-store.ts | 98 ++++++++++++--
.../dashboard/src/__tests__/mission-e2e.test.ts | 62 +++++++--
packages/dashboard/src/mission-routes.ts | 42 +++++-
.../workflow-step-readonly-allowlist.test.ts | 3 +
packages/engine/src/gating-classifications.ts | 3 +
13 files changed, 514 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-5762
Fusion-Task-Lineage: 9c6eceff-dcb4-4a2b-90c6-59cb0228ca6d
2026-05-31 08:32:01 -07:00
gsxdsm
93d3a58cb8
FN-5763: add Discord link next to GitHub star button
...
Add a Discord CTA in the Settings header alongside the existing GitHub star action.
- Add a Discord header action/link in SettingsModal next to the GitHub star button
- Update SettingsModal styles to support the additional header action
- Extend SettingsModal tests to cover rendering and behavior of the new Discord link
Files changed:
packages/dashboard/app/components/SettingsModal.css | 2 ++
packages/dashboard/app/components/SettingsModal.tsx | 13 ++++++++++++-
.../app/components/__tests__/SettingsModal.test.tsx | 14 +++++++++++++-
3 files changed, 27 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5763
Fusion-Task-Lineage: 758eddf8-246c-41be-9742-a9d5b4b0eb17
2026-05-31 08:32:01 -07:00
gsxdsm
4b8650cac2
Merge pull request #1205 from plarson/fix/incomplete-stuck-loop-parking
...
fix: park incomplete stuck-loop exhaustions
2026-05-30 23:01:37 -07:00
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
Phil Larson
ce6ebb7b8e
fix(engine): preserve parked progress through stale-spec checks
2026-05-30 21:53:00 -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
Phil Larson
ab38ee09e0
fix(engine): park incomplete stuck-loop exhaustions
2026-05-30 20:21:35 -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
c0b749cee9
Merge pull request #1203 from plarson/fix/origin-main-contamination-integrated
...
fix: treat origin/main commits as integrated in contamination checks
2026-05-30 18:43:40 -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
eba6a72594
FN-5757: prevent chat message list from snapping to top
...
Keep chat scroll position stable when stale top snapshots are captured during mobile message updates.
- Capture scroll anchors from the first visible message instead of always sampling the first DOM node
- Ignore stale or likely-invalid zero-position snapshots before attempting scroll restoration
- Guard bottom anchoring from interrupting user scroll unless explicitly forced and add regression coverage for stale snapshot behavior
Files changed:
packages/dashboard/app/components/ChatView.css | 11 +++++-
packages/dashboard/app/components/ChatView.tsx | 33 +++++++++++++----
packages/dashboard/app/components/__tests__/ChatView.scroll-to-top.test.tsx | 41 ++++++++++++++++++++++
3 files changed, 78 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5757
Fusion-Task-Lineage: 4e4f6843-ba70-40da-8d16-358bdfcc7b09
2026-05-30 16:48:13 -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
76e3cde532
Merge pull request #1202 from plarson/fix/skip-blocked-todo-reclaim
...
fix: skip blocked todo tasks during self-owned reclaim
2026-05-30 16:33:52 -07:00