Fusion (runfusion.ai)
2f0e1c6c24
test(FN-4763): add PR conflict reclaim engine coverage
...
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:23 -07:00
Fusion (runfusion.ai)
e00f7ec714
feat(FN-4763): complete Step 3 — add PR conflict reclaim hooks
...
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:23 -07:00
Fusion (runfusion.ai)
b0a34d70c1
fix(FN-4763): export PrConflictState and expand mapping tests
...
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:23 -07:00
Fusion (runfusion.ai)
9d5d310fdc
feat(FN-4763): complete Step 1 — capture PR mergeable state
...
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:21 -07:00
Fusion (runfusion.ai)
1f8d995b82
feat(FN-4927): complete Step 6 — documentation and delivery
...
Fusion-Task-Id: FN-4927
Fusion-Task-Lineage: 8ef39a69-8f1f-4ffe-9d6b-1b752756751d
2026-05-17 13:10:50 -07:00
Fusion (runfusion.ai)
b80b517a4f
test(FN-4927): cover no-task fallback for task tools
...
Fusion-Task-Id: FN-4927
Fusion-Task-Lineage: 8ef39a69-8f1f-4ffe-9d6b-1b752756751d
2026-05-17 13:10:50 -07:00
Fusion (runfusion.ai)
887705c81d
fix(FN-4927): guard project-root helper drift in extension
...
Fusion-Task-Id: FN-4927
Fusion-Task-Lineage: 8ef39a69-8f1f-4ffe-9d6b-1b752756751d
2026-05-17 13:10:50 -07:00
Fusion (runfusion.ai)
b99298d559
test(FN-4923): complete Step 2 — add tracking chip alignment regressions
...
Fusion-Task-Id: FN-4923
Fusion-Task-Lineage: 2ea94680-edd7-40a9-92a6-9774b97a75f4
2026-05-17 13:07:54 -07:00
Fusion (runfusion.ai)
171df2ad2b
feat(FN-4923): complete Step 1 — broaden chipFarRight timer-column guard
...
Fusion-Task-Id: FN-4923
Fusion-Task-Lineage: 2ea94680-edd7-40a9-92a6-9774b97a75f4
2026-05-17 13:07:54 -07:00
Fusion (runfusion.ai)
cb184910c7
fix(FN-4913): complete Step 9 — resolve quality gate failures
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:02 -07:00
Fusion (runfusion.ai)
e9ef40f6a7
feat(FN-4913): complete Step 8 — update docs and changeset
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:02 -07:00
Fusion (runfusion.ai)
cca96a7604
test(FN-4913): complete Step 7 — add secrets sync contract coverage
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
22f8893db8
feat(FN-4913): complete Step 6 — wire secrets sync route registrars
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
5992f043eb
feat(FN-4913): complete Step 5 — register secrets sync audit event types
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
eef8db102f
fix(FN-4913): ensure inbound secrets sync always closes central core
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
cd7e29e4ef
feat(FN-4913): complete Step 4 — add inbound secrets sync routes
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
db7eddd79c
feat(FN-4913): complete Step 3 — add outbound secrets sync routes
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
8becfb2265
feat(FN-4913): complete Step 1 — add secrets sync passphrase helper
...
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
9dfefc551b
feat(FN-4941): close or delete GitHub issues when tasks are deleted
...
Fixed GitHub issue close and delete behavior when tasks are deleted in the dashboard's GitHub tracking state module, with test coverage added for both delete and state tracking scenarios.
Fusion-Task-Id: FN-4941
2026-05-17 12:56:38 -07:00
Fusion (runfusion.ai)
3ba9e13f75
feat(FN-4924): complete Step 2-3 — tighten tasks hydration and failed-refresh cache clearing
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 12:41:21 -07:00
Fusion (runfusion.ai)
13bcb8ed85
feat(FN-4924): complete Step 1 — add tasks TTL constant
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 12:41:21 -07:00
gsxdsm
f3f4a0b46b
fix(test-isolation): apply central vitest guard to roadmap-dashboard sub-project
...
The roadmap-dashboard Vitest sub-project overrode setupFiles with only
its jsdom helper. Vitest replaces (does not merge) setupFiles in child
projects, so the central isolation guard at
packages/core/src/__test-utils__/vitest-setup.ts was silently bypassed
for the 94 roadmap-dashboard tests, leaving them able to touch the real
project .fusion / $HOME / child processes without the leak-detection
and AI-CLI block.
Prepend the central guard so it loads before the dashboard jsdom setup.
All 94 roadmap-dashboard tests still pass.
2026-05-17 12:33:09 -07:00
Fusion (runfusion.ai)
01caeb6d88
feat(FN-4762): merge fusion/fn-4762
...
Commits merged:
- merge fusion/fn-4762
Files changed:
AGENTS.md | 25 ++++++++++++++++++++++---
docs/README.md | 6 ++++++
packages/core/src/store.ts | 4 ++--
packages/dashboard/app/App.tsx | 10 ++++++++--
packages/dashboard/src/__tests__/github.test.ts | 3 ++-
5 files changed, 40 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:24:45 -07:00
Fusion (runfusion.ai)
1543df69a4
fix(FN-4762): address review feedback for PR panel merge controls
...
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:11:51 -07:00
Fusion (runfusion.ai)
73454fae5c
feat(FN-4762): complete Step 3 — PR merge routes and dashboard controls
...
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:11:51 -07:00
Fusion (runfusion.ai)
102893cba3
feat(FN-4762): complete Step 1 — core PR merge transition support
...
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:11:51 -07:00
gsxdsm
3c2bbf36c5
fix: add missing lastReviewDecision to legacy PrInfo type
...
PrPanel.tsx references prInfo.lastReviewDecision but the local
PrInfo interface in legacy.ts was missing this field, breaking
typecheck on main.
2026-05-17 12:10:14 -07:00
gsxdsm
14c5a17844
fix(FN-4939): preserve worktree on contamination auto-recovery
...
The in-line branch-cross-contamination auto-recovery in executor.ts had
two related bugs that produced transient "no-worktree-no-merge-confirmed"
stall signals in the dashboard while a live worktree was still mapped
on disk:
1. autoRecoverCrossContamination was called with repoDir=this.rootDir.
The recovery does: git checkout --detach <baseSha> → cherry-pick
wanted commits → git update-ref → git checkout <branch>. When the
branch is checked out in a worktree (the normal case), that final
recheckout in rootDir is blocked by git with "branch already used
by worktree at ...", so the in-line happy path silently failed for
every contaminated task that had a real worktree. Pass the task's
worktree as repoDir when available so the operations stay internal
to the worktree and the recheckout succeeds.
2. The successful-recovery branch called
moveTask(taskId, 'todo', { preserveResumeState: true })
without preserveWorktree:true. moveTask defaults to nulling
task.worktree on requeue. The worktree directory and git mapping
were still live — the dashboard's in-review-stall classifier
(no-worktree-no-merge-confirmed) and TaskChangesTab both keyed off
task.worktree being null and lied about the worktree being gone.
Sibling recovery paths (auto-recovery-handlers/contamination.ts,
tryBootstrapMisbindingRecovery, self-healing.ts:1639) all already
pass preserveWorktree:true; this site was inconsistent.
Updated the existing FN-4428 regression test and added a new
FN-4939 test asserting repoDir uses task.worktree (with fallback
to rootDir when the task has no worktree pointer).
Refs: packages/core/src/in-review-stall.ts:116
2026-05-17 12:03:55 -07:00
Fusion (runfusion.ai)
93e49b062a
feat(FN-4939): complete Step 5 — add changeset and native helper re-export
...
Fusion-Task-Id: FN-4939
Fusion-Task-Lineage: b2a00edb-5245-4223-97e4-0a16dd2c3289
2026-05-17 11:49:10 -07:00
Fusion (runfusion.ai)
329b102eb2
fix(FN-4939): stabilize desktop test mocks and restore lint/type safety
...
Fusion-Task-Id: FN-4939
Fusion-Task-Lineage: b2a00edb-5245-4223-97e4-0a16dd2c3289
2026-05-17 11:49:09 -07:00
Fusion (runfusion.ai)
2619a170e2
feat(FN-4939): complete Step 3 — document window visibility guard
...
Fusion-Task-Id: FN-4939
Fusion-Task-Lineage: b2a00edb-5245-4223-97e4-0a16dd2c3289
2026-05-17 11:49:09 -07:00
Fusion (runfusion.ai)
1f2b553079
feat(FN-4939): complete Step 2 — guard window position and force show
...
Fusion-Task-Id: FN-4939
Fusion-Task-Lineage: b2a00edb-5245-4223-97e4-0a16dd2c3289
2026-05-17 11:49:08 -07:00
Fusion (runfusion.ai)
9a462388b5
feat(FN-4928): complete Step 2 — fix prompt-sizes SQL and add real DB regression test
...
Fusion-Task-Id: FN-4939
Fusion-Task-Lineage: b2a00edb-5245-4223-97e4-0a16dd2c3289
2026-05-17 11:49:08 -07:00
Fusion (runfusion.ai)
e257ca6603
feat(FN-4939): complete Step 1 — add window-state display clamp helper
...
Fusion-Task-Id: FN-4939
Fusion-Task-Lineage: b2a00edb-5245-4223-97e4-0a16dd2c3289
2026-05-17 11:49:08 -07:00
gsxdsm
bd48f1961c
docs: compress AGENTS.md (1028 → 449 lines)
...
Remove stale entries, duplicate sections, and changelog-style fix logs:
- Drop duplicate 'Design Tokens' header stub
- Remove unshipped fn_secret_get section (pending FN-4867)
- Drop Node Settings Sync endpoint table (planned rows; lives in docs/architecture.md)
- Collapse 'Reliability governance freeze LIFTED' to current contract
- Compress TUI section to one line
Compress fix-log-style sections into contracts:
- Architecture: enumerate invariants instead of per-FN fix history
- Merging Branches Into Main: 8 numbered rules instead of 10 dense paragraphs
- Agent Spawning + Delegation Tools: collapse 6 full API tables into
pointers (tool schemas already document parameter contracts)
- Engine Diagnostic Logging: link out to docs/diagnostics.md
Compress Dashboard UI Styling Guide:
- Drop exhaustive token/color/component tables (styles.css is source of truth)
- Keep rules, conventions, and pitfalls
- Collapse touch-target FN-3965/FN-4351 history under buttons-frozen directive
Combine Per-Agent Heartbeat / Budget / Trigger Scheduling / Performance
Ratings into one Agent Runtime Config section.
Collapse three identical 5-tier Model Selection Hierarchy lists into one.
2026-05-17 11:46:09 -07:00
Fusion (runfusion.ai)
439716165b
test(FN-4761): complete Step 5 — add review transition regression coverage
...
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
3d7e737fbe
feat(FN-4761): finalize review auto-move docs and release note
...
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
9cee0ef083
fix(FN-4761): correct review-feedback document persistence
...
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
5bde911bdb
feat(FN-4761): sync PR reviews and surface review threads
...
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
cfadcf3835
feat(FN-4761): complete Step 1 — core review comment ingestion
...
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:18 -07:00
Fusion (runfusion.ai)
f183186743
feat(FN-4924): complete Step 6 — documentation and changeset
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
eaa67616a4
test(FN-4924): align useAgents cache assertions with envelope format
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
cf12704885
feat(FN-4924): apply cache ttl hydration across dashboard hooks
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
7ad3449c8f
feat(FN-4924): complete Step 1 — add swr cache envelope ttl
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
ff7c2336cf
feat(FN-4911): complete Step 3 — add secrets view component
...
Fusion-Task-Id: FN-4911
Fusion-Task-Lineage: 021e3ee9-a776-4648-a17d-8ae1a7ebc5be
2026-05-17 11:11:00 -07:00
Fusion (runfusion.ai)
73c6f46b5b
fix(FN-4911): correct reveal payload and reader identity
...
Fusion-Task-Id: FN-4911
Fusion-Task-Lineage: 021e3ee9-a776-4648-a17d-8ae1a7ebc5be
2026-05-17 11:10:59 -07:00
Fusion (runfusion.ai)
ea0c400dab
feat(FN-4911): complete Step 1 — add secrets API routes
...
Fusion-Task-Id: FN-4911
Fusion-Task-Lineage: 021e3ee9-a776-4648-a17d-8ae1a7ebc5be
2026-05-17 11:10:59 -07:00
Fusion (runfusion.ai)
0dc4c9c6a0
test(FN-4904): cover worktree-root lookup in extension tools
...
Fusion-Task-Id: FN-4904
Fusion-Task-Lineage: 5da52c8c-0ed6-4e3a-920e-aa1b56d0b719
2026-05-17 10:45:41 -07:00
Fusion (runfusion.ai)
47eaf089bf
feat(FN-4904): complete Step 3 — align engine and CLI root resolution
...
Fusion-Task-Id: FN-4904
Fusion-Task-Lineage: 5da52c8c-0ed6-4e3a-920e-aa1b56d0b719
2026-05-17 10:45:41 -07:00
Fusion (runfusion.ai)
b40a58d693
test(FN-4904): add core resolver integration coverage
...
Fusion-Task-Id: FN-4904
Fusion-Task-Lineage: 5da52c8c-0ed6-4e3a-920e-aa1b56d0b719
2026-05-17 10:45:41 -07:00