Commit Graph

237 Commits

Author SHA1 Message Date
Fusion (runfusion.ai)
f7a7038582 feat(FN-4690): add tracking coverage for register-task-workflow API routes
Adds test coverage for task operation API routes including workflow tracking endpoints, with minor doc updates and a changeset for the `@runfusion/fusion` package.

Fusion-Task-Id: FN-4690
2026-05-15 21:40:51 -07:00
Fusion (runfusion.ai)
ad73d76586 feat(FN-4640): complete Step 6 — dashboard sandbox audit surface
Fusion-Task-Id: FN-4640
Fusion-Task-Lineage: 4a91265f-1714-4854-b08d-7ddb06074253
2026-05-15 16:19:42 -07:00
Fusion
634ec28706 feat(FN-4620): complete Step 2 — wire planning sessions to board tools
Fusion-Task-Id: FN-4620
Fusion-Task-Lineage: d3d05e54-e137-46ee-bb5d-d71aa03e5a48
2026-05-15 11:47:03 -07:00
Fusion
8032f6c3cc fix(FN-4606): honor configured worktreesDir in runtime and cleanup paths
Ref: Runfusion/Fusion#321
Fusion-Task-Id: FN-4606
Fusion-Task-Lineage: 94b23f37-944e-4bcd-bfa1-67d0a8c0a267
2026-05-15 09:19:58 -07:00
Fusion
947df2753c test(FN-4592): complete Step 2 — cover unpause clearing userPaused
Fusion-Task-Id: FN-4592
Fusion-Task-Lineage: b013a15e-7cd9-4ba4-b380-22627cefb394
2026-05-15 06:32:37 -07:00
Fusion
e240993d5a feat(FN-4583): complete Step 4 — fetch newest chat room message window
Fusion-Task-Id: FN-4583
Fusion-Task-Lineage: 4d9b088d-a705-4376-b547-15b37e5370aa
2026-05-15 02:23:30 -07:00
Fusion
a3ced342cb feat(FN-4577): complete Step 1 — exclude github-copilot redirect rewrite
Fusion-Task-Id: FN-4577
Fusion-Task-Lineage: 11846d04-cbc0-414e-b72d-7feeaaac8a98
2026-05-15 02:03:25 -07:00
Fusion
67f2757c33 feat(FN-4554): complete Step 6 — docs and changeset
Fusion-Task-Id: FN-4554
Fusion-Task-Lineage: 12d517c5-1954-4b27-8c63-c7f0dde93d3f
2026-05-14 22:16:44 -07:00
Fusion
78bb31542e feat(FN-4554): complete Step 2 — server device-code handling
Fusion-Task-Id: FN-4554
Fusion-Task-Lineage: 12d517c5-1954-4b27-8c63-c7f0dde93d3f
2026-05-14 22:16:44 -07:00
gsxdsm
65fc47e141 Merge pull request #223 from corrm/feat/model-auto-detect
feat: auto-detect models from custom providers
2026-05-14 21:35:46 -07:00
Islam Nofl
96311245f7 fix: resolve PR check failures
- SSRF: Add IPv6 private range checks (loopback, ULA, link-local,
  IPv4-mapped) after DNS resolution, closing the IPv6 bypass
- Deduplication: Add Set-based dedup in CustomProvidersSection
  handleDetectModels to prevent duplicate model accumulation
- Bump type: change changeset from patch to minor for new feature
- Reasoning: Narrow Anthropic sonnet reasoning detection to only
  flag models containing both 'sonnet' and 'think'
- Docs: Add JSDoc to all undocumented functions in route file,
  raising docstring coverage above the 80% threshold
- Test: Update sonnet reasoning expectation (standard sonnet is not
  a thinking model)
