Commit Graph

6016 Commits

Author SHA1 Message Date
Fusion
a8c3fcb94f feat(FN-4152): complete Step 3 — wire fn chat command
Fusion-Task-Id: FN-4152
Fusion-Task-Lineage: cd26df5e-92f2-431a-950e-84a0fd81bd1f
2026-05-13 21:41:14 -07:00
Fusion
3b5dcccea2 test(FN-4152): complete Step 2 — add chat command coverage
Fusion-Task-Id: FN-4152
Fusion-Task-Lineage: cd26df5e-92f2-431a-950e-84a0fd81bd1f
2026-05-13 21:41:14 -07:00
Fusion
8dbc443038 feat(FN-4152): complete Step 1 — add interactive chat command core
Fusion-Task-Id: FN-4152
Fusion-Task-Lineage: cd26df5e-92f2-431a-950e-84a0fd81bd1f
2026-05-13 21:41:14 -07:00
gsxdsm
c270619b80 chore(FN-4152): import dependency content from fusion/fn-4315
Squash-imported the working tree of fusion/fn-4315 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-4152
Fusion-Task-Lineage: cd26df5e-92f2-431a-950e-84a0fd81bd1f
2026-05-13 21:41:14 -07:00
Fusion
ea9e1f6ada feat(FN-4152): complete Step 7 — documentation and changeset
Fusion-Task-Id: FN-4152
Fusion-Task-Lineage: cd26df5e-92f2-431a-950e-84a0fd81bd1f
2026-05-13 21:41:14 -07:00
gsxdsm
f7eeb3b887 chore(release): v0.29.0
Version bump via changesets.
2026-05-13 21:39:15 -07:00
Fusion
0553f87e7d feat(FN-4422): restore last active quick chat session on reopen
Restores the latest active quick chat session when the QuickChatFAB is opened, with corresponding test coverage for the restored session behavior.

Fusion-Task-Id: FN-4422
2026-05-13 21:30:52 -07:00
Fusion
2ed7ea2f86 feat(FN-4418): complete Step 4 — collapsible file editor toolbar actions
Fusion-Task-Id: FN-4418
Fusion-Task-Lineage: 088af204-a608-46e1-9ca6-4e021c6d751b
2026-05-13 21:01:40 -07:00
Fusion
083fff1791 docs(FN-4424): complete Step 8 — document subsumed-branch auto-skip
Fusion-Task-Id: FN-4424
Fusion-Task-Lineage: 0a3120bf-9f09-45de-bda7-a59c5842b2d9
2026-05-13 20:56:34 -07:00
Fusion
1389d6b4d0 feat(FN-4424): complete Step 6 — add release changeset
Fusion-Task-Id: FN-4424
Fusion-Task-Lineage: 0a3120bf-9f09-45de-bda7-a59c5842b2d9
2026-05-13 20:56:33 -07:00
Fusion
fa81832dd2 test(FN-4424): complete Step 5 — cover empty cherry-pick real-git cases
Fusion-Task-Id: FN-4424
Fusion-Task-Lineage: 0a3120bf-9f09-45de-bda7-a59c5842b2d9
2026-05-13 20:56:33 -07:00
Fusion
8ff216c822 feat(FN-4424): complete Step 2 — add empty cherry-pick detection
Fusion-Task-Id: FN-4424
Fusion-Task-Lineage: 0a3120bf-9f09-45de-bda7-a59c5842b2d9
2026-05-13 20:56:33 -07:00
Fusion
6529c065b4 feat(FN-4150): complete Step 4 — document workflow step resolver support
Fusion-Task-Id: FN-4150
Fusion-Task-Lineage: 153c239b-f6cd-49e4-bc13-216e0d2ca815
2026-05-13 20:47:18 -07:00
Fusion
97740be8b7 test(FN-4150): complete Step 3 — add workflow integration assertions
Fusion-Task-Id: FN-4150
Fusion-Task-Lineage: 153c239b-f6cd-49e4-bc13-216e0d2ca815
2026-05-13 20:47:18 -07:00
Fusion
9992ea018f feat(FN-4150): complete Step 2 — preserve plugin workflow step mode metadata
Fusion-Task-Id: FN-4150
Fusion-Task-Lineage: 153c239b-f6cd-49e4-bc13-216e0d2ca815
2026-05-13 20:47:18 -07:00
Fusion
26a1502f8f test(FN-4150): align plugin tests with workflowSteps contributions
Fusion-Task-Id: FN-4150
Fusion-Task-Lineage: 153c239b-f6cd-49e4-bc13-216e0d2ca815
2026-05-13 20:47:18 -07:00
Fusion
9d366b5c6f feat(FN-4150): complete Step 1 — add cli printing press workflow contributions
Fusion-Task-Id: FN-4150
Fusion-Task-Lineage: 153c239b-f6cd-49e4-bc13-216e0d2ca815
2026-05-13 20:47:18 -07:00
Fusion
ac988f6c97 feat(FN-4385): align ChatView mobile padding note and test tag
Fixed mobile padding consistency in ChatView by aligning a CSS comment and its corresponding test tag to match, keeping documentation and tests in sync for FN-4385.

