Fusion (runfusion.ai)
63abf5cac4
feat(FN-4790): complete Step 1 — implement secrets crypto primitive
...
Fusion-Task-Id: FN-4790
Fusion-Task-Lineage: 4daf3560-7b02-4fbf-9e0a-45e048b795a1
2026-05-16 21:00:48 -07:00
Fusion (runfusion.ai)
a11bd0719e
feat(FN-4822): complete Step 8 — document central claim authority
...
Fusion-Task-Id: FN-4822
Fusion-Task-Lineage: 08cc29e8-114a-48dc-80de-8d7fd2ce0e69
2026-05-16 20:48:00 -07:00
Fusion (runfusion.ai)
199f317813
feat(FN-4822): complete Step 6 — enforce central-claim race coverage
...
Fusion-Task-Id: FN-4822
Fusion-Task-Lineage: 08cc29e8-114a-48dc-80de-8d7fd2ce0e69
2026-05-16 20:48:00 -07:00
Fusion (runfusion.ai)
3190eac88b
test(FN-4822): complete Step 4 — add AgentStore central-claim wiring tests
...
Fusion-Task-Id: FN-4822
Fusion-Task-Lineage: 08cc29e8-114a-48dc-80de-8d7fd2ce0e69
2026-05-16 20:48:00 -07:00
Fusion (runfusion.ai)
9d862d17a5
feat(FN-4822): complete Step 1 — add central task claim schema and API
...
Fusion-Task-Id: FN-4822
Fusion-Task-Lineage: 08cc29e8-114a-48dc-80de-8d7fd2ce0e69
2026-05-16 20:48:00 -07:00
Fusion (runfusion.ai)
9a249dfe2b
fix(FN-4789): avoid bundling optional keytar native module
...
Fusion-Task-Id: FN-4789
Fusion-Task-Lineage: cef0d12e-556e-43d8-9ce0-e4962c2d091b
2026-05-16 20:06:48 -07:00
Fusion (runfusion.ai)
937bed90b9
feat(FN-4789): complete Step 6 — changeset and resolver polish
...
Fusion-Task-Id: FN-4789
Fusion-Task-Lineage: cef0d12e-556e-43d8-9ce0-e4962c2d091b
2026-05-16 20:06:48 -07:00
Fusion (runfusion.ai)
90cd39ebd2
feat(FN-4789): complete Step 2 — export manager and add optional keytar
...
Fusion-Task-Id: FN-4789
Fusion-Task-Lineage: cef0d12e-556e-43d8-9ce0-e4962c2d091b
2026-05-16 20:06:48 -07:00
Fusion (runfusion.ai)
1a527fa753
fix(FN-4789): harden rotation semantics for active backend
...
Fusion-Task-Id: FN-4789
Fusion-Task-Lineage: cef0d12e-556e-43d8-9ce0-e4962c2d091b
2026-05-16 20:06:47 -07:00
Fusion (runfusion.ai)
10e44eda3a
feat(FN-4789): complete Step 1 — implement master key resolver
...
Fusion-Task-Id: FN-4789
Fusion-Task-Lineage: cef0d12e-556e-43d8-9ce0-e4962c2d091b
2026-05-16 20:06:47 -07:00
Fusion (runfusion.ai)
e49c41185b
test(FN-4789): add initial master key manager tests
...
Fusion-Task-Id: FN-4789
Fusion-Task-Lineage: cef0d12e-556e-43d8-9ce0-e4962c2d091b
2026-05-16 20:06:47 -07:00
Fusion (runfusion.ai)
ff5f24f5e9
feat(FN-4789): complete Step 1 — implement master key manager
...
Fusion-Task-Id: FN-4789
Fusion-Task-Lineage: cef0d12e-556e-43d8-9ce0-e4962c2d091b
2026-05-16 20:06:47 -07:00
Fusion (runfusion.ai)
b2ca02f743
feat(FN-4813): complete docs, settings, and verification updates
...
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:10 -07:00
Fusion (runfusion.ai)
b81bfacf07
fix(FN-4813): avoid isolation transition double-write in project route
...
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:09 -07:00
Fusion (runfusion.ai)
63adddadf9
feat(FN-4813): complete Step 5 — add isolation transition runtime restart path
...
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:09 -07:00
Fusion (runfusion.ai)
76ac6597cb
fix(FN-4813): export handoff policy types from core barrel
...
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:09 -07:00
Fusion (runfusion.ai)
2ff19bc9c9
feat(FN-4813): complete Step 3 — add owning-node handoff policy
...
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:09 -07:00
Fusion (runfusion.ai)
735c8f413b
feat(FN-4813): complete Step 2 — add distributed claim mutex tests
...
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:09 -07:00
Fusion
f4aa6d7b8b
fix(FN-4811): persist done-task integrity warnings across engine restarts
...
The periodic self-healing sweep at
SelfHealingManager.reconcileDoneTaskIntegrity() emits a single
'Integrity warning: done-task finalize evidence is unproven (<reason>)' log
entry per task when the task is in 'done' but has no provable on-main
evidence. Dedup was via an in-memory finalizeUnprovenWarned Set per manager
instance, so every engine restart resurfaced the same warning on the next
sweep — significant noise on done tasks that legitimately lack evidence,
typically residue of FN-4811 contamination (FN-4771/FN-4778 in production).
Adds an optional MergeDetails.integrityWarning = { warnedAt, reason } field
and persists it on the first warning. Both warning sites in
reconcileDoneTaskIntegrity() (the unproven-and-still-mergeable branch and
the unproven-final branch) now consult the persisted record:
- Same reason as persisted → skip re-emitting, just rehydrate the in-memory
Set for in-process consistency.
- Different reason → re-warn (so a *new* classification problem still
surfaces) and update the persisted record.
Tests added under
packages/engine/src/__tests__/reliability-interactions/integrity-warning-persisted-dedup.test.ts
(real-git, 4 cases):
- First sweep: emits warning + persists record.
- Second sweep, same instance: in-memory Set dedupes (existing contract).
- Fresh manager (simulated engine restart) + pre-persisted record:
persisted dedup suppresses re-emission.
- Fresh manager + persisted record with different reason: must re-warn
and overwrite the persisted reason.
Full engine suite: 308 files, 5041 tests pass, 1 skipped. Lint clean.
Fusion-Task-Id: FN-4811
2026-05-16 16:51:43 -07:00
Fusion (runfusion.ai)
22dbc4951e
test(FN-4788): update schema-version assertions to 83
...
Fusion-Task-Id: FN-4788
Fusion-Task-Lineage: 8de6c7f4-cf0f-4b1f-b664-4e8533b88919
2026-05-16 15:05:15 -07:00
Fusion (runfusion.ai)
9b7550a3f1
test(FN-4788): complete Step 4 — add secrets schema coverage
...
Fusion-Task-Id: FN-4788
Fusion-Task-Lineage: 8de6c7f4-cf0f-4b1f-b664-4e8533b88919
2026-05-16 15:05:15 -07:00
Fusion (runfusion.ai)
7f294614b5
feat(FN-4788): complete Step 2 — add central secrets_global schema migration
...
Fusion-Task-Id: FN-4788
Fusion-Task-Lineage: 8de6c7f4-cf0f-4b1f-b664-4e8533b88919
2026-05-16 15:05:15 -07:00
Fusion (runfusion.ai)
268eec50a9
feat(FN-4788): complete Step 1 — add project secrets schema migration
...
Fusion-Task-Id: FN-4788
Fusion-Task-Lineage: 8de6c7f4-cf0f-4b1f-b664-4e8533b88919
2026-05-16 15:05:15 -07:00
Fusion (runfusion.ai)
415cd6a111
test(FN-4783): stabilize workspace test lanes for verification
...
Fusion-Task-Id: FN-4783
Fusion-Task-Lineage: 7a02897b-e303-4947-86b2-3dd7a343f653
2026-05-16 13:46:43 -07:00
Fusion (runfusion.ai)
f8c050741c
feat(FN-4783): complete Step 1 — add oauth token expired event types
...
Fusion-Task-Id: FN-4783
Fusion-Task-Lineage: 7a02897b-e303-4947-86b2-3dd7a343f653
2026-05-16 13:46:42 -07:00
Fusion (runfusion.ai)
be54c75533
feat(FN-4785): complete Step 3 — batch agent run status aggregation
...
Fusion-Task-Id: FN-4785
Fusion-Task-Lineage: be241ee7-9df0-433c-a00b-997bcd558862
2026-05-16 13:04:28 -07:00
Fusion (runfusion.ai)
3dfa162f03
feat(FN-4785): complete Step 1 — add getTaskColumns test coverage
...
Fusion-Task-Id: FN-4785
Fusion-Task-Lineage: be241ee7-9df0-433c-a00b-997bcd558862
2026-05-16 13:04:27 -07:00
Fusion (runfusion.ai)
5ca7f45fe1
feat(FN-4785): complete Step 1 — add batched task column lookup
...
Fusion-Task-Id: FN-4785
Fusion-Task-Lineage: be241ee7-9df0-433c-a00b-997bcd558862
2026-05-16 13:04:27 -07:00
Fusion (runfusion.ai)
d89a4569f1
fix(FN-4777): add dedup default setting and lint-safe regex
...
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:31 -07:00
Fusion (runfusion.ai)
f60dde01fe
feat(FN-4777): complete Step 3 — wire GitHub tracking dedup pre-check
...
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:31 -07:00
Fusion (runfusion.ai)
db7b196462
test(FN-4770): complete Steps 3-4 — add tracking async coverage
...
Fusion-Task-Id: FN-4770
Fusion-Task-Lineage: 8c8d1786-f81b-4544-9275-595b90ea5689
2026-05-16 11:39:37 -07:00
Fusion (runfusion.ai)
7c1ccb4b31
feat(FN-4770): complete Step 1 — expose createTask hook toggle
...
Fusion-Task-Id: FN-4770
Fusion-Task-Lineage: 8c8d1786-f81b-4544-9275-595b90ea5689
2026-05-16 11:39:37 -07:00
Fusion (runfusion.ai)
229f3a9467
feat(FN-4743): complete Step 2 — add message cleanup API
...
Fusion-Task-Id: FN-4743
Fusion-Task-Lineage: 50d1d8e4-66d5-4299-843b-28072a904277
2026-05-16 10:43:48 -07:00
Fusion (runfusion.ai)
92a85b8a9d
feat(FN-4743): complete Step 1 — add mail cleanup project setting
...
Fusion-Task-Id: FN-4743
Fusion-Task-Lineage: 50d1d8e4-66d5-4299-843b-28072a904277
2026-05-16 10:43:48 -07:00
Fusion (runfusion.ai)
a4433cd09f
fix(FN-4739): coerce sqlite delete changes count to number
...
Fusion-Task-Id: FN-4739
Fusion-Task-Lineage: fc120dfa-d1b2-4065-9595-d0bc6304d2af
2026-05-16 09:56:54 -07:00
Fusion (runfusion.ai)
356f49588a
feat(FN-4739): complete Step 2 — add room message clear in chat store
...
Fusion-Task-Id: FN-4739
Fusion-Task-Lineage: fc120dfa-d1b2-4065-9595-d0bc6304d2af
2026-05-16 09:56:54 -07:00
Fusion (runfusion.ai)
32291be20a
feat(FN-4733): complete Step 2 — add chat cleanup store method
...
Fusion-Task-Id: FN-4733
Fusion-Task-Lineage: 38495ced-c7a0-40aa-be22-7f02fe958806
2026-05-16 08:50:47 -07:00
Fusion (runfusion.ai)
7ec2711aa8
feat(FN-4733): complete Step 1 — add chat auto-cleanup setting
...
Fusion-Task-Id: FN-4733
Fusion-Task-Lineage: 38495ced-c7a0-40aa-be22-7f02fe958806
2026-05-16 08:50:47 -07:00
Fusion (runfusion.ai)
72bf494429
test(FN-4730): cover createTask hook deferral ordering
...
Fusion-Task-Id: FN-4730
Fusion-Task-Lineage: 10fa1d65-f898-4576-bbca-a796df13bedb
2026-05-16 08:45:06 -07:00
Fusion (runfusion.ai)
6d452e2a58
fix(FN-4730): pass deferred hook option to createTask internal
...
Fusion-Task-Id: FN-4730
Fusion-Task-Lineage: 10fa1d65-f898-4576-bbca-a796df13bedb
2026-05-16 08:45:06 -07:00
Fusion (runfusion.ai)
bed8dac04a
feat(FN-4730): complete Step 2 — defer hook after summarization
...
Fusion-Task-Id: FN-4730
Fusion-Task-Lineage: 10fa1d65-f898-4576-bbca-a796df13bedb
2026-05-16 08:45:06 -07:00
Fusion (runfusion.ai)
43e3fbf60d
feat(FN-4723): complete Step 1 — add worktrunk transition classifier
...
Fusion-Task-Id: FN-4723
Fusion-Task-Lineage: b79b42a0-c65d-4e02-938f-d1ffabc272ee
2026-05-16 07:16:05 -07:00
Fusion (runfusion.ai)
0affca047a
feat(FN-4718): complete Step 1 — add done auto-archive days setting
...
Fusion-Task-Id: FN-4718
Fusion-Task-Lineage: 4553c39c-c174-4993-a4ac-2c8b7d86bda2
2026-05-16 04:44:36 -07:00
Fusion (runfusion.ai)
4e4fad5c88
test(FN-4715): complete Step 2 — add default invariant regressions
...
Fusion-Task-Id: FN-4715
Fusion-Task-Lineage: b1c3393f-2596-4b3f-a8fb-c9838bf6c985
2026-05-16 00:19:18 -07:00
Fusion (runfusion.ai)
2626f61708
test(FN-4663): add stranded refinement route and store coverage
...
Fusion-Task-Id: FN-4663
Fusion-Task-Lineage: 80975e9f-51e2-42ee-9f61-5e065a3fed24
2026-05-15 23:28:22 -07:00
Fusion (runfusion.ai)
52b167879b
fix(FN-4663): make expedite route persistence-safe and idempotent
...
Fusion-Task-Id: FN-4663
Fusion-Task-Lineage: 80975e9f-51e2-42ee-9f61-5e065a3fed24
2026-05-15 23:28:22 -07:00
Fusion (runfusion.ai)
1aad59aeb2
feat(FN-4663): complete Step 4 — add stranded refinement API endpoints
...
Fusion-Task-Id: FN-4663
Fusion-Task-Lineage: 80975e9f-51e2-42ee-9f61-5e065a3fed24
2026-05-15 23:28:22 -07:00
Fusion (runfusion.ai)
1e62de539c
feat(FN-4663): complete Step 3 — add stranded refinement store helper
...
Fusion-Task-Id: FN-4663
Fusion-Task-Lineage: 80975e9f-51e2-42ee-9f61-5e065a3fed24
2026-05-15 23:28:22 -07:00
Fusion (runfusion.ai)
9ef00e1197
feat(FN-4641): complete Step 2 — add sandbox provisioning policy resolver
...
Fusion-Task-Id: FN-4641
Fusion-Task-Lineage: 50ac1fd2-8c88-4a29-9ebb-962a6b5c772c
2026-05-15 22:56:31 -07:00
Fusion (runfusion.ai)
30f71d399c
feat(FN-4641): complete Step 1 — extend core types and settings
...
Fusion-Task-Id: FN-4641
Fusion-Task-Lineage: 50ac1fd2-8c88-4a29-9ebb-962a6b5c772c
2026-05-15 22:56:30 -07:00