Commit Graph

792 Commits

Author SHA1 Message Date
gsxdsm
e33159e91b feat(FN-4919): merge fusion/fn-4919 2026-05-18 04:01:51 -07:00
gsxdsm
f40accd4bc perf(cli): cut test suite from 32s to 11s wall
Two heavy CLI tests were dominating wall time:
- chat.test.ts "--once exits with timeout note" waited the real 30s
  reply-timeout floor. Added a replyTimeoutMs option to
  runChatInteractive so the test can use 200ms.
- bundled-plugin-install.test.ts "loads the real bundled dependency
  graph plugin" runs esbuild and a live PluginLoader (~18s). Gated
  behind FUSION_RUN_SLOW_TESTS=1; the install/upgrade logic is covered
  by mocked unit tests in the same file.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 22:47:53 -07:00
Fusion (runfusion.ai)
ceacad78a1 chore(FN-4959): complete Step 4 — regenerate fusion skill tool references
Fusion-Task-Id: FN-4959
Fusion-Task-Lineage: 59a0c481-5a2d-4a2f-9230-3a5437b687a6
2026-05-17 21:46:58 -07:00
Fusion (runfusion.ai)
716a45a96b test(FN-4959): complete Step 3 — cover priority updates on fn_task_update
Fusion-Task-Id: FN-4959
Fusion-Task-Lineage: 59a0c481-5a2d-4a2f-9230-3a5437b687a6
2026-05-17 21:46:58 -07:00
Fusion (runfusion.ai)
e0e0bc5bef feat(FN-4959): complete Step 2 — extend fn_task_update priority support
Fusion-Task-Id: FN-4959
Fusion-Task-Lineage: 59a0c481-5a2d-4a2f-9230-3a5437b687a6
2026-05-17 21:46:58 -07:00
Fusion (runfusion.ai)
d6679618fe test(FN-4867): complete Step 3 — strengthen fn_secret_get scope coverage
Fusion-Task-Id: FN-4867
Fusion-Task-Lineage: c06c5e79-b038-4941-951b-08bfb164fa17
2026-05-17 18:46:42 -07:00
Fusion (runfusion.ai)
26c3d330d3 feat(FN-4764): complete Step 2-4 — surface structured gh errors in API UI CLI
Fusion-Task-Id: FN-4764
Fusion-Task-Lineage: 14809ad5-8463-4e16-a934-1414225f17ae
2026-05-17 14:48:31 -07:00
Fusion (runfusion.ai)
8d9b893ea1 fix(FN-4929): finalize daemon typecheck fix and changeset
Fusion-Task-Id: FN-4929
Fusion-Task-Lineage: 557ef659-c835-47de-b30c-a8b03d66d8bf
2026-05-17 14:18:49 -07:00
Fusion (runfusion.ai)
02eb9dc2f6 fix(FN-4929): defer peer-exchange global settings load
Fusion-Task-Id: FN-4929
Fusion-Task-Lineage: 557ef659-c835-47de-b30c-a8b03d66d8bf
2026-05-17 14:18:48 -07:00
Fusion (runfusion.ai)
cbd3c961d1 fix(FN-4915): harden fn_secret_get secret audit payload guard
Fusion-Task-Id: FN-4915
Fusion-Task-Lineage: d5c49dae-6069-4998-b632-aca52cc312dc
2026-05-17 13:54:32 -07:00
Fusion (runfusion.ai)
b80b517a4f test(FN-4927): cover no-task fallback for task tools
Fusion-Task-Id: FN-4927
Fusion-Task-Lineage: 8ef39a69-8f1f-4ffe-9d6b-1b752756751d
2026-05-17 13:10:50 -07:00
Fusion (runfusion.ai)
887705c81d fix(FN-4927): guard project-root helper drift in extension
Fusion-Task-Id: FN-4927
Fusion-Task-Lineage: 8ef39a69-8f1f-4ffe-9d6b-1b752756751d
2026-05-17 13:10:50 -07:00
Fusion (runfusion.ai)
0dc4c9c6a0 test(FN-4904): cover worktree-root lookup in extension tools
Fusion-Task-Id: FN-4904
Fusion-Task-Lineage: 5da52c8c-0ed6-4e3a-920e-aa1b56d0b719
2026-05-17 10:45:41 -07:00
Fusion (runfusion.ai)
47eaf089bf feat(FN-4904): complete Step 3 — align engine and CLI root resolution
Fusion-Task-Id: FN-4904
Fusion-Task-Lineage: 5da52c8c-0ed6-4e3a-920e-aa1b56d0b719
2026-05-17 10:45:41 -07:00
Fusion (runfusion.ai)
03a10c7419 test(FN-4907): stabilize dashboard unpause merge-queue assertion
Fusion-Task-Id: FN-4907
Fusion-Task-Lineage: e84d5357-0719-4cc7-ab3f-f665ac83b218
2026-05-17 10:31:35 -07:00
Fusion (runfusion.ai)
a2bd876eb4 test(FN-4907): cover stale settings invalidation and sync refresh paths
Fusion-Task-Id: FN-4907
Fusion-Task-Lineage: e84d5357-0719-4cc7-ab3f-f665ac83b218
2026-05-17 10:31:35 -07:00
Fusion (runfusion.ai)
4416de159c fix(FN-4907): invalidate stale settings caches on sync and provider writes
Fusion-Task-Id: FN-4907
Fusion-Task-Lineage: e84d5357-0719-4cc7-ab3f-f665ac83b218
2026-05-17 10:31:34 -07:00
gsxdsm
1b82e29218 Update dependency graph manifest 2026-05-17 10:04:37 -07:00
Fusion (runfusion.ai)
2a9ef2ba36 fix(FN-4905): unblock workspace verification type errors
Fusion-Task-Id: FN-4905
Fusion-Task-Lineage: 677b6f08-90d7-4785-a0b8-195acc42f79e
2026-05-17 09:51:49 -07:00
Fusion (runfusion.ai)
c502820f68 fix(FN-4893): cast fn_secret_get context fields via local alias
Fusion-Task-Id: FN-4893
Fusion-Task-Lineage: 14912482-9b55-47ae-831e-03e149714d72
2026-05-17 09:20:08 -07:00
Fusion (runfusion.ai)
0360dd193d fix(FN-4893): type resolvedScope scopes as SecretScope
Fusion-Task-Id: FN-4893
Fusion-Task-Lineage: 14912482-9b55-47ae-831e-03e149714d72
2026-05-17 09:20:08 -07:00
Fusion (runfusion.ai)
96a19309ae fix(FN-4884): finalize docs and keep workspace gates green
Fusion-Task-Id: FN-4884
Fusion-Task-Lineage: b906ade4-a9f1-4f2e-b684-4ebf49c3e7e6
2026-05-17 07:26:21 -07:00
gsxdsm
83ed893382 feat(FN-4879): merge fusion/fn-4879 2026-05-17 06:23:00 -07:00
Fusion (runfusion.ai)
7b48387a74 feat(FN-4758): document CLI PR create entry points
- Add a dedicated `fn pr create <task-id>` help section in the CLI usage output
- Recast `fn task pr-create` in help text as an alias of the new PR command
- Add a changeset describing the dashboard Create-PR entry points and CLI command rollout