2026-05-15 07:12:48 +03:00
Fusion
6df38aca8b feat(FN-4527): complete Step 1 — harden done-task diff stats fallback
Fusion-Task-Id: FN-4527
Fusion-Task-Lineage: de75c453-dc86-43d2-9cc5-50b20ee7014d
2026-05-14 18:07:05 -07:00
Fusion
abb7838d3c feat(FN-4518): complete Step 3 — use rebase range in done-task diff fallback
Fusion-Task-Id: FN-4518
Fusion-Task-Lineage: 48749dec-b2c9-484b-a13e-ffacc1fa9014
2026-05-14 17:04:17 -07:00
Fusion
e82f4bc786 test(FN-4530): fix remaining dashboard deep-lane one-off regressions
Fusion-Task-Id: FN-4530
Fusion-Task-Lineage: f98e68fc-de86-473b-b3a2-bcec95dd74c5
2026-05-14 15:05:38 -07:00
Fusion
c1f711b92c test(FN-4530): extend engine mocks for integrated route imports
Fusion-Task-Id: FN-4530
Fusion-Task-Lineage: f98e68fc-de86-473b-b3a2-bcec95dd74c5
2026-05-14 15:05:37 -07:00
Fusion
e41f9dd064 feat(FN-4528): complete Step 2 — fix fallback rename/copy parsing
Fusion-Task-Id: FN-4528
Fusion-Task-Lineage: 40f587b4-6bf3-4ebd-8870-359ac57b42ea
2026-05-14 14:26:25 -07:00
Fusion
c72dc6f3fc feat(FN-4521): complete Step 2 — fix done lineage aggregation
Fusion-Task-Id: FN-4521
Fusion-Task-Lineage: 675472a2-480d-4b9e-8861-98d2d82680db
2026-05-14 14:04:32 -07:00
Fusion
b7e8a9fc00 feat(FN-4521): complete Step 1 — fix patch line counting
Fusion-Task-Id: FN-4521
Fusion-Task-Lineage: 675472a2-480d-4b9e-8861-98d2d82680db
2026-05-14 14:04:32 -07:00
Fusion
8c02682a13 feat(FN-4488): complete Step 3 — API custom permission rules
Fusion-Task-Id: FN-4488
Fusion-Task-Lineage: 3fc1ac43-490f-43f2-a27e-4fdceb64d9c4
2026-05-14 13:16:09 -07:00
Fusion
baadd0254b fix(FN-4522): complete Step 3 — verification and type compatibility
Fusion-Task-Id: FN-4522
Fusion-Task-Lineage: fbaedf11-6bc6-4c77-91b0-6b1ef606d81f
2026-05-14 13:11:22 -07:00
Fusion
2ed6753555 feat(FN-4522): complete Step 2 — resolve done-task merge sha fallbacks
Fusion-Task-Id: FN-4522
Fusion-Task-Lineage: fbaedf11-6bc6-4c77-91b0-6b1ef606d81f
2026-05-14 13:11:22 -07:00
Fusion
bb64d1cd35 feat(FN-4522): complete Step 1 — fix rename/copy parsing
Fusion-Task-Id: FN-4522
Fusion-Task-Lineage: fbaedf11-6bc6-4c77-91b0-6b1ef606d81f
2026-05-14 13:11:22 -07:00
Fusion
a0f2bc530a feat(FN-4429): complete Step 1 — plumb moveSource and userPaused
Fusion-Task-Id: FN-4429
Fusion-Task-Lineage: b010437b-0e58-43f6-81b3-40dcebbf0873
2026-05-14 10:31:49 -07:00
Fusion
8e869c9a0c feat(FN-4371): complete Step 1 — schema and persistence
Fusion-Task-Id: FN-4371
Fusion-Task-Lineage: 4175ba4c-b7cb-4f3a-87c5-75e51f06c0ff
2026-05-14 09:59:15 -07:00
Islam Nofl
e9b8111d93 fix: re-throw ApiError in SSRF catch block so private-IP guards actually work
The bare catch {} swallowed the ApiError thrown by the private-IP
checks, defeating the entire DNS-based SSRF protection. Now catches
and re-throws ApiError so security rejections propagate correctly;
only DNS-lookup failures fall through.
2026-05-14 17:32:22 +03:00
Islam Nofl
55c35cf611 fix: Google provider save after model detection, SSRF protection, PR review fixes
- Add google-generative-ai to CustomProvider.apiType union type
- Update assertApiType to accept google-generative-ai in create/update
- Fix createCustomProvider mapping in legacy.ts for Google type
- Fix fetchCustomProviders mapping for Google type
- Add google-generative-ai to CustomProvidersSection API_TYPES
- Add SSRF protection to probeProviderModels (block private/loopback)
- Add body validation to probe-models route handler
- Update stale JSDoc in legacy.ts
2026-05-14 16:56:11 +03:00
Fusion
6b2607dae5 feat(FN-4400): complete Step 7 — add prompt-size api and dashboard sparkline
Fusion-Task-Id: FN-4400
Fusion-Task-Lineage: 0d4f9c48-5b8b-49eb-9cf3-d1d585ffe7fc
2026-05-14 04:32:43 -07:00
Fusion
81b1eae394 feat(FN-4222): add experiment-finalize CLI command and API route
Implements the `experiment-finalize` CLI command (FN-4222) and its companion dashboard API route, wiring the feature through the pi extension as a new callable tool. Includes the command implementation, extension tooling, API integration, and corresponding test coverage.

