Commit Graph

1278 Commits

Author SHA1 Message Date
Fusion
fab7de4147 fix(FN-4383): align pooled worktree baseline tests with merge-base capture
Fusion-Task-Id: FN-4383
Fusion-Task-Lineage: 69516bdf-34d1-405c-8bc9-b558c4780863
2026-05-13 15:28:34 -07:00
Fusion
0d966aecf8 test(FN-4383): complete Step 3 — add real-git base commit capture regression
Fusion-Task-Id: FN-4383
Fusion-Task-Lineage: 69516bdf-34d1-405c-8bc9-b558c4780863
2026-05-13 15:28:34 -07:00
Fusion
82c52473e6 test(FN-4383): complete Step 2 — add base commit capture unit tests
Fusion-Task-Id: FN-4383
Fusion-Task-Lineage: 69516bdf-34d1-405c-8bc9-b558c4780863
2026-05-13 15:28:34 -07:00
Fusion
5de91e6e80 feat(FN-4383): complete Step 1 — capture baseCommitSha from merge-base
Fusion-Task-Id: FN-4383
Fusion-Task-Lineage: 69516bdf-34d1-405c-8bc9-b558c4780863
2026-05-13 15:28:34 -07:00
Fusion
6130a95fe2 test(FN-4332): align notifier defaults with legacy failure behavior
Fusion-Task-Id: FN-4332
Fusion-Task-Lineage: c920ac71-906b-458d-b496-1b60540b58f3
2026-05-13 15:15:41 -07:00
Fusion
0ee31db9e1 feat(FN-4332): complete Step 2 — defer failed notifications
Fusion-Task-Id: FN-4332
Fusion-Task-Lineage: c920ac71-906b-458d-b496-1b60540b58f3
2026-05-13 15:15:41 -07:00
Fusion
e0ab5efdf5 test(FN-4379): complete Step 5 — real-git orphan-only recovery test
Fusion-Task-Id: FN-4379
Fusion-Task-Lineage: 88ee0f49-1db2-40e6-8781-7ecbc4dcbdc8
2026-05-13 14:22:23 -07:00
Fusion
d0a748b680 test(FN-4379): complete Step 4 — orphan-only scope unit coverage
Fusion-Task-Id: FN-4379
Fusion-Task-Lineage: 88ee0f49-1db2-40e6-8781-7ecbc4dcbdc8
2026-05-13 14:22:23 -07:00
Fusion
2cc0c08fd8 fix(FN-4379): honor paused tasks in orphan-only recovery
Fusion-Task-Id: FN-4379
Fusion-Task-Lineage: 88ee0f49-1db2-40e6-8781-7ecbc4dcbdc8
2026-05-13 14:22:23 -07:00
Fusion
cfaac5dc54 feat(FN-4379): complete Step 2 — orphan-only scope recovery implementation
Fusion-Task-Id: FN-4379
Fusion-Task-Lineage: 88ee0f49-1db2-40e6-8781-7ecbc4dcbdc8
2026-05-13 14:22:23 -07:00
Fusion
b7b0ba6460 feat(FN-4309): guard squash commits against gitignored files
- Unstage gitignored paths before squash merge commit creation using git check-ignore
- Re-run the guard on the verification-fix squash restore path to keep ignored artifacts out of final merges
- Add merger tests covering forced .fusion artifacts, spaced ignored paths, and ignored-only squash results
- Document the gitignored-path merge guard and add a published package changeset

Fusion-Task-Id: FN-4309
2026-05-13 13:18:12 -07:00
Fusion
7fc5bda3e2 test(FN-4293): add tree-equality recovery tests
Fusion-Task-Id: FN-4293
Fusion-Task-Lineage: 5b7b5a50-d4f5-487c-b420-0ae2ea49b21f
2026-05-13 13:07:06 -07:00
Fusion
fe47685b65 feat(FN-4293): complete Step 3 — add tree-equality fallback
Fusion-Task-Id: FN-4293
Fusion-Task-Lineage: 5b7b5a50-d4f5-487c-b420-0ae2ea49b21f
2026-05-13 13:07:06 -07:00
Fusion
9f14fa51ee fix(FN-4350): complete Step 4 — pass verification gates
Fusion-Task-Id: FN-4350
Fusion-Task-Lineage: 11fff2c2-1cd1-4562-9b01-032a15217479
2026-05-13 12:30:45 -07:00
gsxdsm
22fee60aee chore(FN-4350): import dependency content from fusion/fn-4326
Squash-imported the working tree of fusion/fn-4326 as a single commit so this branch carries the dep's content without inheriting its individual commits. If the dep is later squash-merged to main, this commit's patch-id should match the merge and rebase cleanly.

