gsxdsm
35b1838c5f
feat(dashboard): richer GitHub import comments — avatar, time, human/bot badge, nav, filter
...
Comment shape gains authorAvatarUrl + authorIsBot (gh GraphQL Bot/__typename or REST user.type==Bot or [bot] login; avatar from API or github.com/{login}.png, suppressed for bots). New shared CommentsThread (PR + issue) shows author avatar (lucide Bot/User fallback), readable localized timestamp (ISO title), a Human/Bot badge + data-comment-author-type, prev/next chevron nav that scrolls+highlights, and an All/Human/Bot filter defaulting to All.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 11:18:12 -07:00
gsxdsm
a9b0e6c0d1
feat(dashboard): GitHub import issues show comments + a Close-issue action
...
Mirrors the PR detail pattern for issues: GitHubClient.getIssueDetail (gh issue view --json comments, REST fallback) + closeIssue (gh issue close, REST PATCH fallback); new POST /api/github/issues/detail + /issues/close routes. The Issues preview fetches comments on selection (cached, non-blocking) and renders them below the body; a Close-issue button in the preview header (open issues only) closes via the API, toasts, and reflects the closed state without dismissing the view.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 11:10:43 -07:00
gsxdsm
2dc36d9ef4
feat(dashboard): Import Tasks PR preview shows full comments + checks with per-check status
...
New POST /api/github/pulls/detail endpoint + GitHubClient.getPullRequestDetail (gh pr view --json comments,statusCheckRollup, REST fallback). On PR select, the preview fetches detail (cached per PR, body never blocked) and renders below the body: a Checks section (each check name + status pill success/failure/pending/neutral, linked to detailsUrl) and a Comments section (chronological, markdown via MailboxMessageContent). Issues tab unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 10:19:12 -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
8dd9697468
FN-6714: backfill commit-association diff stats
...
Backfill historical commit-association diff stats so Command Center LOC can use real persisted git data.
- Add a core backfill API that inspects local git commits for associations with missing additions/deletions and supports dry-run reporting.
- Expose an authenticated Command Center productivity backfill endpoint and route it through the legacy API shim.
- Keep productivity LOC/hour sentinels safe for legacy payloads and document the backfill contract.
- Cover the backfill path, auth gate, productivity analytics, and route registration with tests.
Files changed:
.changeset/fn-6714-command-center-loc-backfill.md | 5 +
docs/architecture.md | 4 +-
docs/storage.md | 4 +-
...mmit-association-diff-backfill.real-git.test.ts | 140 +++++++++++++++++++++
packages/core/src/index.ts | 1 +
packages/core/src/store.ts | 76 ++++++++++-
packages/core/src/types.ts | 9 ++
packages/dashboard/app/api/legacy.ts | 16 +++
.../command-center/areas/ProductivityArea.tsx | 8 +-
.../register-command-center-routes.auth.test.ts | 48 ++++---
.../register-command-center-routes.test.ts | 49 +++++++-
.../src/routes/register-command-center-routes.ts | 20 +++
12 files changed, 354 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-6714
Fusion-Task-Lineage: 657c7789-bbe4-4611-abca-127af05b0300
2026-06-22 03:42:24 -07:00
gsxdsm
26c8d960a2
FN-6893: add editable built-in workflow prompts
...
Enable project-scoped prompt overrides for built-in workflows without allowing structural edits.
- Add workflow prompt override storage, normalization, and IR overlay support for prompt and gate nodes.
- Expose dashboard API routes and Workflow Node Editor controls to edit or reset built-in prompts.
- Cover override persistence, route behavior, editor flows, and engine workflow resolution with tests.
- Document editable built-in prompts and reset-to-default behavior.
Files changed:
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 2 +
docs/workflow-steps.md | 20 ++-
.../__tests__/workflow-definition-store.test.ts | 25 +++
.../workflow-prompt-overrides-store.test.ts | 190 ++++++++++++++++++++
.../__tests__/workflow-prompt-overrides.test.ts | 58 +++++++
packages/core/src/db.ts | 35 +++-
packages/core/src/index.ts | 7 +
packages/core/src/store.ts | 97 ++++++++++-
packages/core/src/workflow-ir-resolver.ts | 21 ++-
packages/core/src/workflow-prompt-overrides.ts | 65 +++++++
packages/dashboard/app/api/legacy.ts | 34 ++++
.../app/components/WorkflowNodeEditor.css | 35 ++++
.../app/components/WorkflowNodeEditor.tsx | 191 ++++++++++++++++++++-
.../__tests__/WorkflowNodeEditor.test.tsx | 136 ++++++++++++++-
.../src/__tests__/workflow-routes.test.ts | 59 +++++++
.../src/routes/register-workflow-routes.ts | 86 +++++++++-
.../workflow-prompt-overrides-resolution.test.ts | 61 +++++++
packages/i18n/locales/en/app.json | 14 +-
packages/i18n/locales/es/app.json | 14 +-
packages/i18n/locales/fr/app.json | 14 +-
packages/i18n/locales/ko/app.json | 14 +-
packages/i18n/locales/zh-CN/app.json | 14 +-
packages/i18n/locales/zh-TW/app.json | 14 +-
24 files changed, 1168 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-6893
Fusion-Task-Lineage: 961eb119-32e1-44c3-9b51-6edd982fa565
2026-06-21 21:23:41 -07:00
gsxdsm
ef4889585f
FN-6779: add artifacts gallery to Documents
...
Adds a Documents-view artifact gallery backed by dashboard artifact registry APIs.
- Add artifact listing and media-serving endpoints with project scoping, validation, and safe artifact path resolution.
- Add client artifact API helpers, SWR caching, and a useArtifacts hook for background-refresh gallery data.
- Extend Documents view with an Artifacts tab, media previews, localized labels, documentation, tests, and a published package changeset.
Files changed:
.changeset/fn-6779-artifacts-gallery.md | 5 +
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/api/legacy.ts | 34 ++++
.../dashboard/app/components/DocumentsView.css | 142 ++++++++++++++++
.../dashboard/app/components/DocumentsView.tsx | 178 ++++++++++++++++++--
.../components/__tests__/DocumentsView.test.tsx | 163 +++++++++++++++++-
.../app/hooks/__tests__/useArtifacts.test.ts | 136 +++++++++++++++
packages/dashboard/app/hooks/useArtifacts.ts | 145 ++++++++++++++++
packages/dashboard/app/utils/swrCache.ts | 1 +
.../src/routes/__tests__/artifacts-routes.test.ts | 182 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 125 ++++++++++++++
packages/i18n/locales/en/app.json | 22 ++-
packages/i18n/locales/es/app.json | 27 ++-
packages/i18n/locales/fr/app.json | 27 ++-
packages/i18n/locales/ko/app.json | 27 ++-
packages/i18n/locales/zh-CN/app.json | 27 ++-
packages/i18n/locales/zh-TW/app.json | 27 ++-
scripts/line-count-baseline.json | 16 +-
18 files changed, 1255 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-6779
Fusion-Task-Lineage: 1d71e4be-4bfc-4706-9cbf-7214f91a79d1
2026-06-21 16:01:07 -07:00
gsxdsm
eb3477aba4
FN-6835: add system stats node selection
...
Add Command Center controls for inspecting local or remote node system telemetry.
- add a System area node selector with local defaults, remote stats loading, and per-node sample resets
- expose proxied node system-stats fetching and route local node requests through the shared stats builder
- route Vitest kill requests through node-aware proxy plumbing and cover node stats behavior with tests
- add localized node selector copy, docs, and a published package changeset
Files changed:
.changeset/fuzzy-nodes-watch.md | 5 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/api/legacy.ts | 14 +-
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 2 +
.../__tests__/CommandCenter.tablet-layout.test.tsx | 2 +
.../__tests__/CommandCenter.test.tsx | 1 +
.../__tests__/SystemStatsArea.test.tsx | 160 +++++++++++++++++
.../command-center/areas/SystemStatsArea.css | 13 ++
.../command-center/areas/SystemStatsArea.tsx | 72 +++++++-
.../dashboard/src/__tests__/routes-system.test.ts | 122 +++++++++++++
packages/dashboard/src/routes.ts | 190 +++++++++++++--------
packages/i18n/locales/en/app.json | 10 ++
packages/i18n/locales/es/app.json | 10 ++
packages/i18n/locales/fr/app.json | 10 ++
packages/i18n/locales/ko/app.json | 10 ++
packages/i18n/locales/zh-CN/app.json | 10 ++
packages/i18n/locales/zh-TW/app.json | 10 ++
17 files changed, 562 insertions(+), 83 deletions(-)
Fusion-Task-Id: FN-6835
Fusion-Task-Lineage: 8f9a047b-78d0-477e-824e-f7592966cdc0
2026-06-21 13:25:41 -07:00
gsxdsm
7ef381762a
feat: start engines by default
2026-06-20 23:57:37 -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
c158dda8a6
FN-6745: add xhigh thinking level support
...
Adds the xhigh reasoning option across settings, task flows, APIs, and model adapter tests.
- Extend the shared thinking-level enum, validation paths, generated resource types, and settings documentation for `xhigh`.
- Surface `xhigh` in task, agent, and global model selectors with localized labels.
- Cover task route handling, task form rendering, and Pi adapter mapping behavior with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6745-xhigh-thinking-level.md | 5 +
docs/settings-reference.md | 2 +-
.../core/src/__tests__/thinking-levels.test.ts | 9 ++
packages/core/src/types.ts | 10 +-
packages/dashboard/app/api/legacy.ts | 6 +-
.../dashboard/app/components/AgentDetailView.tsx | 2 +-
.../dashboard/app/components/ModelSelectorTab.tsx | 1 +
.../dashboard/app/components/NewAgentDialog.tsx | 3 +-
packages/dashboard/app/components/NewTaskModal.tsx | 2 +-
.../dashboard/app/components/TaskDetailModal.tsx | 2 +-
packages/dashboard/app/components/TaskForm.tsx | 2 +
.../app/components/__tests__/TaskForm.test.tsx | 14 +++
.../settings/sections/GlobalModelsSection.tsx | 1 +
.../src/__tests__/routes-tasks-ops.test.ts | 8 +-
.../dashboard/src/__tests__/routes-tasks.test.ts | 8 +-
packages/dashboard/src/agent-generation.ts | 4 +-
packages/dashboard/src/agent-onboarding.ts | 4 +-
.../src/routes/register-task-workflow-routes.ts | 5 +-
packages/engine/src/__tests__/pi.test.ts | 25 ++++
packages/i18n/locales/en/app.json | 3 +
packages/i18n/locales/es/app.json | 3 +
packages/i18n/locales/fr/app.json | 3 +
packages/i18n/locales/ko/app.json | 3 +
packages/i18n/locales/zh-CN/app.json | 3 +
packages/i18n/locales/zh-TW/app.json | 3 +
packages/i18n/src/resources.d.ts | 126 ++++++++++++++++++++-
26 files changed, 229 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-6745
Fusion-Task-Lineage: 779e1517-607b-482b-83a1-0f2bb94ae736
2026-06-19 16:47:34 -07:00
gsxdsm
20597901a0
FN-6675: add GitHub close-time backfill action
...
Add a Command Center operator path to backfill exact GitHub source-issue close times.
- Add a dashboard API client for the paginated GitHub source-issue closed-at backfill endpoint.
- Add a GitHub Command Center button, progress/error/result state, and styling for manual backfills.
- Cover backfill success, empty, error, and pagination behavior with area tests and document the operator flow.
Files changed:
.../fn-6675-github-closed-at-backfill-dashboard.md | 5 +
docs/dashboard-guide.md | 4 +-
docs/storage.md | 2 +-
packages/dashboard/app/api/legacy.ts | 25 ++++
.../components/command-center/CommandCenter.css | 39 ++++++
.../components/command-center/areas/GithubArea.tsx | 117 ++++++++++++++++-
.../command-center/areas/__tests__/areas.test.tsx | 140 ++++++++++++++++++++-
7 files changed, 326 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6675
Fusion-Task-Lineage: 09e43b60-b9db-421f-a131-740a0d3164fe
2026-06-18 19:50:58 -07:00
gsxdsm
def4bd9464
FN-6499: add chat session rename controls
...
Adds regular Chat and Quick Chat rename flows backed by optimistic session title updates.
- Add rename actions to the regular Chat desktop context menu and mobile session switcher.
- Add Quick Chat session-row rename controls and show custom active titles in the panel header.
- Share PATCH title updates through chat hooks with null titles clearing custom names.
- Cover rename success, clearing, and rollback behavior in hook and component tests.
- Document the rename behavior and add a patch changeset for the published CLI bundle.
Files changed:
.changeset/chat-session-rename.md | 5 +
docs/dashboard-guide.md | 2 +
packages/dashboard/app/api/legacy.ts | 2 +-
packages/dashboard/app/components/ChatView.css | 44 ++++++++
packages/dashboard/app/components/ChatView.tsx | 111 +++++++++++++++++--
packages/dashboard/app/components/QuickChatFAB.css | 69 ++++++++++++
packages/dashboard/app/components/QuickChatFAB.tsx | 117 ++++++++++++++++++---
.../app/components/__tests__/ChatView.test.tsx | 108 +++++++++++++++++++
.../app/components/__tests__/QuickChatFAB.test.tsx | 25 +++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 108 +++++++++++++++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 109 +++++++++++++++++++
packages/dashboard/app/hooks/useChat.ts | 48 +++++++++
packages/dashboard/app/hooks/useQuickChat.ts | 50 +++++++++
13 files changed, 773 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-6499
Fusion-Task-Lineage: f9f15b02-1590-46f4-b6f5-140a9ade30eb
2026-06-16 22:44:16 -07:00
gsxdsm
daa37d08c5
feat(acp): surface bridge auth failure in the UI with fallback / fix-auth (R17)
...
When the bridged `claude` can't authenticate (detached daemon / no keychain),
the turn returns "Not logged in" instead of a real answer. Rather than silently
relay that, detect it and let the user choose.
- Driver: detect a "Not logged in"-only turn and write a cross-process signal
(fusion-acp-bridge-auth.json); a real response clears it (acp-driver test).
- Dashboard status: GET /providers/claude-cli/status reports
acp.authFailed + authReason from the signal.
- UI: the Claude CLI provider card shows an auth-failure banner with
"Use claude -p" (sets experimentalFeatures.claudeCliAcp=false) and
"I fixed auth — re-test", plus a fix hint (run `claude` to log in).
- Enable resolution now recomputes each call with an operator force-override
(FUSION_CLAUDE_ACP_FORCE), so the "Use -p" fallback takes effect on the next
turn — no restart. claude-acp-enable tests updated.
pi-claude-cli + engine tests green; dashboard typecheck clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 12:32:00 -07:00
gsxdsm
863ebfaa96
FN-6464: add CLI session relaunch route
...
Enable exhausted CLI sessions to request a fresh task-backed relaunch from the dashboard.
- Add an authenticated project-scoped relaunch endpoint for task-bound CLI sessions.\n- Wire relaunch intent through the dashboard server to clear resume linkage and re-enqueue the owning task.\n- Enable the session banner Relaunch fresh action and cover API, UI, transport, and runtime wiring behavior.\n- Document the CLI session action contract and add a published package changeset.\n\nFiles changed:\n .changeset/fn-6464-cli-relaunch-route.md | 5 ++
docs/agents.md | 4 +
packages/cli/src/commands/dashboard.ts | 2 +
packages/dashboard/app/App.tsx | 20 +++--
.../app/__tests__/app-cli-action-wiring.test.tsx | 31 +++++++-
packages/dashboard/app/api/legacy.ts | 7 ++
.../__tests__/SessionNotificationBanner.test.tsx | 52 ++++++++++---
.../src/__tests__/cli-agent-runtime-wiring.test.ts | 49 +++++++++++-
.../src/__tests__/cli-session-transport.test.ts | 36 +++++++++
.../src/__tests__/cli-sessions-routes.test.ts | 50 +++++++++++-
packages/dashboard/src/cli-session-transport.ts | 38 +++++++++
packages/dashboard/src/index.ts | 3 +-
packages/dashboard/src/routes/cli-sessions.ts | 26 ++++++-
packages/dashboard/src/server.ts | 89 ++++++++++++++++++++++
14 files changed, 390 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-6464
Fusion-Task-Lineage: f1ce171b-84a7-4893-9288-e1c8f01c3305
2026-06-15 02:30:41 -07:00
gsxdsm
e8c2d516af
FN-6386: add one-click update installation
...
Add a dashboard update action that installs available Fusion releases directly from the UI.
- Add an install-update API route backed by npm global install with bin-collision retry handling.
- Add Update now controls, loading/error/success states, and responsive styling to the update banner and settings modal.
- Extend localization, documentation, changeset coverage, and update-check tests for the new install flow.
Files changed:
.changeset/fn-6386-update-now-button.md | 5 +
docs/dashboard-guide.md | 4 +
docs/settings-reference.md | 2 +
packages/dashboard/app/api/legacy.ts | 13 ++
.../dashboard/app/components/SettingsModal.css | 38 +++++-
.../dashboard/app/components/SettingsModal.tsx | 96 ++++++++++++--
.../app/components/UpdateAvailableBanner.css | 46 +++++++
.../app/components/UpdateAvailableBanner.tsx | 103 ++++++++++++---
.../components/__tests__/SettingsModal.test.tsx | 79 +++++++++++
.../__tests__/UpdateAvailableBanner.test.tsx | 57 +++++++-
.../components/__tests__/settings-mobile.test.tsx | 19 +++
.../src/__tests__/update-check-route.test.ts | 78 ++++++++++-
.../dashboard/src/__tests__/update-check.test.ts | 45 +++++++
.../src/routes/register-update-check-routes.ts | 25 +++-
packages/dashboard/src/update-check.ts | 93 +++++++++++++
packages/i18n/locales/en/app.json | 14 +-
packages/i18n/src/resources.d.ts | 146 ++++++++++++++++++++-
17 files changed, 819 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-6386
Fusion-Task-Lineage: bcccf253-c0f1-493e-b849-b189a65d1479
2026-06-13 16:30:28 -07:00
gsxdsm
bd87ce7d7e
FN-6304: add optional workflow steps
...
Allow workflows to define default-on optional steps and expose browser verification as a togglable workflow option.
- Add core optional-step helpers, IR metadata, compiler support, exports, and regression coverage.
- Mark browser verification optional in the built-in coding workflow and document optional workflow-step behavior.
- Add dashboard/API support for optional step defaults and enabled-state presentation with localized label cleanup.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6304-optional-workflow-steps.md | 5 ++
docs/task-management.md | 2 +-
docs/workflow-steps.md | 8 ++
packages/core/src/__tests__/workflow-ir.test.ts | 45 +++++++++++
.../src/__tests__/workflow-optional-steps.test.ts | 88 ++++++++++++++++++++++
packages/core/src/builtin-coding-workflow-ir.ts | 1 +
packages/core/src/index.ts | 3 +
packages/core/src/store.ts | 3 +
packages/core/src/workflow-compiler.ts | 30 +++++++-
packages/core/src/workflow-ir-types.ts | 11 +++
packages/core/src/workflow-ir.ts | 32 +++++++-
packages/core/src/workflow-optional-steps.ts | 46 +++++++++++
packages/dashboard/app/api/legacy.ts | 10 +++
.../dashboard/app/components/InlineCreateCard.css | 20 +++++
.../dashboard/app/components/InlineCreateCard.tsx | 87 ++++++++++++++++-----
.../app/components/WorkflowResultsTab.tsx | 44 +++++++++--
.../components/__tests__/InlineCreateCard.test.tsx | 41 +++++++++-
.../__tests__/WorkflowResultsTab.test.tsx | 58 +++++++++++++-
.../src/__tests__/workflow-routes.test.ts | 22 ++++++
.../src/routes/register-workflow-routes.ts | 16 +++-
packages/i18n/locales/en/app.json | 6 +-
packages/i18n/locales/es/app.json | 3 -
packages/i18n/locales/fr/app.json | 3 -
packages/i18n/locales/ko/app.json | 3 -
packages/i18n/locales/zh-CN/app.json | 3 -
packages/i18n/locales/zh-TW/app.json | 3 -
packages/i18n/src/resources.d.ts | 6 +-
27 files changed, 543 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-6304
Fusion-Task-Lineage: 385f8ae1-494f-4e2b-a6e9-3a2d2bbe7f71
2026-06-12 17:57:19 -07:00
gsxdsm
72661faf96
FN-6305: allow title summarization for long descriptions
...
Title summarization now accepts oversized task descriptions while bounding the model prompt.
- Remove the 2000-character validation ceiling for summarize-title requests.
- Truncate long descriptions only at model-input time with a dedicated exported cap.
- Update route/API docs and tests for long-description behavior.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6305-title-summarize-any-length.md | 5 +++
packages/core/src/__tests__/ai-summarize.test.ts | 43 ++++++++++++++++++----
packages/core/src/ai-summarize.ts | 34 +++++++++++------
packages/core/src/index.ts | 1 +
packages/dashboard/app/api/legacy.ts | 2 +-
.../src/__tests__/routes-planning.test.ts | 25 +++++++++++++
packages/dashboard/src/routes.ts | 2 +-
7 files changed, 92 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6305
Fusion-Task-Lineage: 69a83173-ac85-489f-b4cc-d1a70b6d25eb
2026-06-12 13:12:55 -07:00
gsxdsm
2e48e8627a
FN-6098: add workspace file creation actions
...
Add workspace file and folder creation to the dashboard file browser.
- add dashboard API helpers and backend route support for creating workspace directories and empty files
- add New File and New Folder header actions in FileBrowser with dialog handling and responsive header styling
- cover create flows with FileBrowser and route tests and document the new browser actions
Files changed:
docs/dashboard-guide.md | 1 +
packages/dashboard/app/api/legacy.ts | 29 ++++++-
packages/dashboard/app/components/FileBrowser.css | 32 ++++++++
packages/dashboard/app/components/FileBrowser.tsx | 75 ++++++++++++++----
packages/dashboard/app/components/__tests__/FileBrowser.test.tsx | 92 ++++++++++++++++++++++
packages/dashboard/src/__tests__/routes-git.test.ts | 55 +++++++++++++
packages/dashboard/src/file-service.ts | 69 +++++++++++++++-
packages/dashboard/src/routes/README.md | 8 +-
packages/dashboard/src/routes/register-file-workspace-routes.ts | 34 +++++++-
9 files changed, 372 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6098
Fusion-Task-Lineage: 9a2a1ca1-8b5d-4e95-ba76-e7166621c898
2026-06-09 12:51:20 -07:00
gsxdsm
f8200adb71
FN-6071: add plugin registry browsing and install actions
...
Add a curated plugin registry surface to the dashboard plugin manager.
- expose GET /api/plugins/registry with search, category filtering, and installed-state annotations from the dashboard registry manifest
- add registry fetch/install support to the dashboard plugin manager UI, including search, install/manage actions, and related tests
- document plugin registry entries and registry installability in plugin authoring docs and shared concepts
Files changed:
CONCEPTS.md | 6 +
docs/PLUGIN_AUTHORING.md | 23 ++
packages/dashboard/app/api/legacy.ts | 36 +++
.../dashboard/app/components/PluginManager.css | 185 ++++++++++++++-
.../dashboard/app/components/PluginManager.tsx | 162 ++++++++++++-
.../PluginManager.install-browse.test.tsx | 5 +-
.../__tests__/PluginManager.registry.test.tsx | 260 +++++++++++++++++++++
.../components/__tests__/PluginManager.test.tsx | 3 +-
.../__tests__/PluginManager.toggle.test.tsx | 5 +-
.../src/__tests__/routes-plugin-registry.test.ts | 156 +++++++++++++
packages/dashboard/src/plugin-routes.ts | 115 +++++++++
packages/dashboard/src/registry-manifest.json | 143 ++++++++++++
12 files changed, 1091 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6071
Fusion-Task-Lineage: 72c7bdfd-5832-4323-b675-63d0680167d8
2026-06-09 04:27:53 -07:00
gsxdsm
bd5315fd4d
feat: allow disabling built-in workflows
2026-06-08 07:53:42 -07:00
gsxdsm
e1a244adf6
fix: remove unused Column import in dashboard legacy.ts
2026-06-07 23:30:16 -07:00
gsxdsm
d8e325b17e
fix: empty folder selection reverts in DirectoryPicker + add create-folder button
...
Fix bug where navigating into an empty folder in the DirectoryPicker
would automatically revert to the previous folder. The useEffect that
auto-fetches on open was using the stale 'value' prop instead of
'browser.currentPath' after navigation.
Also adds a 'New folder' button to the DirectoryPicker toolbar so users
can create folders directly when setting up a project.
- DirectoryPicker.tsx: fix useEffect to use browser.currentPath || value
- DirectoryPicker.tsx: add create folder UI state and handlers
- DirectoryPicker.css: styles for create folder input and actions
- routes.ts: add POST /api/create-directory endpoint
- legacy.ts: add createDirectory API client
- DirectoryPicker.test.tsx: add tests for empty folder nav and create folder
2026-06-06 01:32:06 -07:00
gsxdsm
1f68348441
merge: main (CLI agent interface #1446 ) — renumber workflow_settings migration to 112 behind main's cli_sessions(110)/adapter(111), full-workspace literal sweep, i18n union
2026-06-05 16:18:39 -07:00
gsxdsm
693ed6290a
Merge remote-tracking branch 'origin/main' into gsxdsm/cli-agent-interface
...
# Conflicts:
# CONCEPTS.md
# packages/core/src/__tests__/db-migrate.test.ts
# packages/core/src/__tests__/db.test.ts
# packages/core/src/__tests__/goals-schema.test.ts
# packages/core/src/__tests__/insight-store.test.ts
# packages/core/src/__tests__/merge-request-record.test.ts
# packages/core/src/__tests__/mission-store.test.ts
# packages/core/src/__tests__/run-audit.test.ts
# packages/core/src/__tests__/store-merge-queue.test.ts
# packages/core/src/__tests__/task-documents.test.ts
# packages/core/src/db.ts
# packages/dashboard/src/__tests__/agent-onboarding.test.ts
# packages/dashboard/src/__tests__/ai-refine.test.ts
# packages/dashboard/src/__tests__/chat-attachment-routes.test.ts
# packages/dashboard/src/__tests__/experiment-routes.finalize.test.ts
# packages/dashboard/src/__tests__/milestone-slice-interview.test.ts
# packages/dashboard/src/__tests__/mission-interview.test.ts
# packages/dashboard/src/__tests__/pr-metadata-generator.test.ts
# packages/dashboard/src/__tests__/project-pause-resume-routes.test.ts
# packages/dashboard/src/__tests__/routes-approval-sandbox-provisioning.test.ts
# packages/dashboard/src/__tests__/routes-approval-secrets.test.ts
# packages/dashboard/src/__tests__/routes-approval.test.ts
# packages/dashboard/src/__tests__/routes-worktrunk.test.ts
# packages/dashboard/src/__tests__/session-error-recovery.test.ts
# packages/dashboard/src/__tests__/session-persistence-roundtrip.test.ts
# packages/dashboard/src/__tests__/session-reconnect.test.ts
# packages/dashboard/src/__tests__/session-resume-history.test.ts
# packages/dashboard/src/__tests__/setup-routes.test.ts
# packages/dashboard/src/__tests__/subtask-breakdown.test.ts
# packages/dashboard/src/routes/__tests__/agent-avatar-routes.test.ts
# packages/dashboard/src/routes/__tests__/custom-providers.test.ts
# packages/dashboard/src/routes/__tests__/docker-node-routes.test.ts
# packages/i18n/locales/en/app.json
# plugins/fusion-plugin-roadmap/src/store/__tests__/roadmap-store.test.ts
2026-06-05 15:30:59 -07:00
gsxdsm
6d16c07197
merge: main (editor consolidation #1433 , fast-tests, learnings) — renumber workflow_settings migration to 110, settings panel joins the sidebar disclosures, full-workspace literal sweep
2026-06-05 15:23:15 -07:00
gsxdsm
6c9a81a05f
fix(review): apply autofix feedback
2026-06-05 01:53:42 -07:00
gsxdsm
e10db81393
feat(dashboard): cli-agent terminal UI, task-card states, and notification banner support (U11)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 01:16:13 -07:00
gsxdsm
62c820bf99
feat(dashboard): design-with-AI affordances in the workflow editor
2026-06-05 00:32:38 -07:00
gsxdsm
ef33d79e78
feat(core,dashboard): workflow-centric task creation with atomic workflowId materialization
2026-06-04 23:47:24 -07:00
gsxdsm
407ce03bf2
feat(dashboard): workflow and template JSON import/export with trust-boundary stripping
2026-06-04 23:16:46 -07:00
gsxdsm
9089e18705
feat(dashboard): WorkflowSettingsPanel — definitions/values tabs, setting-value routes, flow-mapping round-trip
2026-06-04 22:57:01 -07:00
gsxdsm
d8ff8db759
feat(core,dashboard): lazy idempotent legacy-step migration into workflow templates
2026-06-04 22:33:25 -07:00
gsxdsm
6f7f6860be
fix: address PR review feedback ( #1424 )
...
- restore customFields on unarchive; reconcile all occupants on field-schema edits (store.ts)
- serialize per-field saves + controlled inputs in TaskFieldsSection (race fixes)
- fn_workflow_get includes layout; Array.isArray guards in validateCodeNodeSources
- per-instance graphStepActiveContext keying; rebase in instance worktree; clear run-once memo on RETHINK
- GET /api/step-parsers + registry-backed parser select (plugin parsers reachable from editor)
- translate new workflowNodes/workflowFields strings across all 5 non-en locales
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 16:16:50 -07:00
gsxdsm
3ebaa321f8
fix(review): apply code-review fixes — runId/foreachNodeId wiring, worktree-leak cleanup, rework re-execution, instance pruning, SIGKILL fallback, type dedup, board memo split, agent-native field-schema context + fn_workflow_get
...
17 findings from 12-reviewer code review applied:
- P1 runId trio (pin-probe/resume/markIntegrated used placeholder runId; 4-reviewer corroboration) + production-wiring tests
- P1 worktree/branch release on instance failure/exhaustion/abort
- P2 runGraphTaskStep no longer masks step-session failures; rejected memo cleared so rework re-executes
- P2 clearStaleInstanceStates wired at run start/end (mirrors branch pruning)
- P2 code-node timeout killSignal SIGKILL; dead template-recursion removed
- P1/P2 field-type re-declarations replaced with @fusion/core imports (stale comments removed)
- P2 Board memo split + TaskCard comparator stringify guard + modal prop-driven field defs
- HIGH agent-native: executor prompt injects custom-field schema/values; self-correcting rejection text; fn_workflow_get; fn_task_update bare-call guard; integration-conflict task log
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 14:01:55 -07:00
gsxdsm
5fa5740afc
feat(dashboard,cli): U13 — schema-driven task fields UI (TaskFieldsSection, card badges, PATCH route, board-workflows fields payload, TUI chips)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:26:05 -07:00
gsxdsm
30e2fd7b09
fix(review): apply autofix feedback
2026-06-04 02:50:54 -07:00
gsxdsm
e5a0a199ea
feat(dashboard): node editor authors columns, traits, hold and split/join nodes with inline validation (U10)
2026-06-04 01:46:51 -07:00
gsxdsm
8891d4b90a
FN-5950: add Create PR branch-push remediation
...
Add in-app preflight remediation so Create PR can push task branches without leaving Fusion.
- add a dashboard API route and client helper to push the task branch to origin and recompute PR preflight state
- update the Create Pull Request modal, styles, and tests to surface push-branch remediation alongside AI conflict resolution
- document the flow and add a published CLI changeset plus server coverage for the new push-branch endpoint
Files changed:
.changeset/fn-5950-pr-push-branch.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/api/legacy.ts | 19 +++
packages/dashboard/app/components/PrCreateModal.css | 4 +-
packages/dashboard/app/components/PrCreateModal.tsx | 48 +++++-
packages/dashboard/app/components/__tests__/PrCreateModal.test.tsx | 44 ++++++
packages/dashboard/src/__tests__/register-git-github.pr-push-branch.test.ts | 176 +++++++++++++++++++++
packages/dashboard/src/routes/register-git-github.ts | 68 ++++++++
8 files changed, 362 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-5950
Fusion-Task-Lineage: 5a6c5c6a-8f99-44c0-8f54-f0a6ff537ed0
2026-06-03 22:31:23 -07:00
gsxdsm
759e2e67af
Merge remote-tracking branch 'origin/main' into gsxdsm/workflowbuilder
2026-06-03 19:52:37 -07:00
gsxdsm
46f525bd28
Merge main: reconcile duplicate pausedReason persistence fix + dashboard deps
...
Main independently landed the same pausedReason persistence fix (column in
the task INSERT/upsert, TaskRow type, rowToTask mapping) with the column
ordered between paused and userPaused; adopt main's ordering and drop this
branch's duplicate entries so the values array stays aligned. Union the
dashboard package.json deps (main's compound-engineering plugin alongside
this branch's sorted pi-coding-agent/cli-printing-press/cursor-runtime).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 16:37:18 -07:00
gsxdsm
d1cd8b6ed8
merge main: unify CONCEPTS.md vocabularies and reconcile core exports
...
Both sides bootstrapped CONCEPTS.md — kept main's broader structure (Missions,
Merge lifecycle, CE sessions) and folded the branch-group vocabulary into its
Merge-lifecycle cluster (enriched Shared branch group + Self-healing sweep;
added Branch assignment mode, Landed, Group promotion). Union-merged core
index/store imports; took main's AGENTS.md discoverability wording. Also adds
execFile to the two child_process test mocks that only stubbed exec (the
coordinator's argv-based git calls now require it).
2026-06-03 15:57:41 -07:00
gsxdsm
8aed4da764
FN-5949: add AI PR conflict resolution to Create PR flow
...
Add dashboard support for resolving task-branch PR conflicts with AI before PR creation.
- add a dashboard PR conflict resolver that merges the selected base into the task branch, invokes an AI merge session on conflicted files, verifies markers are removed, then commits and pushes the updated branch
- expose a POST /tasks/:id/pr/resolve-conflicts route plus client API/export wiring, docs updates, and a changeset for the published CLI package
- update the Create PR modal UI, styling, and tests to surface preflight conflicts, trigger AI resolution, and refresh preflight state after success
- add API coverage for successful and unresolved conflict-resolution paths and include the new route test in the dashboard API quality shard
Files changed:
.changeset/fn-5949-pr-conflict-resolution.md | 5 +
docs/dashboard-guide.md | 1 +
docs/task-management.md | 1 +
packages/dashboard/README.md | 1 +
packages/dashboard/app/api/legacy.ts | 20 ++
.../dashboard/app/components/PrCreateModal.css | 32 ++-
.../dashboard/app/components/PrCreateModal.tsx | 46 ++++
.../components/__tests__/PrCreateModal.test.tsx | 33 +++
...egister-git-github.pr-resolve-conflicts.test.ts | 186 +++++++++++++++
packages/dashboard/src/index.ts | 5 +
packages/dashboard/src/pr-conflict-resolver.ts | 258 +++++++++++++++++++++
.../dashboard/src/routes/register-git-github.ts | 225 ++++++++++++------
packages/dashboard/vitest.config.ts | 2 +-
13 files changed, 739 insertions(+), 76 deletions(-)
Fusion-Task-Id: FN-5949
Fusion-Task-Lineage: fea35fbf-6254-415c-83cc-0bc24abc911e
2026-06-03 15:32:29 -07:00
gsxdsm
ddde3c5b57
feat(engine,core,api): CLI nodes run arbitrary commands with trust-on-first-use approval
...
CLI prompt nodes now accept a raw cliCommand (any command + args), not just
named scripts. A raw command must be explicitly approved by the user before it
runs: an unapproved command pauses the task (status awaiting-cli-approval) with
the command shown; the user approves via POST /tasks/:id/workflow/approve-cli,
which records the exact command string in settings.approvedWorkflowCliCommands
and resumes. Named scripts (settings.scripts) still never require approval.
Adds POST /tasks/:id/workflow/input to answer await-input nodes (records a
steering comment + resumes).
2026-06-03 13:44:13 -07:00
gsxdsm
9512e98330
feat(FN-branch-group): surface group PR controls in dashboard + CLI (U7)
...
Extend BranchGroupCard/GroupTaskModal with an Abandon action (open PRs) and
terminal merged/closed badges; promote stays completion-gated. New
fn branch-group list|show|promote (alias fn bg) reaching the same coordinator
path with createGroupPrCallback wired — agent-native parity with the dashboard
promote flow, same completion-gate rejection.
2026-06-03 10:31:18 -07:00
gsxdsm
07a0a0c68f
feat(dashboard): surface workflow selection on tasks and project settings (U8)
...
Add WorkflowSelector: a per-task picker in the task detail workflow tab that
applies a workflow (selection returns the resulting enabledWorkflowSteps so the
controlled steps list refreshes in place), and a ProjectDefaultWorkflowField in
Project General settings for the default new tasks inherit.
2026-06-03 09:51:26 -07:00
gsxdsm
80470155eb
feat(dashboard): workflow API client functions (U5)
...
Add fetch/create/update/delete/compile workflow client wrappers plus
select/fetch task workflow and get/set project default, mirroring the existing
WorkflowStep client conventions (api/withProjectId/dedupe).
2026-06-03 09:35:24 -07:00
gsxdsm
0971eced30
FN-5920: prefer mission detail event count for activity tab
...
Use mission detail event counts as the authoritative pre-load source for mission activity.
- add mission hierarchy eventCount support in core and dashboard mission types
- return mission eventCount from mission detail APIs and document the field
- prefer the detail eventCount over stale list summaries before activity events load
- add coverage for store, API, and MissionManager pre-load count behavior
Files changed:
docs/missions.md | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 18 +++++++++
packages/core/src/mission-store.ts | 6 +++
packages/core/src/mission-types.ts | 2 +
packages/dashboard/app/api/legacy.ts | 2 +
packages/dashboard/app/components/MissionManager.tsx | 12 +++++-
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 46 +++++++++++++++++++++-
packages/dashboard/app/components/mission-types.ts | 1 +
packages/dashboard/src/__tests__/mission-e2e.test.ts | 2 +
9 files changed, 86 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-5920
Fusion-Task-Lineage: a0269499-d34a-495d-89fc-0534bb62a94e
2026-06-02 23:47:32 -07:00
gsxdsm
a411b8a7e0
FN-5914: fix mission activity counts and chronology
...
Keep mission activity counts accurate before event data loads and show events in chronological order.
- add persisted mission event counts to core mission summaries and dashboard mission summary types
- use the summary event count for the Activity tab preload badge instead of the currently loaded page total
- render mission activity oldest-to-newest, keep load-more prepends stable, and scroll to the latest event on initial/live updates
- extend mission store, dashboard, and MissionManager tests for event count and ordering coverage
Files changed:
packages/core/src/__tests__/mission-store.test.ts | 19 ++++
packages/core/src/mission-store.ts | 24 ++++-
packages/dashboard/app/api/legacy.ts | 2 +
.../dashboard/app/components/MissionManager.tsx | 19 ++--
.../components/__tests__/MissionManager.test.tsx | 107 ++++++++++++++++-----
packages/dashboard/app/components/mission-types.ts | 1 +
.../dashboard/src/__tests__/mission-e2e.test.ts | 7 +-
7 files changed, 143 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-5914
Fusion-Task-Lineage: b3119e94-66bd-437d-bcde-d5e4e43cb29e
2026-06-02 19:28:01 -07:00
gsxdsm
5c4c765134
FN-5904: feat(FN-5904): add browse-and-install flow for skills.sh catalog in Skills view
...
Add end-to-end browse-and-install flow for skills.sh catalog entries in the dashboard Skills view, enabling users to install skills directly from the catalog UI.
- Add POST /api/skills/install route with source validation and scoped project cwd
- Add installSkill method to SkillsAdapter using supervised npx skills add spawn
- Add installSkill client API function and Install button on catalog cards
- Refresh discovered skills list automatically after successful install
- Handle install errors with structured error codes (invalid_source, install_failed, install_timeout, spawn_error)
- Add card header layout with install button, disabled state, and loading spinner
- Add comprehensive tests: adapter unit tests, route integration tests, component tests
- Add changeset for @runfusion/fusion minor bump
- Update dashboard-guide.md with install endpoint documentation
Files changed:
.changeset/four-oranges-film.md | 5 +
docs/dashboard-guide.md | 45 +++++++
packages/dashboard/app/__tests__/api-skills.test.ts | 46 +++++++
packages/dashboard/app/api/legacy.ts | 12 ++
packages/dashboard/app/components/SkillsView.css | 16 +++
packages/dashboard/app/components/SkillsView.tsx | 83 +++++++++---
packages/dashboard/app/components/__tests__/SkillsView.test.tsx | 72 +++++++++++
packages/dashboard/src/__tests__/routes-skills.test.ts | 67 ++++++++++
packages/dashboard/src/__tests__/skills-adapter.test.ts | 113 ++++++++++++++++
packages/dashboard/src/routes/__tests__/register-agent-skills-routes.test.ts | 144 +++++++++++++++++++++
packages/dashboard/src/routes/register-agent-skills-routes.ts | 51 ++++++++
packages/dashboard/src/skills-adapter.ts | 103 +++++++++++++++
12 files changed, 736 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-5904
Fusion-Task-Lineage: 338d53e3-baba-4c6c-9173-8e214242403c
2026-06-02 18:29:53 -07:00