Commit Graph

269 Commits

Author SHA1 Message Date
gsxdsm
93d3a58cb8 FN-5763: add Discord link next to GitHub star button
Add a Discord CTA in the Settings header alongside the existing GitHub star action.

- Add a Discord header action/link in SettingsModal next to the GitHub star button
- Update SettingsModal styles to support the additional header action
- Extend SettingsModal tests to cover rendering and behavior of the new Discord link

Files changed:
 packages/dashboard/app/components/SettingsModal.css        |  2 ++
 packages/dashboard/app/components/SettingsModal.tsx        | 13 ++++++++++++-
 .../app/components/__tests__/SettingsModal.test.tsx        | 14 +++++++++++++-
 3 files changed, 27 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5763

Fusion-Task-Lineage: 758eddf8-246c-41be-9742-a9d5b4b0eb17
2026-05-31 08:32:01 -07:00
gsxdsm
d05d335da8 FN-5726: speed up copilot auth flow test in settings modal
Reduce runtime overhead in the GitHub Copilot authentication test by replacing slower user-event timing with deterministic timer control.

- import `act` from Testing Library to flush async state transitions explicitly
- switch the Copilot login/copy/open interactions in the target test from `userEvent.click` to `fireEvent.click`
- wrap the flow in `vi.useFakeTimers()`/`vi.useRealTimers()` and advance timers directly instead of waiting with a 5s timeout
- keep existing assertions for clipboard writes, toast feedback, GitHub link opening, and login code expiry behavior

Files changed:
 .../components/__tests__/SettingsModal.test.tsx    | 47 ++++++++++++++--------
 1 file changed, 31 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-5726
Fusion-Task-Lineage: e9ccf2d0-d5a2-4568-abf5-7d9f7e67d643
2026-05-30 13:26:48 -07:00
gsxdsm
cec191eac3 FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope
Fusion-Task-Id: FN-5638

Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
2026-05-28 21:23:48 -07:00
gsxdsm
f258a75162 FN-5634: fix ntfy JSON publish priority mapping
Fusion-Task-Id: FN-5634

Fusion-Task-Lineage: 20868ce3-fe31-4638-87f6-83577f46caab
2026-05-28 21:17:02 -07:00
gsxdsm
c1d558c765 feat(FN-5633): AI merge commit summary + task trailers, verify-and-fix, editable prompt
- Commit message: the merge agent writes a concise change-summary subject (not
  just the task title), and every landed squash carries board-association
  trailers — `Fusion-Task-Id: <taskId>` plus the canonical lineage trailer when
  the task has a lineageId — guaranteed via an idempotent amend
  (ensureTaskTrailersOnHead) even if the agent omits them.
- Verify-and-fix: the merge prompt instructs the agent to run the project's
  tests / type-check / lint after resolving the merge and fix any NEW failure
  the merge introduced (not pre-existing breakage) before committing.
- Editable prompt: the AI merge agent's base persona is the editable "merger"
  role prompt (Settings -> Prompts); the clean-room / verification / trailer
  rules are always appended so a custom prompt can't drop them.
- Reviewer model: reviewer uses the project reviewer/validator model lane
  (resolveValidatorSettingsModel); the bespoke merger.reviewerModel setting is
  removed.

Changeset updated to cover all AI merger changes.

Tests: trailer present on landed commit (+ lineage when set), editable-prompt
incorporation, new-breakage verification wording.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-28 20:14:13 -07:00
gsxdsm
4b5a2e5c68 feat(FN-5588): add secrets section navigation to Settings modal
Adds a dedicated Secrets section to the SettingsModal navigation, removes the now-unused secrets footer callback wiring from App and AppModals, updates the related tests, and documents the secrets location in the dashboard guide.

Fusion-Task-Id: FN-5588

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Fusion-Task-Id: FN-5588
2026-05-26 17:19:34 -07:00
gsxdsm
f58fb8955a fix(engine-tests): eliminate temp-dir leak and raise subprocess guard for concurrent workspace runs
Two engine merger tests created mkdtempSync workspaces directly in tmpdir()
under the tracked `fusion-test-` prefix; under full-suite concurrent load
the post-run check-test-isolation flagged them as leaks. Route both
(`merger-no-op-fix-finalize.test.ts`, `merger-verification-fix-already-on-main.test.ts`)
through FUSION_TEST_WORKER_ROOT like sibling merger tests so they nest
inside the already-tracked worker root.

Bump engine vitest subprocess guard from 60s to 120s and testTimeout to
30s — plain git commands (branch -d, worktree remove) queued behind
system contention during `pnpm -r --workspace-concurrency=2` runs were
timing out. The guard only fires on hangs, so healthy tests pay nothing.

Also bundles in-progress dashboard mobile-breakpoint regex/CSS test
updates and docs index additions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 20:20:42 -07:00
Fusion (runfusion.ai)
252ae24434 feat(FN-5442): add merge mode warning banner to SettingsModal
Added a merge mode warning banner to SettingsModal with styling and visibility tests.