Fusion-Task-Id: FN-4758
2026-05-17 04:38:21 -07:00
Fusion (runfusion.ai)
2a8e3e5f0c fix(FN-4812): stabilize hoisted update-cache test fixture
Fusion-Task-Id: FN-4812
Fusion-Task-Lineage: 9877a784-5320-410c-82fa-3f6a6d9b5358
2026-05-16 19:16:48 -07:00
Fusion (runfusion.ai)
825e5479f5 test(FN-4786): stabilize cli tmp-dir tests for workspace runs
Fusion-Task-Id: FN-4786
Fusion-Task-Lineage: eb683ec8-8b9d-4e3d-852c-7076224afa6b
2026-05-16 18:40:04 -07:00
Fusion
3f8a5e6839 fix(FN-4806): silently recover when worktree/branch reclaimed mid-retry
The executor's no-fn_task_done retry loop has two reclaim signals
(retryAbortedDueToReclaim=true): (1) pre-retry liveness recheck where the
task DB shows worktree/branch was cleared, and (2) session-start failure
because the worktree path no longer exists. Both are engine self-heal
situations triggered by FN-4546 stale-active-branch reclaim, FN-4742
self-healing removals, or related housekeeping paths — the agent never
got a fair retry attempt.

Previously these surfaced as task status=failed with error
'Worktree/branch reclaimed during no-fn_task_done retry — requeueing',
fired onError, and burned the taskDoneRetryCount budget. Three legitimate
problems followed: tasks accumulated spurious failures in the UI, the
exhausted-budget branch escalated reclaimed tasks to in-review instead of
retrying, and the noise masked the underlying worktree-removal regression
(FN-4811).