Fusion-Task-Id: FN-4385
2026-05-13 20:37:09 -07:00
Fusion
a76f1c02ec test(FN-4421): complete Step 2 — add mobile section picker regression
Fusion-Task-Id: FN-4421
Fusion-Task-Lineage: a39ef935-f92d-41e4-bf04-4216f515dc71
2026-05-13 20:26:06 -07:00
Fusion
82f933a4f4 test(FN-4421): complete Step 1 — add desktop project general nav regression
Fusion-Task-Id: FN-4421
Fusion-Task-Lineage: a39ef935-f92d-41e4-bf04-4216f515dc71
2026-05-13 20:26:06 -07:00
Fusion
d2242ecbb8 fix(FN-4186): stabilize workspace lint and test baselines
Fusion-Task-Id: FN-4186
Fusion-Task-Lineage: 30721f11-a830-4549-aa91-d8c3186c0dcf
2026-05-13 20:20:26 -07:00
Fusion
a2915fff10 feat(FN-4186): complete Step 3 — add changeset for chat brevity update
Fusion-Task-Id: FN-4186
Fusion-Task-Lineage: 30721f11-a830-4549-aa91-d8c3186c0dcf
2026-05-13 20:20:26 -07:00
Fusion
34fbe1b662 test(FN-4186): complete Step 2 — add chat prompt guidance regression tests
Fusion-Task-Id: FN-4186
Fusion-Task-Lineage: 30721f11-a830-4549-aa91-d8c3186c0dcf
2026-05-13 20:20:26 -07:00
Fusion
9b9b0a4ed9 feat(FN-4186): complete Step 1 — tighten chat prompt brevity guidance
Fusion-Task-Id: FN-4186
Fusion-Task-Lineage: 30721f11-a830-4549-aa91-d8c3186c0dcf
2026-05-13 20:20:25 -07:00
Fusion
a389995716 feat(FN-4152): complete Step 7 — documentation and changeset
Fusion-Task-Id: FN-4152
Fusion-Task-Lineage: cd26df5e-92f2-431a-950e-84a0fd81bd1f
2026-05-13 20:15:06 -07:00
Fusion
1f5f556627 test(FN-4416): handle multi-file mobile media blocks in CSS regression
Fusion-Task-Id: FN-4416
Fusion-Task-Lineage: c2fc4da9-6fc3-4734-b627-2943c5500102
2026-05-13 20:08:37 -07:00
Fusion
2bb143bf57 chore(FN-4416): add changeset
Fusion-Task-Id: FN-4416
Fusion-Task-Lineage: c2fc4da9-6fc3-4734-b627-2943c5500102
2026-05-13 20:08:37 -07:00
Fusion
93f74cc63f test(FN-4416): guard mobile memory editor min-height regression
Fusion-Task-Id: FN-4416
Fusion-Task-Lineage: c2fc4da9-6fc3-4734-b627-2943c5500102
2026-05-13 20:08:36 -07:00
Fusion
e4b411eb23 fix(FN-4416): raise mobile min-height for Settings memory editor
Fusion-Task-Id: FN-4416
Fusion-Task-Lineage: c2fc4da9-6fc3-4734-b627-2943c5500102
2026-05-13 20:08:36 -07:00
Fusion
1f254c7cfd feat(FN-4343): complete Step 5 — document workflow scope enforcement
Fusion-Task-Id: FN-4343
Fusion-Task-Lineage: b880b71a-9250-4d9e-bdac-8298a73058f7
2026-05-13 20:03:31 -07:00
Fusion
e246076a76 fix(FN-4343): isolate workflow-step scope checks to post-step delta
Fusion-Task-Id: FN-4343
Fusion-Task-Lineage: b880b71a-9250-4d9e-bdac-8298a73058f7
2026-05-13 20:03:31 -07:00
Fusion
a3b505e2cb feat(FN-4343): complete Step 3 — enforce workflow step scope invariants
Fusion-Task-Id: FN-4343
Fusion-Task-Lineage: b880b71a-9250-4d9e-bdac-8298a73058f7
2026-05-13 20:03:31 -07:00
Fusion
540c5e16d8 feat(FN-4343): complete Step 2 — dual-signal frontend ux auto-skip
Fusion-Task-Id: FN-4343
Fusion-Task-Lineage: b880b71a-9250-4d9e-bdac-8298a73058f7
2026-05-13 20:03:31 -07:00
Fusion
578b71e8df feat(FN-4315): add audit recovery pipeline documentation and changeset
Completes FN-4315 by adding a patch changeset for `@runfusion/fusion` and updating project documentation (AGENTS.md and settings reference) to cover the audit recovery pipeline feature.