Fusion-Task-Id: FN-5442
2026-05-21 13:06:49 -07:00
Fusion (runfusion.ai)
5f9f777630 feat(FN-5374): raise room transcript defaults and align compaction settings
Raised room transcript defaults (`messagesBefore` and `daysBefore`) in the core settings schema and updated project-level setting defaults, with corresponding documentation refresh in the settings reference. Added full test coverage for room compaction defaults, pinned room default settings in Setti

Fusion-Task-Id: FN-5374
2026-05-21 07:05:48 -07:00
Fusion (runfusion.ai)
b12ff26f36 feat(FN-5424): add opencode-go provider to settings with model refresh on k
Exposes the `opencode-go` provider via `startup-model-sync`, wires it into the daemon and serve commands, and adds a refresh-status indicator in the SettingsModal that triggers model reloading whenever the provider key is saved. Includes a changeset, settings documentation, and corresponding tests a

Fusion-Task-Id: FN-5424
2026-05-20 22:34:32 -07:00
Fusion (runfusion.ai)
22d59b5f9a feat(FN-5279): add merge integration worktree feature with settings UI and
Implements the `mergeIntegrationWorktree` setting (FN-5279) that allows tasks to reuse their own worktree as the integration root instead of spawning a separate one. Steps 1–2 added the settings schema, types, and SettingsModal surface with documentation; Step 3 wired an integration-root resolver th

Fusion-Task-Id: FN-5279
2026-05-20 09:42:40 -07:00
Fusion (runfusion.ai)
da2d3632ab feat(FN-5098): complete Step 5 — add settings link to secrets view
Fusion-Task-Id: FN-5098
Fusion-Task-Lineage: 67ff982f-f0fa-453a-9b73-32ddc3ae5b3a
2026-05-19 01:59:21 -07:00
gsxdsm
ef6c18942d feat(FN-5048): merge fusion/fn-5048 2026-05-18 13:01:31 -07:00
Fusion (runfusion.ai)
d955c7d279 test(FN-5046): complete Step 5 — cover terminal-only settings modal behavior
Fusion-Task-Id: FN-5046
Fusion-Task-Lineage: 0748fd0e-70c3-44b9-a599-0df5255d4d60
2026-05-18 07:31:29 -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
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
Fusion (runfusion.ai)
439716165b test(FN-4761): complete Step 5 — add review transition regression coverage
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
gsxdsm
6d6a0242f0 feat(FN-4846): merge fusion/fn-4846 2026-05-16 23:20:31 -07:00
gsxdsm
7988a48576 feat(FN-4844): merge fusion/fn-4844 2026-05-16 23:20:13 -07:00
Fusion (runfusion.ai)
5204177c2b test(FN-4803): complete Step 3 — cover github dedup toggle behavior
Fusion-Task-Id: FN-4803
Fusion-Task-Lineage: cbfa10fd-33a6-469c-9cb4-3a647bc47b84
2026-05-16 14:56:56 -07:00
Fusion (runfusion.ai)
8a521a565d feat(FN-4743): complete Step 4 — add mail retention setting UI
Fusion-Task-Id: FN-4743
Fusion-Task-Lineage: 50d1d8e4-66d5-4299-843b-28072a904277
2026-05-16 10:43:48 -07:00
Fusion (runfusion.ai)
51c60fe1b5 feat(FN-4731): add tracking repo dropdown to settings modal
Adds a `TrackingRepoSelect` dropdown component to the SettingsModal (with co-located CSS and full test coverage), updates the settings reference docs, and includes the FN-4731 changeset for the `@runfusion/fusion` package.

Fusion-Task-Id: FN-4731
2026-05-16 09:20:33 -07:00
Fusion (runfusion.ai)
6fcfbd009b feat(FN-4733): complete Step 4 — add chat cleanup settings UI
Fusion-Task-Id: FN-4733
Fusion-Task-Lineage: 38495ced-c7a0-40aa-be22-7f02fe958806
2026-05-16 08:50:48 -07:00
Fusion (runfusion.ai)
e576a18c11 test(FN-4724): complete Step 2 — add worktrunk DOM-order regression
Fusion-Task-Id: FN-4724
Fusion-Task-Lineage: 3f633826-6c01-41ec-b55d-35c9ec5f27e3
2026-05-16 07:32:09 -07:00
Fusion (runfusion.ai)
15fdbd2cef feat(FN-4723): complete Step 3 — gate SettingsModal 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)
c345576340 feat(FN-4702): complete Step 4 — add settings install affordance
Fusion-Task-Id: FN-4702
Fusion-Task-Lineage: 378b46bc-2e71-43bf-9ff7-85e7aed8bf85
2026-05-15 23:39:43 -07:00
Fusion (runfusion.ai)
8f519a94fa test(FN-4627): complete Step 4 — cover worktrunk settings behavior
Fusion-Task-Id: FN-4627
Fusion-Task-Lineage: 39fbecd6-69b3-4ba5-8357-ca3af9060f6a
2026-05-15 22:29:56 -07:00
Fusion (runfusion.ai)
569eb2eb79 feat(FN-4674): fix SettingsModal research defaults rendering and coverage
Completed Step 5 of FN-4674 by fixing research defaults rendering in SettingsModal and adding corresponding test coverage.

