Fusion (runfusion.ai)
c7f98f8381
feat(FN-4857): complete Step 5 — enable room sends with attachments in QuickChat
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:39 -07:00
Fusion (runfusion.ai)
a9e76bff81
feat(FN-4857): complete Step 4 — upload room attachments in useChatRooms
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:38 -07:00
Fusion (runfusion.ai)
354dae2d54
feat(FN-4857): complete Step 3 — add room attachment API helpers
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:38 -07:00
Fusion (runfusion.ai)
98aee61df8
feat(FN-4857): complete Step 2 — add room attachment upload routes
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:38 -07:00
Fusion (runfusion.ai)
192230f455
docs(FN-4858): complete Step 3 — docs index link for secrets
...
Fusion-Task-Id: FN-4858
Fusion-Task-Lineage: d4e5e56c-1080-4156-a37e-e6bfbd0cfbb6
2026-05-17 01:25:43 -07:00
Fusion (runfusion.ai)
75ec0b3bc7
docs(FN-4858): complete Step 2 — storage schema docs
...
Fusion-Task-Id: FN-4858
Fusion-Task-Lineage: d4e5e56c-1080-4156-a37e-e6bfbd0cfbb6
2026-05-17 01:25:42 -07:00
Fusion (runfusion.ai)
6d77129405
docs(FN-4858): complete Step 1 — architecture secrets store docs
...
Fusion-Task-Id: FN-4858
Fusion-Task-Lineage: d4e5e56c-1080-4156-a37e-e6bfbd0cfbb6
2026-05-17 01:25:42 -07:00
Fusion (runfusion.ai)
e0df753bad
fix(FN-4855): complete Step 4-5 — verify gates and add changeset
...
Fusion-Task-Id: FN-4855
Fusion-Task-Lineage: 47f093b7-dffc-4c1a-8dee-2fe01d0c9ed6
2026-05-17 01:08:50 -07:00
Fusion (runfusion.ai)
3221e57b09
feat(FN-4855): complete Step 2-3 — harden disable route and modal state
...
Fusion-Task-Id: FN-4855
Fusion-Task-Lineage: 47f093b7-dffc-4c1a-8dee-2fe01d0c9ed6
2026-05-17 01:08:50 -07:00
Fusion (runfusion.ai)
5a584640d0
feat(FN-4855): complete Step 1 — merge githubTracking patch updates
...
Fusion-Task-Id: FN-4855
Fusion-Task-Lineage: 47f093b7-dffc-4c1a-8dee-2fe01d0c9ed6
2026-05-17 01:08:49 -07:00
gsxdsm
7a6a3d0d22
feat(FN-4856): merge fusion/fn-4856
2026-05-17 01:08:01 -07:00
Fusion (runfusion.ai)
248c7706ca
fix(FN-4853): finalize docs changeset and restore workspace build gate
...
Fusion-Task-Id: FN-4853
Fusion-Task-Lineage: aaad0ff7-714c-4c82-a1e7-c9a725db90cb
2026-05-17 01:01:53 -07:00
Fusion (runfusion.ai)
08bca99e55
test(FN-4853): add /api/agents pending-approval performance regression
...
Fusion-Task-Id: FN-4853
Fusion-Task-Lineage: aaad0ff7-714c-4c82-a1e7-c9a725db90cb
2026-05-17 01:01:53 -07:00
Fusion (runfusion.ai)
b8b97655b2
feat(FN-4853): complete Step 2 — aggregate pending approval counts
...
Fusion-Task-Id: FN-4853
Fusion-Task-Lineage: aaad0ff7-714c-4c82-a1e7-c9a725db90cb
2026-05-17 01:01:52 -07:00
gsxdsm
404e202d7e
feat(FN-4809): merge fusion/fn-4809
2026-05-17 00:53:02 -07:00
Fusion (runfusion.ai)
87bd369673
feat(FN-4854): complete Step 8 — add changeset
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
4caee9be30
test(FN-4854): cover chat-room cache hydration and invalidation
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
4307d71c3a
feat(FN-4854): complete Step 4 — hydrate chat rooms cache
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
8ca0cddfe7
feat(FN-4854): complete Step 3 — hydrate documents and todo list caches
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
9feb4ec870
test(FN-4854): add useAgents cache hydration coverage
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:47 -07:00
Fusion (runfusion.ai)
0f9c08ace7
feat(FN-4854): complete Step 2 — hydrate agents cache
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:47 -07:00
Fusion (runfusion.ai)
228daa8f35
feat(FN-4854): complete Step 1 — extend cache keys and diagnostics
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:47 -07:00
gsxdsm
3ca3b5e471
feat(FN-4851): merge fusion/fn-4851
2026-05-17 00:38:07 -07:00
Fusion (runfusion.ai)
384a6abe96
fix(FN-4849): include full room message shape in quick chat mapping
...
Fusion-Task-Id: FN-4849
Fusion-Task-Lineage: 624f86c4-0b0f-4543-90d2-381f890da401
2026-05-17 00:37:54 -07:00
Fusion (runfusion.ai)
5ca8761656
feat(FN-4849): complete Step 6 — add changeset and docs notes
...
Fusion-Task-Id: FN-4849
Fusion-Task-Lineage: 624f86c4-0b0f-4543-90d2-381f890da401
2026-05-17 00:37:53 -07:00
Fusion (runfusion.ai)
b97709a3d4
feat(FN-4849): complete Step 2 — route room thread reads and sends
...
Fusion-Task-Id: FN-4849
Fusion-Task-Lineage: 624f86c4-0b0f-4543-90d2-381f890da401
2026-05-17 00:37:53 -07:00
gsxdsm
2adc9fa0da
feat(FN-4841): merge fusion/fn-4841
2026-05-17 00:22:57 -07:00
Fusion (runfusion.ai)
f0df7cb1d2
feat(FN-4792): complete Step 6 — finalize delivery and changeset
...
Fusion-Task-Id: FN-4792
Fusion-Task-Lineage: 8e29f9a0-4c9f-4322-9595-3c9c581dacb0
2026-05-17 00:21:13 -07:00
Fusion (runfusion.ai)
9327da718f
test(FN-4792): complete Step 4 — add secret policy resolver coverage
...
Fusion-Task-Id: FN-4792
Fusion-Task-Lineage: 8e29f9a0-4c9f-4322-9595-3c9c581dacb0
2026-05-17 00:21:12 -07:00
Fusion (runfusion.ai)
d8b65f9583
feat(FN-4792): complete Step 3 — export secret access policy APIs
...
Fusion-Task-Id: FN-4792
Fusion-Task-Lineage: 8e29f9a0-4c9f-4322-9595-3c9c581dacb0
2026-05-17 00:21:12 -07:00
Fusion (runfusion.ai)
0076b754eb
feat(FN-4792): complete Step 2 — add secret policy resolver and default
...
Fusion-Task-Id: FN-4792
Fusion-Task-Lineage: 8e29f9a0-4c9f-4322-9595-3c9c581dacb0
2026-05-17 00:21:12 -07:00
Fusion (runfusion.ai)
aa2f588048
feat(FN-4792): complete Step 1 — add secret policy type vocabulary
...
Fusion-Task-Id: FN-4792
Fusion-Task-Lineage: 8e29f9a0-4c9f-4322-9595-3c9c581dacb0
2026-05-17 00:21:12 -07:00
Fusion (runfusion.ai)
25bc5d3a18
test(FN-4835): broaden chunk-boundary whitespace regressions
...
Fusion-Task-Id: FN-4835
Fusion-Task-Lineage: 09eb6339-a476-4cf1-b7e5-e60fa6c263ce
2026-05-17 00:14:59 -07:00
Fusion (runfusion.ai)
1e1e6f9c13
feat(FN-4835): complete Step 7 — add changeset and delivery notes
...
Fusion-Task-Id: FN-4835
Fusion-Task-Lineage: 09eb6339-a476-4cf1-b7e5-e60fa6c263ce
2026-05-17 00:14:58 -07:00
Fusion (runfusion.ai)
f8457d1130
test(FN-4835): cover streamed-text precedence in chat hooks
...
Fusion-Task-Id: FN-4835
Fusion-Task-Lineage: 09eb6339-a476-4cf1-b7e5-e60fa6c263ce
2026-05-17 00:14:58 -07:00
Fusion (runfusion.ai)
7351852a61
feat(FN-4835): complete Step 4 — prefer streamed accumulator on done
...
Fusion-Task-Id: FN-4835
Fusion-Task-Lineage: 09eb6339-a476-4cf1-b7e5-e60fa6c263ce
2026-05-17 00:14:58 -07:00
Fusion (runfusion.ai)
c1cbb668ea
feat(FN-4850): complete Step 4 — add changeset
...
Fusion-Task-Id: FN-4850
Fusion-Task-Lineage: 903d8e4e-eba7-413e-86d8-94eae7318952
2026-05-17 00:06:26 -07:00
Fusion (runfusion.ai)
c491dac28f
test(FN-4850): add active worktree rename and copy diff coverage
...
Fusion-Task-Id: FN-4850
Fusion-Task-Lineage: 903d8e4e-eba7-413e-86d8-94eae7318952
2026-05-17 00:06:26 -07:00
Fusion (runfusion.ai)
19b9ea4464
feat(FN-4850): complete Step 1 — deterministic rename detection
...
Fusion-Task-Id: FN-4850
Fusion-Task-Lineage: 903d8e4e-eba7-413e-86d8-94eae7318952
2026-05-17 00:06:25 -07:00
Fusion
aa6d1c9851
fix(FN-4847): discard foreign branch and recreate on branch-conflict-unrecoverable
...
Production failure shape:
Auto-recovery failed: branch conflict unrecoverable \u2014
Branch fusion/fn-4847 is already checked out at /.../deft-crane
(tip a881ccc86660, 24 stranded commits since 0b28388876 ).
Run branch recovery and explicitly choose whether to reclaim or
discard prior work.
The 24 stranded commits are cross-task contamination residue from the
FN-4781/FN-4804/FN-4814 worktree-race era \u2014 they are NOT FN-4847's work.
Previously this paused the task with pausedReason='branch-conflict-
unrecoverable' and the task got stuck forever waiting for human
adjudication.
User intent (FN-4847): 'just create a new branch and keep going and
discard the old one'. Implementation:
1. auto-recovery.ts:actionForMode \u2014 in 'deterministic-only' mode (the
default), branch-conflict-unrecoverable now returns 'retry' (was
'pause'). This routes the failure to the handler instead of pausing.
2. auto-recovery-handlers/branch-worktree.ts \u2014 'live-foreign' inspection
no longer emits irreducible-pause. Instead:
- Check FN-4811 active-session registry. If the foreign worktree is
bound to a live executor/merger session, do NOT force-remove it
(would yank the live agent's filesystem). Just requeue and let
downstream conflict-recovery handle it.
- Otherwise: force-delete the foreign worktree (--force) + prune git
worktree admin entries + force-delete the branch. Errors at each
step are best-effort and logged.
- Emit new audit event 'branch-worktree:foreign-branch-discarded'
with stranded-commit count, live-ownership flag, success flags.
- Requeue task to 'todo' with preserveProgress, clearing
branch+baseCommitSha.
3. run-audit.ts \u2014 register new DatabaseMutationType.
4. executor-worktree.test.ts \u2014 update the 'records recovery context'
test to assert the new retry+requeue contract (was asserting the old
pause-with-status-failed contract).
Verification:
- Targeted suite (4 files, 343 tests): pass.
- pnpm --filter @fusion/engine build: clean.
- pnpm lint: clean.
Fusion-Task-Id: FN-4847
2026-05-16 23:53:56 -07:00
Fusion (runfusion.ai)
01f0bf625a
fix(FN-4826): complete Step 6 — stabilize audit emission and tests
...
Fusion-Task-Id: FN-4826
Fusion-Task-Lineage: b08a58c8-66ab-43d4-bdf9-69d2b56b7bcc
2026-05-16 23:45:17 -07:00
Fusion (runfusion.ai)
9e5a516997
feat(FN-4826): complete Step 5 — document handoff telemetry
...
Fusion-Task-Id: FN-4826
Fusion-Task-Lineage: b08a58c8-66ab-43d4-bdf9-69d2b56b7bcc
2026-05-16 23:45:17 -07:00
Fusion (runfusion.ai)
1553f1dd0d
test(FN-4826): complete Step 4 — cover handoff telemetry paths
...
Fusion-Task-Id: FN-4826
Fusion-Task-Lineage: b08a58c8-66ab-43d4-bdf9-69d2b56b7bcc
2026-05-16 23:45:17 -07:00
Fusion (runfusion.ai)
3453e77396
feat(FN-4826): complete Step 3 — emit mesh lease handoff telemetry
...
Fusion-Task-Id: FN-4826
Fusion-Task-Lineage: b08a58c8-66ab-43d4-bdf9-69d2b56b7bcc
2026-05-16 23:45:17 -07:00
Fusion (runfusion.ai)
56aca02250
feat(FN-4826): complete Step 2 — emit scheduler handoff events
...
Fusion-Task-Id: FN-4826
Fusion-Task-Lineage: b08a58c8-66ab-43d4-bdf9-69d2b56b7bcc
2026-05-16 23:45:17 -07:00
Fusion (runfusion.ai)
0705f42a38
feat(FN-4826): complete Step 1 — declare mutation types
...
Fusion-Task-Id: FN-4826
Fusion-Task-Lineage: b08a58c8-66ab-43d4-bdf9-69d2b56b7bcc
2026-05-16 23:45:17 -07:00
Fusion (runfusion.ai)
3605c67925
feat(FN-4791): add core secrets store for secure key-value storage
...
Adds a new secrets store module to `@fusion/core` (277 lines in `secrets-store.ts`) and exports it from the package index.
Fusion-Task-Id: FN-4791
Fusion-Task-Lineage: 7ff20b8a-37e1-46c6-8003-b542df9f98b1
2026-05-16 23:44:47 -07:00
Fusion (runfusion.ai)
e1667a789d
test(FN-4815): complete Step 2 — add duplicate-search regression coverage
...
Fusion-Task-Id: FN-4815
Fusion-Task-Lineage: dc29e38d-5914-40c2-b9f7-3504606d91a3
2026-05-16 23:31:56 -07:00
Fusion (runfusion.ai)
e3aeec999c
feat(FN-4815): complete Step 1 — add duplicate scenario fixture
...
Fusion-Task-Id: FN-4815
Fusion-Task-Lineage: dc29e38d-5914-40c2-b9f7-3504606d91a3
2026-05-16 23:31:56 -07:00
gsxdsm
6d6a0242f0
feat(FN-4846): merge fusion/fn-4846
2026-05-16 23:20:31 -07:00