Fusion-Task-Id: FN-4315

Fusion-Task-Lineage: 2646fd86-e525-4b62-a041-616fa7789e84
2026-05-13 20:03:02 -07:00
Fusion
d1fdd170e9 feat(FN-4412): complete Steps 2-6 — add bulk pause/unpause/archive actions
Fusion-Task-Id: FN-4412
Fusion-Task-Lineage: 20883b92-0de6-4b95-b8f8-9075f1d9d54e
2026-05-13 19:33:34 -07:00
Fusion
b21ad886c4 feat(FN-4412): complete Step 1 — wire bulk action handlers to ListView
Fusion-Task-Id: FN-4412
Fusion-Task-Lineage: 20883b92-0de6-4b95-b8f8-9075f1d9d54e
2026-05-13 19:33:34 -07:00
Fusion
3913783c2c feat(FN-4315): complete Step 2 — add programmatic survival checks
Fusion-Task-Id: FN-4315
Fusion-Task-Lineage: 2646fd86-e525-4b62-a041-616fa7789e84
2026-05-13 19:30:20 -07:00
Fusion
5b61f6fb60 feat(FN-4315): complete Step 1 — add audit recovery settings and bounce field plumbing
Fusion-Task-Id: FN-4315
Fusion-Task-Lineage: 2646fd86-e525-4b62-a041-616fa7789e84
2026-05-13 19:30:20 -07:00
Fusion
81611b370a feat(FN-4415): revert todo aging indicator from FN-4316
Reverts the FN-4316 todo aging indicator feature, removing the `TodoAgingSummary` component and its CSS, the `todoAging` utility, all associated tests, and the corresponding documentation. The revert is accompanied by a changeset confirming the patch-level reversal.

Fusion-Task-Id: FN-4415
2026-05-13 19:22:38 -07:00
gsxdsm
b78b6ae70e fix(FN-4417): prefer local main over origin/main in contamination base
Follow-up to a2b494ddc. The previous fix correctly stopped using
task.baseCommitSha for the contamination check, but the new
resolveContaminationBaseRef tried origin/main first and fell back to
local main only if the origin/main lookup failed. On dev machines that
have not pushed recently, origin/main is a tracking ref that can lag
local main by hundreds of commits. `git merge-base HEAD origin/main`
then resolves successfully and returns the last common ancestor between
the (force-reset-to-local-main) branch and the stale origin/main ref,
which is exactly the same stale SHA the prior bug surfaced. Every
commit on local main since that point is then flagged as foreign
contamination.

Observed: after restarting the engine with a2b494ddc, FN-4315/FN-4403
still failed with `since base e787036b80cc...`. Local main was 166
commits ahead of origin/main; e787036 was the last shared commit.

Fix: reorder the shell fallback to prefer `main` over `origin/main`.
Local main is the canonical integration target for Fusion's merger,
and origin/main is only useful as a fallback when local main does not
exist (rare in a worktree).

Test updated: `resolveContaminationBaseRef returns the current
merge-base...` now asserts local `main` appears before `origin/main` in
the issued command so the shell `||` resolves to local main first.

Fusion-Task-Id: FN-4417
2026-05-13 19:07:31 -07:00
gsxdsm
a2b494ddc0 fix(FN-4417): stop false-positive branch contamination from stale baseCommitSha
The contamination check at executor.ts was reusing task.baseCommitSha as
its reference SHA. That field is intentionally preserved across resumed
sessions for stable diff math, which means it can lag behind main by
many commits. Passing it to assertCleanBranchAtBase caused every
legitimately-merged commit on main since the stale SHA to be reported
as a foreign task-attributed contamination commit, pausing the task
with pausedReason=branch-cross-contamination.

