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
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>
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
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
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
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
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
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
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
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
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
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
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
Fixes typecheck failure — the new task:near-duplicate-flagged
ActivityEventType was missing from the exhaustive Record maps in
ActivityFeed and ActivityLogModal.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add the FN-5756 ratification addendum to the executor/merger decoupling RFC.
- Record approval for dual-run dependency satisfaction via in-review or completion_handoff_accepted marker
- Require audit diff logging when legacy and new dependency signals disagree during dual-run
- Record approval to make merge back-pressure branch-group aware by default with global safety caps retained
Files changed:
docs/rfcs/FN-5719-decouple-executor-merger.md | 4 ++++
1 file changed, 4 insertions(+)
Fusion-Task-Id: FN-5756
Fusion-Task-Lineage: 54077cc9-a4ae-4462-99b0-4c28d06652cc