Fusion-Task-Id: FN-4222
2026-05-14 04:25:06 -07:00
Fusion
1d278ffa19 fix(FN-4436): complete Step 3 — harden aggregation and in-progress patches
Fusion-Task-Id: FN-4436
Fusion-Task-Lineage: df683800-0108-4415-a496-81481082284d
2026-05-13 23:30:32 -07:00
Fusion
cb3519500d feat(FN-4436): complete Step 2 — restore done fallback enumeration
Fusion-Task-Id: FN-4436
Fusion-Task-Lineage: df683800-0108-4415-a496-81481082284d
2026-05-13 23:30:32 -07:00
Fusion
444a076ff7 feat(FN-4388): complete Step 3 — add agent token usage API route
Fusion-Task-Id: FN-4388
Fusion-Task-Lineage: 7497a0a1-5edb-4778-b339-118d1fd668f7
2026-05-13 22:41:29 -07:00
Fusion
f3f030f194 feat(FN-4425): complete Step 3 — add diff and file-diffs branch fallbacks
Fusion-Task-Id: FN-4425
Fusion-Task-Lineage: 5e45b534-6a18-4f27-81d9-88cce3ec9344
2026-05-13 21:47:29 -07:00
Fusion
d81a848384 feat(FN-4425): complete Step 2 — add session-files branch fallback
Fusion-Task-Id: FN-4425
Fusion-Task-Lineage: 5e45b534-6a18-4f27-81d9-88cce3ec9344
2026-05-13 21:47:29 -07:00
Fusion
0de31233a6 feat(FN-4425): complete Step 1 — add root-branch diff-base helper
Fusion-Task-Id: FN-4425
Fusion-Task-Lineage: 5e45b534-6a18-4f27-81d9-88cce3ec9344
2026-05-13 21:47:28 -07:00
Fusion
6832875944 feat(FN-4378): complete Step 4 — plumb github issue action through API
Fusion-Task-Id: FN-4378
Fusion-Task-Lineage: d3867ba8-f852-41e3-9db0-584c0ffc23b1
2026-05-13 14:12:51 -07:00
Fusion
e9b4a66ba8 fix(FN-4308): tighten done-task aggregation typings
Fusion-Task-Id: FN-4308
Fusion-Task-Lineage: d0a46a8f-2245-4ddc-99b4-06d78e87db16
2026-05-13 09:28:08 -07:00
Fusion
bd1069c4e6 feat(FN-4308): complete Step 2 — aggregate done-task diffs by lineage commits
Fusion-Task-Id: FN-4308
Fusion-Task-Lineage: d0a46a8f-2245-4ddc-99b4-06d78e87db16
2026-05-13 09:28:08 -07:00
Islam Nofl
a487a20bbc feat: auto-detect models from custom providers
Add 'Detect Models' button to custom provider forms that calls the
provider's /models endpoint to discover available models automatically.

- Supports OpenAI-compatible, Anthropic-compatible, and Google
  Generative AI providers
- Auto-fills context window and max tokens from provider response
- Filters out embedding, reranking, and non-text models
- Removes empty default model rows after detection
- Added comprehensive backend and frontend test coverage
2026-05-13 18:05:12 +03:00
Fusion
e8f2d0b41c feat(FN-4199): complete Step 2 — extend agents stats capacity counts
Fusion-Task-Id: FN-4199
Fusion-Task-Lineage: fd530f3d-ef2e-4684-ab05-5aaab6856f15
2026-05-13 06:29:35 -07:00
Fusion
2a26b0d344 feat(FN-4178): add room message notification delivery
This merge implements room message notifications across the system, adding a core room event type, wiring the notification dispatcher to room activity, and delivering notifications via ntfy and webhook providers with updated settings UI and API routes.