Fusion-Task-Id: FN-4350
Fusion-Task-Lineage: 11fff2c2-1cd1-4562-9b01-032a15217479
2026-05-13 12:30:45 -07:00
Fusion
7cdba43908 fix(FN-4350): complete Step 4 — pass verification gates
Fusion-Task-Id: FN-4350
Fusion-Task-Lineage: 11fff2c2-1cd1-4562-9b01-032a15217479
2026-05-13 12:26:07 -07:00
Fusion
010467f557 test(FN-4349): complete Step 6 — align block-path tests with new default
Fusion-Task-Id: FN-4349
Fusion-Task-Lineage: 7fa7b0ee-7705-4728-b425-1a3ac45e75a2
2026-05-13 12:16:51 -07:00
Fusion
704e213ff9 test(FN-4333): complete Step 4 — align audit helper test contract
Fusion-Task-Id: FN-4333
Fusion-Task-Lineage: 39442c0b-046e-4a34-8bdd-0f4c60bea451
2026-05-13 10:45:52 -07:00
Fusion
2b2dc08b02 feat(FN-4333): complete Step 2 — wire audit mode and verified-rebase short-circuit
Fusion-Task-Id: FN-4333
Fusion-Task-Lineage: 39442c0b-046e-4a34-8bdd-0f4c60bea451
2026-05-13 10:45:52 -07:00
Fusion
32c5975d59 test(FN-4295): complete Step 2 — add 1.5x stale threshold coverage
Fusion-Task-Id: FN-4295
Fusion-Task-Lineage: e2a47487-33f5-4077-8031-c7bb14882121
2026-05-13 10:08:30 -07:00
Fusion
9ca4f879b2 feat(FN-4295): complete Step 1 — update reports stale threshold multiplier
Fusion-Task-Id: FN-4295
Fusion-Task-Lineage: e2a47487-33f5-4077-8031-c7bb14882121
2026-05-13 10:08:29 -07:00
Fusion
1777a34c7a docs(FN-4333): document postMergeAuditMode + add mode=off/warn integration tests
Adopts the documentation and integration test additions from the
Fusion executor's parallel work on FN-4333 (sleek-oak worktree). The
core hot-fix already landed in ccd718acd.

- AGENTS.md: update the post-squash audit paragraph to describe the
  three modes and the verified-tree short-circuit.
- docs/settings-reference.md: add postMergeAuditMode row.
- packages/engine/src/__tests__/merger-merge-lifecycle.test.ts: add
  integration tests covering postMergeAuditMode=off (skips audit) and
  postMergeAuditMode=warn (continues despite dirty findings).

Fusion-Task-Id: FN-4333
2026-05-13 09:53:45 -07:00
gsxdsm
e787036b80 feat(FN-4333): emergency hot-fix for post-merge audit blocks
Stop the post-merge audit from parking tasks as `failed` when deterministic
merge verification already proved the merged tree. Adds `postMergeAuditMode`
project setting (`block` | `warn` | `off`, default `block`) and a
verified-tree short-circuit for rebase-strategy overlap-only findings.

- packages/engine/src/merger.ts: new `resolvePostMergeAuditAction` helper
  + audit call site gated on `postMergeAuditMode` and verification-cache
  lookup. Rebase + overlap-only + verified-tree → pass through with a
  short-circuit log entry instead of throwing SquashAuditError.
- packages/core/src/types.ts, settings-schema.ts, index.ts: new
  `PostMergeAuditMode` type, `postMergeAuditMode` field on Settings,
  default `block`, exports `normalizePostMergeAuditMode`.
- packages/engine/src/__tests__/post-merge-audit-action.test.ts: unit
  tests for the decision helper.
- packages/dashboard/app/components/SettingsModal.tsx: settings UI row.
- .changeset: minor bump for @runfusion/fusion.

The FN-3936 silent-drop guard is preserved: duplicate-subject findings
still block in `block` mode and squash-strategy audits still block
(no equivalent deterministic guarantee).

Fusion-Task-Id: FN-4333
2026-05-13 09:06:20 -07:00
Fusion
14f252be51 feat(FN-4278): clarify orphaned-running timeout semantics in agent heartbea
Clarifies orphaned-running timeout semantics in the agents documentation and adds a related implementation detail in the agent heartbeat module.

