gsxdsm
d4d13e2fa5
FN-9111: Add global Quick Add Enter-save preference
...
Add an operator-level setting that controls whether plain Enter saves a Quick Add task while preserving Cmd/Ctrl+Enter submission.
- add the global quickAddSubmitOnEnter setting, defaults, settings UI, and app context
- update Quick Add keyboard handling with multiline and duplicate/in-flight safeguards
- add focused settings and keyboard regression coverage, localization, documentation, and a release changeset
Files changed:
.changeset/fn-9111-quick-add-enter.md | 7 ++
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 10 ++
packages/core/src/config/settings-schema.ts | 5 +
packages/core/src/types/settings/settings-scope.ts | 5 +
packages/dashboard/app/App.tsx | 4 +
.../dashboard/app/components/QuickEntryBox.tsx | 24 ++++-
.../QuickEntryBox.submit-on-enter.test.tsx | 118 +++++++++++++++++++++
.../__tests__/SettingsModal.general.test.tsx | 18 ++++
.../app/components/settings/save-split.ts | 1 +
.../sections/GlobalGeneralSection.search.ts | 9 ++
.../settings/sections/GlobalGeneralSection.tsx | 10 ++
.../settings-default-descriptions.test.tsx | 1 +
.../__tests__/useQuickAddSubmitOnEnter.test.tsx | 24 +++++
packages/dashboard/app/hooks/useAppSettings.ts | 4 +
.../app/hooks/useQuickAddSubmitOnEnter.ts | 21 ++++
packages/i18n/locales/en/app.json | 2 +
packages/i18n/locales/es/app.json | 4 +-
packages/i18n/locales/fr/app.json | 4 +-
packages/i18n/locales/ko/app.json | 4 +-
packages/i18n/locales/pt-BR/app.json | 4 +-
packages/i18n/locales/zh-CN/app.json | 4 +-
packages/i18n/locales/zh-TW/app.json | 4 +-
packages/i18n/src/resources.d.ts | 4 +-
25 files changed, 284 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-9111
Fusion-Task-Lineage: 246153a8-5127-48df-838c-d9b60920cd91
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 21:24:25 -07:00
gsxdsm
284feeaf11
FN-9092: prevent model menus from dismissing host dialogs
...
Keep portaled model-menu interaction from propagating to host dialog dismissal.
- Mark model-menu portal surfaces and stop their pointer events from reaching dialog backdrops.
- Apply the dismissal guard across agent, chat, floating-window, and model-selection dialogs.
- Close enabled overlays on valid touch taps while suppressing duplicate compatibility mouse closes.
- Add desktop and mobile regression coverage for portal-host dismissal behavior.
Files changed:
.../fn-9092-model-filter-dialog-dismissal.md | 7 +
.../ui-bugs/portaled-model-menu-host-dismissal.md | 19 +++
packages/dashboard/app/components/AgentsView.tsx | 6 +
.../app/components/ChatThinkingLevelControl.tsx | 17 ++-
packages/dashboard/app/components/ChatView.tsx | 38 +++--
.../app/components/CustomModelDropdown.tsx | 13 +-
.../dashboard/app/components/FloatingWindow.tsx | 17 +--
.../app/components/ModelSelectionModal.tsx | 17 +--
.../dashboard/app/components/NewAgentDialog.tsx | 12 +-
.../dashboard/app/components/QuickEntryBox.tsx | 5 +-
.../ChatThinkingLevelControl.portal.test.tsx | 9 ++
.../__tests__/CustomModelDropdown.test.tsx | 24 ++-
.../__tests__/ModelSelectionModal.test.tsx | 3 +-
.../NewAgentDialog.portal-dismissal.test.tsx | 77 ++++++++++
.../components/__tests__/NewAgentDialog.test.tsx | 11 ++
.../model-menu-filter-host-dismissal.test.tsx | 163 +++++++++++++++++++++
.../app/hooks/__tests__/useOverlayDismiss.test.tsx | 7 +-
packages/dashboard/app/hooks/useOverlayDismiss.ts | 26 +++-
.../app/utils/__tests__/portalSurfaces.test.ts | 31 ++++
packages/dashboard/app/utils/portalSurfaces.ts | 31 ++++
20 files changed, 469 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-9092
Fusion-Task-Lineage: a0d0b84d-2efe-4a67-9485-77c08f7cc57e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 06:42:39 -07:00
gsxdsm
e144e8c195
FN-9009: align Quick Add merger model row
...
Make the Quick Add merger model row consistent with the other role selectors.
- Label the top-level merger selector as Merger
- Align the merger icon spacing with other model menu rows
- Cover role labels, spacing, and override navigation
Files changed:
.changeset/fn-9009-quick-add-merger-label.md | 7 ++++
.../dashboard/app/components/QuickEntryBox.tsx | 25 ++++++++++---
.../components/__tests__/QuickEntryBox.test.tsx | 41 +++++++++++++++++++---
3 files changed, 65 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-9009
Fusion-Task-Lineage: bfc915d6-7a8d-4f08-86e8-c270b5783458
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:19:49 -07:00
gsxdsm
6e04b31579
FN-9010: fix Quick Add model filtering
...
Keep the Quick Add model filter focused and functional within its portaled menu.
- Exempt form controls and the nested model dropdown from the composer focus guard.
- Add desktop and mobile regression coverage for filtering model choices.
- Add a patch changeset for the Quick Add filter fix.
Files changed:
.changeset/fix-quick-add-model-filter.md | 7 ++
.../dashboard/app/components/QuickEntryBox.tsx | 14 ++-
.../__tests__/QuickEntryBox-model-filter.test.tsx | 113 +++++++++++++++++++++
3 files changed, 133 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9010
Fusion-Task-Lineage: da86e2d8-8722-4598-b25e-786b5850971c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:02:18 -07:00
gsxdsm
0e8f6769ba
FN-8666: add credential instance pickers
...
Add credential-instance selection across dashboard model configuration surfaces.
- Expose provider credential instances in custom model dropdowns and task, workflow, and settings forms.
- Persist per-role credential-instance overrides through dashboard APIs and effective model resolution.
- Document credential-instance precedence and cover dropdown/settings behavior, including task state synchronization.
Files changed:
.changeset/fn-8666-credential-instance-picker.md | 7 ++
docs/settings-reference.md | 2 +
docs/workflow-steps.md | 2 +-
packages/dashboard/app/api.ts | 1 +
packages/dashboard/app/api/models-usage.ts | 27 ++++-
packages/dashboard/app/api/tasks.ts | 8 ++
.../app/components/CustomModelDropdown.css | 12 ++-
.../app/components/CustomModelDropdown.tsx | 71 ++++++++++++-
.../dashboard/app/components/InlineCreateCard.tsx | 23 +++-
packages/dashboard/app/components/ListView.tsx | 29 +++++-
.../app/components/ModelSelectionModal.tsx | 25 ++++-
.../dashboard/app/components/ModelSelectorTab.tsx | 29 +++++-
packages/dashboard/app/components/NewTaskModal.tsx | 23 +++-
.../dashboard/app/components/QuickEntryBox.tsx | 28 +++++
.../dashboard/app/components/SettingsModal.tsx | 2 +
.../dashboard/app/components/TaskDetailModal.tsx | 32 +++++-
packages/dashboard/app/components/TaskForm.tsx | 18 ++++
.../app/components/WorkflowNodeEditor.tsx | 13 ++-
.../app/components/WorkflowSettingsPanel.tsx | 38 ++++++-
...ustomModelDropdown.credential-instance.test.tsx | 111 ++++++++++++++++++++
.../__tests__/WorkflowSettingsPanel.test.tsx | 9 +-
.../app/components/effective-model-resolution.ts | 8 +-
.../settings/sections/GlobalModelsSection.tsx | 31 +++++-
.../settings/sections/ProjectModelsSection.tsx | 116 ++++++++++++++++-----
.../ProjectModelsSection.chatDefault.test.tsx | 33 +++++-
packages/dashboard/app/hooks/useFavorites.ts | 6 +-
packages/dashboard/app/hooks/useModelsCache.ts | 5 +-
.../src/routes/register-task-workflow-routes.ts | 17 ++-
28 files changed, 655 insertions(+), 71 deletions(-)
Fusion-Task-Id: FN-8666
Fusion-Task-Lineage: 6c3711b3-68b8-47a0-ac36-4b64846adf39
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-01 04:03:26 -07:00
gsxdsm
df56790c9b
FN-8676: fix Quick Add upward menu anchoring
...
Keep Quick Add portal menus attached to their triggers when they open upward.
- Position upward menus with bottom anchors rather than height-capped top offsets.
- Apply shared positioning to Quick Add pickers and the custom model dropdown.
- Add desktop and mobile regression coverage and a patch changeset.
Files changed:
.changeset/quick-add-upward-menu-anchor.md | 7 ++++
.../app/components/CustomModelDropdown.tsx | 18 ++++++--
.../dashboard/app/components/QuickEntryBox.tsx | 48 +++++++++++++++-------
.../__tests__/CustomModelDropdown.test.tsx | 40 +++++++++++++++---
.../components/__tests__/QuickEntryBox.test.tsx | 46 ++++++++++++++++++---
.../app/utils/__tests__/fixedMenuPosition.test.ts | 12 +++---
packages/dashboard/app/utils/fixedMenuPosition.ts | 22 ++++++----
7 files changed, 151 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-8676
Fusion-Task-Lineage: e48b4b2c-9675-42c6-8712-83cb4a0ca3d8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-01 01:00:57 -07:00
gsxdsm
475bb2d641
FN-8637: restrict Quick Add Start to manual-intake workflows
...
Restrict Quick Add Start eligibility to verified manual intake lanes.
- Require the server-derived manualIntake flag instead of hold alone.
- Preserve Coding Ideas routing while hiding Start for Coding's merged planning lane.
- Cover desktop and mobile eligibility behavior and document the updated rule.
- Add a patch changeset for the corrected workflow gating.
Files changed:
.changeset/fn-8637-quick-add-start-manual-intake.md | 7 ++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/QuickEntryBox.tsx | 21 ++++++------
packages/dashboard/app/components/__tests__/Column.test.tsx | 20 ++++++++---
packages/dashboard/app/components/__tests__/ListView.test.tsx | 40 ++++++++++++++++++----
packages/dashboard/app/components/__tests__/QuickEntryBox.test.tsx | 21 +++++++++---
packages/dashboard/app/utils/__tests__/quickAddStart.test.ts | 38 ++++++++++++++++++--
packages/dashboard/app/utils/quickAddStart.ts | 9 ++++-
8 files changed, 128 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-8637
Fusion-Task-Lineage: 9652d7d8-f954-49e8-9a76-a2421654baae
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-31 17:27:43 -07:00
gsxdsm
dc50425e98
docs: correct 104 future-dated FNXC timestamps across 61 files ( #2680 )
...
## What
The FNXC convention exists so a reader can place a note against the
change that motivated it. A stamp dated *after* the edit landed defeats
exactly that.
This is program-wide drift, not one author's slip — I contributed to it
in my own commits this week, which is how I noticed it.
## Measured, on this tree
**104 stamps across 61 files** dated later than the day they were
written, from one day ahead to **2026-10-19 (81 days)**:
| count | date | count | date | count | date |
|---|---|---|---|---|---|
| 50 | 2026-07-31 | 6 | 2026-08-05 | 3 | 2026-08-13 |
| 17 | 2026-08-01 | 1 | 2026-08-07 | 1 | 2026-08-19 |
| 7 | 2026-08-02 | 1 | 2026-08-12 | 2 | 2026-08-26 |
| 11 | 2026-08-03 | | | 3 | 2026-10-19 |
An earlier number I circulated was ~70. That came from a narrower
pathspec and was wrong; **104** is the measurement.
## How
Each stamp is rewritten to the date of the commit that introduced **that
line**, via per-line `git blame` — deliberately *not* stamped uniformly
with today's date. A uniform stamp swaps a wrong date for a different
wrong date and flattens the ordering that makes these comments
navigable; blame preserves it. Times of day are untouched, and a blame
date in the future is clamped rather than trusted.
## Why the verification is listed
A docs sweep across 61 files is precisely where a stray edit hides, so
the safety claims are mechanical rather than asserted:
- every changed line begins with a comment marker — **no code touched**;
- **no test asserts an FNXC date later than today**, so no `toContain`
assertion on embedded source text can be silently invalidated (several
such assertions do exist);
- CSS files, which carry several of those assertions, are outside the
pathspec.
## Verified
lint clean · merge gate green (487 + 158 + 10 + 71) · `census --strict`
exit 0 · tsc clean for core, engine, and dashboard
(`tsconfig.app.json`).
**No behavior change.** Comment text only.
## Not done here
A guard preventing recurrence. A check that rejects an FNXC stamp dated
after the commit would stop this returning, but it needs a decision
about where it runs (lint rule vs. gate) and it is a behavior change to
CI — it does not belong riding inside the sweep it would police.
2026-07-30 02:38:58 -07:00
gsxdsm
10ebd0e025
fix(dashboard): keep quick-entry portal menus attached when space is tight
...
Extract shared fixed-menu positioning so deps/agent/node/priority pickers
clamp max-height without detaching from the trigger when free space is
shorter than the preferred dropdown height.
2026-07-25 21:01:25 -07:00
gsxdsm
9cbed745f9
feat(dashboard): surface the planning-capacity wait and stop overclaiming Start
...
Start performs a bare column move, so "Started planning {id}" reported an
outcome the handler cannot observe: the engine still has to admit the card, and
a busy pool (per-project maxConcurrent or cross-project globalMaxConcurrent) can
defer that indefinitely. The wait was only visible in the engine log
("Plan throttled by running-agent cap|global semaphore"), so a throttled card
looked like a bug.
- Add a "Queued to plan" badge: the exact complement of "Ready" (same idle-Todo
conditions, but no steps yet, so it waits for a PLANNING slot rather than a WIP
slot). Three Todo states are now distinguishable: planning in flight, queued to
plan, and ready. Pause suppression matches Ready; the badge reuses the existing
status-badge primitives with a color-mix tint, no new tokens.
- Retitle the Start toast to "Queued {id} for planning" in both call sites
(TaskCard Start and QuickEntryBox quick-add Start).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 09:14:11 -07:00
gsxdsm
32adc0a153
FN-8573: add voice dictation controls to composers
...
Add shared voice dictation support across chat, planning, and task-creation composers.
- Add browser speech-recognition and composer insertion hooks.
- Provide a reusable mic button with accessible recording states.
- Integrate and test dictation across all supported composer surfaces.
- Document the feature and add a package changeset.
Files changed:
.changeset/fn-8573-voice-dictation-mic.md | 7 +
docs/dashboard-guide.md | 6 +
packages/dashboard/app/components/ChatView.tsx | 44 +++-
.../dashboard/app/components/ComposeChatPanel.tsx | 8 +-
packages/dashboard/app/components/MicButton.css | 5 +
packages/dashboard/app/components/MicButton.tsx | 20 ++
.../dashboard/app/components/PlanningModeModal.tsx | 82 ++++--
.../dashboard/app/components/QuickEntryBox.tsx | 4 +
.../app/components/StandardChatSurface.tsx | 108 +++++---
packages/dashboard/app/components/TaskChatTab.tsx | 4 +
packages/dashboard/app/components/TaskComments.tsx | 66 ++---
packages/dashboard/app/components/TaskForm.tsx | 18 +-
.../app/components/TaskPlannerChatTab.tsx | 7 +
.../app/components/__tests__/MicButton.test.tsx | 28 +++
.../components/__tests__/QuickEntryBox.test.tsx | 5 +
.../app/components/__tests__/TaskForm.test.tsx | 5 +
.../app/components/__tests__/insertAtCaret.test.ts | 25 ++
.../__tests__/voice-dictation-composers.test.tsx | 230 +++++++++++++++++
packages/dashboard/app/components/insertAtCaret.ts | 20 ++
.../hooks/__tests__/useComposerDictation.test.tsx | 58 +++++
.../app/hooks/__tests__/useVoiceDictation.test.tsx | 158 ++++++++++++
.../dashboard/app/hooks/useComposerDictation.ts | 112 +++++++++
.../dashboard/app/hooks/useVoiceDictation.ts | 277 +++++++++++++++++++++
23 files changed, 1204 insertions(+), 93 deletions(-)
Fusion-Task-Id: FN-8573
Fusion-Task-Lineage: 905ae982-3e63-494f-aba8-e3665f00cdda
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-25 05:15:02 -07:00
gsxdsm
8156308695
feat(quick-add): show a visible Start button for waiting-column workflows
...
Replace the hidden long-press/right-click Start menu on Quick Add's Save with a
visible Start button in the action row, rendered only for workflows whose first
visible lane is a hold column (or Coding (Ideas)). Eligibility, the workflow
snapshot, the create-time column override, and the hold-first follow-up move are
unchanged; ineligible workflows render no Start chip or shell.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-24 22:32:30 -07:00
gsxdsm
fd9e4b2a30
FN-8509: create Coding Ideas Start tasks in Todo
...
Coding Ideas Start now atomically creates tasks in the validated Todo column.
- Resolve Todo only from captured, visible Coding Ideas workflow metadata.
- Preserve explicit Start destinations through Board and List create hosts without a follow-up move.
- Add regression coverage, documentation, and a patch changeset.
Files changed:
.changeset/fn-8509-coding-ideas-start-todo.md | 7 +++++
docs/dashboard-guide.md | 4 +--
packages/dashboard/app/components/Column.tsx | 8 +++++-
packages/dashboard/app/components/ListView.tsx | 5 ++++
.../dashboard/app/components/QuickEntryBox.tsx | 17 +++++++-----
.../app/components/__tests__/Column.test.tsx | 16 ++++++++++-
.../app/components/__tests__/ListView.test.tsx | 31 +++++++++++++++++++++-
.../components/__tests__/QuickEntryBox.test.tsx | 31 ++++++++++------------
.../app/utils/__tests__/quickAddStart.test.ts | 25 ++++++++++++++++-
packages/dashboard/app/utils/quickAddStart.ts | 21 ++++++++++++++-
10 files changed, 134 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-8509
Fusion-Task-Lineage: 951599a0-f277-4499-aaea-90371ddeda72
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-22 19:08:47 -07:00
gsxdsm
1cd06746fe
FN-8502: add photo and file attachments to Chat and Quick Add
...
Enable supported photo and file attachment workflows across Quick Add and Chat.
- Expand Quick Add and Chat picker, paste, and drag/drop attachment intake.
- Preserve pending attachments until direct and room sends are accepted, with accessible previews and retry support.
- Align Chat MIME and size validation with task attachments, including video, Markdown, and TOML support.
- Add regression coverage for attachment previews, delivery behavior, and accepted MIME types.
Files changed:
.changeset/fn-8502-chat-quick-add-attachments.md | 7 ++
docs/dashboard-guide.md | 5 +-
... quick-entry-attachment-preview-modal.test.tsx} | 50 ++++++--
packages/dashboard/app/components/ChatView.tsx | 80 +++++++++++--
.../dashboard/app/components/InlineCreateCard.tsx | 6 +-
.../app/components/PendingAttachmentPreviews.css | 60 ++++++++++
...ePreviews.tsx => PendingAttachmentPreviews.tsx} | 68 ++++++-----
.../app/components/PendingImagePreviews.css | 35 ------
.../dashboard/app/components/QuickEntryBox.tsx | 127 +++++++++++++--------
packages/dashboard/app/components/TaskForm.tsx | 6 +-
.../__tests__/ChatView.core-interactions.test.tsx | 61 ++++++++--
.../__tests__/ChatView.mobile-render.test.tsx | 20 +++-
.../components/__tests__/ChatView.rooms.test.tsx | 27 ++++-
.../components/__tests__/QuickEntryBox.test.tsx | 59 ++++++++--
packages/dashboard/app/hooks/useChat.ts | 41 ++++++-
.../src/__tests__/chat-attachment-content.test.ts | 17 +++
packages/dashboard/src/chat-attachment-content.ts | 4 +-
.../dashboard/src/routes/chat-attachment-config.ts | 16 +++
.../src/routes/register-chat-room-routes.ts | 9 +-
.../dashboard/src/routes/register-chat-routes.ts | 11 +-
20 files changed, 534 insertions(+), 175 deletions(-)
Fusion-Task-Id: FN-8502
Fusion-Task-Lineage: 0205187c-7e5b-45f8-a71d-fcfd9fb01e65
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-22 18:46:46 -07:00
gsxdsm
da616e1cf9
FN-8498: add Quick Add Start menu
...
Add gesture-only Quick Add Start promotion for eligible hold-based workflows.
- Open a Start menu with right-click or touch/pen long-press while preserving ordinary Save and Enter behavior.
- Validate and snapshot workflow routing before creating, then move matching tasks through host callbacks.
- Cover workflow guards, promotion outcomes, and Board/List callback wiring.
Files changed: .changeset/fn-8498-quick-add-start-menu.md | 7 ++
docs/dashboard-guide.md | 4 +
packages/dashboard/app/components/Column.tsx | 1 +
packages/dashboard/app/components/ListView.tsx | 1 +
.../dashboard/app/components/QuickEntryBox.css | 30 +++++
.../dashboard/app/components/QuickEntryBox.tsx | 115 ++++++++++++++++-
.../app/components/__tests__/Column.test.tsx | 10 +-
.../app/components/__tests__/ListView.test.tsx | 12 ++
.../components/__tests__/QuickEntryBox.test.tsx | 137 +++++++++++++++++++++
.../app/utils/__tests__/quickAddStart.test.ts | 38 ++++++
packages/dashboard/app/utils/quickAddStart.ts | 51 ++++++++
11 files changed, 400 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8498
Fusion-Task-Lineage: 30d8e7d4-59f1-4c4f-9224-1a9d8c27141b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-22 16:31:24 -07:00
gsxdsm
c0cce18cfb
fix: QuickEntry agent outside-click + quarantine CLI full-suite cascade ( #2291 )
...
## Summary
Latest Full Suite after #2290 was green on shards 1–2 and nearly green
on 3–4:
- **Shard 3:** QuickEntry agent picker outside click left the portal
open (product) — capture-phase mousedown + open-token so late
`fetchAgents` cannot re-open a dismissed picker
- **Shard 4:** `@runfusion/fusion` package-lane cascade (87 failures
from `extension-dist-barrel` hookTimeout + lock-retry timeouts under
load) — quarantine the 14 observed files on sight (ledger + vitest
exclude), no timeout appeasement
Also hardens the agent-picker outside-click test.
## Test plan
- [x] Local agent picker portal tests green
- [ ] PR gate
- [ ] Post-merge Full Suite green
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Fixed the Quick Add agent picker so it reliably closes when clicking
outside.
- Prevented delayed agent-loading results from reopening the picker
after it has been dismissed.
- Improved the picker’s loading behavior by displaying it immediately
while agents are being retrieved.
- **Tests**
- Added coverage for dismissing the agent picker with an outside click.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-18 01:54:27 -07:00
gsxdsm
e72629c251
FN-8126: add per-task merger model controls
...
Enable Quick Add and task editing to select merger models and thinking levels.
- Persist merger model and thinking overrides through task APIs, storage, and PostgreSQL migrations.
- Add merger-lane selection controls to Quick Add and model settings interfaces.
- Apply task merger settings to merger and PR fallback sessions, with regression coverage.
- Document the merger lane and include a release changeset.
Files changed:
.changeset/fn-8126-quick-add-merger-lane.md | 7 ++
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 7 +-
.../core/src/__tests__/model-resolution.test.ts | 9 ++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/model-resolution.ts | 20 ++++
.../core/src/postgres/migrations/0000_initial.sql | 3 +
.../migrations/0017_task_merger_model_lane.sql | 4 +
packages/core/src/postgres/schema-applier.ts | 14 ++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/core/src/store.ts | 2 +-
.../core/src/task-store/archive-lifecycle-2.ts | 6 ++
packages/core/src/task-store/persistence.ts | 6 ++
packages/core/src/task-store/remaining-ops-2.ts | 4 +-
packages/core/src/task-store/remaining-ops-6.ts | 2 +-
packages/core/src/task-store/serialization.ts | 6 ++
packages/core/src/task-store/task-creation.ts | 6 ++
packages/core/src/task-store/task-row-mappers.ts | 4 +-
packages/core/src/task-store/task-update.ts | 6 ++
packages/core/src/types.ts | 18 ++++
packages/dashboard/app/api/tasks.ts | 13 +++
.../dashboard/app/components/InlineCreateCard.tsx | 33 ++++++-
.../app/components/ModelSelectionModal.tsx | 29 ++++++
.../dashboard/app/components/ModelSelectorTab.tsx | 101 +++++++++++++++++++--
.../dashboard/app/components/QuickEntryBox.tsx | 44 +++++++--
.../__tests__/ModelSelectionModal.test.tsx | 20 ++++
.../components/__tests__/ModelSelectorTab.test.tsx | 37 +++++++-
.../src/routes/register-task-workflow-routes.ts | 27 +++++-
.../src/__tests__/agent-session-helpers.test.ts | 8 ++
packages/engine/src/agent-session-helpers.ts | 16 +++-
packages/engine/src/merger-ai.ts | 14 +--
packages/engine/src/merger.ts | 35 ++++---
packages/engine/src/pr-response-run-ops.ts | 7 +-
34 files changed, 451 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-8126
Fusion-Task-Lineage: 3fc81801-6d77-4e11-9cf0-3af37313930e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 21:07:06 -07:00
gsxdsm
72378cb4f2
FN-8037: add resizable image preview windows
...
Make pending task images compact and inspectable across task creation surfaces.
- Extract shared pending-image thumbnail controls for Quick Add, Task Form, and inline creation.
- Open full images in a responsive, movable, resizable FloatingWindow with Escape focus restoration.
- Add styling, coverage, operator documentation, and a minor changeset.
Files changed:
.changeset/fn-8037-image-preview-modal.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../quick-entry-image-preview-modal.test.tsx | 60 ++++++++++
.../dashboard/app/components/FloatingWindow.css | 22 ++++
.../dashboard/app/components/InlineCreateCard.css | 14 ++-
.../dashboard/app/components/InlineCreateCard.tsx | 26 ++---
.../app/components/PendingImagePreviews.css | 35 ++++++
.../app/components/PendingImagePreviews.tsx | 121 +++++++++++++++++++++
.../dashboard/app/components/QuickEntryBox.tsx | 27 ++---
packages/dashboard/app/components/TaskForm.tsx | 26 ++---
10 files changed, 280 insertions(+), 62 deletions(-)
Fusion-Task-Id: FN-8037
Fusion-Task-Lineage: 3d92f695-67c9-4791-bfcc-ad25f6aa56f4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 04:58:03 -07:00
gsxdsm
a646ae3f36
FN-8005: normalize Quick Add action icon sizes
...
Unify the Quick Add primary action cluster around the shared icon-only sizing treatment.
- Apply btn-icon styling and 14px SVG sizing to GitHub, session advisor, priority, and Fast controls.
- Cover primary cluster uniformity across mobile, toggle, and priority states.
- Add a patch changeset for the Quick Add visual fix.
Files changed:
.changeset/fn-8005-quick-add-icon-size-parity.md | 7 +++
.../dashboard/app/components/QuickEntryBox.tsx | 19 ++++---
.../components/__tests__/QuickEntryBox.test.tsx | 63 ++++++++++++++++++++--
3 files changed, 79 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8005
Fusion-Task-Lineage: c912fb90-1e49-4c4d-8664-4caf1489f890
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 21:25:51 -07:00
gsxdsm
4f037679ad
feat: planner overseer session advisor (OMP advisor parity) ( #2082 )
...
## Summary
Adds a **session advisor** to the planner overseer so Fusion can review
live executor transcripts the way [oh-my-pi’s
advisor](https://github.com/can1357/oh-my-pi/tree/main/packages/coding-agent/src/advisor )
does — without replacing the existing lifecycle supervisor (stage watch,
retry, merge confirmation, human-control withhold).
### What ships
- **Emission guard** (`OverseerEmissionGuard`) — content-free phrase
filter, session dedupe with severity-rank escalation, one accept per
advisor update
- **Session delta runtime** — queues agent-log deltas, drains through an
advisor agent, drops backlog after 3 failures
- **Session advisor service** — model gate, level matrix (`observe` /
`steer` / `autonomous`), human-control re-check at inject,
`[session-advisor]` steering comments
- **OVERSEER.md / WATCHDOG.md** discovery for project review priorities
- **AgentLogger `onEntriesFlushed`** + poll-backed agent-log cursor for
durable deltas
- Workflow settings: `plannerOverseerAdvisorProvider` +
`plannerOverseerAdvisorModelId` (both required; empty = soft-disabled
for cost safety)
- Docs + changeset
### What does not ship (deferred)
- Multi-advisor YAML roster, mutating advisor tools, reviewer/merger
shadowing, true tool-abort interrupt
### Plan
`docs/plans/2026-07-13-001-feat-overseer-advisor-parity-plan.md`
## Enablement
1. Set workflow **Session advisor model provider** + **Session advisor
model id**
2. Oversight level `observe` (log only), `steer`, or `autonomous`
(inject)
3. Optional: add `OVERSEER.md` or `WATCHDOG.md` in the project
## Test plan
- [x] `pnpm --filter @fusion/core exec vitest run
src/__tests__/overseer-emission-guard.test.ts`
- [x] `pnpm --filter @fusion/engine exec vitest run` overseer-* unit
tests (21 tests)
- [x] Related planner-overseer / intervention regression tests
- [x] `@fusion/engine` + `@fusion/core` typecheck
- [ ] Manual: configure advisor model, run an executor task, confirm
`[session-advisor]` inject + timeline metadata when concern is raised
## Residual Review Findings
None from autofix pass (log-cursor ordering fix already committed).
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added an off-by-default “session advisor” that can review live
execution activity and provide severity-based guidance.
* Added project and per-task controls to enable it, including a default
enable switch and Quick Add / Task Detail toggles.
* Enhanced advisor prompting by discovering and incorporating
`OVERSEER.md`/`WATCHDOG.md` review files.
* **Documentation**
* Added architecture and settings documentation for the new
session-advisor parity behavior.
* **Bug Fixes**
* Improved fail-soft handling so advisor behavior won’t disrupt
execution.
* Fixed concurrent PostgreSQL migration startup failures.
* **Tests**
* Added coverage for advice parsing, emission guarding, runtime
behavior, and watchdog discovery.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-14 20:27:35 -07:00
gsxdsm
c7c6c5a8c4
FN-7842: color-code priority icons by urgency across quick add, task form, and task cards
...
Adds a shared urgency color source to priorityIndicator and wires it into every priority-glyph surface so low/normal/high/urgent read consistently by color, not just icon shape.
- priorityIndicator.tsx: add colorVar (low=info/blue, normal=muted, high=warning/amber, urgent=error/red) and new getPriorityColorVar() export as the single source of truth
- QuickEntryBox: tint the icon-only priority trigger and each option row in the priority picker with the matching urgency color
- TaskForm: tint the New Task inline priority glyph using the same color source
- TaskCard: render a colored priority glyph alongside the existing text label in the card-priority-badge (kept the non-normal visibility gate and badge geometry via a small CSS gap addition)
- Updated/added tests for QuickEntryBox, TaskCard (badge, badge-height, badge-wrap), and priorityIndicator to assert the new colors; added a patch changeset and a dashboard-guide.md doc update
Files changed:
.changeset/fn-7842-priority-color-coding.md | 7 +++++
docs/dashboard-guide.md | 7 +++--
.../dashboard/app/components/QuickEntryBox.tsx | 7 +++--
packages/dashboard/app/components/TaskCard.css | 2 ++
packages/dashboard/app/components/TaskCard.tsx | 6 +++-
packages/dashboard/app/components/TaskForm.tsx | 7 +++--
.../components/__tests__/QuickEntryBox.test.tsx | 17 +++++++++--
.../__tests__/TaskCard.badge-height.test.tsx | 5 ++++
.../__tests__/TaskCard.badge-wrap.test.tsx | 5 ++++
.../app/components/__tests__/TaskCard.test.tsx | 33 +++++++++++++++++++++-
.../app/utils/__tests__/priorityIndicator.test.tsx | 13 +++++----
packages/dashboard/app/utils/priorityIndicator.tsx | 16 ++++++++---
12 files changed, 103 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7842
Fusion-Task-Lineage: 0b2d0d15-6e61-45fc-9378-bc09002bef55
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-11 22:16:48 -07:00
gsxdsm
60b8b4e4c5
FN-7805: redesign quick-add priority indicators as icon-only controls
...
Redesigns the Quick Add composer's priority selector to icon-only glyph buttons and relocates GitHub tracking beside attach, backed by a new shared priorityIndicator helper.
- Add packages/dashboard/app/utils/priorityIndicator.tsx as the single source of ArrowUp/ArrowDown/Flag/TriangleAlert priority glyphs, shared by QuickEntryBox and TaskForm
- Rework QuickEntryBox.tsx to render icon-only priority/Fast controls and move GitHub tracking + Priority into the .quick-entry-primary-group, with matching QuickEntryBox.css layout updates
- Update TaskForm.tsx to reuse the new priorityIndicator helper instead of duplicating icon/label logic
- Update quick-entry height-parity/trigger-height tests and QuickEntryBox/TaskForm/NewTaskModal tests for the new icon-only layout
- Add priorityIndicator.test.tsx covering the shared helper
- Update docs/dashboard-guide.md and add changeset fn-7805-quick-add-priority-indicators.md (patch, feature)
Files changed:
.../fn-7805-quick-add-priority-indicators.md | 7 +
docs/dashboard-guide.md | 3 +-
.../quick-entry-action-row-height-parity.test.tsx | 13 +-
.../quick-entry-workflow-trigger-height.test.tsx | 10 +-
.../dashboard/app/components/QuickEntryBox.css | 19 +-
.../dashboard/app/components/QuickEntryBox.tsx | 197 +++++++++++----------
packages/dashboard/app/components/TaskForm.tsx | 33 ++--
.../app/components/__tests__/NewTaskModal.test.tsx | 3 +
.../components/__tests__/QuickEntryBox.test.tsx | 113 ++++++++----
.../app/components/__tests__/TaskForm.test.tsx | 3 +
.../app/utils/__tests__/priorityIndicator.test.tsx | 21 +++
packages/dashboard/app/utils/priorityIndicator.tsx | 30 ++++
12 files changed, 300 insertions(+), 152 deletions(-)
Fusion-Task-Id: FN-7805
Fusion-Task-Lineage: 404fe8d6-0851-44cb-b31d-f47896aaaaba
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 22:25:21 -07:00
gsxdsm
ec1a2eafcf
fix(dashboard): organize board quick-add composer and expose task actions menu
...
- Quick-add composer: single divider, option chips grouped left
(workflow, priority, steps, deps, models, node, agent, GitHub) and
primary actions right-aligned (attach, fast, Save last).
- Task cards get a visible kebab button (hover on desktop, always on
mobile) opening the same context menu as right-click, which was
previously undiscoverable.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-10 18:05:50 -07:00
gsxdsm
3cda9d830a
FN-7768: inline thinking-level control in CustomModelDropdown and migrate task/agent surfaces
...
Adds an inline thinking-level selector to CustomModelDropdown and migrates existing model-selection surfaces (task form, quick entry, new agent dialog, model selection modal/tab) to use it instead of their own bespoke thinking-level controls.
- CustomModelDropdown: add inline thinking-level control (CSS + component logic)
- ModelSelectionModal / ModelSelectorTab: drop local thinking-level UI in favor of the dropdown's inline control
- NewAgentDialog: migrate to the shared inline thinking-level control
- QuickEntryBox: remove now-redundant thinking-level UI, delegate to CustomModelDropdown
- TaskForm: migrate to the shared inline thinking-level control
- Add/update tests for CustomModelDropdown, ModelSelectionModal, ModelSelectorTab, NewAgentDialog, QuickEntryBox, TaskForm
- Add changeset for @runfusion/fusion (feature)
- Update dashboard guide docs
Files changed:
.changeset/fn-7768-inline-thinking-dropdown.md | 7 ++
docs/dashboard-guide.md | 1 +
.../app/components/CustomModelDropdown.css | 33 +++++++++
.../app/components/CustomModelDropdown.tsx | 69 ++++++++++++++++-
.../app/components/ModelSelectionModal.tsx | 32 +-------
.../dashboard/app/components/ModelSelectorTab.tsx | 33 +--------
.../dashboard/app/components/NewAgentDialog.tsx | 18 +----
.../dashboard/app/components/QuickEntryBox.tsx | 59 +--------------
packages/dashboard/app/components/TaskForm.tsx | 23 +-----
.../__tests__/CustomModelDropdown.test.tsx | 72 ++++++++++++++++++
.../__tests__/ModelSelectionModal.test.tsx | 48 +++++++++---
.../components/__tests__/ModelSelectorTab.test.tsx | 3 +-
.../components/__tests__/NewAgentDialog.test.tsx | 86 ++++++++++++++++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 42 +++++++----
.../app/components/__tests__/TaskForm.test.tsx | 7 +-
15 files changed, 354 insertions(+), 179 deletions(-)
Fusion-Task-Id: FN-7768
Fusion-Task-Lineage: 8f32731b-9865-4902-9420-62d3c0295805
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 00:48:14 -07:00
gsxdsm
2c4052c76b
FN-7746: Add thinking level selector to model pickers
...
Adds a thinking-level (reasoning-effort) selector to the quick-create model pickers, matching the levels already available in the full task pickers.
- ModelSelectionModal: adds optional thinking-level <select> (off/minimal/low/medium/high/xhigh) with a status badge, rendered only when onThinkingLevelChange is supplied
- QuickEntryBox: wires thinking-level state through to ModelSelectionModal and persists the override with quick-created tasks
- InlineCreateCard: same thinking-level wiring for the inline task creation card
- Adds i18n strings for the new thinking-level labels across en/es/fr/ko/zh-CN/zh-TW locale files
- Adds test coverage in InlineCreateCard.test.tsx, ModelSelectionModal.test.tsx, and QuickEntryBox.test.tsx for the new selector
Files changed:
.../dashboard/app/components/InlineCreateCard.tsx | 16 ++++-
.../app/components/ModelSelectionModal.tsx | 47 +++++++++++++-
.../dashboard/app/components/QuickEntryBox.tsx | 67 ++++++++++++++++++-
.../components/__tests__/InlineCreateCard.test.tsx | 70 ++++++++++++++++++++
.../__tests__/ModelSelectionModal.test.tsx | 69 ++++++++++++++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 75 ++++++++++++++++++++++
packages/i18n/locales/en/app.json | 2 +
packages/i18n/locales/es/app.json | 2 +
packages/i18n/locales/fr/app.json | 2 +
packages/i18n/locales/ko/app.json | 2 +
packages/i18n/locales/zh-CN/app.json | 2 +
packages/i18n/locales/zh-TW/app.json | 2 +
12 files changed, 351 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7746
Fusion-Task-Lineage: 4a221203-0222-47d6-93f8-632638bcfbfe
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-09 19:58:07 -07:00
gsxdsm
cf3fe8b485
FN-7591: make dashboard create surfaces resolve intake column from workflow instead of hard-coding triage
...
Fixes dashboard task creation so new cards land in the selected/default workflow's intake column instead of always forcing legacy triage, letting workflows like Coding (Ideas) park new cards in 'ideas' until an operator promotes them.
- InlineCreateCard, QuickEntryBox, and NewTaskModal no longer hard-code column:"triage"; InlineCreateCard now forwards workflowId at create time instead of applying it post-create.
- Fixed a glue-layer regression in useTaskHandlers.ts (handleBoardQuickCreate/handleModalCreate) that re-forced column:"triage" even after UI surfaces stopped sending it.
- Added/updated tests covering the store's intake-column resolution and the dashboard create surfaces/hooks.
- Documented the new manual-intake-column parking behavior in dashboard-guide.md and workflow-steps.md.
- Added a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-7591-coding-ideas-intake.md | 7 +++
docs/dashboard-guide.md | 4 ++
docs/workflow-steps.md | 1 +
packages/core/src/__tests__/store-create-intake-column.test.ts | 20 ++++++++
packages/dashboard/app/App.tsx | 5 +-
packages/dashboard/app/components/InlineCreateCard.tsx | 28 ++++------
packages/dashboard/app/components/NewTaskModal.tsx | 5 +-
packages/dashboard/app/components/QuickEntryBox.tsx | 5 +-
packages/dashboard/app/components/TodoView.tsx | 7 ++-
packages/dashboard/app/components/__tests__/InlineCreateCard.test.tsx | 59 +++++++++++++++++++++-
packages/dashboard/app/components/__tests__/QuickEntryBox.test.tsx | 14 +++--
packages/dashboard/app/components/__tests__/TodoView.test.tsx | 10 ++--
packages/dashboard/app/components/__tests__/board-quickcreate-workflow-lane-visibility.test.tsx | 45 ++++++++++++++++-
packages/dashboard/app/hooks/__tests__/useTaskHandlers.test.ts | 27 ++++++++--
packages/dashboard/app/hooks/useTaskHandlers.ts | 8 ++-
15 files changed, 207 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-7591
Fusion-Task-Lineage: 510f0e6a-89e7-468f-a6df-ad6aebd5c33a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-05 13:15:56 -07:00
gsxdsm
aa4c2c1b26
FN-7331: remove Quick Add AI refine control
...
Remove the Quick Add refine affordance while preserving richer task refinement elsewhere.
- Drop QuickEntryBox refine state, menu positioning, API calls, and action rendering.
- Update Quick Add tests to assert the refine controls and refine-text path are absent.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7331-remove-quick-add-refine.md | 7 +
.../__tests__/quick-entry-expanded-height.test.tsx | 3 +-
.../dashboard/app/components/QuickEntryBox.tsx | 198 +-------------
.../components/__tests__/QuickEntryBox.test.tsx | 286 ++++-----------------
4 files changed, 71 insertions(+), 423 deletions(-)
Fusion-Task-Id: FN-7331
Fusion-Task-Lineage: ed30e9da-1c1c-4e94-9fbe-e44ad5ae7133
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 23:45:00 -07:00
gsxdsm
d58ba268c5
FN-7326: move Quick Add attach action next to Save
...
Align the expanded Quick Add action row so attachment controls sit beside Save.\n\n- Move the icon-only attachment button immediately after Save while keeping its hidden file input trigger and pending image badge.\n- Update QuickEntryBox DOM-order expectations to lock Attach next to Save.\n- Add a patch changeset for the published Fusion package.\n\nFiles changed:\n .changeset/fn-7326-quick-add-attach.md | 7 +++++\n .../dashboard/app/components/QuickEntryBox.tsx | 31 +++++++++++-----------\n .../components/__tests__/QuickEntryBox.test.tsx | 8 +++---\n 3 files changed, 28 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7326
Fusion-Task-Lineage: f9469a3f-2e94-4af4-8c74-332f2b4a10c2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 19:36:10 -07:00
gsxdsm
21fc28698f
FN-7304: add Quick Add drag-and-drop attachments
...
Quick Add now supports compact icon-only image attachment controls and drag/drop intake.
- Convert the Quick Add attach action to an accessible icon-only button with pending-count feedback.
- Add file drag-over and drop handling that reuses the existing image preview/upload path.
- Document the Quick Add attachment affordances, add a changeset, and cover icon/drop behavior with tests.
Files changed:
.changeset/fn-7304-quick-add-attachments.md | 7 ++
docs/dashboard-guide.md | 3 +
.../dashboard/app/components/QuickEntryBox.css | 49 ++++++++
.../dashboard/app/components/QuickEntryBox.tsx | 81 ++++++++++++-
.../components/__tests__/QuickEntryBox.test.tsx | 128 ++++++++++++++++++++-
5 files changed, 257 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7304
Fusion-Task-Lineage: 0ff78d99-5b6a-476c-99d2-32f53389f808
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 14:42:45 -07:00
gsxdsm
7ca6c784c4
FN-7302: compact quick-add workflow selector
...
Keep the Quick Add workflow selector compact without sacrificing readable workflow menu options.
- Narrow the closed workflow trigger and truncate only its label so action controls keep room.
- Portal and viewport-clamp the expanded workflow menu for right-side columns and mobile layouts.
- Preserve readable wrapping for long workflow names and duplicate-id subtitles in the menu.
- Cover compact trigger sizing, menu readability, and viewport clamping with QuickEntryBox tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7302-quick-add-workflow-trigger.md | 7 ++
.../dashboard/app/components/QuickEntryBox.css | 29 ++++--
.../dashboard/app/components/QuickEntryBox.tsx | 114 ++++++++++++++++++++-
.../components/__tests__/QuickEntryBox.test.tsx | 79 +++++++++++++-
4 files changed, 211 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7302
Fusion-Task-Lineage: 4a8042d8-6cc5-4f40-bbcb-71aa5bfb7cd2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 14:20:25 -07:00
gsxdsm
3dd02dd011
FN-7300: hide local-only Quick Add node pickers
...
Hide the Quick Add node picker whenever local execution is the only available route.
- Gate QuickEntryBox and InlineCreateCard node controls behind meaningful remote or multi-node choices.
- Clear stale node overrides when the hidden picker no longer offers a valid selection.
- Cover local-only and multi-node picker behavior in Quick Add component tests.
- Add a patch changeset for the published Fusion package.
Files changed:
...n-7300-hide-local-only-quick-add-node-button.md | 7 ++
.../dashboard/app/components/InlineCreateCard.tsx | 121 ++++++++++++---------
.../dashboard/app/components/QuickEntryBox.tsx | 102 ++++++++++-------
.../components/__tests__/InlineCreateCard.test.tsx | 74 +++++++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 89 +++++++++++++++
5 files changed, 303 insertions(+), 90 deletions(-)
Fusion-Task-Id: FN-7300
Fusion-Task-Lineage: 83ef956f-7993-4f58-8497-49da15509c08
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:53:01 -07:00
gsxdsm
7beb64eba5
FN-7296: show quick-add workflow icons
...
Improve the quick-add workflow selector so workflow choices are easier to identify before creating a task.
- Render shared workflow icons in the quick-add trigger and workflow option list.
- Widen the workflow selector/menu with tokenized responsive CSS while avoiding empty custom icon shells.
- Cover built-in, custom, and iconless workflow rendering plus widened CSS expectations.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7296-quick-add-workflow-icons.md | 7 ++++
.../dashboard/app/components/QuickEntryBox.css | 45 ++++++++++++++++++++--
.../dashboard/app/components/QuickEntryBox.tsx | 15 +++++++-
.../components/__tests__/QuickEntryBox.test.tsx | 41 +++++++++++++++++---
4 files changed, 98 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7296
Fusion-Task-Lineage: e493eb27-6957-4fbd-bfb9-903f9ec43b29
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 12:47:11 -07:00
gsxdsm
3cd5695f52
FN-7288: remove quick-add Plan buttons
...
Remove quick-add planning buttons from board create surfaces while preserving other planning entry points.
- Remove the Plan button, icon imports, handlers, test id, disabled state, tooltip, and click targets from QuickEntryBox and InlineCreateCard.
- Update quick-add and mobile board tests to assert the Plan affordance is absent while task creation and Subtask behavior remain available.
- Refresh dashboard docs and add a patch changeset describing the quick-add Plan removal.
Files changed:
.changeset/fn-7288-remove-quick-add-plan-button.md | 7 +
docs/dashboard-guide.md | 4 +-
docs/getting-started.md | 2 +-
docs/workflow-steps.md | 2 +-
.../dashboard/app/components/InlineCreateCard.tsx | 38 +---
.../dashboard/app/components/QuickEntryBox.tsx | 38 +---
.../components/__tests__/InlineCreateCard.test.tsx | 56 +++---
.../components/__tests__/QuickEntryBox.test.tsx | 196 +++++----------------
.../app/components/__tests__/board-mobile.test.tsx | 6 +-
9 files changed, 97 insertions(+), 252 deletions(-)
Fusion-Task-Id: FN-7288
Fusion-Task-Lineage: b4a5d6b6-83e7-4b0c-a38d-6ff36d8cd97e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:40:49 -07:00
gsxdsm
a92f15efaa
FN-7284: remove Quick Add Plan icon
...
Remove the extra Quick Add Plan icon while preserving the text button planning flow.
- Drop the Lightbulb icon from the QuickEntryBox Plan action and document the text-only affordance requirement.
- Extend QuickEntryBox coverage to assert the Plan action remains text-only and still trims the draft for planning handoff.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/remove-quick-add-plan-icon.md | 7 +++++++
packages/dashboard/app/components/QuickEntryBox.tsx | 2 +-
.../dashboard/app/components/__tests__/QuickEntryBox.test.tsx | 8 ++++++--
3 files changed, 14 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7284
Fusion-Task-Lineage: 331eaf54-d51e-4f37-8434-1a0590edf7a1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:14:47 -07:00
gsxdsm
7eca99c8b1
FN-7283: clear optional workflow steps in fast mode
...
Fast mode now treats optional workflow steps as opt-out by default while preserving manual reselection.
- Clear default-on optional workflow steps when switching task creation forms into Fast mode.
- Submit explicit empty optional-step selections in Fast mode to prevent store defaults from reappearing.
- Allow explicitly enabled optional workflow groups to run under Fast mode and during recovery.
- Document the Fast-mode optional-step contract and add regression coverage for dashboard and engine flows.
Files changed:
.changeset/FN-7283-fast-mode-optional-steps.md | 7 ++
docs/workflow-steps.md | 15 ++-
packages/dashboard/app/components/NewTaskModal.tsx | 27 +++--
.../dashboard/app/components/QuickEntryBox.tsx | 29 ++++-
packages/dashboard/app/components/TaskForm.tsx | 42 +++++--
.../app/components/__tests__/NewTaskModal.test.tsx | 58 +++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 84 +++++++++++++
.../app/components/__tests__/TaskForm.test.tsx | 85 ++++++++++++-
.../__tests__/executor-fast-mode-workflows.test.ts | 134 +++++++++++++++++++++
packages/engine/src/executor.ts | 107 ++++++++++------
packages/engine/src/workflow-graph-executor.ts | 14 ++-
11 files changed, 539 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-7283
Fusion-Task-Lineage: e7028af8-3d05-4db7-8db9-a16c7f7575de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 09:46:26 -07:00
gsxdsm
6c8884e67b
FN-7276: add quick-add workflow selection
...
Add workflow-aware quick task creation across Board and List quick-add surfaces.
- Add a quick-add workflow picker that filters out the aggregate workflow sentinel.
- Route create, planning, subtask, and optional-step flows through the selected real workflow.
- Resolve workflow-specific intake columns for Board/List quick creates and cover behavior with component tests.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7276-quick-add-workflow-selector.md | 7 +
packages/dashboard/app/components/Board.tsx | 43 +++++-
packages/dashboard/app/components/Column.tsx | 12 +-
packages/dashboard/app/components/ListView.tsx | 20 ++-
.../dashboard/app/components/QuickEntryBox.css | 51 +++++++
.../dashboard/app/components/QuickEntryBox.tsx | 169 +++++++++++++++++++--
.../app/components/__tests__/Board.test.tsx | 42 ++++-
.../app/components/__tests__/ListView.test.tsx | 67 +++++++-
.../components/__tests__/QuickEntryBox.test.tsx | 73 +++++++++
9 files changed, 453 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-7276
Fusion-Task-Lineage: 422f0359-c71f-4610-8fdb-39d7a21a2a52
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 08:52:51 -07:00
gsxdsm
998a7f2745
fix(FN-7226): make plan review the single pre-execution gate
...
Fusion-Task-Id: FN-7226
2026-06-29 01:48:27 -07:00
gsxdsm
3ee47dec86
merge: integrate origin/main into feature/workflow-steps (FN-7039)
...
Resolve conflicts from 56 upstream commits:
- db.ts: renumber my migrations around main's new migration 130 (columnDwellMs) —
enable-id normalization 130→131, drop-table 131→132, SCHEMA_VERSION→132.
- index.ts / routes.ts: take main's new MCP exports/imports; keep WORKFLOW_STEP_TEMPLATES
array removed (kept the WorkflowStepTemplate type).
- merger.ts: keep the legacy post-merge execution path removed (U7c) over main's version.
- ci-workflow.test.ts (from main): add port-4040/process-supervisor allowlist markers to
the gate-script assertions that reference the checker filenames (pre-existing self-match).
Gate green (engine-core 299, ci-shape 62); boot smoke PASS; migration tests + typecheck clean.
2026-06-26 08:50:22 -07:00
gsxdsm
da69e03d29
FN-7047: remove quick-entry keyboard hint
...
Remove the retired quick-entry keyboard hint and its empty UI shell from task creation.
- Drop the quick-entry hint element and associated responsive styles.
- Remove the retired quickEntryHint locale key from all app locales and generated resources.
- Add coverage asserting the hint and shell stay absent across expanded and collapsed quick-entry modes.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7047-quick-entry-hint-removal.md | 7 +++++++
packages/dashboard/app/components/QuickEntryBox.css | 18 ------------------
packages/dashboard/app/components/QuickEntryBox.tsx | 4 +---
.../app/components/__tests__/QuickEntryBox.test.tsx | 18 ++++++++++++++++++
packages/i18n/locales/en/app.json | 1 -
packages/i18n/locales/es/app.json | 1 -
packages/i18n/locales/fr/app.json | 1 -
packages/i18n/locales/ko/app.json | 1 -
packages/i18n/locales/zh-CN/app.json | 1 -
packages/i18n/locales/zh-TW/app.json | 1 -
packages/i18n/src/resources.d.ts | 1 -
11 files changed, 26 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-7047
Fusion-Task-Lineage: c838f25b-a3cf-4c2c-b214-511df12dd423
2026-06-25 23:34:08 -07:00
gsxdsm
ea5e12e8eb
FN-7042: stop refocusing quick task input after submit
...
Prevent successful quick task creation from stealing focus back to the quick-entry textarea.
- Remove the post-submit focus restoration request/effect from QuickEntryBox.\n- Update desktop, mobile, duplicate-confirm, and image-upload tests to assert no automatic refocus.\n- Add a patch changeset documenting the quick-entry focus fix.\n\nFiles changed:\n .changeset/fn-7042-quick-entry-no-refocus.md | 7 +++\n .../dashboard/app/components/QuickEntryBox.tsx | 46 +------------------\n .../components/__tests__/QuickEntryBox.test.tsx | 53 ++++++++++++----------\n 3 files changed, 39 insertions(+), 67 deletions(-)
Fusion-Task-Id: FN-7042
Fusion-Task-Lineage: 7c8e26a6-3a6b-463f-bfb7-8310682584f8
2026-06-25 23:34:08 -07:00
gsxdsm
dd1b9603bc
fix(FN-7039): run enabled optional workflow steps via builtin:coding resolution
...
optionalGroupIdSet falls back to builtin:coding (mirroring the executor's
unselected-task resolution) so a toggled built-in group id like
browser-verification is no longer downgraded to a legacy WS-xxx step row the
graph executor never matches. Create-time optional-step controls resolve
builtin:coding when no project default workflow is set so the toggles render.
First unit of the graph-native workflow-step refactor (see
docs/plans/2026-06-25-001-refactor-workflow-steps-graph-native-plan.md).
Fusion-Task-Id: FN-7039
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 21:47:03 -07:00
gsxdsm
541f1f6533
FN-7017: expose optional workflow steps in task creation
...
Surface active workflow optional steps on task creation surfaces so users can opt into workflow-specific steps before creating tasks.
- Add optional-step dropdown state and creation payload handling to quick entry.
- Move New Task optional-step controls into the inline quick-button row.
- Cover default-on, workflow selection, duplicate-confirmed create, empty-step rendering, and mobile touch-target behavior with tests.
- Document create-time optional-step controls and add the published package changeset.
Files changed:
.../fn-7017-optional-steps-quick-dropdown.md | 7 +
docs/dashboard-guide.md | 4 +-
docs/workflow-steps.md | 2 +
.../dashboard/app/components/QuickEntryBox.css | 6 +-
.../dashboard/app/components/QuickEntryBox.tsx | 65 ++++++++-
packages/dashboard/app/components/TaskForm.tsx | 34 ++---
.../app/components/__tests__/NewTaskModal.test.tsx | 21 ++-
.../components/__tests__/QuickEntryBox.test.tsx | 145 ++++++++++++++++++++-
.../app/components/__tests__/TaskForm.test.tsx | 1 +
9 files changed, 258 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-7017
Fusion-Task-Lineage: 1b7d21e6-ff7f-4d27-b285-4fd865eafce6
2026-06-25 19:35:05 -07:00
gsxdsm
003c5d01c0
FN-6914: preserve quick-add drafts for planning
...
Keep quick-add and inline-create drafts intact while planning is open, and clear them only after planning creates tasks.
- Stop resetting QuickEntryBox and InlineCreateCard state when handing text to planning mode.
- Clear scoped quick-entry and inline-create drafts after single-task or multi-task planning completion.
- Update component and modal-manager tests for preserved drafts, retained options, and completion cleanup.
Files changed:
packages/dashboard/app/components/InlineCreateCard.tsx | 25 ++------
packages/dashboard/app/components/QuickEntryBox.tsx | 8 ++-
.../components/__tests__/InlineCreateCard.test.tsx | 9 +--
.../components/__tests__/QuickEntryBox.test.tsx | 73 +++++++++++++++-------
.../app/hooks/__tests__/useModalManager.test.ts | 53 +++++++++++++++-
packages/dashboard/app/hooks/useModalManager.ts | 16 ++++-
6 files changed, 131 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-6914
Fusion-Task-Lineage: f7241ae3-658d-48d4-b730-cd3169aec8c8
2026-06-22 18:03:53 -07:00
gsxdsm
e6aebdc316
feat(dashboard): full issue/PR preview, floating dock pop-out, header dedups, gm one-row, single-line quick entry
...
- GitHub import preview shows the full issue/PR body (markdown) + metadata (list already returned full bodies; removed client truncation).
- Task-detail main view: constrain width (no right cutoff); move 'Back to board' into the gray header far right.
- Dock pop-out: smoother touch drag (touch-action:none + captured-element listeners); popping out closes the dock but keeps the floating modal; modal survives dock dismiss.
- Remove duplicate inner headers in Git Manager / Activity Log / Dev Server / Secrets (dock + pop-out chrome already titles them); keep the title on mobile narrow; relocate gm Refresh into the section tab strip.
- Git Manager tabs: one scrollable row of compact icon-only tabs (max visible, scroll if needed).
- List quick entry is single-line (not tall) via singleLine prop; Board unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 04:37:28 -07:00
gsxdsm
322077b804
feat(dashboard): quick-add collapsed by default in List, open in Board
...
Add a defaultExpanded prop to QuickEntryBox (default true = open, preserving Board/column behavior); List view passes defaultExpanded={false} so the quick-add controls start collapsed. autoExpand (expand-on-focus) is unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 03:34:15 -07:00
gsxdsm
f4d2fa2ece
FN-6910: hide subtask quick-add behind experiment
...
Hide the AI subtask-breakdown quick-add action unless the experimental flag is explicitly enabled.
- Gate Subtask Breakdown callbacks from App on the default-off subtaskBreakdown experiment.
- Remove Subtask quick-add buttons from inline create and quick entry surfaces when no callback is wired.
- Add settings, quick-add, documentation, and changeset coverage for the new experiment toggle.
Files changed:
.changeset/fn-6910-subtask-breakdown-flag.md | 5 ++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/App.tsx | 8 ++++---
.../dashboard/app/components/InlineCreateCard.tsx | 27 ++++++++++++----------
.../dashboard/app/components/QuickEntryBox.tsx | 27 ++++++++++++----------
.../dashboard/app/components/SettingsModal.tsx | 2 ++
.../components/__tests__/InlineCreateCard.test.tsx | 13 +++++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 12 ++++++++++
.../components/__tests__/SettingsModal.test.tsx | 13 +++++++++++
9 files changed, 81 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-6910
Fusion-Task-Lineage: a7738b1f-7b41-438d-bd94-79ef56928262
2026-06-21 23:02:16 -07:00
gsxdsm
3b61ac3d23
fix: make loading spinners actually spin across the dashboard
...
Many loading states rendered bare "Loading…" text with no spinner
element, and a couple rendered an unstyled `loading-spinner` div with no
matching CSS (invisible). The global spin animation was never broken —
it rotates in Chromium and WebKit — so prior transform-box edits chased
a non-bug, validated only by a string-matching CSS test.
Add a shared <LoadingSpinner> (self-contained animated SVG, no
lucide-react import so it survives partial test mocks) and adopt it
across ~47 loading placeholders so every loading state shows a
consistent animated spinner. Includes a component test that asserts the
svg carries the animate-spin utility.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-21 03:53:43 -07:00
gsxdsm
36b8950dbe
FN-6804: carry workflow selection into planning creates
...
Planning and subtask creation now preserve the workflow lane chosen from dashboard task entry points.
- Thread optional workflow IDs through quick entry, modal state, planning mode, and subtask breakdown flows.
- Apply supplied or parent-derived workflow IDs when creating planning and breakdown tasks, including validation errors for invalid workflow selections.
- Cover workflow-aware task creation and quick-entry modal handoff with regression tests and document the dashboard behavior.
Files changed:
.changeset/planning-subtask-workflow-selection.md | 5 +
docs/dashboard-guide.md | 2 +
packages/dashboard/app/App.tsx | 8 +-
packages/dashboard/app/api/legacy.ts | 6 +
packages/dashboard/app/components/AppModals.tsx | 2 +
packages/dashboard/app/components/Board.tsx | 4 +-
packages/dashboard/app/components/Column.tsx | 5 +-
.../dashboard/app/components/InlineCreateCard.tsx | 20 ++-
packages/dashboard/app/components/Lane.tsx | 4 +-
packages/dashboard/app/components/ListView.tsx | 4 +-
.../dashboard/app/components/PlanningModeModal.tsx | 18 +-
.../dashboard/app/components/QuickEntryBox.tsx | 24 ++-
.../app/components/SubtaskBreakdownModal.tsx | 20 ++-
packages/dashboard/app/components/TaskForm.tsx | 4 +-
.../components/__tests__/QuickEntryBox.test.tsx | 34 ++++
packages/dashboard/app/hooks/useModalManager.ts | 26 ++-
.../planning-subtask-create-workflow-route.test.ts | 192 +++++++++++++++++++++
.../src/routes/register-planning-subtask-routes.ts | 72 ++++++--
18 files changed, 398 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-6804
Fusion-Task-Lineage: ca03e666-2dd4-4983-8c84-c5540f5adb0b
2026-06-20 18:04:02 -07:00
gsxdsm
d06d1052db
FN-6743: rescue QuickEntryBox focus restoration
...
Restore reliable QuickEntryBox post-submit focus and return its test to the dashboard suite.
- Replace the ref-gated focus effect with a state-driven post-submit focus request.
- Cover desktop Enter, Save, duplicate-confirmed submit, mobile non-focus, and failed-submit draft preservation.
- Remove QuickEntryBox from dashboard quarantine while keeping the remaining workflow editor quarantine.
Files changed:
.../dashboard/app/components/QuickEntryBox.tsx | 46 +++++++++++++++++-----
.../components/__tests__/QuickEntryBox.test.tsx | 29 +++++++++++++-
packages/dashboard/vitest.config.ts | 5 ++-
scripts/lib/test-quarantine.json | 5 ---
4 files changed, 69 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6743
Fusion-Task-Lineage: 2d458631-3ff3-4d96-8d91-bc2a17538be2
2026-06-19 17:49:06 -07:00
gsxdsm
8a53871de2
FN-6388: enable quick-entry GitHub tracking overrides
...
Allow quick entry to override GitHub tracking regardless of the project default.
- Send explicit githubTracking overrides whenever the quick-entry toggle is changed.
- Keep the GitHub toggle usable when settings are loading or default tracking is off.
- Cover off-default opt-in, opt-out, label, and reset behavior in QuickEntryBox tests.
- Document the quick-entry GitHub icon as a per-task tracking override.
Files changed:
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/QuickEntryBox.tsx | 27 ++---
.../components/__tests__/QuickEntryBox.test.tsx | 118 ++++++++++++++++++---
3 files changed, 110 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-6388
Fusion-Task-Lineage: f46ef738-ccd6-48cc-8919-9c2de7ecb4e3
2026-06-13 16:30:28 -07:00