gsxdsm
51fc34f585
FN-8465: align skill toggles with canonical paths
...
Align session skill filtering with Skills-view path identities.
- Match session inclusions, exclusions, and diagnostics by skills-relative body path.
- Ignore stale flat toggle keys for categorized skills and cover the display/session invariant.
- Document the behavior and add a patch changeset.
Files changed:
.../fn-8465-legacy-skill-toggle-path-match.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../legacy-flat-skill-toggle-session-divergence.md | 41 ++++++++
.../engine/src/__tests__/skill-resolver.test.ts | 73 ++++++++++++++
packages/engine/src/skill-resolver.ts | 105 ++++++++++++++-------
5 files changed, 191 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-8465
Fusion-Task-Lineage: 042fc7f4-08a3-42f4-9a6f-52f066d585e8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 19:17:20 -07:00
gsxdsm
648971634a
FN-8461: suppress spurious workflow skill-load warnings
...
Prevent optional CE configuration from producing warnings when a requested plugin skill is discoverable.
- Merge plugin skill body directories with the optional CE discovery root
- Warn only when the named workflow skill lacks every viable discovery source
- Cover plugin, CE-namespaced, and unrelated-skill discovery cases
Files changed:
.changeset/fn-8461-skill-load-warning.md | 7 +
docs/workflow-steps.md | 8 +-
.../__tests__/ce-workflow-step-executor.test.ts | 149 ++++++++++++++++++++-
.../engine/src/__tests__/executor-test-helpers.ts | 1 +
packages/engine/src/executor.ts | 53 ++++++--
5 files changed, 200 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8461
Fusion-Task-Lineage: ef743df4-8bd2-44e6-9498-f6448738d6dc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 19:05:48 -07:00
gsxdsm
2bf3d81a76
fix(dashboard): restore accurate executing/total column headers
...
Show live agents over card count (e.g. 3/4) using the shared Running
predicate so unpaused WIP counts without sessionFile, and document the
badge semantics for operators.
2026-07-21 18:59:52 -07:00
gsxdsm
771fe71760
fix(dashboard): restore board card counts and WIP Running totals
...
FN-8453 column headers showed active/total (always 0/N on Todo) and Running
required sessionFile, which is not a DB/board field, so footer capacity
undercounted live WIP. Show lane card totals again and count unpaused WIP as
Running without durable session/checkout evidence.
2026-07-21 18:52:59 -07:00
gsxdsm
d486bf49dd
FN-8456: add Dawn dashboard color theme
...
Add a persisted Dawn indigo-and-amber color theme across dashboard and desktop first paint.
- Register Dawn in theme persistence, selector metadata, and pre-hydration validation.
- Define dark and light Dawn tokens plus mode-aware selector swatches.
- Cover persistence, theme registries, token completeness, and selector previews with tests.
Files changed:
.changeset/fn-8456-dawn-theme.md | 7 ++
docs/dashboard-guide.md | 3 +-
docs/settings-reference.md | 2 +-
.../core/src/__tests__/global-settings.test.ts | 8 ++
packages/core/src/types/execution-and-ui.ts | 2 +
.../dashboard/app/__tests__/dawn-theme.test.ts | 98 ++++++++++++++++++++++
.../dashboard/app/components/ThemeSelector.css | 14 ++++
.../components/__tests__/ThemeDropdown.test.tsx | 22 ++---
.../components/__tests__/ThemeSelector.test.tsx | 2 +-
.../__tests__/CommandCenterControls.test.tsx | 7 +-
packages/dashboard/app/components/themeOptions.ts | 1 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 12 +++
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 86 ++++++++++++++++++-
packages/desktop/src/renderer/index.html | 1 +
15 files changed, 248 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-8456
Fusion-Task-Lineage: 44d9eb05-210d-4be8-8d35-c66ac4857194
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 18:33:22 -07:00
gsxdsm
eef5eb751e
FN-8453: unify concurrency accounting and indicators
...
Unify live-agent capacity accounting across engine and dashboard.
- Derive Running and Waiting from workflow traits and durable agent liveness.
- Apply unified limits to planner, executor, and merge admission while updating dashboard indicators.
- Remove duplicate concurrency controls and document the unified operator model.
Files changed:
.changeset/fn-8453-unified-concurrency.md | 7 +
docs/agent-tool-surface-full-loop.md | 4 +-
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 4 +-
docs/settings-reference.md | 4 +-
.../skill/fusion/references/fusion-capabilities.md | 4 +-
.../core/src/__tests__/live-agent-count.test.ts | 91 ++++----
packages/core/src/index.gate.ts | 6 +
packages/core/src/index.ts | 6 +
packages/core/src/live-agent-count.ts | 107 ++++++---
packages/dashboard/app/App.tsx | 28 ++-
packages/dashboard/app/api/board-workflows.ts | 2 +
packages/dashboard/app/components/Column.tsx | 6 +-
.../dashboard/app/components/EngineControlMenu.tsx | 26 ---
.../dashboard/app/components/ExecutorStatusBar.tsx | 38 ++-
.../dashboard/app/components/SettingsModal.tsx | 1 -
.../app/components/__tests__/Column.test.tsx | 6 +-
.../__tests__/EngineControlMenu.test.tsx | 10 +-
.../__tests__/ExecutorStatusBar.test.tsx | 32 ++-
.../command-center/CommandCenterControls.tsx | 26 ---
.../settings/sections/SchedulingSection.search.ts | 9 -
.../settings/sections/SchedulingSection.tsx | 13 --
.../app/hooks/__tests__/useExecutorStats.test.ts | 12 +-
packages/dashboard/app/hooks/useExecutorStats.ts | 50 ++--
.../src/__tests__/project-store-resolver.test.ts | 11 +-
packages/dashboard/src/project-store-resolver.ts | 14 +-
.../register-config-mcp-pi-settings-routes.ts | 3 +-
packages/engine/src/__tests__/concurrency.test.ts | 123 +++++++++-
.../engine/src/__tests__/project-engine.test.ts | 34 +++
packages/engine/src/__tests__/triage.test.ts | 7 +-
packages/engine/src/concurrency.ts | 207 ++++++++++++++++-
packages/engine/src/project-engine.ts | 151 ++++++++++--
packages/engine/src/scheduler.ts | 82 ++++++-
packages/engine/src/triage.ts | 254 +++++++++++++--------
.../lib/dashboard-browser-safe-core-modules.json | 5 +
35 files changed, 991 insertions(+), 394 deletions(-)
Fusion-Task-Id: FN-8453
Fusion-Task-Lineage: 12cfa5df-675d-4fce-b17e-932376544239
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 15:30:31 -07:00
gsxdsm
0908e75290
FN-8455: add Calm dashboard color theme
...
Add a persisted Calm theme with slate, sage, and misty light palettes.
- Register Calm across core settings, dashboard selectors, and web/desktop first-paint validators.
- Define Calm theme tokens and selector swatches for dark and light modes.
- Cover persisted selection, previews, and bootstrap validation with tests.
- Document the new theme and add a minor release changeset.
Files changed:
.changeset/fn-8455-calm-theme.md | 7 ++
docs/dashboard-guide.md | 3 +-
docs/settings-reference.md | 2 +-
packages/core/src/__tests__/global-settings.test.ts| 8 ++
packages/core/src/types/execution-and-ui.ts | 2 +
packages/dashboard/app/__tests__/calm-theme.test.ts| 98 ++++++++++++++++++++++
packages/dashboard/app/components/ThemeSelector.css| 14 ++++
packages/dashboard/app/components/__tests__/ThemeDropdown.test.tsx | 22 ++---
packages/dashboard/app/components/__tests__/ThemeSelector.test.tsx | 2 +-
packages/dashboard/app/components/command-center/__tests__/CommandCenterControls.test.tsx | 2 +-
packages/dashboard/app/components/themeOptions.ts | 1 +
packages/dashboard/app/hooks/__tests__/useTheme.test.ts | 12 +++
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 86 ++++++++++++++++++-
packages/desktop/src/renderer/index.html | 1 +
15 files changed, 245 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-8455
Fusion-Task-Lineage: c2c4624e-7012-491d-bd79-d3de570018f7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 15:04:07 -07:00
gsxdsm
527f734ad4
FN-8454: add Aurora dashboard theme
...
Add the Aurora color theme across dashboard and desktop theme surfaces.
- Register Aurora as a selectable global theme with matching UI styles and metadata
- Load Aurora theme data in dashboard and desktop entry points
- Document the theme and cover selection, token, and settings behavior
Files changed:
.changeset/fn-8454-aurora-theme.md | 7 ++
docs/dashboard-guide.md | 3 +-
docs/settings-reference.md | 2 +-
.../core/src/__tests__/global-settings.test.ts | 8 ++
packages/core/src/types/execution-and-ui.ts | 2 +
.../dashboard/app/__tests__/aurora-theme.test.ts | 98 ++++++++++++++++++++++
.../dashboard/app/components/ThemeSelector.css | 14 ++++
.../components/__tests__/ThemeDropdown.test.tsx | 51 ++++++++++-
.../components/__tests__/ThemeSelector.test.tsx | 2 +-
.../__tests__/CommandCenterControls.test.tsx | 2 +-
packages/dashboard/app/components/themeOptions.ts | 1 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 12 +++
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 91 ++++++++++++++++++++
packages/desktop/src/renderer/index.html | 1 +
15 files changed, 290 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8454
Fusion-Task-Lineage: cbae0854-b884-4744-a2fa-f738a71ceb32
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 13:28:24 -07:00
gsxdsm
83209e64dc
fix(workflows): align stages with board columns ( #2378 )
...
## Summary
The Coding (Ideas) workflow now behaves like the board it presents:
Ideas stays inert, Todo owns planning and plan review, In progress owns
implementation, and In review owns code review and merge. The restored
preset is intentionally limited to that five-stage path, while the
existing Coding workflow remains unchanged.
Workflow execution now suspends at Todo→In progress instead of running
the implementation node early. A durable, single-owner continuation
records the exact resume node and survives process restarts; the
scheduler remains the only component allowed to admit the task into WIP.
Disabled optional review groups traverse the same boundary without
invoking a reviewer, avoiding the prior stuck-task behavior.
Workflow validation also rejects capacity holds with no reachable WIP
destination, so deterministic lifecycle deadlocks fail at authoring time
rather than after a task is running.
Session-settled decisions carried from planning: columns are execution
invariants, scheduler-owned WIP admission is preserved, the existing
Coding (Ideas) preset is restored and simplified, and invalid release
topology is rejected (user-approved).
## Validation
- `pnpm lint`
- `pnpm verify:fast`
- `pnpm test:gate` (296 engine, 128 PostgreSQL core, and 63 CI-shape
tests)
- Focused workflow lifecycle tests (106 assertions)
- PostgreSQL regression coverage proves atomic continuation replacement
and database rejection of a second active owner
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added durable, resumable workflow execution across capacity boundaries
(including explicit suspend/resume at the correct node).
* Introduced Todo “plan review” workflow continuations and automated
planning/capacity draining.
* Restored Coding (Ideas) as a selectable built-in and updated its lane
placement; improved optional-step group enablement support.
* **Bug Fixes**
* User moves back to Todo now cancels active workflow continuations.
* Rejected workflow boundary transitions now surface as errors (instead
of silently continuing).
* Workflows with undriveable capacity-hold configurations are now
rejected.
* **Tests / Data**
* Expanded coverage for workflow suspension, continuations, and
continuation replacement; updated database schema to persist
continuation metadata and enforce single active continuation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-21 12:17:47 -07:00
gsxdsm
5f0502e166
FN-8452: reject invalid update flags and announce beta releases
...
Make update commands fail clearly on invalid arguments while helping stable users discover newer beta releases.
- Parse update and upgrade options strictly, rejecting unknown, duplicate, and malformed flags before running an update
- Show a live-registry beta availability notice for stable human-readable output without affecting JSON or cached results
- Add CLI coverage, beta bootstrap documentation, and a patch changeset
Files changed:
.changeset/fn-8452-update-unknown-flags.md | 7 +
RELEASING.md | 2 +-
docs/cli-reference.md | 4 +
docs/getting-started.md | 2 +
packages/cli/src/__tests__/bin-update-args.test.ts | 75 ++++++++++
packages/cli/src/bin.ts | 25 +---
packages/cli/src/commands/__tests__/update.test.ts | 44 ++++++
packages/cli/src/commands/update.ts | 162 +++++++++++++++++++--
8 files changed, 285 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-8452
Fusion-Task-Lineage: b29a1ce5-5a40-40ec-ac18-07107fa18344
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 10:30:19 -07:00
gsxdsm
d83fae3fea
fix(FN-8446): keep Copilot banner dismissed
...
Preserve the browser dismissal across successful Copilot login events while retaining re-arm behavior for other OAuth providers.
2026-07-20 22:58:22 -07:00
gsxdsm
606c320c52
fix(FN-8442): make planning generation durable and detailed
...
Generate a reviewable initial plan before clarification, persist generation purpose across refreshes, and surface concrete changes and acceptance criteria with focused refinement choices.
2026-07-20 16:00:11 -07:00
gsxdsm
5dd62fe548
FN-8446: preserve dismissed OAuth re-login banners
...
Keep OAuth re-login dismissals sticky until the matching provider successfully authenticates.
- Preserve dismissed provider IDs across transient healthy auth-status responses.
- Re-arm only the provider identified by an OAuth re-login success event.
- Add Copilot and multi-provider regression coverage plus operator documentation.
- Add a patch changeset for the banner behavior fix.
Files changed:
.changeset/fn-8446-oauth-relogin-dismiss-sticky.md | 7 ++
docs/dashboard-guide.md | 2 +
.../app/components/OAuthReloginBanner.tsx | 30 +++---
.../__tests__/OAuthReloginBanner.test.tsx | 113 +++++++++++++++++++--
4 files changed, 128 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-8446
Fusion-Task-Lineage: 30574bbc-3efb-4f72-956b-b249d24251c9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 15:41:41 -07:00
gsxdsm
36b3180962
FN-8442: redesign planning mode as sequential Q&A
...
Guide planning through sequential question-and-answer turns before task creation.
- Add plan review, refinement, validation, creation retry, and idempotent task handoff states
- Atomically claim planning-session task creation and reconcile persisted task links
- Replace retired multi-pane planning UI and consolidate focused flow coverage
- Document the sequential planning workflow and mobile behavior
Files changed:
.changeset/fn-8442-planning-sequential-qa.md | 7 +
MOBILE.md | 2 +-
docs/dashboard-guide.md | 9 +-
packages/core/src/async-ai-session-store.ts | 82 +-
packages/core/src/index.ts | 4 +
packages/core/src/types.ts | 5 +
packages/dashboard/app/api/legacy.ts | 4 +-
.../dashboard/app/components/PlanningModeModal.css | 178 +-
.../dashboard/app/components/PlanningModeModal.tsx | 317 +-
.../__tests__/PlanningModeModal.initial.test.tsx | 993 +----
.../PlanningModeModal.planning-flow.test.tsx | 4377 +-------------------
.../PlanningModeModal.ui-interactions.test.tsx | 1276 +-----
.../__tests__/planning-e2e-plan-creation.test.ts | 25 +-
.../dashboard/src/__tests__/planning-infinite-interview.test.ts | 44 +-
.../src/__tests__/routes-planning.test.ts | 119 +-
packages/dashboard/src/ai-session-store.ts | 33 +
packages/dashboard/src/planning.ts | 140 +-
.../src/routes/register-planning-subtask-routes.ts | 132 +-
18 files changed, 649 insertions(+), 7098 deletions(-)
Fusion-Task-Id: FN-8442
Fusion-Task-Lineage: da2f335f-b1c9-411a-8575-31db20a2b8d5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 14:59:22 -07:00
gsxdsm
8c347981e4
FN-8439: align Planning Mode with workflow triage prompts
...
Planning Mode now uses the selected workflow's triage planning template with its interview adapter.
- Resolve planning prompts from workflow seams and explicit overrides
- Pass and persist the selected workflow for planning sessions
- Document the prompt behavior and cover prompt and UI request flow
Files changed:
.../fn-8439-planning-prompt-triage-template.md | 7 ++
docs/dashboard-guide.md | 2 +
packages/core/src/prompt-overrides.ts | 42 +-----------
packages/dashboard/app/api/legacy.ts | 3 +-
.../dashboard/app/components/PlanningModeModal.tsx | 3 +-
.../PlanningModeModal.planning-flow.test.tsx | 10 +++
packages/dashboard/app/utils/builtinPrompts.ts | 4 +-
.../__tests__/planning-prompt-resolution.test.ts | 40 ++++++++++++
packages/dashboard/src/planning.ts | 74 ++++++++++++++++++----
.../src/routes/register-planning-subtask-routes.ts | 18 ++++--
10 files changed, 142 insertions(+), 61 deletions(-)
Fusion-Task-Id: FN-8439
Fusion-Task-Lineage: 1680a0cd-27c8-47f1-8cd2-de808d1404cf
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 13:48:04 -07:00
gsxdsm
1d4e8afa7b
FN-8444: include planning time in task metrics
...
Track active planning time alongside execution time for costs, analytics, and task displays.
- Persist planning timing state across task lifecycle transitions and recovery
- Include planning activity in token cost, analytics, and dashboard timing displays
- Add PostgreSQL migration support using the configured migration directory
Files changed:
.changeset/fn-8444-planning-time-cost.md | 7 +++
docs/dashboard-guide.md | 3 ++
docs/task-management.md | 5 ++
packages/core/src/index.ts | 1 +
.../migrations/0029_planning_active_timing.sql | 3 ++
packages/core/src/postgres/schema-applier.ts | 14 ++++-
packages/core/src/postgres/schema/project.ts | 2 +
packages/core/src/productivity-analytics.ts | 29 +++++-----
packages/core/src/store.ts | 2 +-
.../core/src/task-store/archive-lifecycle-2.ts | 2 +
packages/core/src/task-store/moves.ts | 7 +++
packages/core/src/task-store/persistence.ts | 4 ++
packages/core/src/task-store/remaining-ops-2.ts | 2 +-
packages/core/src/task-store/serialization.ts | 7 +++
packages/core/src/task-store/task-row-mappers.ts | 2 +-
packages/core/src/task-store/task-update.ts | 10 ++++
packages/core/src/task-timing.ts | 35 ++++++++++++
packages/core/src/types.ts | 12 +++++
packages/dashboard/app/components/TaskCard.tsx | 13 ++---
.../app/components/TaskTokenStatsPanel.tsx | 6 ++-
.../app/components/__tests__/TaskCard.test.tsx | 17 ++++++
.../app/utils/__tests__/taskTiming.test.ts | 9 +++-
packages/dashboard/app/utils/taskTiming.ts | 14 +++++
packages/dashboard/app/utils/taskTokenCost.ts | 2 +
.../dashboard/src/task-planner-chat-metrics.ts | 14 ++++-
packages/engine/src/__tests__/self-healing.test.ts | 61 +++++++++++++++++++++
packages/engine/src/executor.ts | 50 +++++++++++++++++
packages/engine/src/runtimes/in-process-runtime.ts | 3 ++
packages/engine/src/self-healing.ts | 62 ++++++++++++++++++++++
packages/engine/src/triage.ts | 10 ++++
packages/i18n/locales/en/app.json | 2 +-
packages/i18n/locales/es/app.json | 2 +-
packages/i18n/locales/fr/app.json | 2 +-
packages/i18n/locales/ko/app.json | 2 +-
packages/i18n/locales/zh-CN/app.json | 2 +-
packages/i18n/locales/zh-TW/app.json | 2 +-
36 files changed, 384 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-8444
Fusion-Task-Lineage: 0178e0a7-3018-4ef4-be9b-6de5f964fb58
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 13:40:50 -07:00
gsxdsm
625dbc6c5f
FN-8441: separate planning artifacts from task prompts
...
Persist validated planning output as plan.md while keeping task prompts concise.
- Add a reusable plan.md formatter and export it through core entrypoints.
- Store plan and original-description task documents for planning-created tasks and subtasks.
- Direct triage to derive PROMPT.md from the plan artifact and cover the handoff with tests and documentation.
Files changed:
.changeset/fn-8441-separate-plan-from-prompt.md | 7 ++
docs/dashboard-guide.md | 3 +
.../core/src/__tests__/planning-plan-md.test.ts | 33 ++++++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/planning-plan-md.ts | 42 +++++++
.../__tests__/planning-e2e-plan-creation.test.ts | 62 +----------
.../src/__tests__/routes-planning.test.ts | 122 ++++++++++++---------
packages/dashboard/src/planning.ts | 12 +-
.../src/routes/register-planning-subtask-routes.ts | 61 ++++++++++-
packages/engine/src/__tests__/triage.test.ts | 17 +++
packages/engine/src/triage.ts | 43 ++++++--
12 files changed, 278 insertions(+), 126 deletions(-)
Fusion-Task-Id: FN-8441
Fusion-Task-Lineage: e6092bf8-9f59-4b6d-abd1-aaa4a566677a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 13:03:13 -07:00
gsxdsm
f9c1620c1e
FN-8438: generate and refine running plans
...
Planning Mode now generates an initial work-product plan and refines it after every answer.
- Prompt both initial agent paths to create a running plan before asking questions
- Provide meaningful fallback summaries and deliverables when model plan fields are absent
- Cover streaming and non-streaming initial-plan behavior and document the refinement contract
Files changed:
.changeset/fn-8438-running-plan-generate-refine.md | 7 ++
docs/dashboard-guide.md | 3 +-
.../__tests__/planning-infinite-interview.test.ts | 76 ++++++++++++++++++++--
packages/dashboard/src/planning.ts | 58 ++++++++++++-----
4 files changed, 122 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-8438
Fusion-Task-Lineage: 29e155ec-480e-462a-be3d-07ac02d7236b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 12:50:06 -07:00
gsxdsm
df488f25ea
FN-8443: fix chat plugin skill loading
...
Forward enabled plugin skill body paths into chat sessions.
- Pass resolved plugin skill directories through dashboard chat, QuickChat, and room responder sessions.
- Preserve additional skill paths in the runtime session factory and cover both forwarding layers.
- Document the chat skill contract and add a patch changeset.
Files changed:
.changeset/fn-8443-chat-plugin-skill-paths.md | 7 +++
docs/agents.md | 2 +-
packages/dashboard/src/__tests__/chat-manager.test.ts | 60 ++++++++++++++++++++--
packages/dashboard/src/chat.ts | 12 +++--
packages/engine/src/__tests__/agent-session-helpers.test.ts | 37 +++++++++++++
packages/engine/src/agent-session-helpers.ts | 5 ++
6 files changed, 114 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-8443
Fusion-Task-Lineage: 92c4e32c-8c94-4e8e-ad62-a5dae2fb9dc3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 12:32:01 -07:00
gsxdsm
8c01cc7c7a
FN-8437: restore Planning Mode sessions after navigation
...
Persist active Planning interviews across embedded navigation while honoring explicit dismissal.
- Store the active Planning session per project and restore it through the existing session loader.
- Clear the saved active session for dismissals and terminal session actions.
- Cover leave-and-return, completed-away, fresh-plan, and dismissed-error flows; document the behavior.
- Add a patch changeset for the Planning session recovery fix.
Files changed:
.changeset/fn-8437-planning-leave-return-restore.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/PlanningModeModal.tsx | 51 ++++++++++++-
packages/dashboard/app/components/__tests__/PlanningModeModal.planning-flow.test.tsx | 86 ++++++++++++++++++++++
packages/dashboard/app/hooks/__tests__/modalPersistence.test.ts | 18 +++++
packages/dashboard/app/hooks/modalPersistence.ts | 17 +++++
packages/dashboard/app/utils/__tests__/projectStorage.test.ts | 3 +-
packages/dashboard/app/utils/projectStorage.ts | 1 +
8 files changed, 180 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8437
Fusion-Task-Lineage: 892aacb6-139e-4487-a40c-1bedd51237ea
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 12:09:23 -07:00
gsxdsm
3962222863
FN-8424: route CLI chat replies through inbox mail
...
Route agent replies to the correct CLI or dashboard mailbox with bounded polling deadlines.
- add reply-parent routing validation and CLI/dashboard inbox selection
- preserve named mailbox conversations while handling per-message reply deadlines
- document chat and inbox interfaces and cover deadline and routing regressions
Files changed:
.changeset/fn-8424-cli-chat-reply-routing.md | 7 +
docs/agents.md | 20 +-
docs/cli-reference.md | 29 +-
packages/cli/src/bin.ts | 15 +-
packages/cli/src/commands/__tests__/chat.test.ts | 262 +++++++++---------
.../cli/src/commands/__tests__/message.test.ts | 12 +
packages/cli/src/commands/chat.ts | 293 ++++++++++++---------
packages/cli/src/commands/message.ts | 18 +-
...tools-send-message-recipient-validation.test.ts | 86 +++++-
packages/engine/src/agent-heartbeat-prompts.ts | 8 +-
packages/engine/src/agent-tools.ts | 71 +++--
11 files changed, 523 insertions(+), 298 deletions(-)
Fusion-Task-Id: FN-8424
Fusion-Task-Lineage: 28d0ef88-717e-4f39-8880-64d2fef94706
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 11:26:08 -07:00
gsxdsm
00891c225f
FN-8440: preserve acknowledged duplicate decisions
...
Keep an operator's same-canonical duplicate decision durable across triage and maintenance reprocessing.
- Preserve acknowledged Keep decisions for the same canonical while prompting for a new canonical.
- Clear acknowledged duplicate markers without overriding manual pauses.
- Export the acknowledgement helper through both core barrels for engine gate loading.
- Add regression coverage, operator documentation, and a patch changeset.
Files changed:
.changeset/fn-8440-persist-duplicate-decision.md | 7 ++
docs/task-management.md | 2 +
.../core/src/__tests__/duplicate-intake.test.ts | 16 +++++
packages/core/src/duplicate-intake.ts | 27 ++++++--
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
.../explicit-duplicate-marker-sweep.test.ts | 59 +++++++++++++++++
.../triage-explicit-duplicate-marker.test.ts | 77 ++++++++++++++++++++--
packages/engine/src/self-healing.ts | 21 +++++-
packages/engine/src/triage.ts | 21 ++++++
10 files changed, 221 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-8440
Fusion-Task-Lineage: 966d7c09-8651-463c-840d-707f2bafd2a7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 11:12:54 -07:00
gsxdsm
e43dffad52
FN-8434: preserve evolving running plans
...
Keep Planning Mode's running plan as an evolving work product alongside every interview question.
- Carry model-authored running-plan updates through question responses without ending the interview
- Merge partial plan updates with prior title, deliverables, dependencies, size, and priority
- Derive safe fallback summaries without turning interview questions into deliverables
- Cover running-plan persistence and document the contract
Files changed:
.changeset/fn-8434-running-plan-content.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/core/src/types.ts | 6 +
.../PlanningModeModal.planning-flow.test.tsx | 11 +-
.../__tests__/planning-e2e-plan-creation.test.ts | 17 ++-
.../__tests__/planning-infinite-interview.test.ts | 91 +++++++++++-
packages/dashboard/src/planning.ts | 163 ++++++++++++++-------
7 files changed, 232 insertions(+), 65 deletions(-)
Fusion-Task-Id: FN-8434
Fusion-Task-Lineage: cdf1c4ff-fd33-4e4a-84f4-b54a5e0a9cf8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 10:33:59 -07:00
gsxdsm
9db0ffc1f9
FN-8425: route CLI chat through agent inbox
...
Route CLI chat messages through durable, named agent mailbox conversations.
- Add conversation IDs and parsing for CLI chat sessions.
- Filter CLI chat history and replies by mailbox conversation identity.
- Surface conversation IDs to agents and document the inbox-based transport.
Files changed:
.changeset/fn-8425-cli-chat-conversation.md | 7 +
docs/agents.md | 11 +-
docs/cli-reference.md | 15 +-
packages/cli/src/__tests__/bin-chat-args.test.ts | 34 +++++
packages/cli/src/bin.ts | 45 ++----
packages/cli/src/commands/__tests__/chat.test.ts | 162 +++++++++++++++++++++
packages/cli/src/commands/chat.ts | 132 +++++++++++++++--
packages/core/src/types/messages.ts | 6 +
.../__tests__/agent-tools-read-messages.test.ts | 48 ++++++
packages/engine/src/agent-tools.ts | 10 +-
10 files changed, 418 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-8425
Fusion-Task-Lineage: 5091f49f-1f12-4ff7-8d21-48f008cf984e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 10:20:41 -07:00
gsxdsm
76822d8c4c
FN-8432: document responsive Planning Mode navigation
...
Clarify and verify tablet tab navigation and mobile list-first Planning Mode behavior.
- Add tablet progressive-tab coverage across interview states.
- Assert mobile saved-session list-first navigation and plan visibility.
- Update mobile and dashboard guidance with the intentional session-selection flow.
- Add a patch changeset for the Planning Mode fix.
Files changed:
.../fn-8432-planning-tablet-mobile-plan-layout.md | 7 ++++
MOBILE.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../PlanningModeModal.planning-flow.test.tsx | 43 +++++++++++++++++++++-
.../PlanningModeModal.ui-interactions.test.tsx | 25 +++++++++++++
5 files changed, 75 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8432
Fusion-Task-Lineage: e412069e-87e2-4a61-9556-6908f86b56c5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 10:07:44 -07:00
gsxdsm
087fd8f881
FN-8429: fix live activity snapshot metrics
...
Keep Live activity counts current and project-scoped rather than date-range derived.
- Exclude soft-deleted tasks from live board column totals
- Share SSE-refreshed live snapshots between Overview and Mission Control
- Count all in-progress aliases and current active sessions/runs
- Cover live refresh, date-range independence, and deleted-task behavior
Files changed:
docs/dashboard-guide.md | 2 +-
.../command-center-remaining-analytics.pg.test.ts | 12 ++-
packages/core/src/command-center-live.ts | 15 +++-
.../components/command-center/CommandCenter.tsx | 43 +++-------
.../command-center/MissionControlPanel.tsx | 46 +++++++----
.../__tests__/CommandCenter.test.tsx | 91 ++++++++++++++++++----
.../command-center/liveSnapshotMetrics.ts | 32 ++++++++
7 files changed, 174 insertions(+), 67 deletions(-)
Fusion-Task-Id: FN-8429
Fusion-Task-Lineage: a29a92a1-1d27-4927-9e19-9c42e66a0674
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 09:57:38 -07:00
gsxdsm
bd558462ed
FN-8427: restore mobile planning session navigation
...
Restore a full-pane saved-session destination for compact Planning Mode.
- Unmount the running-plan pane while mobile and tablet session lists are open.
- Keep Back and Sessions available from active, completed, and new planning surfaces.
- Cover compact navigation behavior and document the mobile interaction.
Files changed:
.../fn-8427-planning-mobile-session-list-nav.md | 7 ++
MOBILE.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/PlanningModeModal.css | 56 +++++++++++++++-
.../dashboard/app/components/PlanningModeModal.tsx | 33 ++++++---
.../__tests__/PlanningModeModal.css.test.ts | 5 ++
.../PlanningModeModal.ui-interactions.test.tsx | 78 ++++++++++++++++++++++
7 files changed, 167 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-8427
Fusion-Task-Lineage: 6664d075-0614-4b5a-ba36-34a0ec6a20a3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 09:51:26 -07:00
gsxdsm
8993e912d2
FN-8426: adapt Planning Mode for compact layouts
...
Make Planning Mode usable on mobile, tablet, and short-height layouts.
- Collapse compact Planning interviews into selectable question, plan, and history surfaces.
- Keep Sessions navigation synchronized so returning from the session list restores a visible interview pane.
- Document and test mobile, tablet, and short-landscape behavior.
Files changed:
.../fn-8426-planning-mobile-tablet-layout.md | 7 ++
MOBILE.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/PlanningModeModal.css | 94 ++++++++++++++++++++--
.../dashboard/app/components/PlanningModeModal.tsx | 51 +++++++++++-
.../__tests__/PlanningModeModal.css.test.ts | 17 ++++
.../PlanningModeModal.planning-flow.test.tsx | 36 +++++++++
.../__tests__/PlanningModeModal.test-helpers.ts | 23 ++++++
8 files changed, 220 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-8426
Fusion-Task-Lineage: 489d6f92-326c-4780-bc85-d28967c7ab35
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 09:16:12 -07:00
gsxdsm
104bf69b3b
FN-8401: preserve same-agent duplicates across create paths
...
Unify same-agent duplicate intake so live duplicates remain visible and sticky tombstones block recreation on every backend.
- Route SQLite and backend creation through one duplicate-intake resolver
- Flag new live duplicates by default; archive only the new task when explicitly enabled
- Include archived soft-deletes in sticky tombstone matching and cover the backend-safe read
- Document the cross-backend duplicate and resurrection policy
Files changed:
.changeset/fn-8401-same-agent-intake.md | 7 +
docs/architecture.md | 2 +-
docs/settings-reference.md | 2 +-
docs/task-management.md | 8 +-
.../__tests__/same-agent-duplicate-intake.test.ts | 129 ++++++++++++
packages/core/src/task-store/remaining-ops-2.ts | 50 +----
packages/core/src/task-store/task-creation.ts | 220 ++++++++-------------
7 files changed, 233 insertions(+), 185 deletions(-)
Fusion-Task-Id: FN-8401
Fusion-Task-Lineage: 2efa998e-a27d-4013-b42e-e44b7e2316fb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 09:01:39 -07:00
gsxdsm
8166c80bad
FN-8420: keep Planning Mode interviews open until validation
...
Keep the Planning Mode workspace active until the operator explicitly validates its running plan.
- Preserve the answered-question, current-question, and running-plan panes through stream updates and recoverable states.
- Require durable validation before exposing terminal summaries and task creation actions.
- Make every answer request one new high-impact question and update Planning Mode guidance, coverage, and release notes.
Files changed:
.../fn-8420-planning-mode-user-validation.md | 7 +
docs/dashboard-guide.md | 6 +-
docs/settings-reference.md | 2 +-
.../dashboard/app/components/PlanningModeModal.tsx | 163 +++++++++++++--------
.../__tests__/PlanningModeModal.initial.test.tsx | 20 ++-
.../PlanningModeModal.planning-flow.test.tsx | 99 +++++++++----
.../PlanningModeModal.ui-interactions.test.tsx | 14 ++
.../app/planning-browser-e2e-fixture.html | 5 +
.../dashboard/app/planning-browser-e2e-fixture.tsx | 131 +++++++++++++++++
.../src/__tests__/planning-browser-e2e.test.ts | 115 +++++++++++++++
.../__tests__/planning-infinite-interview.test.ts | 2 +
.../planning-interview-formatters.test.ts | 8 +
packages/dashboard/src/planning.ts | 16 +-
13 files changed, 485 insertions(+), 103 deletions(-)
Fusion-Task-Id: FN-8420
Fusion-Task-Lineage: af88729b-98c1-4141-bad3-a17ddb497181
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 02:01:58 -07:00
gsxdsm
5af53bc94a
FN-8422: fix Fusion MCP bridge packaging and model markers
...
Ensure Grok and Claude ACP sessions report usable custom-tool bridge outcomes and model labels.
- Copy the MCP schema server into runtime build output and fail custom-tool setup with stable diagnostics.
- Record bridge failure metadata safely and normalize ACP string model markers.
- Add bridge smoke coverage, adapter regressions, documentation, and a patch changeset.
Files changed:
.changeset/fn-8422-mcp-bridge.md | 7 ++++
docs/grok-cli-contract.md | 8 +++++
.../src/__tests__/agent-session-helpers.test.ts | 37 ++++++++++++++++++++++
packages/engine/src/__tests__/pi.test.ts | 16 ++++++++++
packages/engine/src/agent-session-helpers.ts | 20 ++++++++++++
packages/engine/src/pi.ts | 27 ++++++++++++++--
plugins/fusion-plugin-claude-runtime/README.md | 6 ++++
plugins/fusion-plugin-claude-runtime/package.json | 2 +-
.../src/__tests__/runtime-adapter.test.ts | 30 ++++++++++++++++++
.../src/__tests__/tool-bridge.test.ts | 33 ++++++++++++++++++-
.../src/runtime-adapter.ts | 30 ++++++++++++++++--
.../src/tool-bridge.ts | 24 +++++++++++---
plugins/fusion-plugin-claude-runtime/src/types.ts | 2 ++
plugins/fusion-plugin-grok-runtime/package.json | 2 +-
.../src/__tests__/runtime-adapter.test.ts | 24 ++++++++++++++
.../src/__tests__/tool-bridge.test.ts | 33 ++++++++++++++++++-
.../src/runtime-adapter.ts | 30 ++++++++++++++++--
.../fusion-plugin-grok-runtime/src/tool-bridge.ts | 24 +++++++++++---
plugins/fusion-plugin-grok-runtime/src/types.ts | 2 ++
19 files changed, 338 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-8422
Fusion-Task-Lineage: 6738f1bd-23f7-4fd3-8490-178d956b362d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 01:07:14 -07:00
gsxdsm
2c1567c6b8
FN-8418: add WhatsApp QR pairing settings
...
Add WhatsApp connection pairing guidance directly in plugin settings.
- Display a QR code and phone pairing instructions for WhatsApp Chat connections.
- Expose connection details through the plugin and document the setup flow.
- Add dashboard and plugin regression coverage plus a release changeset.
Files changed:
.changeset/fn-8418-whatsapp-settings-pairing.md | 7 +
docs/plugin-management.md | 2 +-
.../dashboard/app/components/PluginManager.tsx | 4 +
.../app/components/WhatsAppChatPairingPanel.css | 115 ++++++++++++++
.../app/components/WhatsAppChatPairingPanel.tsx | 165 +++++++++++++++++++++
.../components/__tests__/PluginManager.test.tsx | 21 +++
.../__tests__/WhatsAppChatPairingPanel.test.tsx | 78 ++++++++++
plugins/fusion-plugin-whatsapp-chat/README.md | 19 +--
.../src/__tests__/connection.test.ts | 16 +-
.../src/__tests__/index.test.ts | 33 +++++
.../fusion-plugin-whatsapp-chat/src/connection.ts | 21 ++-
plugins/fusion-plugin-whatsapp-chat/src/index.ts | 15 +-
12 files changed, 479 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-8418
Fusion-Task-Lineage: a16b7d25-422d-4612-83d4-d5ac9c049aec
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 00:54:01 -07:00
gsxdsm
e22c65ad11
FN-8397: separate pinned chats and retain failed edits
...
Separate direct-chat session groups and make message edits safely retryable.
- Render explicit Pinned and Recent sections across desktop and mobile chat lists.
- Keep inline message corrections open until edit-and-resend succeeds in Direct and Planner Chat.
- Add localized Recent labels, documentation, release metadata, and regression coverage.
Files changed:
.changeset/fn-8397-chat-pin-separation-and-edit-save.md | 7 +++
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/ChatView.css | 10 ++++
packages/dashboard/app/components/ChatView.tsx | 31 ++++++++---
packages/dashboard/app/components/StandardChatSurface.tsx | 35 +++++++++----
packages/dashboard/app/components/TaskPlannerChatTab.tsx | 14 +++--
packages/dashboard/app/components/__tests__/ChatView.core-contracts.test.tsx | 46 +++++++++++++++++
packages/dashboard/app/components/__tests__/ChatView.message-edit.test.tsx | 60 ++++++++++++++++++++--
packages/dashboard/app/components/__tests__/TaskPlannerChatTab.test.tsx | 10 ++--
packages/dashboard/app/hooks/__tests__/useChat.test.ts | 4 +-
packages/dashboard/app/hooks/useChat.ts | 13 +++--
packages/i18n/locales/{en,es,fr,ko,zh-CN,zh-TW}/app.json | 6 +++
17 files changed, 205 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-8397
Fusion-Task-Lineage: 4dbc664a-56a3-48c7-be9a-febd5f411c9e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 00:42:15 -07:00
gsxdsm
2fe1b996bf
FN-8400: rework Planning Mode into a guided three-pane flow
...
Make planning interviews easier to navigate while keeping the evolving plan and validation actions accessible.
- Show answered questions in an editable navigation pane and keep one clear next-question action.
- Keep the generated plan and validation controls visible throughout planning and recovery.
- Add server validation and localized copy for session title updates.
Files changed:
.changeset/fn-8400-planning-mode-ui.md | 7 +
MOBILE.md | 2 +-
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/api/legacy.ts | 12 +-
.../dashboard/app/components/PlanningModeModal.css | 112 +++--
.../dashboard/app/components/PlanningModeModal.tsx | 408 +++++++++++--------
.../PlanningModeModal.planning-flow.test.tsx | 453 ++++++++-------------
.../PlanningModeModal.ui-interactions.test.tsx | 4 +-
.../src/__tests__/routes-planning.test.ts | 50 +++
packages/dashboard/src/planning.ts | 21 +-
.../src/routes/register-planning-subtask-routes.ts | 26 ++
packages/i18n/locales/en/app.json | 7 +-
packages/i18n/locales/es/app.json | 7 +-
packages/i18n/locales/fr/app.json | 7 +-
packages/i18n/locales/ko/app.json | 7 +-
packages/i18n/locales/zh-CN/app.json | 7 +-
packages/i18n/locales/zh-TW/app.json | 7 +-
packages/i18n/src/resources.d.ts | 5 +
18 files changed, 620 insertions(+), 528 deletions(-)
Fusion-Task-Id: FN-8400
Fusion-Task-Lineage: 032cf0ad-134d-4680-878f-b870eea23cc9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 23:01:44 -07:00
gsxdsm
1f77935358
FN-8307: guard heartbeat task creation with mission lineage
...
Require autonomous heartbeat work to prove and retain approved mission lineage.
- Validate and persist mission lineage for created and delegated tasks
- Block off-mission heartbeat actions and reconcile roadmap failures without completion
- Renew and release mission symbol locks across workflow lifecycle transitions
Files changed:
.changeset/fn-8307-heartbeat-mission-guard.md | 7 ++
docs/missions.md | 4 +
packages/core/src/__tests__/symbol-locks.test.ts | 12 +++
packages/core/src/task-store/task-update.ts | 17 +++-
.../engine/src/__tests__/agent-action-gate.test.ts | 9 +-
.../src/__tests__/agent-tools-delegation.test.ts | 41 +++++++-
.../src/__tests__/gating-classifications.test.ts | 7 +-
.../src/__tests__/mission-feature-sync.test.ts | 10 +-
.../src/__tests__/mission-symbol-admission.test.ts | 25 +++++
.../src/__tests__/permanent-agent-gating.test.ts | 3 +-
packages/engine/src/agent-action-gate.ts | 28 +++++-
packages/engine/src/agent-heartbeat-prompts.ts | 14 +--
packages/engine/src/agent-heartbeat.ts | 34 +++++--
packages/engine/src/agent-tools.ts | 103 +++++++++++++++++++--
packages/engine/src/executor.ts | 2 +-
packages/engine/src/gating-classifications.ts | 11 ++-
packages/engine/src/mission-feature-sync.ts | 39 +++-----
packages/engine/src/mission-symbol-admission.ts | 35 ++++++-
packages/engine/src/permanent-agent-gating.ts | 22 +++++
packages/engine/src/scheduler.ts | 21 +++--
packages/engine/src/step-session-executor.ts | 2 +-
packages/engine/src/triage.ts | 2 +-
22 files changed, 369 insertions(+), 79 deletions(-)
Fusion-Task-Id: FN-8307
Fusion-Task-Lineage: 4ca2ccac-db6e-4e5c-9cc6-d62a40d4f30a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 22:43:13 -07:00
gsxdsm
d4a87accb8
FN-8395: autosave settings changes
...
Settings edits now persist automatically with safe feedback and close handling.
- Debounce and serialize settings persistence, retaining newer edits through in-flight saves and unmounts.
- Remove the Settings Save action and unsaved-changes prompt while flushing pending section and workflow-lane updates.
- Update Settings documentation, release metadata, and regression coverage for auto-save behavior.
Files changed:
.changeset/fn-8395-settings-autosave.md | 7 +
docs/dashboard-guide.md | 11 +-
docs/settings-reference.md | 8 +-
.../dashboard/app/components/SettingsModal.tsx | 402 ++++++++++++++++-----
.../__tests__/SettingsModal.general.test.tsx | 154 ++++++--
.../SettingsModal.keyboardShortcuts.test.tsx | 7 +-
.../__tests__/SettingsModal.models-auth.test.tsx | 46 +--
.../SettingsModal.remote-notifications.test.tsx | 38 +-
.../SettingsModal.scheduling-merge.test.tsx | 58 ++-
.../__tests__/SettingsModal.test-harness.tsx | 9 +-
.../__tests__/SettingsModalNodeRouting.test.tsx | 2 -
.../settings/sections/ProjectModelsSection.tsx | 15 +-
12 files changed, 548 insertions(+), 209 deletions(-)
Fusion-Task-Id: FN-8395
Fusion-Task-Lineage: 77f4c0d3-d0cc-4973-9831-c70eb2a2b49b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 22:16:11 -07:00
gsxdsm
93437ff09b
FN-8306: add mission symbol lock scheduler admission
...
Schedule approved mission work with durable symbol-level concurrency control.
- Gate mission execution on active lineage and required plan approval
- Acquire, renew, and release symbol locks across scheduler and workflow execution
- Honor custom workflow WIP columns when maintaining symbol-lock leases
- Add admission, contention, renewal, and custom-WIP regression coverage
Files changed:
.../fn-8306-mission-symbol-scheduler-admission.md | 7 ++
docs/architecture.md | 1 +
packages/core/src/task-store/moves.ts | 23 ++++
.../src/__tests__/mission-symbol-admission.test.ts | 54 +++++++++
.../__tests__/scheduler-workflow-cutover.test.ts | 49 ++++++++
.../src/__tests__/workflow-work-processor.test.ts | 39 ++++++
.../src/__tests__/workflow-work-scheduler.test.ts | 44 +++++++
packages/engine/src/mission-symbol-admission.ts | 94 +++++++++++++++
packages/engine/src/scheduler.ts | 133 ++++++++++++++++++++-
packages/engine/src/workflow-work-processor.ts | 22 +++-
packages/engine/src/workflow-work-scheduler.ts | 62 +++++++++-
11 files changed, 520 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-8306
Fusion-Task-Lineage: ec6a9928-d8c0-4cf7-99b5-47e1fc3a2dcc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 22:07:55 -07:00
gsxdsm
9e962bb670
FN-8415: scrub report file activity traces
...
Scrub file-report activity traces before report pipeline processing.
- Sanitize top-level and nested activity traces before parsing report input.
- Add regressions for trace scrubbing and absent-trace behavior.
- Document the report filing scrub boundary and add a security changeset.
Files changed:
.changeset/fn-8415-report-file-activity-trace-scrub.md | 7 +++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/src/__tests__/report-routes.test.ts | 35 ++++++++++++++++++++++
packages/dashboard/src/routes/register-report-routes.ts | 16 ++++++++--
4 files changed, 56 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8415
Fusion-Task-Lineage: 90e42370-1682-42fc-bd53-61bb23da84a8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 21:27:25 -07:00
gsxdsm
3008eb2dd8
FN-8405: add durable task symbol declarations
...
Persist normalized task symbol declarations and resolve symbols solely from durable task data.
- Add declared-symbol parsing, normalization, and durable TaskStore resolution APIs.
- Persist declarations through PostgreSQL migration, task serialization, and archive/restore flows.
- Cover declaration precedence and schema upgrades with core tests.
Files changed:
docs/architecture.md | 1 +
docs/storage.md | 1 +
.../src/__tests__/postgres/schema-applier.test.ts | 39 +++-
.../src/__tests__/task-symbol-resolution.test.ts | 222 +++++++++++++++++++++
packages/core/src/index.ts | 10 +
.../core/src/postgres/migrations/0000_initial.sql | 1 +
.../migrations/0028_task_declared_symbols.sql | 1 +
packages/core/src/postgres/schema-applier.ts | 12 +-
packages/core/src/postgres/schema/project.ts | 1 +
packages/core/src/store.ts | 22 +-
.../core/src/task-store/archive-lifecycle-2.ts | 2 +
packages/core/src/task-store/persistence.ts | 4 +-
packages/core/src/task-store/remaining-ops-2.ts | 2 +-
packages/core/src/task-store/serialization.ts | 2 +
packages/core/src/task-store/task-creation.ts | 5 +
packages/core/src/task-store/task-row-mappers.ts | 2 +-
packages/core/src/task-store/task-update.ts | 9 +
packages/core/src/task-symbol-resolution.ts | 65 ++++++
packages/core/src/types.ts | 5 +
19 files changed, 400 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8405
Fusion-Task-Lineage: ca86dbe5-cd4c-4f58-b607-678d669875af
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 21:19:56 -07:00
gsxdsm
a11f789b0c
FN-8327: fall back to issues when Discussions are disabled
...
Reports can select a Discussion category and reliably file to Issues when Discussions are unavailable.
- Add Discussion-disabled detection across GitHub GraphQL operations.
- Let report submission select a category and disclose the actual filing destination.
- Preserve duplicate handling and document the fallback behavior.
Files changed:
.changeset/fn-8327-discussion-fallback.md | 7 +++
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/api/report.ts | 22 +++++--
packages/dashboard/app/components/ReportModal.tsx | 7 ++-
.../app/components/__tests__/ReportModal.test.tsx | 13 ++++
.../src/__tests__/github-discussions.test.ts | 29 +++++++--
.../src/__tests__/report-pipeline.test.ts | 63 ++++++++++++++-----
.../dashboard/src/__tests__/report-routes.test.ts | 15 +++--
packages/dashboard/src/github.ts | 71 ++++++++++++++++------
packages/dashboard/src/report-pipeline.ts | 54 +++++++++++-----
.../dashboard/src/routes/register-report-routes.ts | 12 +++-
11 files changed, 227 insertions(+), 70 deletions(-)
Fusion-Task-Id: FN-8327
Fusion-Task-Lineage: 510d3d4f-ffc9-4167-bee8-7043e0ddbd9c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 20:42:05 -07:00
gsxdsm
f6c788dee4
FN-8409: enable coding tools for dashboard chat agents
...
Enable interactive dashboard chat sessions to use the project coding workspace safely.
- Share the coding tool mode across direct, room, and planner chat sessions.
- Document branch-sticky workspace behavior and durable-agent policy gates.
- Cover coding tool access and prompt guidance with chat tests.
- Add a minor changeset for the published Fusion package.
Files changed:
.changeset/fn-8409-chat-coding-tools.md | 7 +++++
docs/agents.md | 6 +++++
docs/dashboard-guide.md | 2 ++
.../dashboard/src/__tests__/chat-manager.test.ts | 31 +++++++++++++++-------
.../src/__tests__/chat-system-prompt.test.ts | 11 ++++++++
packages/dashboard/src/chat.ts | 12 ++++++---
6 files changed, 56 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-8409
Fusion-Task-Lineage: ca88794d-a5cf-4852-a931-90f61e3751df
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 20:36:27 -07:00
gsxdsm
64c1193d1e
FN-8333: embed report screenshots in GitHub filings
...
Enable opt-in report screenshots to be safely hosted and embedded in filed GitHub reports.
- add GitHub Contents API image upload support and CLI-safe payload handling
- validate and resolve report screenshot artifacts before best-effort Markdown embedding
- cover upload, media access, filing, and report modal behavior with tests
Files changed:
.changeset/github-report-screenshot-embed.md | 7 +++
docs/dashboard-guide.md | 4 +-
packages/core/src/__tests__/gh-cli-input.test.ts | 32 ++++++++++
packages/core/src/gh-cli.ts | 21 ++++++-
.../app/components/__tests__/ReportModal.test.tsx | 5 ++
.../dashboard/src/__tests__/artifact-media.test.ts | 20 ++++++
.../__tests__/github-upload-image-asset.test.ts | 39 ++++++++++++
.../__tests__/report-pipeline-screenshots.test.ts | 67 ++++++++++++++++++++
.../dashboard/src/__tests__/report-routes.test.ts | 36 ++++++++++-
packages/dashboard/src/artifact-media.ts | 32 ++++++++++
packages/dashboard/src/github.ts | 57 +++++++++++++++++
packages/dashboard/src/issue-image-attachments.ts | 6 +-
packages/dashboard/src/report-pipeline.ts | 72 ++++++++++++++++++----
.../dashboard/src/routes/register-report-routes.ts | 29 ++++++---
.../src/routes/register-task-workflow-routes.ts | 24 +-------
15 files changed, 401 insertions(+), 50 deletions(-)
Fusion-Task-Id: FN-8333
Fusion-Task-Lineage: b706810d-2fec-4053-b57a-1128e5c16e94
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 18:45:27 -07:00
gsxdsm
18f1cb743a
FN-8308: add selectable GitHub Discussions report targets
...
Enable configurable GitHub Issue or Discussion destinations for in-app reports.
- Add report target and Discussion category settings with localized controls.
- Validate target overrides before Help shortcuts and route them through report filing.
- Discover and validate GitHub Discussion categories through GraphQL.
- Cover target validation on both draft and file routes.
Files changed:
.changeset/fn-8308-report-discussions.md | 7 +++
docs/dashboard-guide.md | 7 +++
.../core/src/__tests__/settings-parity.test.ts | 9 +++
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/settings-schema.ts | 4 ++
packages/core/src/types.ts | 10 ++++
packages/dashboard/app/api/report.ts | 13 +++-
packages/dashboard/app/components/ReportModal.tsx | 9 ++-
.../__tests__/SettingsModal.general.test.tsx | 18 ++++++
.../settings/sections/GeneralSection.tsx | 16 ++++-
.../src/__tests__/github-discussions.test.ts | 44 ++++++++++++++
.../src/__tests__/report-pipeline.test.ts | 70 +++++++++++++++++++++-
.../dashboard/src/__tests__/report-routes.test.ts | 19 ++++++
packages/dashboard/src/github.ts | 37 ++++++++++--
packages/dashboard/src/index.ts | 4 +-
packages/dashboard/src/report-pipeline.ts | 41 +++++++++----
.../dashboard/src/routes/register-report-routes.ts | 32 ++++++++--
packages/i18n/locales/en/app.json | 26 +++++++-
packages/i18n/locales/es/app.json | 26 +++++++-
packages/i18n/locales/fr/app.json | 26 +++++++-
packages/i18n/locales/ko/app.json | 26 +++++++-
packages/i18n/locales/zh-CN/app.json | 26 +++++++-
packages/i18n/locales/zh-TW/app.json | 26 +++++++-
24 files changed, 453 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-8308
Fusion-Task-Lineage: f5ac1b67-ecbc-4765-88c7-c524c7e943bf
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 18:37:45 -07:00
gsxdsm
fc8c7a6cca
FN-8410: preserve productive work when reports are stuck
...
Guide managers to verify live progress before reassigning stuck heartbeat reports.
- Replace immediate reassignment guidance with live-work verification steps
- Cover the safe recovery guidance in heartbeat reports-health tests
- Document stuck-report triage and reassignment criteria
Files changed:
docs/agents.md | 4 +++-
packages/engine/src/__tests__/heartbeat-executor.test.ts | 2 ++
packages/engine/src/agent-heartbeat.ts | 10 +++++++++-
3 files changed, 14 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8410
Fusion-Task-Lineage: b1168aab-41cf-4148-be67-c20812e6f5b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 18:07:29 -07:00
gsxdsm
365874f7f9
FN-8406: consolidate Command Center report actions
...
Move the guided report flow to System while ensuring its menu reliably overlays dashboard content.
- Portal the shared ReportActionMenu with a defined dropdown/modal stacking scale.
- Make System the sole Command Center report home and retain Copy diagnostics as a local action.
- Update regression coverage, documentation, and the published package changeset.
Files changed:
.changeset/fn-8406-report-home-zindex.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../dashboard/app/components/ReportActionMenu.css | 5 +-
.../dashboard/app/components/ReportActionMenu.tsx | 72 ++++++++++++-
.../components/__tests__/ReportActionMenu.test.tsx | 12 +++
.../components/command-center/CommandCenter.css | 32 ------
.../components/command-center/CommandCenter.tsx | 59 ++++-------
.../__tests__/CommandCenter.test.tsx | 8 +-
.../__tests__/SystemControlsArea.test.tsx | 94 +----------------
.../command-center/areas/SystemControlsArea.tsx | 112 ++++-----------------
packages/dashboard/app/styles.css | 11 ++
11 files changed, 144 insertions(+), 272 deletions(-)
Fusion-Task-Id: FN-8406
Fusion-Task-Lineage: 957a77b0-fb04-4024-9506-225fec562f5d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 17:39:43 -07:00
gsxdsm
e4a032d9d9
FN-8399: expose incomplete migration status on dashboard
...
Expose durable SQLite-to-PostgreSQL migration state through dashboard health and banners.
- Read per-project running and failed migration markers from PostgreSQL
- Surface degraded migration state in health endpoints and dashboard banners
- Preserve migration context across CLI and runtime startup paths
- Document the recovery workflow and add a patch changeset
Files changed:
.changeset/FN-8399-migration-status-dashboard.md | 7 +++
docs/storage.md | 5 ++
packages/cli/src/commands/daemon.ts | 19 +++++++
packages/cli/src/commands/desktop.ts | 6 +++
packages/cli/src/commands/serve.ts | 20 +++++++-
packages/core/src/index.ts | 2 +
packages/core/src/postgres/index.ts | 2 +
packages/core/src/postgres/sqlite-migrator.ts | 43 ++++++++++++++++
packages/dashboard/app/api/health.ts | 7 ++-
.../app/components/dashboard/DashboardBanners.tsx | 18 ++++++-
.../dashboard/__tests__/DashboardBanners.test.tsx | 12 ++++-
.../__tests__/dashboard-postgres-health.test.ts | 45 +++++++++++++++++
.../dashboard/src/dashboard-postgres-health.ts | 58 ++++++++++++++++++++++
packages/dashboard/src/server.ts | 27 ++++++++--
packages/engine/src/project-engine-manager.ts | 4 ++
packages/engine/src/project-runtime.ts | 9 +++-
packages/engine/src/runtimes/in-process-runtime.ts | 1 +
17 files changed, 275 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8399
Fusion-Task-Lineage: e196d6c4-ea9a-48ba-bedc-9e6fa44c33d3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 16:52:02 -07:00
gsxdsm
a9c7a6bcc0
FN-8371: store report screenshot artifacts
...
Store opted-in report screenshots as validated local artifacts rather than GitHub attachments.
- Add multipart report attachment upload with PNG/JPEG validation and provenance metadata.
- Carry validated artifact references through report drafts and filing flows without binary egress.
- Update report UI, tests, documentation, and release metadata.
Files changed:
.changeset/report-screenshot-artifacts.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 7 +
packages/dashboard/app/api/report.ts | 14 +-
packages/dashboard/app/components/ReportModal.css | 3 +-
packages/dashboard/app/components/ReportModal.tsx | 41 ++---
.../app/components/__tests__/ReportModal.test.tsx | 58 +++++--
packages/dashboard/app/utils/report-capture.ts | 47 ++----
.../src/__tests__/report-pipeline.test.ts | 94 ------------
.../dashboard/src/__tests__/report-routes.test.ts | 123 +++++++++++----
packages/dashboard/src/report-pipeline.ts | 128 +++-------------
.../dashboard/src/routes/register-report-routes.ts | 169 +++++++--------------
14 files changed, 279 insertions(+), 418 deletions(-)
Fusion-Task-Id: FN-8371
Fusion-Task-Lineage: 48d0e94d-602f-43e2-a63f-cb497221ac29
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 16:44:40 -07:00
gsxdsm
efa9580b93
FN-8366: enforce end-to-end project scoping
...
Ensure asynchronous dashboard data and real-time streams remain bound to their active project context.
- Resolve SSE and badge WebSocket stores through the canonical project resolver
- Guard agents, artifacts, and documents hooks against stale project responses and events
- Add scoped cache handling, regression coverage, and architecture documentation
Files changed:
docs/architecture.md | 7 ++++
.../app/hooks/__tests__/useAgents.test.ts | 24 +++++++++++
.../app/hooks/__tests__/useArtifacts.test.ts | 47 ++++++++++++++++++++++
.../app/hooks/__tests__/useDocuments.test.ts | 34 ++++++++++++++++
packages/dashboard/app/hooks/useAgents.ts | 47 +++++++++++++++++-----
packages/dashboard/app/hooks/useArtifacts.ts | 26 +++++++++---
packages/dashboard/app/hooks/useDocuments.ts | 18 ++++++++-
.../dashboard/app/hooks/useProjectContextGuard.ts | 38 +++++++++++++++++
.../routes-context-project-identity.test.ts | 12 ++++++
packages/dashboard/src/server.ts | 21 +++++++---
10 files changed, 251 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-8366
Fusion-Task-Lineage: 0fcd38c1-727f-4511-8209-5d70cbf9eb0d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 16:29:39 -07:00
gsxdsm
ccb7d4e8ff
FN-8367: enforce bounded engine shellouts
...
Enforce bounded synchronous shellout use across the engine.
- Audit every production synchronous shellout against a call-site allowlist.
- Bound data-dependent git diff commands by timeout and output size.
- Document the async shellout invariant and align focused command guards.
Files changed:
AGENTS.md | 2 +-
docs/architecture.md | 1 +
.../__tests__/engine-no-blocking-shellout.test.ts | 135 +++++++++++++++++++++
.../user-configured-command-no-execsync.test.ts | 5 +-
packages/engine/src/merger-git-parse.ts | 16 ++-
.../engine/src/merger-workspace-test-commands.ts | 27 ++++-
6 files changed, 181 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8367
Fusion-Task-Lineage: 976384e6-f283-4464-9f74-f328f2be3430
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 16:00:28 -07:00
gsxdsm
d940bf3d5c
FN-8358: add roadmap-item structure previews
...
Enable native previews and hosted navigation for roadmap items.
- Extend native structure references and API resolution through the roadmap adapter.
- Register the bundled Roadmaps view across desktop and mobile navigation.
- Cover roadmap preview availability, navigation, and route behavior.
Files changed:
...n-8358-roadmap-item-native-structure-preview.md | 7 ++++
docs/dashboard-guide.md | 6 ++--
packages/core/src/types.ts | 24 ++++++++-----
packages/dashboard/app/App.tsx | 24 ++++++++-----
.../dashboard/app/components/LeftSidebarNav.tsx | 12 +++----
.../app/components/NativeStructurePreview.tsx | 10 ++++--
.../app/components/__tests__/App.test.tsx | 13 ++++---
.../app/components/__tests__/Header.test.tsx | 5 ++-
.../components/__tests__/LeftSidebarNav.test.tsx | 5 ++-
.../app/components/__tests__/MobileNavBar.test.tsx | 4 +--
.../__tests__/NativeStructurePreview.test.tsx | 40 ++++++++++++++++------
.../__tests__/registerBundledPluginViews.test.tsx | 24 ++++++++++---
.../app/plugins/registerBundledPluginViews.ts | 23 +++++++++++++
packages/dashboard/src/native-structure-preview.ts | 25 +++++++++++++-
.../native-structure-preview-routes.test.ts | 31 +++++++++++++++--
.../src/routes/register-task-workflow-routes.ts | 4 +--
packages/dashboard/vite.config.ts | 4 +++
packages/dashboard/vitest.config.ts | 4 +++
plugins/fusion-plugin-roadmap/package.json | 5 +++
.../fusion-plugin-roadmap/src/dashboard-view.tsx | 5 +++
plugins/fusion-plugin-roadmap/src/index.ts | 14 ++++++--
21 files changed, 223 insertions(+), 66 deletions(-)
Fusion-Task-Id: FN-8358
Fusion-Task-Lineage: c369ce87-eef0-4d06-bf23-bced9c4363f9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 15:45:45 -07:00