Fusion-Task-Id: FN-4278
2026-05-13 09:06:20 -07:00
Fusion
8c4fbd5a61 feat(FN-4080): complete Step 2 — route thinking persistence by agent kind
Fusion-Task-Id: FN-4080
Fusion-Task-Lineage: 086863ba-7100-41ab-9cfc-197301fbcab0
2026-05-13 06:29:36 -07:00
Fusion
5244d52d48 test(FN-4115): refine Step 3 stranded-review invariant coverage
Fusion-Task-Id: FN-4115
Fusion-Task-Lineage: 9e34cdc1-ac78-41f2-9587-269f50b30af4
2026-05-13 06:29:36 -07:00
Fusion
fd56f9ab94 test(FN-4115): complete Step 3 — stranded in-review recovery tests
Fusion-Task-Id: FN-4115
Fusion-Task-Lineage: 9e34cdc1-ac78-41f2-9587-269f50b30af4
2026-05-13 06:29:36 -07:00
Fusion
ca740cab9b test(FN-4115): complete Step 2 — paused todo normalization tests
Fusion-Task-Id: FN-4115
Fusion-Task-Lineage: 9e34cdc1-ac78-41f2-9587-269f50b30af4
2026-05-13 06:29:36 -07:00
Fusion
58e7594a8e test(FN-4115): complete Step 1 — wrong-checkout completion rejection tests
Fusion-Task-Id: FN-4115
Fusion-Task-Lineage: 9e34cdc1-ac78-41f2-9587-269f50b30af4
2026-05-13 06:29:36 -07:00
Fusion
52b2c6a96e test(FN-4259): add exhaustion recovery regressions
Fusion-Task-Id: FN-4259
Fusion-Task-Lineage: 7a7ca17b-93ce-4319-8461-7d1462a2c0e1
2026-05-13 06:29:36 -07:00
Fusion
b50f40a73e feat(FN-4259): complete Step 3 — stop exhausted-task churn
Fusion-Task-Id: FN-4259
Fusion-Task-Lineage: 7a7ca17b-93ce-4319-8461-7d1462a2c0e1
2026-05-13 06:29:36 -07:00
Fusion
f9505b67b3 feat(FN-4259): complete Step 2 — deterministic exhausted contract
Fusion-Task-Id: FN-4259
Fusion-Task-Lineage: 7a7ca17b-93ce-4319-8461-7d1462a2c0e1
2026-05-13 06:29:36 -07:00
Fusion
e01a21889a docs(FN-4223): complete Step 3 — clarify research confidence and run semantics in JSDoc
Fusion-Task-Id: FN-4223
Fusion-Task-Lineage: bc114ff2-ee0f-4e96-b1d2-6ba3112a48e4
2026-05-13 06:29:36 -07:00
Fusion
e89c15a16b test(FN-4298): align worktree test fixtures with default liveness mock
Fusion-Task-Id: FN-4298
Fusion-Task-Lineage: 25d48169-58be-42f9-aafc-4b47db554e57
2026-05-13 06:29:35 -07:00
Fusion
17a5378911 feat(FN-4298): complete Step 2 — reset worktree liveness mock defaults
Fusion-Task-Id: FN-4298
Fusion-Task-Lineage: 25d48169-58be-42f9-aafc-4b47db554e57
2026-05-13 06:29:35 -07:00
Fusion
083399e21d feat(FN-4298): complete Step 1 — add default worktree liveness helper mock
Fusion-Task-Id: FN-4298
Fusion-Task-Lineage: 25d48169-58be-42f9-aafc-4b47db554e57
2026-05-13 06:29:35 -07:00
Fusion
fd0cd93192 feat(FN-4214): fix live-log empty-state when agent logs become stale
Fixes a live-log empty-state regression in the workflow results tab by adding test coverage for the stale agent-log case, with a changeset prepared to publish the patch.

Fusion-Task-Id: FN-4214

Fusion-Task-Lineage: da180434-6d1d-497e-8f5a-f29d07a874f2
2026-05-13 06:29:35 -07:00
Fusion
11bfc1f217 fix(FN-4114): normalize invariant requeue state and add changeset
Fusion-Task-Id: FN-4114
Fusion-Task-Lineage: 44fd5718-42dc-44d1-8f5a-97b67dd05d13
2026-05-13 06:29:35 -07:00
Fusion
2531dff12d test(FN-4114): complete Step 4 — add invariant and liveness regression tests
Fusion-Task-Id: FN-4114
Fusion-Task-Lineage: 44fd5718-42dc-44d1-8f5a-97b67dd05d13
2026-05-13 06:29:35 -07:00
Fusion
552d9ad560 feat(FN-4114): complete Step 3 — enforce pre-session worktree liveness
Fusion-Task-Id: FN-4114
Fusion-Task-Lineage: 44fd5718-42dc-44d1-8f5a-97b67dd05d13
2026-05-13 06:29:35 -07:00
Fusion
7048d4efc2 feat(FN-4114): complete Step 2 — guard fn_task_done with worktree invariants
Fusion-Task-Id: FN-4114
Fusion-Task-Lineage: 44fd5718-42dc-44d1-8f5a-97b67dd05d13
2026-05-13 06:29:35 -07:00
Fusion
b8b119ad8c feat(FN-4114): complete Step 1 — add worktree invariant helper
Fusion-Task-Id: FN-4114
Fusion-Task-Lineage: 44fd5718-42dc-44d1-8f5a-97b67dd05d13
2026-05-13 06:29:35 -07:00
Fusion
a05b31c286 feat(FN-4211): complete Step 2 — add task artifact location guidance
Fusion-Task-Id: FN-4211
Fusion-Task-Lineage: c56f5a9d-76c4-405f-8313-240c22faede9
2026-05-13 06:29:35 -07:00
Fusion
3d340ca8c1 fix(FN-4092): satisfy lint for unavailable advisory switch
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
557ec4562a fix(FN-4092): resolve lint/typecheck issues from verification
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
c0471b76d1 test(FN-4092): complete Step 4 — verify advisory unavailable unblocks progression
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
acdab200b5 feat(FN-4092): complete Step 3 — advisory fallthrough for plan/spec unavailable
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
203217a887 fix(FN-4092): address step 2 review feedback
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
53f4de2fcb feat(FN-4092): complete Step 2 — add reviewer fallback retry
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
fcf2c39a9e test(FN-4092): complete Step 1 — reproduce unavailable stall baseline
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00