Commit Graph

3951 Commits

Author SHA1 Message Date
Fusion (runfusion.ai)
46794e758b fix(FN-5010): avoid template hex interpolation for chip color var
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
9170f78cd0 test(FN-5010): complete Step 3 — assert chip color variable wiring
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
c34e778a65 feat(FN-5010): complete Step 2 — tint chips via CSS var modifier
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
b58e65d587 feat(FN-5010): complete Step 1 — move label color to CSS custom property
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
0f6b0fb096 feat(FN-4984): complete Step 2 — add SecretsView sync passphrase panel
Fusion-Task-Id: FN-4984
Fusion-Task-Lineage: 8fdf7a19-b101-4b33-8e60-44fcbf402256
2026-05-18 04:46:56 -07:00
Fusion (runfusion.ai)
29cd4aab9b feat(FN-4984): complete Step 1 — add sync passphrase routes
Fusion-Task-Id: FN-4984
Fusion-Task-Lineage: 8fdf7a19-b101-4b33-8e60-44fcbf402256
2026-05-18 04:46:56 -07:00
Fusion (runfusion.ai)
c97ebde1d3 test(FN-4981): complete Step 4 — enforce apiKey guard ordering
Fusion-Task-Id: FN-4981
Fusion-Task-Lineage: 0b3fae6a-a86b-44d5-94e8-4c94429d4767
2026-05-18 04:31:25 -07:00
Fusion (runfusion.ai)
765a6fed0a test(FN-4981): complete Step 3 — add pull missing-apiKey coverage
Fusion-Task-Id: FN-4981
Fusion-Task-Lineage: 0b3fae6a-a86b-44d5-94e8-4c94429d4767
2026-05-18 04:31:25 -07:00
Fusion (runfusion.ai)
47775e9428 test(FN-4981): complete Step 2 — add push missing-apiKey coverage
Fusion-Task-Id: FN-4981
Fusion-Task-Lineage: 0b3fae6a-a86b-44d5-94e8-4c94429d4767
2026-05-18 04:31:25 -07:00
Fusion (runfusion.ai)
13e5775e17 test(FN-4985): complete Step 2 — add pull split height parity regression
Fusion-Task-Id: FN-4985
Fusion-Task-Lineage: aef36307-9d45-4246-97c2-33948a3c5a04
2026-05-18 04:12:31 -07:00
Fusion (runfusion.ai)
f13da3cc31 feat(FN-4985): complete Step 1 — equalize pull toggle height on desktop
Fusion-Task-Id: FN-4985
Fusion-Task-Lineage: aef36307-9d45-4246-97c2-33948a3c5a04
2026-05-18 04:12:31 -07:00
gsxdsm
0b6d1594ce feat(FN-4983): merge fusion/fn-4983 2026-05-18 04:02:39 -07:00
gsxdsm
e33159e91b feat(FN-4919): merge fusion/fn-4919 2026-05-18 04:01:51 -07:00
Fusion (runfusion.ai)
b5e674059b test(FN-4980): cover sync-export auth rejection paths
- Add GET /api/secrets/sync-export coverage for missing, malformed, and invalid Authorization headers
- Assert 401 responses never echo bearer token material back in the response body
- Verify requests are rejected when the local node has no configured API key

