Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
7658930
feat: migrate storage from SQLite to PostgreSQL
gsxdsm Jun 26, 2026
a2ec618
fix(postgres-cutover): unawaited marker reads, unguarded backend path…
gsxdsm Jun 27, 2026
67adca3
fix(postgres-cutover): handoff atomicity, multi-project isolation, PG…
gsxdsm Jun 27, 2026
c304e39
fix(postgres-cutover): prevent embedded PG double-boot P0
gsxdsm Jun 27, 2026
0f5d24b
fix(postgres-cutover): stop agent-log flush crash + qualify project-s…
gsxdsm Jun 27, 2026
8aef180
test(postgres-cutover): gate-block the agent-log + monitor-metrics PG…
gsxdsm Jun 27, 2026
1a78070
feat(postgres-cutover): port TodoStore to PostgreSQL (todo lists work…
gsxdsm Jun 27, 2026
a0e991a
fix(postgres-cutover): degrade not-yet-ported PG features to 503 inst…
gsxdsm Jun 27, 2026
5dd701f
feat(postgres-cutover): port workflow-definitions read to PG (U1)
gsxdsm Jun 27, 2026
28e6bd3
fix(postgres-cutover): mailbox send to agents no longer 500s in PG (U2)
gsxdsm Jun 27, 2026
d4436ab
feat(postgres-cutover): port InsightStore to PostgreSQL (U3)
gsxdsm Jun 27, 2026
477d78e
feat(postgres-cutover): port ResearchStore to PostgreSQL (U4)
gsxdsm Jun 27, 2026
aea6ce3
feat(postgres-cutover): port MissionStore dashboard surface to Postgr…
gsxdsm Jun 27, 2026
4dea713
fix(review): apply autofix feedback
gsxdsm Jun 27, 2026
8a137f7
fix(postgres-cutover): read correct line from postmaster.pid for port…
gsxdsm Jun 27, 2026
592e7c6
fix(rebase): adapt to upstream FN-7069/FN-7082/FN-7113
gsxdsm Jun 27, 2026
0f26b6d
feat(postgres-cutover): port GoalStore to PostgreSQL (U6)
gsxdsm Jun 28, 2026
95ae5f4
feat(postgres-cutover): port artifacts/documents/evals views + Comman…
gsxdsm Jun 28, 2026
d115775
feat(postgres-cutover): port insight run execution to PG (generate in…
gsxdsm Jun 28, 2026
9587425
feat(postgres-cutover): finish Command Center analytics + research ex…
gsxdsm Jun 28, 2026
30320d6
feat(postgres-cutover): live SSE push + incident-signal ingestion in PG
gsxdsm Jun 28, 2026
25b048e
feat(postgres-cutover): run mission autopilot in PG backend mode
gsxdsm Jun 28, 2026
bcf9ca9
feat(postgres-cutover): port workflow-definition create + counter to PG
gsxdsm Jun 28, 2026
b1ef3dc
fix(postgres-cutover): storm-guard + agent wake-on-message in PG
gsxdsm Jun 28, 2026
491fe7a
fix(rebase): adapt to 37 upstream commits + fix async test timing
gsxdsm Jun 28, 2026
55e89e2
test: quarantine 5 dashboard API tests hitting removed SQLite runtime
gsxdsm Jun 28, 2026
510e956
fix(rebase): adapt to 84 upstream commits
gsxdsm Jun 30, 2026
a1ba853
Merge origin/main into feature/postgres
gsxdsm Jul 1, 2026
33b88ea
Merge origin/main into feature/postgres (58 upstream commits)
gsxdsm Jul 1, 2026
2ea75c3
Merge origin/main into feature/postgres (5 upstream commits)
gsxdsm Jul 1, 2026
3fc44b5
Merge origin/main into feature/postgres (124 upstream commits)
gsxdsm Jul 2, 2026
b03fcce
Merge origin/main into feature/postgres (11 upstream commits)
gsxdsm Jul 2, 2026
3333363
fix(postgres-cutover): boot PG backend in CLI agent tools + migrate e…
gsxdsm Jul 2, 2026
0c5a336
fix(postgres-cutover): migrate two remaining sync SQLite paths to bac…
gsxdsm Jul 2, 2026
bc5ae93
Merge origin/main into feature/postgres (113 upstream commits)
gsxdsm Jul 4, 2026
061e017
fix(postgres-cutover): migrate remaining SQLite surfaces to backend mode
gsxdsm Jul 4, 2026
afc6fbb
docs: correct FNXC:PostgresCutover dates to 2026-07-04 (actual change…
gsxdsm Jul 4, 2026
a3ae5aa
fix(postgres-cutover): follow-up fixes — item 1 (getMergeRequestRecor…
gsxdsm Jul 4, 2026
2ec31b9
fix(postgres-cutover): item 7 — applyActivityLogSnapshot async idempo…
gsxdsm Jul 4, 2026
557a215
fix(postgres-cutover): item 8 — applyRunAuditSnapshot async idempoten…
gsxdsm Jul 4, 2026
adedcdb
docs(postgres-cutover): items 2+6 — document assessed safe-defaults
gsxdsm Jul 4, 2026
218207b
fix(postgres-cutover): item 5 — listStrandedRefinements real async Dr…
gsxdsm Jul 4, 2026
5c4ab5a
docs(postgres-cutover): items 3+4 — document assessed safe-defaults
gsxdsm Jul 4, 2026
b93b8d2
Merge origin/main into feature/postgres (20 upstream commits)
gsxdsm Jul 4, 2026
6653d61
Merge origin/main into feature/postgres (24 upstream commits)
gsxdsm Jul 5, 2026
68328c1
Merge origin/main into feature/postgres (31 upstream commits)
gsxdsm Jul 5, 2026
52227b0
Merge origin/main into feature/postgres (48 upstream commits)
gsxdsm Jul 5, 2026
ac15d6d
fix(postgres-cutover): route residual SQLite store constructions thro…
gsxdsm Jul 6, 2026
f36b8b7
chore(postgres-cutover): port ops scripts from SQLite to the PostgreS…
gsxdsm Jul 6, 2026
b464e14
Merge origin/main into feature/postgres (7 upstream commits: v0.56.0,…
gsxdsm Jul 6, 2026
0b6c106
fix(postgres-cutover): restore slim-listing stall signals and fix rem…
gsxdsm Jul 6, 2026
42ed747
test(postgres-cutover): rescue quarantined dashboard tests and CLI te…
gsxdsm Jul 6, 2026
b8fa780
Merge origin/main into feature/postgres (10 upstream commits: v0.56.1…
gsxdsm Jul 6, 2026
c95bfce
chore: add changeset for custom-column create/move PostgreSQL parity …
gsxdsm Jul 6, 2026
bc6a25b
Merge origin/main into feature/postgres (7 upstream commits: Hermes c…
gsxdsm Jul 6, 2026
f3c6b22
Merge origin/main into feature/postgres (30 upstream commits)
gsxdsm Jul 7, 2026
d7ead0e
Merge origin/main into feature/postgres (59 upstream commits)
gsxdsm Jul 8, 2026
204c2ad
test: adapt upstream FN-7641/FN-7634 tests to the PostgreSQL-only branch
gsxdsm Jul 8, 2026
fa948f4
Merge origin/main into feature/postgres (24 upstream commits)
gsxdsm Jul 8, 2026
bb71f28
docs: regenerate fusion skill tool references after FN-7661 merge
gsxdsm Jul 8, 2026
c629aa5
Merge origin/main into feature/postgres (139 upstream commits)
gsxdsm Jul 10, 2026
4cc391d
test: adapt upstream FN-7704/7731/7734/7738/7739/7740-era tests to th…
gsxdsm Jul 11, 2026
6c80271
Merge remote-tracking branch 'origin/main' into feature/postgres
gsxdsm Jul 11, 2026
2afed7a
fix: close PG-mode production blockers from review (merge recovery, l…
gsxdsm Jul 11, 2026
fdb1d88
Merge origin/main into feature/postgres (10 upstream commits)
gsxdsm Jul 11, 2026
3ef90bc
fix(core): repair chat session thinkingLevel migration
plarson Jul 11, 2026
87b7873
fix(cli): harden dormant PR merge path against stale-base dead-ends
Jul 7, 2026
ea1e4fe
fix: load live workspace plugin over stale staged bundle in dev
gsxdsm Jul 10, 2026
915c1e0
FN-7801: infer xAI icon for Grok model IDs in ProviderIcon
gsxdsm Jul 11, 2026
725ce45
FN-7799: fix false-negative Git repository detection blocking task ex…
gsxdsm Jul 11, 2026
7846c96
FN-7798: filter unconfigured/no-entitlement providers from usage view
gsxdsm Jul 11, 2026
23e36b8
fix: surface API 500 causes, guide update EACCES, non-zero daemon sig…
gsxdsm Jul 11, 2026
93b0801
fix: make per-task API resilient to unreadable PROMPT.md; evict archi…
gsxdsm Jul 11, 2026
5496067
fix: address PR review feedback (surface coverage, list/search guard,…
gsxdsm Jul 11, 2026
4fd6317
fix: accurate error when updateStep can't read prompt-derived steps (…
gsxdsm Jul 11, 2026
6e74eed
fix: make explicit prompt write atomic with the task-row commit (grep…
gsxdsm Jul 11, 2026
23dd0fc
test: fix stale refinement-title assertions after FN-7165
gsxdsm Jul 11, 2026
39431ca
fix: apply validated fork-review fixes (project rooting, merge cwd, a…
gsxdsm Jul 11, 2026
367f591
FN-7804: show compact version label in mobile Settings footer
gsxdsm Jul 11, 2026
60b8b4e
FN-7805: redesign quick-add priority indicators as icon-only controls
gsxdsm Jul 11, 2026
c1b14c2
FN-7806: hide Gemini usage card when unconfigured or unauthenticated
gsxdsm Jul 11, 2026
378e225
FN-7808: fix stale-echo overwrite dropping newlines in FileEditor
gsxdsm Jul 11, 2026
21fb8f6
FN-7802: recover phantom-worktree tasks stuck merge-active with scope…
gsxdsm Jul 11, 2026
a734f00
update readme
gsxdsm Jul 11, 2026
1bf5275
test(cli): fix stale project-context/desktop/core mocks + version pin…
gsxdsm Jul 11, 2026
7d5f8ee
test(engine): add describeModel to heartbeat pi.js mocks (heartbeat-e…
gsxdsm Jul 11, 2026
f164837
test(engine): add resolveExecutorThinkingLevel to step-session agent-…
gsxdsm Jul 11, 2026
86aad86
test(dashboard): fix useToast mocks + SettingsModal CSS token regex (…
gsxdsm Jul 11, 2026
1c3ecee
test(engine): complete agent-session-helpers thinking-level resolver …
gsxdsm Jul 11, 2026
f05f54c
test(engine): update grok-runtime-routing for single-JSON parse contr…
gsxdsm Jul 11, 2026
49f03f8
test(engine): add getBranchGroup to shared createMockStore (FN-7750 s…
gsxdsm Jul 11, 2026
93d4be7
Recover stranded approved AI merge commits
plarson Jul 11, 2026
e7549e3
Recover AI merge commits before pruning clean rooms
plarson Jul 11, 2026
d116018
fix(FN-1997): bind stranded AI merge recovery to reviewed commit
plarson Jul 11, 2026
9024f3a
feat: agent-created visual artifacts end-to-end + redesigned category…
gsxdsm Jul 11, 2026
a8eafbb
feat: video, HTML mockup, and PDF artifact support end-to-end
gsxdsm Jul 11, 2026
324a794
feat: draggable/resizable artifact viewer windows, Artifacts-first la…
gsxdsm Jul 11, 2026
8fa2ad0
Address PR review feedback (#1996)
gsxdsm Jul 11, 2026
dbb29d4
docs: explain planner overseer eye badge
plarson Jul 11, 2026
42a606a
docs: address overseer badge review notes
plarson Jul 11, 2026
122e404
docs: clarify overseer badge access paths
plarson Jul 11, 2026
fbea66d
fix(FN-7786): show partial Command Center costs
gsxdsm Jul 11, 2026
9bed076
fix(FN-7786): handle mixed zero cost feedback
gsxdsm Jul 11, 2026
7d29367
fix(FN-7786): hide sub-cent partial costs
gsxdsm Jul 11, 2026
e90a9c4
fix: auto-heal wedged SQLite connections in place instead of wedging …
gsxdsm Jul 11, 2026
c530b23
FN-7810: fix stale-echo detection to preserve trailing newline edits …
gsxdsm Jul 11, 2026
281d1a3
FN-7809: collapse List view to single-pane layout on tablet-narrow wi…
gsxdsm Jul 11, 2026
595d323
FN-7811: convert Task Documents tab to left-sidebar list + right-pane…
gsxdsm Jul 11, 2026
56b20a7
FN-7812: extend select-to-comment popover to Task Documents right pane
gsxdsm Jul 11, 2026
bd0e99b
FN-7814: add xAI/Grok usage card to the Usage dropdown
gsxdsm Jul 11, 2026
6317fcd
FN-7813: add embedded worktree-rooted multi-tab Terminal to Task Detail
gsxdsm Jul 11, 2026
bf300f3
test(FN-7811): align document view tests after rebase
gsxdsm Jul 11, 2026
19055c6
feat(settings): simplify advanced controls
gsxdsm Jul 11, 2026
9b22927
feat(settings): simplify section details and layout
gsxdsm Jul 11, 2026
3daf29d
docs(settings): capture advanced disclosure matrix
gsxdsm Jul 11, 2026
11fce4e
docs(settings): refresh complete screenshot coverage
gsxdsm Jul 11, 2026
1efb4bf
fix: repair embedded postgres macos dylib links
plarson Jul 11, 2026
c68b053
fix(missions): reconcile lifecycle invariants
plarson Jul 11, 2026
6ee86c5
fix(missions): address lifecycle review blockers
plarson Jul 11, 2026
7f418b7
fix(missions): clear terminal fix task links
plarson Jul 11, 2026
1d2d73b
fix(memory): fix insights parsing + modernize Memory, Insights, Todos…
gsxdsm Jul 11, 2026
d44da53
Address PR review feedback (#2003)
gsxdsm Jul 11, 2026
690a49f
docs: add post-review-fix insights screenshot for PR #2003
gsxdsm Jul 11, 2026
28ad1fd
Address PR review feedback (#2003)
gsxdsm Jul 11, 2026
bcbd97c
feat: simplified workflow editor view with Simple/Advanced/List modes
gsxdsm Jul 11, 2026
68f4abc
fix: remount simple canvas per workflow so fitView tracks the new graph
gsxdsm Jul 12, 2026
a25cf9c
docs: add simplified workflow view screenshots
gsxdsm Jul 12, 2026
d79e2d6
Address PR review feedback + compact lifecycle warnings banner (#2006)
gsxdsm Jul 12, 2026
72a98ae
Address PR review feedback (#2006): lowercase currentcolor per stylel…
gsxdsm Jul 12, 2026
f6806f0
feat: live lifecycle warning analysis with one-click Fix / Fix all
gsxdsm Jul 12, 2026
4679c49
Address PR review feedback (#2006)
gsxdsm Jul 12, 2026
51d5f9a
test: fix executor artifact-register assertion (FN-7790) + i18n versi…
gsxdsm Jul 12, 2026
c12653e
test(cli): add isInReviewMissingWorktreeSessionStartFailure mock + up…
gsxdsm Jul 12, 2026
d40f24d
FN-7816: add Cursor usage card to the Usage activity dropdown
gsxdsm Jul 11, 2026
a2c9b0f
FN-7817: Simplify Cursor usage credential to a single documented CURS…
gsxdsm Jul 11, 2026
3da9da2
FN-7818: replace placeholder Cursor icon with official brand mark
gsxdsm Jul 12, 2026
0a90dc4
FN-7821: refresh-then-recheck OAuth credentials before dispatching ex…
gsxdsm Jul 12, 2026
9376504
FN-7820: add Cost tab to task detail and optional card cost badge
gsxdsm Jul 12, 2026
7d5a750
feat: remove node settings sync on the PostgreSQL backend
gsxdsm Jul 11, 2026
ccfead7
test: rescue mesh-routes and routes-system from the cutover-era mock …
gsxdsm Jul 11, 2026
ee5c2a8
FN-7823: fix terminal header wrapping and spacing on narrow desktop p…
gsxdsm Jul 12, 2026
17d7bd1
FN-7826: make Task Detail interactive Terminal tab always available
gsxdsm Jul 12, 2026
9d06141
FN-7827: unclamp workflow editor shell height/width so canvas fills m…
gsxdsm Jul 12, 2026
05818ac
Merge origin/main into feature/postgres (71 upstream commits)
gsxdsm Jul 12, 2026
41998a6
FN-7828: fix cramped padding on notifications failure-mode settings card
gsxdsm Jul 12, 2026
26f0c5a
FN-7825: add resizable Settings navigation rail with persisted width
gsxdsm Jul 12, 2026
79264d4
FN-7824: auto-reconnect terminal on first launch instead of parking d…
gsxdsm Jul 12, 2026
53427cd
fix: prevent stale planning notifications
gsxdsm Jul 12, 2026
6186a96
perf: close the two open PR #1793 review findings (SQL pagination + c…
gsxdsm Jul 12, 2026
05d30ff
feat(dashboard): editable task documents & project files in Artifacts…
gsxdsm Jul 12, 2026
f66bfae
feat(compound-engineering): clarify the pipeline flow
gsxdsm Jul 11, 2026
668b8e0
docs(compound-engineering): add pipeline flow screenshots
gsxdsm Jul 11, 2026
3a4fd67
Address PR review feedback (#2001)
gsxdsm Jul 11, 2026
337bdcd
feat(compound-engineering): align the UI with the upstream loop
gsxdsm Jul 11, 2026
b0ca17a
fix(compound-engineering): claim plan handoffs atomically
gsxdsm Jul 12, 2026
b7f82ee
fix(changesets): shorten artifacts summary
gsxdsm Jul 12, 2026
4edd8cc
feat: show Claude Fable weekly window and Grok CLI credit usage in th…
gsxdsm Jul 12, 2026
3ee317f
Merge origin/main into feature/postgres (15 upstream commits)
gsxdsm Jul 12, 2026
0ad53f3
feat(postgres): multi-project isolation for the shared embedded-PG cl…
Jul 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .changeset/FN-7813-worktree-terminal-tab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Add an interactive worktree-rooted Terminal tab to the task detail view.
category: feature
dev: TaskDetailModal embeds TerminalModal in a new `embedded` mode; useTerminalSessions gains task-scoped storage + defaultCwd. The pre-existing agent-session tab is relabeled "Session".
7 changes: 7 additions & 0 deletions .changeset/FN-7824-terminal-first-launch-autoreconnect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Terminal now auto-reconnects on first launch instead of getting stuck on "Disconnected".
category: fix
dev: useTerminal tracks whether the socket has ever opened; a never-connected initial connect keeps retrying at capped backoff (staying "reconnecting") until it opens, while mid-session drops and 4000/4004 permanent closes are unchanged.
7 changes: 7 additions & 0 deletions .changeset/FN-7826-worktree-terminal-always-available.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: The Task Detail Terminal tab is now always available, falling back to the project root when a task has no worktree.
category: feature
dev: Relaxes the TaskDetailModal `showWorktreeTerminalTab` gate to always render and passes `defaultCwd` = worktree when present else undefined (project-root auto-create via useTerminalSessions). Covers no-worktree and multi-repo workspace tasks. Sessions stay task-scoped via `scopeId`.
7 changes: 7 additions & 0 deletions .changeset/artifact-pipeline-and-gallery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Agents save screenshots, videos, HTML mockups, and PDFs as artifacts, shown in a new category gallery with doc editing.
category: feature
dev: fn_artifact_register gains a `path` payload source (file copied into managed storage, MIME inference, image/video/PDF signature validation) and is now always exposed to executor sessions (previously missing in ephemeral mode) with worktree-relative path resolution and executing-task default taskId; executor/planning prompts instruct agents to register visual/media deliverables (images, videos, HTML mockups, PDFs); the media route serves HTTP byte ranges for video/audio seeking; video attachments (100MB cap) bridge into the registry like images; HTML docs render as live sandboxed previews; new `GET`/`PATCH /api/artifacts/:id` routes plus `TaskStore.updateArtifact` and the `artifact:updated` SSE event power in-place doc editing in the new ArtifactsGallery (Images/Docs/PDFs/Videos/Audio/Other sections with per-category viewers, mobile-responsive); viewers open in draggable/resizable FloatingWindows, Artifacts is the first/landing tab of the view, and mobile tab buttons render at the uniform 44px control height.
7 changes: 7 additions & 0 deletions .changeset/artifacts-doc-editing-and-comment-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Edit task documents and project files in Artifacts, with Markdown previews and working add-comment controls.
category: feature
dev: DocumentsView embeds the shared CodeMirror FileEditor for task-document (PUT /tasks/:id/documents/:key) and project-file (project workspace file API) edits. The Add comment no-op was a CSS bundle-order regression — `.btn:active` out-ordered the equal-specificity trigger rule; the `:active` rules now use `.btn.selection-comment-trigger` (0,3,0) with a test asserting the prefix.
7 changes: 7 additions & 0 deletions .changeset/badge-snapshot-archive-eviction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Fix a slow dashboard memory leak where archived tasks were never evicted from the in-memory badge cache.
category: performance
dev: The badge-snapshot cache (packages/dashboard/src/server.ts) only removed a task on hard-delete, so archiving a task re-cached it via the task:updated listener and it was retained for the daemon's lifetime — unbounded growth over long uptimes with task churn. A new `isBadgeEligibleTask` predicate (column !== "archived") gates both the create and update listeners so archived tasks are evicted, matching the startup prime's `includeArchived:false`. An unarchive re-primes the entry.
7 changes: 7 additions & 0 deletions .changeset/bright-cost-subtotals.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Show partial estimated costs across all Command Center cost views when some model pricing is unavailable.
category: fix
dev: Priced subtotals use a trailing plus sign; entirely unpriced usage remains unavailable.
7 changes: 7 additions & 0 deletions .changeset/calm-settings-navigation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Add a persistent Advanced settings toggle that keeps uncommon Settings sections and controls hidden by default.
category: feature
dev: The browser-local disclosure applies to navigation, search, and field-level controls without changing saved settings.
7 changes: 7 additions & 0 deletions .changeset/clean-compound-pipeline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Guide repeatable Compound Engineering cycles from product grounding through reusable learnings.
category: feature
dev: Adds project-scoped sessions, collection-aware stages, Work quality gates, and terminal Compound progression.
7 changes: 7 additions & 0 deletions .changeset/daemon-signal-nonzero-exit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Daemon exits non-zero on signal termination so Restart=on-failure restarts it after a memory-pressure kill.
category: fix
dev: `fn daemon` and `fn serve` (packages/cli/src/commands/daemon.ts, serve.ts) now exit with the POSIX 128+signal code (SIGTERM=143, SIGINT=130) on signal-initiated graceful shutdown instead of 0. Previously a memory-pressure SIGTERM produced exit 0, which `Restart=on-failure` treated as a clean stop, leaving the daemon dead. A deliberate `systemctl stop` still won't restart (systemd honors the requested inactive state regardless of exit code); a non-signal shutdown still exits 0. The interactive TUI launcher (`fn dashboard`) is intentionally unchanged — it has its own signal-name-keyed restart supervisor.
8 changes: 8 additions & 0 deletions .changeset/embedded-postgres-lifecycle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@runfusion/fusion": minor
---

summary: Bundle embedded PostgreSQL for zero-system-install local storage when DATABASE_URL is unset.
category: feature
dev: Adds `embedded-postgres` lifecycle manager (initdb/pg_ctl start/stop, graceful SIGTERM/SIGINT shutdown, data persistence across restarts). Platform binaries bundled for macOS/Linux/Windows arm64/x64. Used by `createTaskStoreForBackend` when DATABASE_URL is unset.

7 changes: 7 additions & 0 deletions .changeset/embedded-postgres-macos-dylib-links.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Repair macOS embedded PostgreSQL dylib compatibility links before startup.
category: fix
dev: Adds an idempotent embedded-postgres macOS preflight that creates missing ABI-name symlinks such as `libpq.5.dylib` and `libzstd.1.dylib` from bundled versioned dylibs before `initdb`/`postgres` spawn, fixing zero-config startup when package symlink hydration is absent or incomplete.
7 changes: 7 additions & 0 deletions .changeset/fix-agent-runs-route-backend-agentstore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Fix manual agent-run creation failing on PostgreSQL when a heartbeat executor is attached.
category: fix
dev: POST /api/agents/:id/runs built its AgentStore without the scoped store's AsyncDataLayer on the heartbeat-executor branch, hitting the removed SQLite runtime in backend mode; it now borrows the layer like the record-only branch.
7 changes: 7 additions & 0 deletions .changeset/fix-stale-planning-background-task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Prevent stale Planning notifications from pointing to missing sessions.
category: fix
dev: Background task sync now defers to the authoritative server session list.
7 changes: 7 additions & 0 deletions .changeset/flip-embedded-pg-default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Default local backend is now embedded PostgreSQL; set FUSION_NO_EMBEDDED_PG=1 for legacy SQLite.
category: feature
dev: `createTaskStoreForBackend` now boots embedded PostgreSQL by default when DATABASE_URL is unset (previously required FUSION_EMBEDDED_PG=1). FUSION_EMBEDDED_PG=1 is now a no-op alias; FUSION_NO_EMBEDDED_PG=1 is the opt-out back to legacy SQLite. `embedded-postgres` is now a direct dependency of @runfusion/fusion so the bundled CLI can resolve the platform binary at runtime. Boot smoke exercises the embedded path by default (initdb-aware 180s health timeout). Also hardens three backend-mode gaps the flip exposed: ResearchStore/insights router/watch() now degrade gracefully instead of crashing `fn serve` when the sync SQLite satellite stores are unavailable in PG backend mode.
7 changes: 7 additions & 0 deletions .changeset/fn-7798-usage-configured-providers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Usage view now shows meters only for AI providers you have configured.
category: fix
dev: fetchAllProviderUsage() in packages/dashboard/src/usage.ts filters providers with no resolved credentials and no meterable entitlement (e.g. GitHub 404 "No Copilot subscription found" reclassified error→no-auth); configured-but-failing providers (auth expired / HTTP 5xx / timeout) remain visible.
7 changes: 7 additions & 0 deletions .changeset/fn-7799-git-detection-false-negative.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Fix a false "Project directory is not a Git repository" error that blocked all task execution in valid repos.
category: fix
dev: Git detection is now tri-state (repo/not-repo/error) via detectGitRepository(); dubious-ownership/PATH/timeout git failures no longer masquerade as "not a Git repository". FN-7799.
7 changes: 7 additions & 0 deletions .changeset/fn-7801-grok-xai-logo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Show the xAI logo for Grok model IDs across dashboard provider surfaces.
category: fix
dev: ProviderIcon now falls back through inferProviderIconKey before the generic CPU icon.
7 changes: 7 additions & 0 deletions .changeset/fn-7802-phantom-worktree-merge-active-recovery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Recover tasks stranded by missing worktrees during merge/review and allow retry.
category: fix
dev: Adds merge-active missing-worktree self-healing with no-action audits and signature-only retry resets across CLI, extension, and dashboard.
7 changes: 7 additions & 0 deletions .changeset/fn-7804-mobile-settings-version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Mobile Settings footer shows the compact "v0.x" version instead of the full word.
category: fix
dev: SettingsModal picks settings.footer.versionShort ("v{{version}}") when viewportMode === "mobile".
7 changes: 7 additions & 0 deletions .changeset/fn-7805-quick-add-priority-indicators.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Quick-add composer now shows icon-only priority/Fast controls with GitHub tracking beside attach.
category: feature
dev: QuickEntryBox + TaskForm reuse a shared priorityIndicator glyph helper; GitHub + Priority relocated into .quick-entry-primary-group; no test-id/payload changes.
7 changes: 7 additions & 0 deletions .changeset/fn-7806-gemini-usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Usage view now hides Gemini when it isn't configured for metering or its login has expired.
category: fix
dev: fetchGeminiUsage() in packages/dashboard/src/usage.ts reclassifies the unsupported-auth-type (api-key/vertex-ai) and HTTP 401/403 outcomes from error→no-auth so fetchAllProviderUsage omits Gemini; transient failures (HTTP 5xx/network/timeout) of a configured token remain visible as error.
7 changes: 7 additions & 0 deletions .changeset/fn-7809-list-tablet-single-pane.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Fix the List view controls and quick-add box being cut off on tablet-width screens.
category: fix
dev: ListView collapses to a single-pane layout at the `useViewportMode()` "tablet" tier (769–1024px) instead of the desktop two-pane split, which lacked horizontal room and clipped the primary action cluster and expanded QuickEntryBox. Split-vs-single now keys off a shared narrow gate; touch-only long-press stays gated on mobile.
7 changes: 7 additions & 0 deletions .changeset/fn-7811-task-documents-sidebar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Artifacts view — Task Documents now uses a left-sidebar list with a right-pane content viewer.
category: feature
dev: DocumentsView Task Documents tab reuses the Project Files `documents-project-layout` sidebar/right-pane pattern with a separate selection state and desktop/mobile gating; the markdown/plain toggle is preserved. Select-to-comment stays Project-Files-only (tracked as a follow-up).
7 changes: 7 additions & 0 deletions .changeset/fn-7812-task-documents-select-to-comment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Artifacts view — select text in a Task Document's content pane to comment and send it to a new task.
category: feature
dev: DocumentsView Task Documents right pane reuses the Project Files `useSelectionComment`/`SelectionCommentPopover` pattern (markdown + plain refs following the render toggle, composer-open lock, popover gated on the task-document selection + `onSendSelectionToTask`). Project Files behavior and the markdown/plain toggle are unchanged. Depends on FN-7811.
7 changes: 7 additions & 0 deletions .changeset/fn-7814-grok-usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Show a Grok (xAI) card in the Usage dropdown for configured Grok API keys.
category: feature
dev: usage.ts adds fetchGrokUsage (env GROK_API_KEY -> ~/.grok/user-settings.json -> grok-cli auth key) validating GET https://api.x.ai/v1/api-key and registered in fetchAllProviderUsage. xAI exposes no subscription usage meter to the inference key, so the card is auth-validity (ok/no-auth/error) with a real usage window only when confirmed data exists; no fabricated windows. Real usage field found: no — validity-only.
7 changes: 7 additions & 0 deletions .changeset/fn-7816-cursor-usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Show Cursor subscription usage in the Usage dropdown.
category: feature
dev: usage.ts adds fetchCursorUsage via Cursor Admin API POST https://api.cursor.com/teams/spend with Basic auth API_KEY:, resolving the Admin API key from documented env `CURSOR_ADMIN_API_KEY` (or `CURSOR_API_KEY` alias) before internal test/auth-storage fallbacks. It maps teamMemberSpend overallSpendCents/spendCents plus hardLimitOverrideDollars/monthlyLimitDollars and subscriptionCycleStart; fetchAllProviderUsage wraps it with withTimeout and no-auth demotion, while UsageIndicator maps "Cursor" to cursor-cli. No personal Cursor CLI usage endpoint confirmed; CLI session only supplies userEmail/subscriptionTier metadata.
7 changes: 7 additions & 0 deletions .changeset/fn-7817-cursor-api-key.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Add a documented CURSOR_API_KEY credential path for Cursor usage metering.
category: feature
dev: usage.ts adds readCursorApiKey (CURSOR_API_KEY env var → cursor authStorage entry, mirroring readGrokApiKey); settings-reference.md documents it and clarifies cursor-cli runtime OAuth vs the usage/admin API key. Unblocks FN-7816. Cursor usage-API specifics confirmed via Cursor Admin API docs: POST /teams/spend with Basic auth using an admin:* API key as the username.
7 changes: 7 additions & 0 deletions .changeset/fn-7818-cursor-logo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Use the real Cursor logo in the usage dropdown, model selection, and other provider surfaces.
category: fix
dev: Replaces the placeholder CursorCliIcon SVG with the Cursor brand mark and adds a `cursor` → `cursor-cli` mapping in inferProviderIconKey.
7 changes: 7 additions & 0 deletions .changeset/fn-7820-cost-tab-and-card-badge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Add a Cost tab to task detail and an optional per-card cost badge (default off).
category: feature
dev: New shared taskTokenCost helper (read-time costFor derivation) powers the Summary tab, the new Cost tab, and a card badge gated by the default-off project setting showCostBadgeOnCards.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Stop false "OAuth token expired" push notifications for providers that silently refresh (e.g. GitHub Copilot).
category: fix
dev: OAuthExpiryMonitor.check() now attempts a best-effort getApiKey refresh and re-checks the credential before dispatching oauth-token-expired, mirroring /api/auth/status's refresh-then-recheck that drives OAuthReloginBanner. The FN-7574 start-refresher-first ordering only covered the startup check; short-lived auto-refreshing tokens still fired on interval ticks with no matching banner.
7 changes: 7 additions & 0 deletions .changeset/fn-7823-terminal-header-nowrap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Fix terminal header wrapping and spacing when the panel is narrow.
category: fix
dev: Header shortcut/status text now stays nowrap so terminal actions scroll horizontally instead of wrapping.
7 changes: 7 additions & 0 deletions .changeset/fn-7825-settings-nav-resizable.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---

summary: Add a resizable Settings navigation rail that remembers its width.
category: feature
dev: Removes the Settings rail divider and keeps nav labels single-line across modal and embedded Settings.
7 changes: 7 additions & 0 deletions .changeset/fuzzy-ai-merge-recovery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Make stranded AI merge recovery bind to the reviewed clean-room commit.
category: fix
dev: Avoids ambiguous same-task clean-room recovery and honors cancellation before pre-prune landing.
7 changes: 7 additions & 0 deletions .changeset/fuzzy-notification-padding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Fix cramped padding on the Notifications "Failure notification mode" settings card.
category: fix
dev: Wrap the failure-notification card fields in `.notification-provider-body` in NotificationsSection so it matches sibling provider-card padding on desktop and mobile.
2 changes: 1 addition & 1 deletion .changeset/grok-cli-chat-routing-and-stale-bundle.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

summary: Fix Grok CLI chat returning errors or empty replies in the dashboard.
category: fix
dev: Two independent defects. (1) The default (no-project) ChatManager received a bare PluginLoader as its runner; Grok CLI routing (deriveGrokRuntimeHintForNoVisibleKey → resolveRuntime) calls getRuntimeById/createRuntimeContext, which only exist on PluginRunner, so a grok-cli/* chat with no Fusion-visible GROK_API_KEY threw "getRuntimeById is not a function" and surfaced the misleading "requires the bundled Grok CLI runtime" error. New resolveChatManagerPluginRunner(options) prefers the engine's PluginRunner (the runner the project-scoped chat path already uses), falling back to the loader only in UI-only mode. (2) The CLI-bundled Grok plugin (packages/cli/dist/plugins/fusion-plugin-grok-runtime/bundled.js) was stale relative to the FN-7796 single-JSON adapter source, so project-scoped grok chat produced empty replies; a `pnpm build` (tsup) regenerates it. The bundled-plugin freshness guard only warns — the dev prebuild does not rebuild the CLI tsup bundle.
dev: Two independent defects. (1) The default (no-project) ChatManager received a bare PluginLoader as its runner; Grok CLI routing (deriveGrokRuntimeHintForNoVisibleKey → resolveRuntime) calls getRuntimeById/createRuntimeContext, which only exist on PluginRunner, so a grok-cli/* chat with no Fusion-visible GROK_API_KEY threw "getRuntimeById is not a function" and surfaced the misleading "requires the bundled Grok CLI runtime" error. New resolveChatManagerPluginRunner(options) prefers the engine's PluginRunner (the runner the project-scoped chat path already uses), falling back to the loader only in UI-only mode. (2) In a source checkout the running dashboard resolved the staged CLI tsup bundle (packages/cli/dist/plugins/fusion-plugin-grok-runtime/bundled.js), which resolvePluginEntryPath prefers verbatim with no freshness check; that bundle was stale vs the FN-7796 single-JSON adapter source (the FN-7779 dev prebuild rebuilds each plugin's own dist but never the staged bundle), so project-scoped grok chat produced empty replies. Fixed durably: getCandidatePluginDirs now probes the live workspace source dir (<repo>/plugins/<id>) before the staged bundle, so dev loads the freshness-checked live plugin (self-healing even when the prebuild is skipped). Published installs are unaffected (no workspace dir). A one-time `pnpm build` refreshes any already-stale staged bundle.
7 changes: 7 additions & 0 deletions .changeset/memory-insights-todo-ui-cleanup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Fix Memory insights parsing and modernize the Memory, Insights, Todos, and agent Memory views.
category: fix
dev: parseInsightsContent filtered bullets after stripping their prefix, collapsing every category into one blob; useMemoryData drops the dead GET /memory and /memory/stats mount fetches and no longer refetches the file list on selection; Engines tab is a 2-column card grid; Todo items are single-row with a quiet inline action cluster; the agent Memory tab uses the shared FileEditor with per-section save actions and fixes the agents.memoryFileMeta {{date}} interpolation.
7 changes: 7 additions & 0 deletions .changeset/mission-lifecycle-invariants.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---

summary: Reconcile completed and stale generated-fix mission invariants.
category: fix
dev: Completed missions now normalize autopilot/auto-advance to inactive during autopilot completion, polling, and restart recovery. Mission reconciliation also supersedes generated fix features whose own validator state is already passed, and the scheduler startup sweep runs stale generated-fix reconciliation before trying to relink or retriage active slice features. This prevents complete missions from remaining watched and prevents stale generated fix rows from keeping otherwise-drained missions administratively active.
Loading