FN-4403 was the trigger case: a pooled worktree was force-reset to
current main by WorktreePool.prepareForTask (correctly), then the
executor immediately ran assertCleanBranchAtBase(rootDir, branch,
staleBaseCommitSha, taskId) and flagged 157 commits across ~39
unrelated FN-* tasks as contamination. FN-4417 itself then hit the
same bug when it tried to start, blocking the board.

Two fixes, both in packages/engine/src/executor.ts:

1. New resolveContaminationBaseRef(worktreePath) computes a fresh
   merge-base against origin/main or main and is used in place of
   resolveDiffBaseRef for the contamination check. It never reads
   task.baseCommitSha and never falls back to HEAD~1 (which on a
   force-reset pooled branch would be a main commit and re-introduce
   the same false positive at smaller scale). Returns undefined on
   git failure so the caller treats it as check skipped.

2. captureBaseCommitSha gains an explicit { isResume: boolean }
   parameter and only preserves an existing baseCommitSha when
   isResume is true. On fresh/pool acquisitions the branch was just
   force-reset to current main, so the stored value is stale by
   definition. Always recapture in that case. Diff-base stability
   across resumed sessions (FN-4309/FN-4383) is preserved by passing
   isResume: true on resume; the existing executor call site is
   already gated on non-resume and passes false.

Tests:
- executor-base-commit-capture.test.ts: updated to thread isResume
  through assertions and added a FN-4417 regression case that verifies
  a stale-but-ancestor baseCommitSha is recaptured (not preserved) on
  non-resume.
- executor-base-commit-capture.real-git.test.ts: FN-4309/FN-4383
  multi-session test now explicitly passes isResume: true on the
  second capture, matching the real resume code path.
- executor-contamination-base.test.ts (new): three focused tests for
  resolveContaminationBaseRef covering fresh-merge-base resolution,
  graceful failure when neither origin/main nor main resolves, and a
  structural guard that the function arity is 1 (no baseCommitSha
  parameter, so the bug cannot regress through that surface).

Verified: 4265 engine tests pass; tsc clean.

Fusion-Task-Id: FN-4417
2026-05-13 18:44:41 -07:00
Fusion
ef34f0ab97 feat(FN-4316): complete Step 6 — document todo aging indicator
Fusion-Task-Id: FN-4316
Fusion-Task-Lineage: 6b2b78b4-effa-479c-9a22-5a53d0f74894
2026-05-13 18:14:23 -07:00
Fusion
a3e0f2ba7d test(FN-4316): complete Step 4 — add todo aging column coverage
Fusion-Task-Id: FN-4316
Fusion-Task-Lineage: 6b2b78b4-effa-479c-9a22-5a53d0f74894
2026-05-13 18:14:23 -07:00
Fusion
94ba91699c feat(FN-4316): complete Step 3 — mount todo aging filter in column
Fusion-Task-Id: FN-4316
Fusion-Task-Lineage: 6b2b78b4-effa-479c-9a22-5a53d0f74894
2026-05-13 18:14:23 -07:00
Fusion
73145afa09 feat(FN-4316): complete Step 2 — add todo aging summary component
Fusion-Task-Id: FN-4316
Fusion-Task-Lineage: 6b2b78b4-effa-479c-9a22-5a53d0f74894
2026-05-13 18:14:22 -07:00
Fusion
b67f986e5e feat(FN-4316): complete Step 1 — add todo aging utility
Fusion-Task-Id: FN-4316
Fusion-Task-Lineage: 6b2b78b4-effa-479c-9a22-5a53d0f74894
2026-05-13 18:14:22 -07:00
gsxdsm
2908b0c4d7 docs(AGENTS): add buttons-frozen standing directive; lift reliability-mechanism governance freeze 2026-05-13 17:58:28 -07:00
gsxdsm
35a6d3a81d fix(ci): exclude dist/ test files from shard count 2026-05-13 17:58:28 -07:00
gsxdsm
410e2a935e docs: add Research vs Experiment Session naming-decision doc to index (FN-4223) 2026-05-13 17:58:28 -07:00
Fusion
d39430b344 feat(FN-4409): add branch contamination assertions in worktree flows
Fusion-Task-Id: FN-4409
Fusion-Task-Lineage: c608c942-fec7-4489-9970-b8dc314f8be2
2026-05-13 17:44:46 -07:00