Now the reclaim branch silently:
- clears stale worktree/branch metadata so the next pickup creates a fresh worktree
- requeues to todo with preserveProgress
- logs an informational 'engine self-heal, no failure' line
- does NOT set status=failed, does NOT bump taskDoneRetryCount, does NOT call onError

The genuine 'agent finished without calling fn_task_done after N retries'
exhaustion path (retryAbortedDueToReclaim=false) is unchanged.

Tests updated in
packages/engine/src/__tests__/reliability-interactions/executor-no-task-done-vs-worktree-reclaim.test.ts
to assert the new silent-recovery contract on all three reclaim paths.

Fusion-Task-Id: FN-4806
2026-05-16 15:16:05 -07:00
Fusion (runfusion.ai)
5bb15b1713 test(FN-4803): stabilize cli bundled plugin integration timeout
Fusion-Task-Id: FN-4803
Fusion-Task-Lineage: cbfa10fd-33a6-469c-9cb4-3a647bc47b84
2026-05-16 14:56:56 -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)
63502600db fix(FN-4802): align hybridExecutor type with createServer signature
Fusion-Task-Id: FN-4802
Fusion-Task-Lineage: a1436633-8000-4b3a-8d22-dcc28be69bcd
2026-05-16 13:15:00 -07:00
Fusion (runfusion.ai)
16ede9ca27 fix(FN-4774): document fn_task_search in engine skill tools
Fusion-Task-Id: FN-4774
Fusion-Task-Lineage: f3b81550-fb23-441e-aee7-44ffec63d03d
2026-05-16 11:55:40 -07:00
Fusion (runfusion.ai)
241955fa36 test(FN-4772): cover hybrid gate behavior across CLI entrypoints
Fusion-Task-Id: FN-4772
Fusion-Task-Lineage: d296e96a-fe44-4896-928a-fa44da62b41a
2026-05-16 11:32:55 -07:00
Fusion (runfusion.ai)
55575dbf8c test(FN-4772): add hybrid wiring integration and lifecycle coverage
Fusion-Task-Id: FN-4772
Fusion-Task-Lineage: d296e96a-fe44-4896-928a-fa44da62b41a
2026-05-16 11:32:55 -07:00
Fusion (runfusion.ai)
19d1b65e3f feat(FN-4772): complete Step 3 — wire hybrid executor startup
Fusion-Task-Id: FN-4772
Fusion-Task-Lineage: d296e96a-fe44-4896-928a-fa44da62b41a
2026-05-16 11:32:55 -07:00
Fusion (runfusion.ai)
1b93e1a8b1 feat(FN-4723): complete Step 4 — gate CLI worktrunk enable
Fusion-Task-Id: FN-4723
Fusion-Task-Lineage: b79b42a0-c65d-4e02-938f-d1ffabc272ee
2026-05-16 07:16:05 -07:00
Fusion (runfusion.ai)
e189599365 feat(FN-4629): complete Step 3 — add worktrunk help examples
Fusion-Task-Id: FN-4629
Fusion-Task-Lineage: b8775bc8-4c04-4259-8cad-f5a3ba0c42e4
2026-05-15 23:02:32 -07:00
Fusion (runfusion.ai)
b65717f1bf feat(FN-4629): complete Step 2 — show output for worktrunk settings
Fusion-Task-Id: FN-4629
Fusion-Task-Lineage: b8775bc8-4c04-4259-8cad-f5a3ba0c42e4
2026-05-15 23:02:32 -07:00
Fusion (runfusion.ai)
7995be5380 test(FN-4629): complete Step 1 — parser and setter coverage
Fusion-Task-Id: FN-4629
Fusion-Task-Lineage: b8775bc8-4c04-4259-8cad-f5a3ba0c42e4
2026-05-15 23:02:32 -07:00
Fusion (runfusion.ai)
5a098da4cd feat(FN-4649): complete Step 7 — run verification and fix test regressions
Fusion-Task-Id: FN-4649
Fusion-Task-Lineage: 98ab6ec3-5253-4db6-93f0-de4ab7792002
2026-05-15 21:08:05 -07:00
Fusion (runfusion.ai)
1b2302e273 feat(FN-4649): complete Step 3 — register hook from CLI and pi-extension entry points
Fusion-Task-Id: FN-4649
Fusion-Task-Lineage: 98ab6ec3-5253-4db6-93f0-de4ab7792002
2026-05-15 21:08:04 -07:00
Fusion
caf32fc55b feat(FN-4671): complete Step 5-7 — add startup chain tests and changeset
Fusion-Task-Id: FN-4671
Fusion-Task-Lineage: d6a084c7-eafd-4775-8284-8dd6d9eeb842
2026-05-15 15:05:08 -07:00
Fusion
c66de36fbd feat(FN-4671): complete Step 3-4 — signal readiness and render startup duration
Fusion-Task-Id: FN-4671
Fusion-Task-Lineage: d6a084c7-eafd-4775-8284-8dd6d9eeb842
2026-05-15 15:05:08 -07:00
Fusion
50e6145775 feat(FN-4671): complete Step 2 — yield and refine startup status chain
Fusion-Task-Id: FN-4671
Fusion-Task-Lineage: d6a084c7-eafd-4775-8284-8dd6d9eeb842
2026-05-15 15:05:07 -07:00
Fusion
c87bca83c1 feat(FN-4671): complete Step 1 — add ready and startup duration state
Fusion-Task-Id: FN-4671
Fusion-Task-Lineage: d6a084c7-eafd-4775-8284-8dd6d9eeb842
2026-05-15 15:05:07 -07:00
Fusion
d15015d4f8 test(FN-4654): complete Step 2 — add fn_mission_show acceptance/verification coverage
Fusion-Task-Id: FN-4654
Fusion-Task-Lineage: bc852c61-d2f3-440f-bb2b-520bf1d8dea1
2026-05-15 11:36:35 -07:00
Fusion
33bf8ebd18 feat(FN-4654): complete Step 1 — extend fn_mission_show formatter
Fusion-Task-Id: FN-4654
Fusion-Task-Lineage: bc852c61-d2f3-440f-bb2b-520bf1d8dea1
2026-05-15 11:36:35 -07:00
Fusion
88d9700b8c feat(FN-4621): complete Step 6 — add dotted worktrunk CLI settings
Fusion-Task-Id: FN-4621
Fusion-Task-Lineage: fc1b0b13-9052-4378-86e3-3634d6c9db4e
2026-05-15 11:07:43 -07:00
Fusion
eb4f6189c7 feat(FN-4645): complete Step 2 — align PR-checks workflow contract assertions
Fusion-Task-Id: FN-4645
Fusion-Task-Lineage: fa2d2d15-dded-470d-8101-4220ea4e919d
2026-05-15 10:57:14 -07:00
Fusion
e6a675a5ab feat(FN-4616): complete Step 2 — enhance OpenRouter startup sync behavior
Ref: Runfusion/Fusion#325
Fusion-Task-Id: FN-4616
Fusion-Task-Lineage: ea5ea571-cc40-4ec0-86b4-2f003ac2834c
2026-05-15 10:18:47 -07:00
Fusion
eacb823a37 feat(FN-4606): complete Step 6 — CLI and dashboard settings surface
Ref: Runfusion/Fusion#321
Fusion-Task-Id: FN-4606
Fusion-Task-Lineage: 94b23f37-944e-4bcd-bfa1-67d0a8c0a267
2026-05-15 09:19:59 -07:00