Fusion-Task-Id: FN-4178
2026-05-12 17:04:33 -07:00
Fusion
1241c0f12f feat(FN-4160): warn before OAuth login when manual code mode is active
Adds user-facing warnings before OAuth login flows in both onboarding and settings, surfacing that manual code authentication is available as an alternative, with corresponding documentation updates and test coverage for the new warning UI.

Fusion-Task-Id: FN-4160
2026-05-12 17:04:32 -07:00
Fusion
9a114c14fb feat(FN-4148): derive GitHub tracking titles from task descriptions
Adds GitHub tracking title derivation so tasks can display meaningful titles when PR/issue tracking data is incomplete, falling back to the task description. The core implementation lives in `github-tracking.ts` with expanded test coverage across the tracking suite, and the feature is wired into pla

Fusion-Task-Id: FN-4148

Fusion-Task-Lineage: d57c6279-1b4f-4ade-9c3f-e20ac391ea45
2026-05-12 17:03:10 -07:00
Fusion
a289c00631 feat(FN-4130): classify zero-step tasks as retryable to todo on failure
Adds zero-step retry classification to the task workflow routes and pi extension, with test coverage in both packages and documentation updates.

Fusion-Task-Id: FN-4130
2026-05-12 10:27:36 -07:00
Fusion
2d46a882f0 feat(FN-4078): add ntfy access token support to notifications
Adds ntfy access token support to Fusion's notification system, wiring the token through the core settings schema, dashboard UI (SettingsModal), engine notifier, and notification pipeline, with corresponding tests across core, dashboard, and engine packages; also updates settings and storage documen

Fusion-Task-Id: FN-4078
2026-05-12 07:47:11 -07:00
Fusion
ca0cb2b52e feat(FN-4076): tighten mobile agents header and popup, add compact planning
Merges FN-4076: tightens the mobile Agents header and aligns the controls popup on smaller screens, while also introducing compact planning breakdown task creation with preserved payload coverage — tests for scoped and empty-generated planning payloads were added alongside fixes to the legacy API an

Fusion-Task-Id: FN-4076
2026-05-12 07:47:10 -07:00
Fusion
287ebaf102 feat(FN-4053): unify task ID allocation with store-owned distributed alloca
Unifies task ID allocation under a single store-owned distributed allocator, removing redundant ID-generation logic from dashboard route handlers and simplifying the overall flow; Step 1 merges the allocation authority into the store, Step 3 removes the now-unnecessary mixed-path routing, and tests

Fusion-Task-Id: FN-4053
2026-05-11 21:48:26 -07:00
Fusion
1f7958fc0f feat(FN-3935): align engineer role routing with explicit assignment and del
Centralized routing policy helpers in core and aligned both direct assignment and delegation to route engineer-role agents consistently, ensuring assigned tasks respect explicit engineer routing the same way delegated tasks do. Added comprehensive test coverage across core, CLI, dashboard, and engin

Fusion-Task-Id: FN-3935

Fusion-Task-Lineage: 069f4d54-f7a8-4bd3-a2c3-4de830de042f
2026-05-11 21:48:26 -07:00
Fusion
2535de9f0f feat(FN-4032): add tracking retry with actionable create issue error in tas
The merge adds a GitHub integration retry lifecycle to the task tracking system, including an actionable retry mechanism for failed issue creation, fixes to tracking and auth retry flow, and corresponding tests in the dashboard and engine packages. Documentation is updated in `docs/architecture.md`

Fusion-Task-Id: FN-4032
2026-05-11 16:33:16 -07:00
gsxdsm
6e44e1bb50 fix(chat): restore room message visibility and responders 2026-05-11 15:19:16 -07:00
Fusion
3f6c4c688a feat(FN-3959): add heartbeat timer registration repair sweep
Heartbeat timer repair sweep — adds a registration repair mechanism that detects and flags stale timers via agent updates, with tests covering the new sweep behavior. Documentation updated in agents.md to reflect the repair flow.

Fusion-Task-Id: FN-3959

Fusion-Task-Lineage: 40708b6b-01e1-4673-93e1-299678de2879
2026-05-11 15:18:40 -07:00