Commit Graph

1234 Commits

Author SHA1 Message Date
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
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)
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)
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)
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
gsxdsm
df998cb54f feat(FN-4829): merge fusion/fn-4829 2026-05-16 22:26:42 -07:00
Fusion (runfusion.ai)
8ae7f3d97f feat(FN-4837): complete Step 3/4 — shared db cache lane and reset invariants
Fusion-Task-Id: FN-4837
Fusion-Task-Lineage: 93dda830-5658-4894-ad91-ac2c891d2436
2026-05-16 22:19:58 -07:00
Fusion (runfusion.ai)
139e25fcf3 feat(FN-4837): complete Step 2 — migrate store tests to shared harness
Fusion-Task-Id: FN-4837
Fusion-Task-Lineage: 93dda830-5658-4894-ad91-ac2c891d2436
2026-05-16 22:19:57 -07:00
Fusion (runfusion.ai)
743324f8ab feat(FN-4837): complete Step 1 — shared store harness
Fusion-Task-Id: FN-4837
Fusion-Task-Lineage: 93dda830-5658-4894-ad91-ac2c891d2436
2026-05-16 22:19:57 -07:00
Fusion (runfusion.ai)
d724008af8 test(FN-4838): complete Step 2 — speed up activity log retention test
Fusion-Task-Id: FN-4838
Fusion-Task-Lineage: 53dcdc36-5818-40ca-a113-27b01989dc1c
2026-05-16 21:46:45 -07:00
Fusion (runfusion.ai)
8cc969cbbb feat(FN-4838): complete Step 1 — add activity log limit test seam
Fusion-Task-Id: FN-4838
Fusion-Task-Lineage: 53dcdc36-5818-40ca-a113-27b01989dc1c
2026-05-16 21:46:44 -07:00
Fusion (runfusion.ai)
30bf7df2bf test(FN-4790): complete Step 3 — add secrets crypto coverage
Fusion-Task-Id: FN-4790
Fusion-Task-Lineage: 4daf3560-7b02-4fbf-9e0a-45e048b795a1
2026-05-16 21:00:48 -07:00
Fusion (runfusion.ai)
5475c76e7e feat(FN-4790): complete Step 2 — export secrets crypto API
Fusion-Task-Id: FN-4790
Fusion-Task-Lineage: 4daf3560-7b02-4fbf-9e0a-45e048b795a1
2026-05-16 21:00:48 -07:00
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