Fusion-Task-Id: FN-4674
2026-05-15 15:41:49 -07:00
Fusion
03c49a6d49 test(FN-4673): complete Step 3 — update copilot device-code assertions
Fusion-Task-Id: FN-4673
Fusion-Task-Lineage: 165601b1-c20c-40d5-addb-3c42d710d66d
2026-05-15 15:14:14 -07:00
Fusion
6675a3ff2b feat(FN-4650): complete Step 3 — add sandbox experimental toggle
Fusion-Task-Id: FN-4650
Fusion-Task-Lineage: 3da8db80-236b-46f6-8122-644abda35ca3
2026-05-15 12:02:44 -07:00
Fusion
7f0a12ccef feat(FN-4616): complete Step 3 — add OpenRouter advanced settings UI
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
Fusion
6338ec7a29 feat(FN-4599): complete Step 4 — wire provisioning approvals into settings
Fusion-Task-Id: FN-4599
Fusion-Task-Lineage: 39bdbfd4-d90a-4232-a447-23ef107732e4
2026-05-15 07:10:36 -07:00
Fusion
b802d34970 fix(FN-4554): prefer deviceCode over duplicate instructions
Fusion-Task-Id: FN-4554
Fusion-Task-Lineage: 12d517c5-1954-4b27-8c63-c7f0dde93d3f
2026-05-14 22:16:44 -07:00
Fusion
603fde96b4 feat(FN-4554): complete Step 4 — surface copilot device code in UI
Fusion-Task-Id: FN-4554
Fusion-Task-Lineage: 12d517c5-1954-4b27-8c63-c7f0dde93d3f
2026-05-14 22:16:44 -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
4f2c458447 feat(FN-4191): complete Step 4 — add chat room settings controls
Fusion-Task-Id: FN-4191
Fusion-Task-Lineage: 00fddcfc-e136-41a5-84b1-b6f53b1692cb
2026-05-14 05:07:30 -07:00
Fusion
91931bd5db feat(FN-4394): complete Step 5 — add dashboard scope discipline controls
Fusion-Task-Id: FN-4394
Fusion-Task-Lineage: 1e7ad660-2cd2-40ba-b7b8-7ef552c6fa13
2026-05-14 03:23:43 -07:00
Fusion
48eb88ec4f test(FN-4413): complete Step 2 — add global general helper markup regression
Fusion-Task-Id: FN-4413
Fusion-Task-Lineage: 8f3a455e-d96e-49cf-9745-330dbd319784
2026-05-13 22:13:22 -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
09fc59944d feat(FN-4332): complete Step 4 — add notification failure controls
Fusion-Task-Id: FN-4332
Fusion-Task-Lineage: c920ac71-906b-458d-b496-1b60540b58f3
2026-05-13 15:15:41 -07:00
Fusion
d4bca995c4 test(FN-4353): complete Step 2 — cover SettingsModal upgrade default
Fusion-Task-Id: FN-4353
Fusion-Task-Lineage: 2384df03-5eb9-4327-bb8a-1ee0f97ac0fd
2026-05-13 11:07:31 -07:00
Fusion
f3f4b20c85 feat(FN-4080): complete Step 3 — split thinking persistence settings UI
Fusion-Task-Id: FN-4080
Fusion-Task-Lineage: 086863ba-7100-41ab-9cfc-197301fbcab0
2026-05-13 06:29:36 -07:00
Fusion
ea85430af2 feat(FN-4202): complete Step 5 — align message inbox wording
Fusion-Task-Id: FN-4202
Fusion-Task-Lineage: 80626869-c2ef-4a57-ba94-e3fe37cfc2b8
2026-05-13 06:29:35 -07:00
Fusion
aebd173e31 test(FN-4202): complete Step 3 — cover distinct ntfy test copy
Fusion-Task-Id: FN-4202
Fusion-Task-Lineage: 80626869-c2ef-4a57-ba94-e3fe37cfc2b8
2026-05-13 06:29:35 -07:00
Fusion
fb8a1983ab fix(FN-4190): align deferred tracking UX copy with title-or-description gating
Fusion-Task-Id: FN-4190
Fusion-Task-Lineage: 5d94a4ad-32fb-4d20-8d04-5d757619f104
2026-05-13 06:29:35 -07:00
Fusion
d829a0dc4f feat(FN-4190): complete Step 7 — tracking UX and summarization discoverability
Fusion-Task-Id: FN-4190
Fusion-Task-Lineage: 5d94a4ad-32fb-4d20-8d04-5d757619f104
2026-05-13 06:29:35 -07:00
Fusion
5d135efa16 test(FN-4174): complete Step 3 — cover locked web search research row
Fusion-Task-Id: FN-4174
Fusion-Task-Lineage: 8b50a52b-dc3a-448d-998b-09023fbdd9af
2026-05-13 06:29:34 -07:00