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
gsxdsm
41f387b219
FN-8364: track task token usage from session deltas
...
Track only task-local deltas from cumulative session usage.
- Capture and reset baselines for reused, resumed, and heartbeat sessions
- Route executor prompt accounting through the shared per-session delta seam
- Cover token accounting behavior and document the analytics correction
Files changed:
.changeset/fn-8364-session-token-deltas.md | 7 +++
docs/storage.md | 2 +-
.../src/__tests__/executor-token-usage.test.ts | 48 +++++++++++++++++++-
.../src/__tests__/heartbeat-executor.test.ts | 42 +++++++++++++++++
.../src/__tests__/session-token-usage.test.ts | 53 +++++++++++++++++++++-
packages/engine/src/agent-heartbeat.ts | 10 +++-
packages/engine/src/executor.ts | 44 +++++++++++-------
packages/engine/src/session-token-usage.ts | 20 ++++++++
8 files changed, 205 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8364
Fusion-Task-Lineage: 2b16a581-0d58-4c91-8903-6ce368b30a7c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 15:38:31 -07:00
gsxdsm
2c72ac0c0c
FN-8387: add canonical lineage approval predicate
...
Centralize symbol-lock admission rules for resolved mission lineage.
- Add a pure core predicate with stable approval and rejection reasons.
- Export the lineage contract and cover status and plan-fingerprint cases.
- Document scheduler ownership and the admission requirements.
Files changed:
docs/missions.md | 15 +++
.../__tests__/symbol-lock-lineage-approval.test.ts | 123 +++++++++++++++++++++
packages/core/src/index.ts | 10 ++
packages/core/src/symbol-lock-lineage-approval.ts | 87 +++++++++++++++
4 files changed, 235 insertions(+)
Fusion-Task-Id: FN-8387
Fusion-Task-Lineage: dc2d8518-ffff-4062-b11f-a162dd1b10da
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 15:20:39 -07:00
gsxdsm
bea51f7bdb
FN-8348: relocate report actions to settings and command center
...
Relocate guided reporting from the header into durable project and overview surfaces.
- Add Report entry points to Project General settings and Command Center Overview.
- Preserve guided report modal context through a shared route helper.
- Cover relocated controls and update dashboard guidance.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/Header.tsx | 33 ++++------------------
.../dashboard/app/components/SettingsModal.tsx | 2 +-
.../app/components/__tests__/Header.test.tsx | 7 +++++
.../components/command-center/CommandCenter.css | 32 +++++++++++++++++++++
.../components/command-center/CommandCenter.tsx | 30 +++++++++++++++++++-
.../__tests__/CommandCenter.test.tsx | 11 ++++++++
.../settings/sections/GeneralSection.tsx | 21 ++++++++++++++
.../GeneralSection.aiUndoWorkflow.test.tsx | 20 +++++++++++--
packages/dashboard/app/utils/reportContextRefs.ts | 13 +++++++++
10 files changed, 139 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-8348
Fusion-Task-Lineage: add1b302-deab-4e17-be2f-832971c1c83d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 15:12:23 -07:00
gsxdsm
f85acce548
FN-8361: guard planning recovery mutations atomically
...
Keep delayed planning recovery mutations conditional on the task still being in its planning stage.
- Add task-lock-backed conditional move and deletion APIs for planning recovery.
- Guard triage and self-healing writes, including prompt-file mutations, with live planning predicates.
- Cover conditional task operations and stale recovery behavior with regression tests.
Files changed:
docs/architecture.md | 2 +-
.../src/__tests__/delete-task-if-planning.test.ts | 56 +++++++++++++
.../src/__tests__/move-task-if-planning.test.ts | 43 ++++++++++
packages/core/src/store.ts | 22 ++++-
.../core/src/task-store/archive-lifecycle-2.ts | 35 ++++++++
packages/core/src/task-store/archive-lifecycle.ts | 65 +++++++++++++++
packages/core/src/task-store/moves.ts | 32 ++++++++
packages/engine/src/__tests__/self-healing.test.ts | 26 ++++++
packages/engine/src/__tests__/triage.test.ts | 14 +++-
packages/engine/src/self-healing.ts | 30 ++++++-
packages/engine/src/triage.ts | 95 ++++++++++++++++------
11 files changed, 383 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-8361
Fusion-Task-Lineage: d76f1805-d8c6-4b3f-9bc6-12907aae9733
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 15:05:31 -07:00
gsxdsm
da1e445d6b
FN-8310: add public-roadmap report deduplication
...
Add public-roadmap issues as a configurable, reviewable deduplication source for in-app reports.
- Resolve roadmap settings across project, global, and tracking-repository fallbacks
- Search and endorse matching open roadmap issues before filing duplicate reports
- Expose and index roadmap controls with localized default descriptions
Files changed:
.changeset/fn-8310-public-roadmap-dedupe.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 4 +-
.../core/src/__tests__/settings-parity.test.ts | 14 +++-
packages/core/src/settings-schema.ts | 7 +-
packages/core/src/types.ts | 13 +++-
packages/dashboard/app/api/report.ts | 2 +-
packages/dashboard/app/components/ReportModal.tsx | 18 ++---
.../dashboard/app/components/SettingsModal.tsx | 15 +++-
.../app/components/__tests__/ReportModal.test.tsx | 12 ++--
.../__tests__/SettingsModal.general.test.tsx | 6 +-
.../settings/__tests__/section-keys.test.ts | 5 +-
.../app/components/settings/save-split.ts | 14 ++--
.../app/components/settings/section-keys.ts | 5 ++
.../settings/sections/GeneralSection.search.ts | 34 ++++++---
.../settings/sections/GeneralSection.tsx | 29 ++++++--
.../sections/SourceControlGlobalSection.search.ts | 27 +++++++
.../sections/SourceControlGlobalSection.tsx | 55 ++++++++++----
.../settings-default-descriptions.test.tsx | 4 +-
.../src/__tests__/report-pipeline.test.ts | 73 ++++++++++++-------
.../dashboard/src/__tests__/report-routes.test.ts | 23 +++---
packages/dashboard/src/report-pipeline.ts | 84 ++++++++++++++--------
.../dashboard/src/routes/register-report-routes.ts | 9 +--
packages/i18n/locales/en/app.json | 17 ++++-
packages/i18n/locales/es/app.json | 17 ++++-
packages/i18n/locales/fr/app.json | 17 ++++-
packages/i18n/locales/ko/app.json | 17 ++++-
packages/i18n/locales/zh-CN/app.json | 16 ++++-
packages/i18n/locales/zh-TW/app.json | 16 ++++-
29 files changed, 409 insertions(+), 153 deletions(-)
Fusion-Task-Id: FN-8310
Fusion-Task-Lineage: 0efa8d76-e849-4256-bdcd-e9d6dd612e41
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 14:51:49 -07:00
gsxdsm
965f15f5ca
FN-8368: enforce browser-safe dashboard core imports
...
Prevent dashboard code from bypassing Vite's browser-safe core boundary.
- Add an allowlist-backed scanner for dashboard core value imports, including dynamic template imports.
- Run the scanner in test and merge-gate prechecks, with regression coverage and import guidance.
- Document reviewed browser-safe core leaves and Vite alias requirements.
Files changed:
docs/dashboard-guide.md | 6 +
package.json | 6 +-
packages/dashboard/vite.config.ts | 5 +
...no-node-only-core-imports-in-dashboard.test.mjs | 80 ++++++++++
...heck-no-node-only-core-imports-in-dashboard.mjs | 167 +++++++++++++++++++++
.../lib/dashboard-browser-safe-core-modules.json | 59 ++++++++
6 files changed, 320 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8368
Fusion-Task-Lineage: 13e70672-d1da-430c-a360-0a714ad33d9f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-19 14:08:51 -07:00
gsxdsm
2302fb8a3d
feat: add beta/stable release tracks with switchable update channel ( #2345 )
...
## Summary
Fusion can now ship on two release tracks. Betas are cut from `main` as
`vX.Y.Z-beta.N` (npm dist-tag `beta`, GitHub prerelease), stable
releases are promoted to a long-lived `release` branch and published to
`latest`, and users pick their track with the new `updateChannel` global
setting — via **Settings → General → Release channel** or `fn update
--channel <stable|beta>`. Previously everything was single-track: every
publish landed on `latest` and every update surface could only see it.
| | beta | stable |
|---|---|---|
| Cut from | `main` | `release` branch |
| Version | `X.Y.Z-beta.N` (changesets pre-mode) | `X.Y.Z` |
| npm dist-tag | `beta` | `latest` |
| GitHub Release | prerelease | latest |
| Homebrew tap / X draft | skipped | bumped / printed |
## How releasing works now
`pnpm release` prompts for the channel and **defaults to beta**, so
day-to-day releases are betas; stable is always an explicit choice.
Choosing stable from `main` triggers assisted promotion: the script
proposes the newest beta tag reachable from HEAD, verifies `release`
fast-forwards to it, then runs the whole stable release inside a
temporary git worktree on `release` — the primary checkout never leaves
`main`. Changesets pre-mode preserves changeset files across betas, so
the promoted stable release aggregates every changeset since the last
stable into one clean changelog entry.
## Design decisions
- **Every publish path names an explicit `--tag`.** A beta accidentally
landing on `latest` is the one unrecoverable failure of a dual-track
scheme, so nothing relies on npm's implicit default (`release.mjs`,
`version.yml`).
- **Beta channel resolves to semver-max of `latest` and `beta`**, so
beta users are offered each promoted stable once it overtakes their
prerelease. Switching beta → stable never downgrades; `fn update
--channel stable --force` is the explicit escape hatch.
- **One comparator instead of three.** CLI, dashboard, and desktop each
had their own `isRemoteNewer` that ignored prerelease identifiers —
`0.73.0-beta.2`, `-beta.3`, and `0.73.0` all compared equal, which
breaks the moment any beta exists. They now share full SemVer-precedence
helpers (`compareVersions`, `resolveUpdateTargetVersion`) from
`@fusion/core`.
- **Installs pin exact versions** (`@runfusion/fusion@0.73 .0-beta.2`),
never a dist-tag, so an install can't silently land on the wrong track.
- **Desktop channels via electron-updater manifests.** Beta tags build
desktop artifacts with `publish.channel=beta` (emitting `beta*.yml`);
the app sets `channel`/`allowPrerelease` from the shared setting,
re-read on every manual check.
- **Update caches are channel-stamped** — a cache written for one
channel is never served to the other, so switching tracks takes effect
on the next check instead of after TTL.
## Test plan
- New unit coverage: SemVer precedence + channel resolution in
`@fusion/core` (30), channel behavior of the dashboard update check (28,
incl. 9 new) and `fn update` (16, incl. 8 new: persist `--channel`,
no-downgrade, `--force`, cache channel mismatch).
- `pnpm verify:fast` green (scoped typecheck, builds, CLI build, boot
smoke); desktop + settings-section suites green.
- `release.mjs` dry-run matrix exercised by hand: channel prompt
(default/override/invalid), branch preflights per channel,
assisted-promotion target selection, fast-forward guard against a
diverged `release` branch, and bootstrap when no `release` branch
exists.
- Not exercised live: an end-to-end publish (needs TTY authorization +
real npm publish). First real run is the first `pnpm release --channel
beta`.
---
[](https://github.com/EveryInc/compound-engineering-plugin )

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added beta and stable release channels across CLI, dashboard, and
desktop updates.
* Users can select a channel via Settings or `fn update --channel
<stable|beta>` (stored as a global default).
* Desktop beta releases now generate beta update manifests and publish
as prereleases.
* **Documentation**
* Expanded release-track, settings, and CLI references to explain
channel semantics and workflows.
* **Bug Fixes**
* Updates now pin the resolved version per channel, improve version
comparison, and prevent unintended cross-channel downgrades unless
`--force` is used.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 13:34:25 -07:00
gsxdsm
3f7c32c95c
refactor(cutover 2/3): engine — graph-owned lifecycle, legacy execution deleted ( #2342 )
...
Part **2 of 3** of the IR-driven lifecycle cutover (stacked on #2341 ;
top is #2335 ).
**Scope (80 files, packages/engine + cli/pi skill docs +
AGENTS/architecture):** graph-driven column moves via the
column-boundary controller (R1), single-mover scheduler/hold-release
trait cutover (KTD-2/KTD-9), trait re-keyed self-healing + merger with
the R7b confirmed-merge-must-finalize guarantee, graph-exclusive Plan
Review with leased dedup (R4/R5), the executeCore body-lift — zero
legacy re-entry — with fn_review_step + interceptor machinery deleted
and tombstone-ratcheted (R9), builtin workflow runtime fixes (missing
hold handler, unseamed-node column inheritance, no-merge completion
mover), the 6-column benchmark acceptance suite (11 tests) + 12-builtin
lifecycle sweep (94 assertions), and the executor test-harness
modernization. Also retires core's interpreter-cutover scaffolding whose
last consumer (the authoritative driver) dies here.
**Merge order:** #2341 → this → #2335 . After #2341 merges, retarget this
to main.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 12:08:10 -07:00
gsxdsm
05a02e8061
refactor(cutover 1/3): core — IR-driven lifecycle foundation ( #2341 )
...
Part **1 of 3** of the IR-driven lifecycle cutover (split from #2335 to
fit review-tool file limits; plan:
docs/plans/2026-07-18-001-refactor-ir-driven-lifecycle-cutover-plan.md,
included here).
**Scope (48 files, packages/core + docs/plans):** shared transition
policy + validator (KTD-5), IR validation hardening incl. the benchmark
capability floor, CAS review leases (KTD-4), pooled WIP capacity budgets
(KTD-9), lifecycle-trait helpers, durable IR pin/drift detection
(KTD-3), review-level creation-time preset, legacy adoption module +
census + migration 0026 + stale-binary guard (KTD-8), core-side builtin
workflow fixes (single default-IR authority, no-merge complete-column
support).
Note: `workflow-cutover.ts` (interpreter parity scaffolding) stays alive
in this PR — its last consumer dies in part 2/3, which retires it.
**Merge order:** this PR → #TBD-2 (engine) → #2335 (dashboard/top).
🤖 Generated with [Claude Code](https://claude.com/claude-code )
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added workflow-trait-driven task lifecycle transitions, including WIP
capacity pooling and workflow-aware recovery (IR pinning + drift
detection).
* Added legacy adoption/backfill for pre-cutover task states, with
unmappable rows safely parked.
* Added create-time `reviewLevel` presets to automatically configure
enabled workflow steps.
* **Bug Fixes**
* Fixed workflow moves when no workflow selection exists.
* Improved merge-blocker validation to be keyed to the workflow’s actual
review-lane identity, preventing invalid moves and misclassified
terminal states.
* **Tests**
* Added end-to-end and unit/integration coverage for workflow
validation, legacy adoption, migrations/schema guards, leases, review
presets, and transition rules.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 11:50:52 -07:00
gsxdsm
ecffdbb14b
fix: isolate test-mode database access
...
Prevent automated tests from inheriting production PostgreSQL URLs and route global test-mode startups to a dedicated external or embedded test database.
2026-07-19 00:10:02 -07:00
gsxdsm
e30f6d851f
FN-8293: add native structure drag-and-draft mail composition
...
Mail composers can attach native structures by drag-and-drop and generate report narratives with AI.
- Add a shared native-structure drag protocol and attachable previews across Mail source views.
- Add a disposable compose-chat panel that drafts narratives around attached embeds.
- Cover drag behavior and compose-chat session lifecycle, and document the Mail interaction.
Files changed:
.changeset/fn-8293-mail-drag-compose-chat.md | 7 ++
docs/dashboard-guide.md | 3 +
.../dashboard/app/components/ComposeChatPanel.css | 33 ++++++
.../dashboard/app/components/ComposeChatPanel.tsx | 117 +++++++++++++++++++++
packages/dashboard/app/components/EvalsView.tsx | 3 +-
packages/dashboard/app/components/GoalsView.tsx | 6 ++
packages/dashboard/app/components/InsightsView.tsx | 8 +-
.../dashboard/app/components/MessageComposer.css | 22 ++++
.../dashboard/app/components/MessageComposer.tsx | 92 ++++++++++++++--
.../dashboard/app/components/MissionManager.tsx | 11 +-
.../components/__tests__/ComposeChatPanel.test.tsx | 102 ++++++++++++++++++
.../components/__tests__/MessageComposer.test.tsx | 25 +++++
.../utils/__tests__/nativeStructureDrag.test.ts | 56 ++++++++++
.../dashboard/app/utils/nativeStructureDrag.ts | 54 ++++++++++
14 files changed, 525 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8293
Fusion-Task-Lineage: 9864e76c-2a0d-41f6-b7f2-de8dd63710b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 20:30:42 -07:00
gsxdsm
0dbe67c851
FN-8356: clear stale duplicate decision pauses
...
Clear inactive duplicate markers so eligible tasks resume planning instead of showing a stranded decision badge.
- Reconcile stale triage-marker duplicate pauses during self-healing and record audit events.
- Clear inactive canonical markers during triage while preserving user and unrelated pauses.
- Cover missing, deleted, completed, and archived canonical states with regression tests.
Files changed:
.changeset/fn-8356-stale-duplicate-decision.md | 7 ++
AGENTS.md | 1 +
docs/architecture.md | 1 +
.../explicit-duplicate-marker-sweep.test.ts | 43 ++++++--
.../self-healing-stale-duplicate-decision.test.ts | 109 +++++++++++++++++++++
.../triage-explicit-duplicate-marker.test.ts | 32 ++++--
packages/engine/src/run-audit.ts | 2 +
packages/engine/src/self-healing.ts | 87 ++++++++++++++--
packages/engine/src/triage.ts | 41 ++++++--
9 files changed, 298 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-8356
Fusion-Task-Lineage: 8df8f0ee-d73e-41d6-8abe-a4b33662c9da
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 20:06:41 -07:00
gsxdsm
c8b4e23ca4
FN-8357: show verification videos in the Quality hub
...
Surface executor-produced task verification videos in the top-level Quality hub.
- Fetch review-artifact settings and video artifacts per selected project.
- Render tokenized inline videos with source-task navigation and responsive states.
- Add host interop aliases, coverage, documentation, and a minor changeset.
Files changed:
.changeset/FN-8357-quality-verification-videos.md | 7 +
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 +-
packages/dashboard/tsconfig.app.json | 1 +
packages/dashboard/vite.config.ts | 2 +
packages/dashboard/vitest.config.ts | 2 +
plugins/fusion-plugin-quality/package.json | 1 +
.../dashboard-view-verification-videos.test.tsx | 131 ++++++++++++++++++
.../src/dashboard-interop.d.ts | 20 +++
.../fusion-plugin-quality/src/dashboard-view.css | 87 ++++++++++++
.../fusion-plugin-quality/src/dashboard-view.tsx | 151 +++++++++++++++++++--
plugins/fusion-plugin-quality/tsconfig.json | 1 +
plugins/fusion-plugin-quality/vitest.config.ts | 8 ++
pnpm-lock.yaml | 135 +++++++++++++++++-
14 files changed, 532 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8357
Fusion-Task-Lineage: 728a5417-87ed-4203-850d-8ee108206766
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 19:51:58 -07:00
gsxdsm
cf3f5e9bf0
FN-8292: embed native structures in mail messages
...
Embed selected native project structures directly in mailbox messages and drafts.
- Persist native structure embeds in message metadata and expose their shared types.
- Add composer selection, mailbox rendering, previews, and dashboard navigation for linked structures.
- Cover metadata persistence and mailbox embed behavior with core and dashboard tests.
Files changed:
.changeset/fn-8292-mail-native-structure-embeds.md | 7 ++
docs/dashboard-guide.md | 1 +
.../message-metadata-native-structures.test.ts | 25 +++++++
.../__tests__/postgres/message-store.pg.test.ts | 21 ++++++
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 32 +++++++++
packages/core/src/types/messages.ts | 14 ++++
packages/dashboard/app/components/MailboxModal.css | 29 ++++++++
packages/dashboard/app/components/MailboxModal.tsx | 13 +++-
.../components/MailboxNativeStructureEmbeds.tsx | 37 ++++++++++
packages/dashboard/app/components/MailboxView.tsx | 14 +++-
.../dashboard/app/components/MessageComposer.tsx | 65 ++++++++++++++++--
.../app/components/NativeStructurePreview.tsx | 6 +-
.../__tests__/MailboxModal.cache.test.tsx | 8 +--
.../app/components/__tests__/MailboxModal.test.tsx | 9 +++
.../MailboxNativeStructureEmbeds.test.tsx | 42 ++++++++++++
.../app/components/__tests__/MailboxView.test.tsx | 9 +++
.../components/__tests__/MessageComposer.test.tsx | 25 +++++++
.../app/components/dashboard/MainContent.tsx | 78 +++++++++++++++++++++-
.../MainContent.mailbox-view-task.test.tsx | 46 ++++++++++++-
20 files changed, 459 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-8292
Fusion-Task-Lineage: ae6cfb9c-a764-407c-bd45-cfd879ccdd3e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 19:45:08 -07:00
gsxdsm
bc4b679598
FN-8291: add inline native structure previews to chat
...
Enable chat users to inspect and open referenced native structures inline.
- Render clickable inline previews for native structure references across chat surfaces.
- Route preview actions to their corresponding task, mission, goal, and other dashboard views.
- Add regression coverage, dashboard documentation, and a CLI changeset.
Files changed:
...fn-8291-chat-native-structure-inline-preview.md | 7 +
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/App.tsx | 31 +++
.../app/components/StandardChatSurface.tsx | 226 ++++++++++++++++--
...andardChatSurface.nativeStructureEmbed.test.tsx | 257 +++++++++++++++++++++
.../__tests__/nativeStructureChatRef.test.ts | 54 +++++
.../app/components/nativeStructureChatRef.ts | 58 +++++
.../app/components/nativeStructureNavigation.ts | 21 ++
8 files changed, 635 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-8291
Fusion-Task-Lineage: 9db2c0fa-494e-4779-93f3-3309eed8565a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 19:36:57 -07:00
gsxdsm
b61311baa8
FN-8305: add durable PostgreSQL symbol locks
...
Introduce durable project-scoped symbol locks backed by PostgreSQL.
- Add normalized lease-based lock acquisition, renewal, release, and reconciliation APIs with audit events.
- Add PostgreSQL schema migrations and self-healing reconciliation coverage.
- Document the lock model and test migration and lock behavior.
Files changed:
AGENTS.md | 1 +
docs/architecture.md | 1 +
docs/storage.md | 7 +
.../src/__tests__/postgres/schema-applier.test.ts | 115 +++++++++-
packages/core/src/__tests__/symbol-locks.test.ts | 91 ++++++++
packages/core/src/index.ts | 17 ++
.../core/src/postgres/migrations/0000_initial.sql | 25 +++
.../src/postgres/migrations/0025_symbol_locks.sql | 63 ++++++
packages/core/src/postgres/schema-applier.ts | 18 +-
packages/core/src/postgres/schema/project.ts | 29 +++
packages/core/src/store.ts | 23 ++
packages/core/src/symbol-lock-types.ts | 60 +++++
packages/core/src/task-store/symbol-locks.ts | 244 +++++++++++++++++++++
.../__tests__/symbol-lock-reconciliation.test.ts | 19 ++
packages/engine/src/self-healing.ts | 35 +++
15 files changed, 745 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8305
Fusion-Task-Lineage: efd95c73-23e3-4359-8204-dfad374a39bc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 19:31:30 -07:00
gsxdsm
12aee016ee
FN-8352: promote ideation to top-level navigation
...
Make ideation independently accessible from desktop and mobile navigation.
- Add an Ideation view backed by the Command Center panel and view-state routing.
- Surface Ideation in desktop/sidebar and mobile primary navigation, with coverage for navigation and rendering.
- Document the experimental setting and add a minor changeset.
Files changed:
.changeset/fn-8352-ideation-top-level-view.md | 7 ++++
docs/dashboard-guide.md | 14 +++++++
docs/settings-reference.md | 3 +-
.../src/__tests__/mobile-nav-primary-items.test.ts | 10 ++++-
packages/core/src/mobile-nav-primary-items.ts | 17 +++++++-
packages/dashboard/app/App.tsx | 16 ++++++-
packages/dashboard/app/components/Header.tsx | 21 +++++++--
.../dashboard/app/components/LeftSidebarNav.tsx | 8 +++-
packages/dashboard/app/components/MobileNavBar.tsx | 2 +
.../dashboard/app/components/SettingsModal.tsx | 6 +++
.../app/components/__tests__/App.test.tsx | 20 +++++++++
.../app/components/__tests__/Header.test.tsx | 15 +++++++
.../components/__tests__/LeftSidebarNav.test.tsx | 5 +++
.../app/components/__tests__/MobileNavBar.test.tsx | 43 +++++++++++++++---
.../components/command-center/CommandCenter.tsx | 12 +++---
.../__tests__/CommandCenter.test.tsx | 7 ++--
.../__tests__/IdeationPanel.test.tsx | 49 ++++++++++++++++++++++
.../app/components/dashboard/MainContent.tsx | 13 ++++++
.../dashboard/app/components/dashboard/types.ts | 1 +
.../settings/sections/GeneralSection.tsx | 10 ++---
packages/dashboard/app/hooks/useViewState.ts | 8 +++-
21 files changed, 256 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-8352
Fusion-Task-Lineage: e7791119-2fe5-4e68-b669-0e5bd8df9b49
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 19:18:57 -07:00
gsxdsm
482dbe77a4
FN-8340: preserve Quick Chat layout on restore
...
Keep minimized Quick Chat mounted and layout-stable for instant restores.
- Hide retained floating windows with visibility and disable pointer interaction
- Cover conversation-load, session, and scroll retention across desktop and mobile restores
- Document the retained Quick Chat behavior
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/FloatingWindow.css | 12 +++--
packages/dashboard/app/components/FloatingWindow.tsx | 9 ++--
packages/dashboard/app/components/__tests__/FloatingWindow.test.tsx | 4 ++
packages/dashboard/app/components/__tests__/QuickChat.persist.test.tsx | 58 +++++++++++++++++-----
5 files changed, 63 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-8340
Fusion-Task-Lineage: 25027098-b89a-481c-bf00-de64cf302628
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 19:11:56 -07:00
gsxdsm
0cba6fa56a
FN-8351: move org portability controls to Team
...
Move organization export and import from Overview to the Team section.
- Render the existing portability controls in TeamArea with the established settings refresh flow
- Remove the Overview mount and update focused placement coverage
- Document the Team-tab location and add a patch changeset
Files changed:
.changeset/fn-8351-org-portability-team-tab.md | 7 +++
docs/dashboard-guide.md | 3 +-
.../command-center/CommandCenterControls.tsx | 6 +-
.../__tests__/CommandCenterControls.test.tsx | 15 ++---
.../components/command-center/areas/TeamArea.tsx | 8 +++
.../areas/__tests__/TeamArea.test.tsx | 66 ++++++++++++++++++++++
6 files changed, 91 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8351
Fusion-Task-Lineage: 3877a8ec-f307-4da5-88bb-806e1428d14a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 18:53:02 -07:00
gsxdsm
9f44f26a36
FN-8350: move configuration versions into Settings
...
Move project configuration revision history and rollback controls from Command Center to Settings.
- Add a Project Settings configuration versions section with rollback handling.
- Remove the Command Center revision card and retain organization portability controls.
- Update translations, dashboard documentation, tests, and release metadata.
Files changed:
.changeset/fn-8350-config-versions-settings.md | 7 ++
docs/dashboard-guide.md | 3 +-
.../dashboard/app/components/SettingsModal.tsx | 11 ++++
.../command-center/OrgPortabilityControls.css | 47 ++------------
.../command-center/OrgPortabilityControls.tsx | 55 +---------------
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 2 +-
.../__tests__/OrgPortabilityControls.test.tsx | 37 ++---------
.../sections/ConfigurationVersionsSection.css | 56 ++++++++++++++++
.../sections/ConfigurationVersionsSection.tsx | 75 ++++++++++++++++++++++
.../ConfigurationVersionsSection.test.tsx | 58 +++++++++++++++++
packages/i18n/locales/en/app.json | 29 +++++----
11 files changed, 238 insertions(+), 142 deletions(-)
Fusion-Task-Id: FN-8350
Fusion-Task-Lineage: a7f68720-038a-42a6-b064-38533c584492
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 18:45:16 -07:00
gsxdsm
38891bfd81
FN-8296: add chat-requested task verification
...
Enable chat agents to queue and monitor executor-owned verification runs.
- Persist task verification requests through a new PostgreSQL migration.
- Expose action-gated chat request and status tools with executor processing.
- Show verification status in task and Command Center views.
- Advance the schema baseline to migration 0024 and keep chat mocks complete.
Files changed:
.changeset/fn-8296-feature.md | 7 ++
docs/agent-tool-surface-full-loop.md | 10 +--
docs/dashboard-guide.md | 4 +
packages/core/src/index.ts | 2 +
.../core/src/postgres/migrations/0000_initial.sql | 20 +++++
.../migrations/0024_task_verification_request.sql | 20 +++++
packages/core/src/postgres/schema-applier.ts | 13 ++-
packages/core/src/postgres/schema/project.ts | 25 ++++++
packages/core/src/store.ts | 16 +++-
packages/core/src/task-store/reads.ts | 14 +++-
packages/core/src/task-store/remaining-ops-6.ts | 49 ++++++++++-
packages/core/src/types.ts | 30 +++++++
packages/dashboard/app/api/legacy.ts | 1 +
packages/dashboard/app/api/task-content.ts | 10 +++
.../dashboard/app/components/TaskDetailModal.tsx | 17 +++-
.../app/components/TaskVerificationStatus.css | 94 ++++++++++++++++++++++
.../app/components/TaskVerificationStatus.tsx | 39 +++++++++
.../__tests__/TaskVerificationStatus.test.tsx | 28 +++++++
.../components/command-center/CommandCenter.css | 33 ++++++++
.../components/command-center/CommandCenter.tsx | 37 ++++++++-
packages/dashboard/src/__tests__/chat.test.ts | 1 +
packages/dashboard/src/chat.ts | 55 +++++++++++++
.../src/routes/register-command-center-routes.ts | 20 +++++
.../src/routes/register-task-workflow-routes.ts | 17 ++++
packages/engine/src/executor.ts | 51 +++++++++++-
packages/engine/src/gating-classifications.ts | 5 ++
packages/engine/src/index.ts | 2 +-
27 files changed, 605 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-8296
Fusion-Task-Lineage: f94647cf-c89f-4f0e-b25f-cbf5b56683bc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 18:38:47 -07:00
gsxdsm
e2b5532290
FN-8288: add native structure preview foundation
...
Provide reusable, typed previews for native dashboard structures.
- Define five-kind native structure references and preview payloads.
- Add project-scoped preview resolution API with unavailable states and capped excerpts.
- Add a callback-driven inline preview card, tests, documentation, and release note.
Files changed:
.changeset/fn-8288-native-structure-preview.md | 7 ++
docs/dashboard-guide.md | 4 +
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 1 +
packages/core/src/types.ts | 54 ++++++++++
packages/dashboard/app/api/legacy.ts | 1 +
packages/dashboard/app/api/task-content.ts | 13 ++-
.../app/components/NativeStructurePreview.css | 61 +++++++++++
.../app/components/NativeStructurePreview.tsx | 115 +++++++++++++++++++++
.../__tests__/NativeStructurePreview.test.tsx | 102 ++++++++++++++++++
packages/dashboard/src/native-structure-preview.ts | 88 ++++++++++++++++
.../native-structure-preview-routes.test.ts | 102 ++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 23 +++++
13 files changed, 571 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8288
Fusion-Task-Lineage: 1a4ce369-9f9e-4a45-b533-2d53b5f1020c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 18:11:02 -07:00
gsxdsm
4cc8002c97
FN-8341: rework planning interviews for reactive validation
...
Make planning interviews user-controlled and context-aware from validation through task creation.
- Replace fixed-depth and deepening checkpoints with reactive follow-up questions
- Add explicit planning validation and require it before creating or breaking down work
- Expose validation through the API, CLI, routes, types, documentation, and release notes
- Update localized copy and PlanningModeModal mocks and assertions for the revised workflow
Files changed:
.changeset/fn-8341-deepening-checkpoint-removal.md | 7 +
.changeset/fn-8341-planning-reactive-backend.md | 7 +
docs/dashboard-guide.md | 8 +-
packages/cli/src/commands/task.ts | 12 +-
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 38 +-
packages/dashboard/app/api/legacy.ts | 15 +-
.../dashboard/app/components/PlanningModeModal.tsx | 192 +-----
.../__tests__/PlanningModeModal.autosize.test.tsx | 4 +
.../__tests__/PlanningModeModal.initial.test.tsx | 50 +-
.../PlanningModeModal.planning-flow.test.tsx | 442 +------------
.../__tests__/PlanningModeModal.test-helpers.ts | 1 +
.../PlanningModeModal.ui-interactions.test.tsx | 3 +
.../__tests__/planning-infinite-interview.test.ts | 221 +++++++
packages/dashboard/src/planning.ts | 711 ++++++---------------
.../src/routes/register-planning-subtask-routes.ts | 64 +-
packages/i18n/locales/en/app.json | 1 -
packages/i18n/locales/es/app.json | 1 -
packages/i18n/locales/fr/app.json | 1 -
packages/i18n/locales/ko/app.json | 1 -
packages/i18n/locales/zh-CN/app.json | 1 -
packages/i18n/locales/zh-TW/app.json | 1 -
23 files changed, 536 insertions(+), 1249 deletions(-)
Fusion-Task-Id: FN-8341
Fusion-Task-Lineage: 102f88af-2675-43f5-8e08-5403a0e17da8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 17:53:20 -07:00
gsxdsm
7e7c3c999b
FN-8317: add reviewed report screenshots and activity traces
...
Capture optional report context while preserving scrubbed text-first filing.\n\n- Add browser screenshot capture, review, validation, and compensating upload cleanup.\n- Include bounded activity traces in report drafts and filing flows.\n- Preserve roadmap deduplication and document report privacy behavior.\n\nFiles changed:\n .changeset/fn-8317-report-context.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/api/report.ts | 15 +-
packages/dashboard/app/components/ReportModal.css | 5 +-
packages/dashboard/app/components/ReportModal.tsx | 52 +++----
.../app/components/__tests__/ReportModal.test.tsx | 14 ++
packages/dashboard/app/hooks/useViewState.ts | 7 +
.../app/utils/__tests__/report-capture.test.ts | 17 +++
packages/dashboard/app/utils/report-capture.ts | 47 +++++++
packages/dashboard/package.json | 1 -
.../src/__tests__/report-pipeline.test.ts | 100 +++++++++++++-
.../dashboard/src/__tests__/report-routes.test.ts | 17 +++
.../dashboard/src/__tests__/report-scrub.test.ts | 8 ++
packages/dashboard/src/github.ts | 107 +++++++++++++++
packages/dashboard/src/report-pipeline.ts | 152 ++++++++++++++++-----
packages/dashboard/src/report-scrub.ts | 8 ++
.../dashboard/src/routes/register-report-routes.ts | 103 ++++++--------
pnpm-lock.yaml | 129 +++++++++--------
18 files changed, 590 insertions(+), 203 deletions(-)
Fusion-Task-Id: FN-8317
Fusion-Task-Lineage: 9d200cee-cf69-4827-9e1e-f7789adf09e0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 17:06:34 -07:00
gsxdsm
c95e08ea21
FN-8297: add research finding promotion to mission features
...
Bridge completed research findings into durable mission roadmap features.
- Persist stable finding and citation provenance on mission features
- Add idempotent promotion APIs, dashboard controls, and agent tooling
- Document the promotion flow and cover finding identity and feature synchronization
Files changed:
.changeset/fn-8297-research-mission-bridge.md | 7 ++++
docs/missions.md | 4 +++
docs/research.md | 4 +++
.../__tests__/research-finding-identity.test.ts | 15 +++++++++
packages/core/src/async-mission-store-queries.ts | 26 +++++++++++++++
packages/core/src/async-mission-store.ts | 16 +++++++++
packages/core/src/index.gate.ts | 3 ++
packages/core/src/index.ts | 3 ++
packages/core/src/mission-types.ts | 13 ++++++++
.../core/src/postgres/migrations/0000_initial.sql | 4 +++
.../0023_research_feature_provenance.sql | 8 +++++
packages/core/src/postgres/schema-applier.ts | 13 +++++++-
packages/core/src/postgres/schema/project.ts | 5 +++
packages/core/src/research-feature-promotion.ts | 38 ++++++++++++++++++++++
packages/core/src/research-types.ts | 21 ++++++++++++
packages/core/src/types.ts | 1 +
packages/dashboard/app/api/legacy.ts | 21 ++++++++++++
packages/dashboard/app/components/ResearchView.tsx | 19 ++++++-----
packages/dashboard/app/hooks/useResearch.ts | 3 ++
packages/dashboard/src/chat.ts | 4 +--
packages/dashboard/src/research-routes.ts | 37 +++++++++++++++++----
.../src/__tests__/agent-mission-tools.test.ts | 14 +++++++-
.../src/__tests__/mission-feature-sync.test.ts | 20 ++++++++++++
packages/engine/src/agent-tools.ts | 26 +++++++++++++++
packages/engine/src/mission-feature-sync.ts | 1 +
25 files changed, 308 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8297
Fusion-Task-Lineage: ffef4d26-1372-466a-8d3d-2b9b5cc9a53b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 16:18:15 -07:00
gsxdsm
1215c76d9a
FN-8326: add roadmap report deduplication
...
Add an optional public-roadmap source for report deduplication.
- Add project settings and localized controls for roadmap matching.
- Resolve roadmap entries through the plugin API and stop strong duplicate reports before filing.
- Cover report pipeline, route, UI, and roadmap store behavior with tests.
Files changed:
.changeset/fn-8326-roadmap-report-dedup.md | 7 +++
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-parity.test.ts | 3 +
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 6 ++
packages/dashboard/app/components/ReportModal.tsx | 11 +++-
.../app/components/__tests__/ReportModal.test.tsx | 14 +++++
.../__tests__/SettingsModal.general.test.tsx | 2 +
.../settings/sections/GeneralSection.tsx | 10 ++++
.../settings-default-descriptions.test.tsx | 1 +
.../src/__tests__/report-pipeline.test.ts | 31 +++++++++++
.../src/__tests__/report-roadmap-source.test.ts | 32 +++++++++++
.../dashboard/src/__tests__/report-routes.test.ts | 27 +++++++--
packages/dashboard/src/index.ts | 1 +
packages/dashboard/src/report-pipeline.ts | 36 +++++++++++-
packages/dashboard/src/report-roadmap-source.ts | 64 ++++++++++++++++++++++
.../dashboard/src/routes/register-report-routes.ts | 3 +
packages/i18n/locales/en/app.json | 10 +++-
packages/i18n/locales/es/app.json | 10 +++-
packages/i18n/locales/fr/app.json | 10 +++-
packages/i18n/locales/ko/app.json | 10 +++-
packages/i18n/locales/zh-CN/app.json | 10 +++-
packages/i18n/locales/zh-TW/app.json | 10 +++-
.../src/__tests__/roadmap-store-factory.test.ts | 25 +++++++++
.../src/routes/roadmap-routes.ts | 24 +-------
plugins/fusion-plugin-roadmap/src/server/index.ts | 34 ++++++++++++
27 files changed, 360 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-8326
Fusion-Task-Lineage: e9731c3f-dd92-44ac-910b-0e0efbaaf288
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 14:23:14 -07:00
gsxdsm
589e2503a9
docs(FN-8280): index agent tool-surface audit
2026-07-18 14:21:41 -07:00
gsxdsm
bcdad279d7
FN-8289: add feature-video review artifacts
...
Add gated local feature-video capture to completed user-facing deliverables.
- Capture loopback scenario WebM recordings through the existing artifact registry.
- Keep recording failures non-blocking and cover gated, unsafe, and failed capture paths.
- Document the scenario contract and package the Playwright runtime dependency.
Files changed:
.changeset/fn-8289-feature-video.md | 7 +
docs/workflow-steps.md | 8 +
packages/cli/package.json | 3 +-
packages/cli/tsup.config.ts | 7 +
packages/engine/package.json | 3 +-
.../__tests__/executor-review-artifacts.test.ts | 44 ++++
packages/engine/src/executor.ts | 33 +++
.../src/review-artifacts/feature-video.test.ts | 75 +++++++
.../engine/src/review-artifacts/feature-video.ts | 226 +++++++++++++++++++++
packages/engine/src/review-artifacts/index.ts | 10 +
pnpm-lock.yaml | 6 +
11 files changed, 420 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8289
Fusion-Task-Lineage: 8a34675a-2417-4669-a14a-b74c4aa99331
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:53:58 -07:00
gsxdsm
02ee8a4fd5
fix: hide stale task-card oversight icons ( #2318 )
...
## Summary
Task cards now remove the overseer eye as soon as their workflow's
effective oversight becomes `off`, instead of reusing an active value
cached before the setting changed.
The invalidation covers card remounts as well as mounted cards, and
authoritative writes from the dashboard, agents, and configuration
rollback reach the board through the existing project-scoped SSE stream.
Older in-flight responses cannot restore the eye after a newer `off`
value wins, while unrelated workflow-setting saves leave active
indicators undisturbed.
## Validation
- 99 focused dashboard regression tests passed across selected and
aggregate cards, desktop and mobile, SSE delivery, and out-of-order
responses
- Core and dashboard typechecks passed
- `pnpm lint` and `pnpm check:changesets` passed
- `pnpm verify:fast` passed production builds and the CLI/server boot
smoke
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Planner-overseer eye badges now disappear immediately when workflow
oversight is turned off.
- Prevented stale or out-of-order updates from displaying incorrect
oversight status.
- Oversight indicators now remain hidden when the effective setting
cannot be confirmed.
- Live workflow setting changes now update task cards without requiring
a page refresh.
- **Documentation**
- Clarified eye badge visibility rules, tooltip meaning, and active
oversight states in the dashboard guide.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-18 13:50:58 -07:00
gsxdsm
e0d2fd6085
FN-8332: preserve planning session progress after reload
...
Restore persisted Planning Mode sessions without starting a new generation.
- Limit automatic retries to generations started by the current mounted UI
- Render saved questions, summaries, thinking, and errors with manual retry after reload or resume
- Cover desktop, mobile, stream, and polling recovery paths and document the behavior
- Add a patch changeset for the published package
Files changed:
.changeset/fn-8332-planning-reload-resume.md | 7 +
docs/dashboard-guide.md | 4 +-
.../dashboard/app/components/PlanningModeModal.tsx | 36 ++++-
.../PlanningModeModal.planning-flow.test.tsx | 175 +++++++++++++++++----
4 files changed, 180 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-8332
Fusion-Task-Lineage: 6b128dc3-a091-4e81-bc6a-9c541d8e4cf5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:32:33 -07:00
gsxdsm
d51ce46db5
FN-8295: add persisted ideation mission handoffs
...
Persist bounded ideation sessions through agent tools, the Command Center, and atomic Mission convergence.
- Store ideation sessions and divergent candidates in PostgreSQL with async APIs and migration support.
- Expose gated ideation tools, chat routes, and agent lifecycle integration.
- Add the Ideation panel, documentation, release metadata, and regression coverage.
Files changed:
.changeset/fn-8295-ideation-diverge-converge.md | 7 ++
docs/ideation/persisted-diverge-converge.md | 22 ++++
docs/missions.md | 4 +
.../__tests__/postgres/ideation-store.pg.test.ts | 57 +++++++++
packages/core/src/async-ideation-store-queries.ts | 117 +++++++++++++++++
packages/core/src/async-ideation-store.ts | 138 +++++++++++++++++++++
packages/core/src/async-mission-store.ts | 27 ++--
packages/core/src/ideation-types.ts | 69 +++++++++++
packages/core/src/index.ts | 3 +
.../core/src/postgres/migrations/0022_ideation.sql | 67 ++++++++++
packages/core/src/postgres/schema-applier.ts | 18 ++-
packages/core/src/postgres/schema/project.ts | 49 +++++++-
packages/core/src/store.ts | 8 +-
packages/core/src/task-store/remaining-ops-8.ts | 14 +++
.../components/command-center/CommandCenter.tsx | 7 +-
.../components/command-center/IdeationPanel.css | 18 +++
.../components/command-center/IdeationPanel.tsx | 58 +++++++++
.../__tests__/CommandCenter.test.tsx | 6 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 1 +
packages/dashboard/src/__tests__/chat.test.ts | 1 +
.../__tests__/ideation-tool-route-parity.test.ts | 29 +++++
packages/dashboard/src/chat.ts | 4 +
packages/dashboard/src/ideation-routes.ts | 50 ++++++++
.../src/routes/register-integrated-routers.ts | 2 +
.../src/__tests__/agent-ideation-tools.test.ts | 40 ++++++
.../src/__tests__/gating-classifications.test.ts | 16 +++
.../src/__tests__/permanent-agent-gating.test.ts | 2 +
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 67 ++++++++++
packages/engine/src/executor.ts | 2 +
packages/engine/src/gating-classifications.ts | 8 ++
packages/engine/src/index.ts | 1 +
packages/engine/src/triage.ts | 2 +
33 files changed, 897 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8295
Fusion-Task-Lineage: 1b8b0752-22bd-4b2f-aebd-4305c63abcf9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:18:08 -07:00
gsxdsm
13f936eb7b
FN-8286: add review artifact controls and galleries
...
Add configurable review-deliverable policies and surface eligible artifacts in review workflows.
- Add project and PROMPT.md review-artifact modes with task eligibility enforcement.
- Display video and live-demo deliverables in Task Review and Command Center galleries.
- Document, localize, and test the new review-artifact controls.
Files changed:
.changeset/fn-8286-review-artifacts.md | 7 ++
docs/settings-reference.md | 1 +
.../core/src/__tests__/review-artifacts.test.ts | 53 +++++++++++++++
.../core/src/__tests__/settings-parity.test.ts | 5 ++
packages/core/src/index.ts | 4 +-
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 75 ++++++++++++++++++++++
packages/core/src/types/execution-and-ui.ts | 8 +++
.../dashboard/app/components/TaskReviewTab.tsx | 28 +++++++-
.../__tests__/SettingsModal.general.test.tsx | 8 +++
.../components/__tests__/TaskReviewTab.test.tsx | 27 ++++++++
.../components/command-center/CommandCenter.tsx | 5 ++
.../command-center/areas/ReviewArtifactsArea.tsx | 59 +++++++++++++++++
.../areas/__tests__/ReviewArtifactsArea.test.tsx | 39 +++++++++++
.../app/components/settings/section-keys.ts | 1 +
.../settings/sections/GeneralSection.tsx | 20 ++++++
.../settings-default-descriptions.test.tsx | 1 +
.../src/__tests__/agent-artifact-tools.test.ts | 19 +++++-
packages/engine/src/agent-tools.ts | 26 ++++++++
packages/i18n/locales/en/app.json | 7 ++
packages/i18n/src/resources.d.ts | 7 ++
21 files changed, 397 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8286
Fusion-Task-Lineage: 357ccbe3-510d-4ffd-ba7c-6bf79fe40a09
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:09:38 -07:00
gsxdsm
551074537f
FN-8331: require planning interview before summaries
...
Ensure Planning Mode collects mandatory user context before it can generate a plan.
- Reject and re-prompt first-turn completion responses until a clarifying question is available.
- Preserve the interview invariant for streaming sessions and legacy session rehydration.
- Update Planning Mode defaults, documentation, regression coverage, and release metadata.
Files changed:
.changeset/fn-8331-planning-interview.md | 7 +
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 2 +-
.../dashboard/app/components/PlanningModeModal.tsx | 10 +-
.../PlanningModeModal.planning-flow.test.tsx | 4 +-
.../src/__tests__/routes-planning.test.ts | 120 ++++++++++++++++-
packages/dashboard/src/planning.ts | 145 ++++++++++++++-------
7 files changed, 233 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-8331
Fusion-Task-Lineage: 6fc98f2e-f263-4830-b88c-e52d1ba6551f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:01:35 -07:00
gsxdsm
500275ac0c
FN-8311: capture report activity context safely
...
Keep report traces useful while preserving local-only screenshot retention.
- Record report submissions, toast messages, and uncaught client errors in bounded report context
- Preserve single-upload screenshot artifacts across draft review and filing
- Document report-context capture and add a release changeset
Files changed:
.changeset/fn-8311-report-context.md | 7 +++++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/App.tsx | 11 ++++++++++-
packages/dashboard/app/components/ReportModal.tsx | 1 +
4 files changed, 19 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8311
Fusion-Task-Lineage: bca77264-7607-45d6-99f0-a83a4ba6631d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:57:04 -07:00
gsxdsm
88b0db0f4d
FN-8309: add report screenshot and activity capture
...
Add opt-in local screenshot attachments and scrubbed activity traces to reports.
- Capture, preview, confirm, and locally retain report screenshots without GitHub egress.
- Include bounded activity traces in draft and filing context with server-side validation.
- Add report pipeline coverage, documentation, and release metadata.
Files changed:
.changeset/fn-8309-report-capture.md | 7 ++
docs/dashboard-guide.md | 2 +
packages/dashboard/app/App.tsx | 10 ++
packages/dashboard/app/api/report.ts | 16 ++-
packages/dashboard/app/components/ReportModal.css | 3 +
packages/dashboard/app/components/ReportModal.tsx | 45 ++++++-
.../app/utils/__tests__/activity-trace.test.ts | 19 +++
packages/dashboard/app/utils/activity-trace.ts | 37 ++++++
packages/dashboard/app/utils/capture-screenshot.ts | 22 ++++
packages/dashboard/package.json | 5 +-
.../src/__tests__/report-pipeline.test.ts | 13 +++
packages/dashboard/src/report-pipeline.ts | 29 ++++-
packages/dashboard/src/routes.ts | 2 +-
.../dashboard/src/routes/register-report-routes.ts | 85 +++++++++++++-
packages/dashboard/src/routes/types.ts | 4 +-
pnpm-lock.yaml | 129 ++++++++++-----------
16 files changed, 341 insertions(+), 87 deletions(-)
Fusion-Task-Id: FN-8309
Fusion-Task-Lineage: db9c14a6-1721-4e81-8891-cfd301473cd0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:41:42 -07:00
gsxdsm
d5db5fd58d
FN-8304: detect foreign issue-form content for translation
...
Recognize foreign GitHub and GitLab issue-form prose so import translation remains available.
- Remove issue-form scaffolding before content-language scoring.
- Identify Czech as unsupported foreign Latin content and offer translation.
- Cover automatic and manual translation paths with issue-form fixtures.
- Document the expanded import translation behavior and add a patch changeset.
Files changed:
.changeset/fn-8304-issue-form-translation.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 2 +-
packages/core/src/detect-content-language.ts | 66 ++++++++++--
.../__tests__/GitHubImportAutoTranslate.test.tsx | 42 +++++++-
.../utils/__tests__/detectContentLanguage.test.ts | 120 +++++++++++++++++++++
.../src/__tests__/import-translate-service.test.ts | 56 ++++++++++
7 files changed, 284 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-8304
Fusion-Task-Lineage: ef6ca70c-aa67-40ff-a23a-077940b5a5f0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:32:07 -07:00
gsxdsm
d593d87686
feat(FN-8064): make proactive task chat optional
...
Fusion-Task-Id: FN-8064
2026-07-18 12:21:08 -07:00
gsxdsm
9debeaa951
FN-8300: show planner activity on status-null cards
...
Keep planning cards visibly active while fresh planner logs precede authoritative task status updates.
- Track bounded client-only planner activity from fresh triage log events
- Render matching pulsing Planning badges in board and list card views
- Cover transient activity, authoritative clearing, and inactive edge cases
Files changed:
docs/dashboard-guide.md | 2 +
packages/core/src/types.ts | 6 +++
packages/dashboard/app/components/ListView.tsx | 26 ++++++++---
packages/dashboard/app/components/TaskCard.tsx | 20 +++++---
.../app/components/__tests__/ListView.test.tsx | 38 +++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 19 +++++++-
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 54 ++++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 44 +++++++++++++-----
.../app/utils/__tests__/taskActivity.test.ts | 22 ++++++++-
packages/dashboard/app/utils/taskActivity.ts | 15 +++++-
10 files changed, 219 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-8300
Fusion-Task-Lineage: e12f1277-5628-45a1-b731-54310027540e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:13:20 -07:00
gsxdsm
3568a86a66
FN-8284: add organization portability controls
...
Add Command Center tools for safe organization portability and configuration recovery.
- Register project-scoped organization export/import and revision rollback routes.
- Add localized, responsive Command Center controls for bundle preview, import, and rollback.
- Invalidate stale dry-run responses and retain only the exact previewed bundle for import.
- Cover portability routes and editing-during-preview behavior with tests.
Files changed:
docs/dashboard-guide.md | 2 +
.../command-center/CommandCenterControls.tsx | 3 +
.../command-center/OrgPortabilityControls.css | 81 +++++++++
.../command-center/OrgPortabilityControls.tsx | 184 +++++++++++++++++++++
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 2 +
.../__tests__/OrgPortabilityControls.test.tsx | 94 +++++++++++
packages/dashboard/src/routes.ts | 2 +
.../register-org-portability-routes.test.ts | 109 ++++++++++++
.../src/routes/register-org-portability-routes.ts | 129 +++++++++++++++
packages/i18n/locales/en/app.json | 37 +++++
10 files changed, 643 insertions(+)
Fusion-Task-Id: FN-8284
Fusion-Task-Lineage: 1fa06550-8064-417f-a8d0-40f693206404
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:06:00 -07:00
gsxdsm
baa1baff9f
FN-8283: add secret-scrubbed organization bundle CLI
...
Add portable, secret-scrubbed organization export and import workflows.
- Assemble agents, raw skills, routines, automations, and settings into versioned bundles.
- Add org-export and org-import CLI commands with dry-run and collision controls.
- Preserve existing skills by default or materialize suffixed destinations, with CLI coverage.
Files changed: .changeset/fn-8283-org-bundle.md | 7 +
docs/cli-reference.md | 9 ++
docs/secrets.md | 10 ++
packages/cli/src/__tests__/bin.test.ts | 17 ++
packages/cli/src/bin.ts | 26 ++-
.../cli/src/commands/__tests__/org-export.test.ts | 30 ++++
.../cli/src/commands/__tests__/org-import.test.ts | 31 ++++
packages/cli/src/commands/org-export.ts | 19 +++
packages/cli/src/commands/org-import.ts | 18 +++
packages/core/src/__tests__/org-bundle.test.ts | 69 ++++++++
packages/core/src/index.ts | 17 ++
packages/core/src/org-bundle.ts | 176 +++++++++++++++++++++
12 files changed, 428 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-8283
Fusion-Task-Lineage: 93877746-8e57-4c79-bdbe-8e4ec7a2efe6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 11:49:11 -07:00
gsxdsm
bcb1256d6b
FN-8282: add configuration revision history and rollback
...
Record configuration revisions so prior settings can be restored safely.
- Add revision storage interfaces, PostgreSQL schema, migration, and pruning.
- Capture changes to global settings, routines, automations, and async task settings.
- Expose revision listing and restore operations with coverage and storage documentation.
Files changed:
.changeset/fn-8282-config-versioning.md | 7 +
docs/storage.md | 6 +
.../__tests__/configuration-revision-store.test.ts | 26 +++
.../src/__tests__/postgres/schema-applier.test.ts | 15 +-
.../core/src/async-configuration-revision-store.ts | 192 +++++++++++++++++++++
packages/core/src/automation-store.ts | 88 +++++++++-
packages/core/src/configuration-revision-store.ts | 33 ++++
packages/core/src/global-settings.ts | 172 +++++++++++++++++-
packages/core/src/index.gate.ts | 3 +
packages/core/src/index.ts | 3 +
.../migrations/0021_configuration_revisions.sql | 40 +++++
packages/core/src/postgres/schema-applier.ts | 19 +-
packages/core/src/postgres/schema/project.ts | 27 +++
packages/core/src/routine-store.ts | 103 ++++++++++-
packages/core/src/store.ts | 21 ++-
packages/core/src/task-store/async-settings.ts | 14 +-
packages/core/src/task-store/remaining-ops-2.ts | 86 ++++++++-
packages/core/src/task-store/settings-ops.ts | 104 +++++++----
packages/core/src/types.ts | 36 ++++
packages/engine/src/agent-tools.ts | 7 +-
20 files changed, 928 insertions(+), 74 deletions(-)
Fusion-Task-Id: FN-8282
Fusion-Task-Lineage: fd681798-10b0-47ce-b96b-6f33eecdf70a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 11:34:42 -07:00
gsxdsm
e8c37b076e
FN-8277: add in-app agentic reporting
...
Add guided in-app reporting that safely files or endorses GitHub issues and discussions.
- Add report actions, modal UI, API routes, and configurable per-action filing modes.
- Scrub report payloads, self-check Help requests, and deduplicate before filing or endorsing.
- Extend GitHub discussion support and cover the report pipeline with tests and documentation.
Files changed:
.changeset/fn-8277-agentic-reports.md | 7 +
docs/dashboard-guide.md | 8 +
docs/settings-reference.md | 2 +
.../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 | 2 +
packages/core/src/types.ts | 10 +
packages/dashboard/app/api.ts | 1 +
packages/dashboard/app/api/report.ts | 11 +
packages/dashboard/app/components/Header.tsx | 30 +++
.../dashboard/app/components/ReportActionMenu.css | 6 +
.../dashboard/app/components/ReportActionMenu.tsx | 22 ++
packages/dashboard/app/components/ReportModal.css | 6 +
packages/dashboard/app/components/ReportModal.tsx | 81 ++++++++
.../app/components/__tests__/Header.test.tsx | 7 +-
.../components/__tests__/ReportActionMenu.test.tsx | 18 ++
.../app/components/__tests__/ReportModal.test.tsx | 94 +++++++++
.../__tests__/SettingsModal.general.test.tsx | 15 ++
.../settings/sections/GeneralSection.tsx | 31 ++-
.../src/__tests__/report-pipeline.test.ts | 127 ++++++++++++
.../dashboard/src/__tests__/report-routes.test.ts | 51 +++++
.../dashboard/src/__tests__/report-scrub.test.ts | 47 +++++
packages/dashboard/src/github.ts | 151 +++++++++++++-
packages/dashboard/src/index.ts | 3 +
packages/dashboard/src/report-help-selfcheck.ts | 13 ++
packages/dashboard/src/report-pipeline.ts | 225 +++++++++++++++++++++
packages/dashboard/src/report-scrub.ts | 66 ++++++
packages/dashboard/src/routes.ts | 2 +
.../dashboard/src/routes/register-report-routes.ts | 118 +++++++++++
30 files changed, 1156 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-8277
Fusion-Task-Lineage: d50dc1da-7534-4324-ab05-1f8a0ad77c6a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 10:55:50 -07:00
gsxdsm
8d1620ea23
FN-8294: expose action-gated Mission hierarchy tools
...
Expose project-scoped Mission hierarchy operations to engine agents and eligible dashboard chat sessions.
- Add Mission, milestone, slice, and feature tool definitions backed by MissionStore
- Classify hierarchy mutations for action and permanent-agent approval gates
- Wire gated tool access through triage, executor, heartbeat, CLI, and chat lanes
- Cover tool availability, mutation gating, and chat integration with tests and documentation
Files changed:
.changeset/fn-8294-mission-engine-tools.md | 7 ++
docs/missions.md | 8 ++
packages/cli/src/extension.ts | 2 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 48 +++++++++
packages/dashboard/src/__tests__/chat.test.ts | 1 +
packages/dashboard/src/chat.ts | 113 ++++++++++++++++++++-
.../src/__tests__/agent-mission-tools.test.ts | 43 ++++++++
packages/engine/src/__tests__/triage.test.ts | 34 ++++++-
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 64 ++++++++++++
packages/engine/src/executor.ts | 2 +
packages/engine/src/gating-classifications.ts | 11 ++
packages/engine/src/index.ts | 17 ++++
packages/engine/src/triage.ts | 111 ++++++++++++++++++++
14 files changed, 457 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-8294
Fusion-Task-Lineage: ab0f248b-8a38-40e3-b297-79f9dbe18075
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 10:31:59 -07:00
gsxdsm
a6f1ed07e2
FN-8287: unify task-detail action button sizing
...
Standardize task-detail inline action controls across themes.
- Apply shared tokenized square sizing, borders, and radii to all inline metadata actions.
- Add a regression test for the common sizing rule and document the control cluster.
- Add a patch changeset for consistent task-detail action buttons.
Files changed:
.changeset/fn-8287-task-detail-button-sizes.md | 7 +++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/TaskDetailModal.css | 73 ++++++++--------------
...etailModal.responsive-and-dependencies.test.tsx | 24 +++++++
4 files changed, 57 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-8287
Fusion-Task-Lineage: 21ce01e1-7443-4a41-8a7d-faaa2bcddb28
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 10:08:33 -07:00
gsxdsm
2b455672c6
FN-8275: clarify mission merge behavior
...
Clarify mission merge choices and surface shared branch status in mission detail.
- Explain auto-merge and single-pull-request behavior in mission forms
- Show mission-owned shared branch member and PR status
- Cover UI behavior and PostgreSQL triage auto-merge cascading
Files changed:
.changeset/fn-8275-mission-merge-summary.md | 7 ++
docs/missions.md | 2 +-
.../dashboard/app/components/MissionManager.tsx | 75 ++++++++++++++++++++++
.../__tests__/MissionManager.auto-merge.test.tsx | 64 ++++++++++++++++++
.../mission-auto-merge-cascade.pg.test.ts | 58 +++++++++++++++++
5 files changed, 205 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-8275
Fusion-Task-Lineage: cd259293-b68e-4bc5-803e-40d2287d8438
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 09:41:25 -07:00
gsxdsm
119fcedcfe
FN-8276: unify mobile board snap behavior
...
Make JavaScript the sole authority for mobile Kanban pan settlement.
- Suspend native proximity snapping while a user pan settles, then restore its inline baseline.
- Restore snapping after wheels with no horizontal scroll as well as pointer and touch completion.
- Document the unified magnetism behavior and cover restoration paths with hook tests.
Files changed:
.changeset/fn-8276-unify-board-magnetism.md | 7 +++
docs/dashboard-guide.md | 3 +-
.../hooks/__tests__/useColumnScrollSnap.test.ts | 53 +++++++++++++++--
.../dashboard/app/hooks/useColumnScrollSnap.ts | 66 ++++++++++++++++++++--
4 files changed, 119 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8276
Fusion-Task-Lineage: 1ff3ae24-51e8-4c4f-aa5a-7a7b7c84d37c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 09:05:51 -07:00
gsxdsm
88fd8f3e7a
FN-8280: document full-loop agent tool-surface plan
...
Document the current agent/chat build-loop surface, its gaps, and a safe delivery plan.
- Audit ideation, research, roadmap, execution, verification, and concurrency boundaries
- Define canonical-operation parity and guardrails for future tool exposure
- Link the audit from the agent tooling documentation
Files changed:
docs/agent-tool-surface-full-loop.md | 138 +++++++++++++++++++++++++++++++++++
docs/agents.md | 2 +-
2 files changed, 139 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-8280
Fusion-Task-Lineage: ff28e0f4-c934-40a4-b030-9541b74bb913
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 08:47:18 -07:00
gsxdsm
69e7a34077
FN-8273: add mission auto-merge overrides
...
Allow operators to override project auto-merge behavior for each mission.
- Add create and update API support for mission auto-merge overrides, including clearing inherited behavior.
- Expose inherited, auto-merge, and single-pull-request choices in all mission forms.
- Apply disabled mission auto-merge to newly triaged tasks and cover storage, API, and UI behavior.
- Document the override and add a CLI changeset.
Files changed:
.changeset/fn-8273-mission-auto-merge.md | 7 ++
docs/missions.md | 4 +
.../mission-store.sync-auto-merge.test.ts | 22 ++++
.../__tests__/postgres/mission-store.pg.test.ts | 35 ++++++
packages/core/src/async-mission-store.ts | 5 +
packages/core/src/mission-store.ts | 5 +
packages/dashboard/app/api/legacy.ts | 4 +-
.../dashboard/app/components/MissionManager.tsx | 55 +++++++++
.../__tests__/MissionManager.auto-merge.test.tsx | 132 +++++++++++++++++++++
packages/dashboard/app/components/mission-types.ts | 2 +
packages/dashboard/src/mission-routes.ts | 18 ++-
.../routes/__tests__/mission-autoMerge-e2e.test.ts | 66 +++++++++++
12 files changed, 351 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8273
Fusion-Task-Lineage: d24d7c22-5a14-4446-b3e1-c35b2f0480c3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 08:01:44 -07:00