Fusion-Task-Id: FN-4980
2026-05-18 03:47:30 -07:00
Fusion (runfusion.ai)
da9aedd1b1 fix(FN-4963): stabilize empty-state cache-failure coverage
Fusion-Task-Id: FN-4963
Fusion-Task-Lineage: 791f5e46-c630-4883-89de-942cc85c329b
2026-05-18 03:34:54 -07:00
Fusion (runfusion.ai)
e5d586acc7 test(FN-4963): complete Step 5 — add chat sessions cache hydration tests
Fusion-Task-Id: FN-4963
Fusion-Task-Lineage: 791f5e46-c630-4883-89de-942cc85c329b
2026-05-18 03:34:54 -07:00
Fusion (runfusion.ai)
7f36f56bb1 feat(FN-4963): complete Step 4 — clear chat sessions cache on version update
Fusion-Task-Id: FN-4963
Fusion-Task-Lineage: 791f5e46-c630-4883-89de-942cc85c329b
2026-05-18 03:34:54 -07:00
Fusion (runfusion.ai)
b7fcf439ae feat(FN-4963): complete Step 3 — hydrate chat sessions from SWR cache
Fusion-Task-Id: FN-4963
Fusion-Task-Lineage: 791f5e46-c630-4883-89de-942cc85c329b
2026-05-18 03:34:54 -07:00
Fusion (runfusion.ai)
bca388af84 feat(FN-4963): complete Step 2 — add chat sessions cache key
Fusion-Task-Id: FN-4963
Fusion-Task-Lineage: 791f5e46-c630-4883-89de-942cc85c329b
2026-05-18 03:34:54 -07:00
gsxdsm
2fd96d51c1 feat(FN-4960): merge fusion/fn-4960 2026-05-18 03:17:02 -07:00
gsxdsm
1842a69e6c test(FN-4951): stabilize clipboard fallback coverage
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
b8f4042be4 test(FN-4951): complete Step 5 — cover clipboard fallback and toast paths
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
21d17e4005 feat(FN-4951): complete Step 4 — wire onboarding copilot clipboard fallback
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
6339ef0f45 feat(FN-4951): complete Step 3 — wire settings copilot clipboard fallback
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
3986c09154 test(FN-4951): complete Step 2 — add clipboard utility tests
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
c96a918591 feat(FN-4951): complete Step 1 — add shared clipboard utility
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
Fusion (runfusion.ai)
f9f8ca04b9 feat(FN-4950): reinforce recycleWorktrees opt-in default copy
Fusion-Task-Id: FN-4950
Fusion-Task-Lineage: ce37aa18-a5ff-4aef-a93b-768edd07978c
2026-05-18 02:32:16 -07:00
Fusion (runfusion.ai)
499f88f672 fix(FN-4943): complete Step 3 — preserve clear/new dismiss behavior
Fusion-Task-Id: FN-4943
Fusion-Task-Lineage: 67dd5c2b-0b44-43dd-a016-0bff858ec4b9
2026-05-18 02:06:32 -07:00
Fusion (runfusion.ai)
c6687bec09 feat(FN-4943): complete Step 2 — mirror stop flush behavior in useQuickChat
Fusion-Task-Id: FN-4943
Fusion-Task-Lineage: 67dd5c2b-0b44-43dd-a016-0bff858ec4b9
2026-05-18 02:06:32 -07:00
Fusion (runfusion.ai)
b3e9b8ca36 feat(FN-4943): complete Step 1 — auto-flush queued stop in useChat
Fusion-Task-Id: FN-4943
Fusion-Task-Lineage: 67dd5c2b-0b44-43dd-a016-0bff858ec4b9
2026-05-18 02:06:30 -07:00
Fusion (runfusion.ai)
5d6007ccb9 test(FN-5030): complete Step 7 - include modal test in quality gate
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
e70903ae75 test(FN-5030): complete Step 6 - cover auto-archived activity events
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
459a1444df feat(FN-5030): complete Step 5 - use native DOM event types in import modal
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
a7ee74d340 feat(FN-5030): complete Step 3 - add auto-archived activity labels/icons
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
566936663b feat(FN-5030): complete Step 2 - replace duplicate ActivityFeedEntry union
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:58 -07:00
Fusion (runfusion.ai)
9f22bf3ca3 test(FN-4936): complete Step 4 — add resize handle behavior coverage
Fusion-Task-Id: FN-4936
Fusion-Task-Lineage: 6c860bad-2120-4a81-a399-02c1d45aa63e
2026-05-18 01:16:17 -07:00
Fusion (runfusion.ai)
b61270e480 feat(FN-4936): complete Step 3 — style resizable workspace divider
Fusion-Task-Id: FN-4936
Fusion-Task-Lineage: 6c860bad-2120-4a81-a399-02c1d45aa63e
2026-05-18 01:16:17 -07:00
Fusion (runfusion.ai)
2f8a634464 feat(FN-4936): complete Step 1 — add resizable pane state and handlers
Fusion-Task-Id: FN-4936
Fusion-Task-Lineage: 6c860bad-2120-4a81-a399-02c1d45aa63e
2026-05-18 01:16:17 -07:00
Fusion (runfusion.ai)
cad2434710 fix(FN-5017): restore dashboard build type safety in PR metadata generator
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
02065e43d5 test(FN-5017): complete Step 4 — cover create PR quick action behavior
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
ebb3ee2a2d feat(FN-5017): complete Step 2 — add in-review create PR quick action
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
b624b14191 feat(FN-5017): complete Step 1 — plumb prAuthAvailable to TaskCard
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
48bd4d0b3e test(FN-5012): tighten PrChecksList mobile selector regression
Fusion-Task-Id: FN-5012
Fusion-Task-Lineage: e83baffb-76ff-4317-8ff9-e576d5818a9c
2026-05-18 00:20:39 -07:00
Fusion (runfusion.ai)
770b7c8584 test(FN-5012): guard PR-flow CSS against mobile button overrides
Fusion-Task-Id: FN-5012
Fusion-Task-Lineage: e83baffb-76ff-4317-8ff9-e576d5818a9c
2026-05-18 00:20:39 -07:00
Fusion (runfusion.ai)
403a49138d fix(FN-5012): drop mobile .btn override from PrChecksList
Fusion-Task-Id: FN-5012
Fusion-Task-Lineage: e83baffb-76ff-4317-8ff9-e576d5818a9c
2026-05-18 00:20:39 -07:00
Fusion (runfusion.ai)
09a18f81be feat(FN-4991): add PR metadata generator helper
Added a PR metadata generator helper to the dashboard package (FN-4991), including test coverage for the new module.

Fusion-Task-Id: FN-4991

Fusion-Task-Lineage: 11bdb797-558e-4ae6-a265-4bcd91da2be6
2026-05-18 00:19:05 -07:00
Fusion (runfusion.ai)
e3c90d9f88 test(FN-5020): complete Step 2 — cover create-pr modal wiring
Fusion-Task-Id: FN-5020
Fusion-Task-Lineage: 9007731b-0171-4154-95e0-4fc4b67f0dbd
2026-05-18 00:02:23 -07:00
Fusion (runfusion.ai)
6d5cd9450b feat(FN-5020): complete Step 1 — wire create-PR modal trigger
Fusion-Task-Id: FN-5020
Fusion-Task-Lineage: 9007731b-0171-4154-95e0-4fc4b67f0dbd
2026-05-18 00:02:23 -07:00
gsxdsm
8b50b754cd chore(desktop): drop debug console.logs from launch-mode reset flow
The console.log breadcrumbs added while diagnosing the menu also
caused an uncaught "write EPIPE" when the parent terminal pipe was
already closed by the time the user clicked Change Launch Mode.
Now that the flow is verified working, remove the chatter and keep
only the actual error-path logging.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 23:32:10 -07:00
gsxdsm
aeee05ddc4 test: skip slow github copilot panel test and two flaky file-scope tests
- SettingsModal "renders github copilot device code panel" was the
  single slowest dashboard test (~4s wall) due to userEvent + a 5s
  waitFor. Skipping per request.
- merger-file-scope-invariant.test.ts "accepts declared scope as a
  single changeset file" / "as a changeset glob" flake under
  workspace-concurrent runs: the vi.mock of node:child_process
  occasionally doesn't take effect, so execAsync("git diff --cached
  --name-only") reaches the real git binary and reports unrelated
  staged files. Same logic remains covered by the real-git fixture
  tests in reliability-interactions/workflow-and-file-scope.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 23:25:26 -07:00