gsxdsm
013d50fe8b
FN-7206: add Anthropic API-key authentication
...
Add Anthropic API-key authentication alongside the existing OAuth flow.
- Expose Anthropic as a built-in API-key provider without hiding its OAuth controls.
- Render dual-auth Anthropic cards in Settings and model onboarding with key hints, save, and clear actions.
- Cover API status, CLI provider classification, desktop/mobile settings, and onboarding flows with tests and docs.
Files changed:
.changeset/fn-7206-anthropic-api-key.md | 7 +
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 4 +
.../src/commands/__tests__/provider-auth.test.ts | 51 ++++---
packages/cli/src/commands/provider-auth.ts | 10 +-
packages/dashboard/app/api/legacy.ts | 2 +
.../app/components/ModelOnboardingModal.tsx | 121 +++++++++++++++-
.../__tests__/AuthenticationSection.test.tsx | 141 +++++++++++++++++++
.../__tests__/SettingsModal.models-auth.test.tsx | 51 +++++++
.../__tests__/SettingsModal.test-harness.tsx | 2 +
.../components/__tests__/onboarding-flow.test.tsx | 28 ++++
.../components/__tests__/settings-mobile.test.tsx | 16 ++-
.../settings/sections/AuthenticationSection.tsx | 153 ++++++++++-----------
.../dashboard/src/__tests__/routes-auth.test.ts | 70 ++++++++++
.../dashboard/src/routes/register-auth-routes.ts | 17 ++-
15 files changed, 569 insertions(+), 106 deletions(-)
Fusion-Task-Id: FN-7206
Fusion-Task-Lineage: 3559b7ea-47c6-4f8c-9aa1-5318f47ce07e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 17:03:11 -07:00
gsxdsm
9050ee1a42
FN-7185: add PR feedback addressing action
...
Add a dashboard action that starts an AI pass for actionable pull-request review feedback.
- Add a lifecycle route that validates linked PR tasks, seeds a ce-resolve-pr-feedback steering prompt, returns in-review tasks to active work, and wakes assigned agents when needed.
- Add shared PR feedback gating plus task-card and Review tab buttons with loading states, toasts, styling, docs, and translations.
- Cover the route, API client, task card, and Review tab behavior with regression tests.
Files changed:
.changeset/fn-7185-address-pr-feedback.md | 7 +
docs/dashboard-guide.md | 1 +
packages/dashboard/app/__tests__/api-tasks.test.ts | 12 ++
packages/dashboard/app/api/legacy.ts | 11 ++
packages/dashboard/app/components/TaskCard.css | 7 +-
packages/dashboard/app/components/TaskCard.tsx | 44 +++++-
.../dashboard/app/components/TaskReviewTab.tsx | 41 ++++-
.../app/components/__tests__/TaskCard.test.tsx | 164 +++++++++++++++++++-
.../components/__tests__/TaskReviewTab.test.tsx | 127 ++++++++++++++++
packages/dashboard/app/utils/prFeedback.ts | 22 +++
.../dashboard/src/__tests__/routes-tasks.test.ts | 165 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 67 +++++++++
packages/i18n/locales/en/app.json | 10 ++
packages/i18n/locales/es/app.json | 22 ++-
packages/i18n/locales/fr/app.json | 22 ++-
packages/i18n/locales/ko/app.json | 22 ++-
packages/i18n/locales/zh-CN/app.json | 22 ++-
packages/i18n/locales/zh-TW/app.json | 22 ++-
18 files changed, 764 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-7185
Fusion-Task-Lineage: b2e98163-4fc6-45c9-8ace-a14eeb096e10
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 02:04:31 -07:00
gsxdsm
0956214009
FN-7184: render pull request review context
...
Render pull-request review details in the task Review tab so PR-backed tasks show actionable context.\n\n- Preserve PR review metadata when mapping legacy review API data.\n- Show PR reviewers, checks, blocking reasons, comment state, author, path, and GitHub links.\n- Add responsive Review-tab styles and coverage for empty, partial, and populated PR review states.\n\nFiles changed:\n packages/dashboard/app/api/legacy.ts | 51 ++++++--\n .../dashboard/app/components/TaskReviewTab.css | 101 +++++++++++++++\n .../dashboard/app/components/TaskReviewTab.tsx | 94 +++++++++++++-\n .../components/__tests__/TaskReviewTab.test.tsx | 143 ++++++++++++++++++++-\n 4 files changed, 368 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-7184
Fusion-Task-Lineage: 59680355-1afa-44e1-b5e1-33e26335a2c8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 00:02:24 -07:00
gsxdsm
59803c243d
FN-7123: use workflow settings for task models
...
Task model displays now resolve task-scoped workflow settings consistently with execution.
- Add a shared workflow settings overlay helper for stored workflow values and declaration defaults.
- Expose task effective settings through the dashboard API and consume them in TaskDetail model surfaces.
- Cover core overlay behavior, route output, and Workflow tab model rendering with regression tests.
- Document workflow model lane precedence and add a published package changeset.
Files changed:
.changeset/fn-7123-workflow-tab-project-model.md | 7 ++
docs/settings-reference.md | 14 ++-
.../__tests__/effective-settings-overlay.test.ts | 70 ++++++++++++++
packages/core/src/effective-settings-overlay.ts | 27 ++++++
packages/core/src/index.ts | 4 +
packages/dashboard/app/api/legacy.ts | 5 +
.../dashboard/app/components/TaskDetailModal.tsx | 13 ++-
...skDetailModal.models-progress-workflow.test.tsx | 46 +++++++++
.../__tests__/TaskDetailModal.test-helpers.ts | 1 +
.../__tests__/WorkflowResultsTab.test.tsx | 33 +++++++
packages/dashboard/app/test/mockApi.ts | 9 ++
.../task-effective-settings-route.test.ts | 107 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 21 ++++
packages/engine/src/effective-settings.ts | 25 ++---
14 files changed, 355 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-7123
Fusion-Task-Lineage: 5fa9d338-c886-44aa-bdba-0d361b3602d5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:20:42 -07:00
gsxdsm
7137e36ccb
FN-7073: serve file previews inline
...
File viewer previews now request inline-safe responses while downloads remain attachments.
- Add an inline preview query option to file download URL helpers and preview consumers.
- Serve known media and PDF preview extensions with real MIME types, inline disposition, nosniff, and sandbox CSP headers.
- Keep explicit downloads and unknown file types on attachment/octet-stream behavior.
- Cover preview and download header behavior with dashboard route and component tests.
Files changed:
.changeset/fn-7073-file-viewer-inline-preview.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/api/legacy.ts | 9 +-
.../dashboard/app/components/DockFilesView.tsx | 2 +-
.../dashboard/app/components/FileBrowserModal.tsx | 2 +-
.../components/__tests__/DockFilesView.test.tsx | 14 +-
.../components/__tests__/FileBrowserModal.test.tsx | 12 +-
.../register-file-workspace-routes.test.ts | 141 +++++++++++++++++++++
.../src/routes/register-file-workspace-routes.ts | 111 +++++++++++-----
9 files changed, 260 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-7073
Fusion-Task-Lineage: 922b4aa4-ac6d-4a59-b94f-bab4eeb65530
2026-06-26 14:33:58 -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
8131d541ca
FN-7038: add live automation run output
...
Add configurable automation tool access with live manual-run streaming for schedules and routines.
- Add an automation tool allowlist model and dashboard selectors for AI prompt steps.
- Stream manual automation and routine run progress, output, step updates, and tool events over SSE.
- Surface live run transcripts in automation/routine cards and document the operator workflow.
- Cover validation, runner callbacks, API streaming, and UI behavior with targeted tests.
Files changed:
.changeset/fn-7038-automation-tools-live-output.md | 7 +
docs/dashboard-guide.md | 9 +
packages/core/src/__tests__/automation.test.ts | 27 +-
packages/core/src/automation.ts | 18 +
packages/core/src/index.ts | 4 +-
packages/core/src/types.ts | 6 +
packages/dashboard/app/api/legacy.ts | 48 +++
packages/dashboard/app/components/RoutineCard.tsx | 16 +-
packages/dashboard/app/components/ScheduleForm.tsx | 53 ++-
.../app/components/ScheduleStepsEditor.tsx | 49 ++-
.../app/components/ScheduledTasksModal.tsx | 72 +++-
packages/dashboard/app/components/ScriptsModal.css | 79 ++++
.../app/components/__tests__/RoutineCard.test.tsx | 45 +++
.../app/components/__tests__/ScheduleForm.test.tsx | 100 +++++-
.../__tests__/ScheduleStepsEditor.test.tsx | 67 +++-
.../__tests__/ScheduledTasksModal.test.tsx | 36 +-
.../src/__tests__/routes-automation.test.ts | 151 +++++++-
packages/dashboard/src/routes.ts | 400 ++++++++++++++++++++-
packages/dashboard/src/server.ts | 7 +-
packages/engine/src/__tests__/cron-runner.test.ts | 56 ++-
.../src/__tests__/pi-create-fn-agent.test.ts | 44 +++
.../engine/src/__tests__/routine-runner.test.ts | 28 ++
packages/engine/src/cron-runner.ts | 20 +-
packages/engine/src/pi.ts | 32 +-
packages/engine/src/routine-runner.ts | 39 +-
packages/i18n/locales/en/app.json | 9 +
packages/i18n/src/resources.d.ts | 21 ++
27 files changed, 1374 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-7038
Fusion-Task-Lineage: 7f5871d0-1de0-4d22-a9c9-ee9418658677
2026-06-26 02:45:29 -07:00
gsxdsm
347842faca
refactor(FN-7039): drop the legacy workflow_steps table; remove all table readers
...
Final cutover — nothing reads workflow_steps at runtime, so migration 131 drops it.
- Removed the merger post-merge execution path entirely (runPostMergeWorkflowSteps,
hasEnabledPostMergeWorkflowSteps, executePostMerge{Prompt,Script}Step, post-merge
worktree helpers + call site). Graph owns post-merge.
- Executor recovery no longer reads getWorkflowStep().gateMode; gate-ness comes from the
recorded WorkflowStepResult.status.
- Removed store CRUD (create/update/deleteWorkflowStep), materializeWorkflowSteps, and
migrateLegacyWorkflowSteps; selectTaskWorkflow now seeds default-on optional-group node
ids (consistent with create-time). KEPT the plugin step-template palette (getWorkflowStep
plugin-only resolver / listWorkflowSteps plugin-only) — never touches the table.
Removed the dashboard migrate-legacy-steps route + editor migration UI.
- SCHEMA_VERSION 130→131; migration 131 DROP TABLE IF EXISTS workflow_steps; SCHEMA_SQL
table def removed; historical migrations 77/105/109/130 guarded with tableExists().
Proof nothing stranded: the graph executes IR nodes resolved from workflowId (never
stepIds/compiled rows) — materializeWorkflowSteps writes were vestigial. Full @fusion/core
suite (6290), reliability backstop (154), boot smoke, and a seed-at-130 drop test all pass
with the table gone.
Plan U7c.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 02:29:32 -07:00
gsxdsm
a7eb3c4dd8
refactor(FN-7039): delete WORKFLOW_STEP_TEMPLATES + legacy workflow-step management surface
...
U6: delete the built-in WORKFLOW_STEP_TEMPLATES catalog + its materializer
(getBuiltInWorkflowTemplate/ensureWorkflowStepForTemplate/toBuiltInWorkflowStep);
inline the browser-verification + code-review name/prompt/toolMode/gateMode into
their optional-group IR builders (node bytes unchanged); simplify
resolveEnabledWorkflowSteps to an identity-stable pass-through (no materialization,
so the optionalGroupIdSet collision guard is no longer needed). Plugin-contributed
step templates are kept as the editor palette.
U5: remove the legacy /api/workflow-steps REST surface (GET/POST/PATCH/DELETE +
/refine + /workflow-step-templates/:id/create), the dead client fns, and the
Settings management UI; GET /api/workflow-step-templates now serves plugin
templates only. The create-time optional-step toggles remain.
Scope: the workflow_steps store CRUD + table are intentionally KEPT — still consumed
by the engine (merger/recovery) and needed by U7's migration; their removal + the
table drop land in U7.
Plan U5 + U6.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 00:06:31 -07:00
gsxdsm
a0954c7f27
FN-6975: make mission planning modal movable and resilient
...
Make the AI mission planning workspace movable on desktop and safer when streams fail.
- Host the Plan Mission with AI modal in FloatingWindow with desktop drag/resize geometry and mobile full-screen preservation.
- Normalize terminal mission interview stream failures, close SSE/keepalive once, and suppress duplicate late terminal events.
- Cover modal geometry and stream-error behavior with dashboard tests and document the operator-facing behavior.
Files changed:
.changeset/fn-6975-mission-modal-stream.md | 7 ++
docs/dashboard-guide.md | 7 ++
.../api/__tests__/mission-interview-stream.test.ts | 98 ++++++++++++++++++
packages/dashboard/app/api/legacy.ts | 66 ++++++++++---
.../app/components/MissionInterviewModal.css | 51 ++++++++++
.../app/components/MissionInterviewModal.tsx | 37 ++++---
.../__tests__/MissionInterviewModal.test.tsx | 110 ++++++++++++++++++++-
7 files changed, 344 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6975
Fusion-Task-Lineage: b2ffa558-8b7e-4a46-8882-f2c4f6189831
2026-06-25 16:31:10 -07:00
gsxdsm
e46ea00ff5
FN-6827: add engine status banner
...
Add project-scoped engine connectivity remediation to the dashboard.
- Add engine status/start API helpers and server routes that can resume paused projects or start missing engines.
- Render a project banner with dashboard-only guidance, polling, disabled starting state, localized copy, and focused tests.
- Document the engine status banner behavior and add a changeset for the published CLI package.
Files changed:
.changeset/fn-6827-engine-disconnected-banner.md | 7 +
docs/dashboard-guide.md | 8 +
packages/dashboard/app/api/legacy.ts | 20 +++
.../app/components/EngineStatusBanner.css | 87 +++++++++++
.../app/components/EngineStatusBanner.tsx | 62 ++++++++
.../__tests__/EngineStatusBanner.test.tsx | 145 +++++++++++++++++
.../app/components/dashboard/DashboardBanners.tsx | 3 +
.../app/hooks/__tests__/useEngineStatus.test.ts | 171 +++++++++++++++++++++
packages/dashboard/app/hooks/useEngineStatus.ts | 111 +++++++++++++
packages/dashboard/src/__tests__/server.test.ts | 129 ++++++++++++++++
packages/dashboard/src/server.ts | 89 +++++++++++
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, 892 insertions(+)
Fusion-Task-Id: FN-6827
Fusion-Task-Lineage: 56821ca3-04c8-4674-9400-3639f10e463d
2026-06-25 08:35:44 -07:00
gsxdsm
6df4043059
FN-6942: preserve mission workflow selection
...
Missions now carries the selected header workflow through feature and slice triage so created tasks land in the intended lane.
- Add a reusable header workflow switcher slot and share it between Planning and Missions.
- Thread the selected workflow through mission triage UI, API client calls, routes, and MissionStore task creation.
- Cover mission workflow triage behavior with core, dashboard UI, and route tests.
- Document Missions workflow behavior and add a patch changeset.
Files changed:
.changeset/fn-6942-mission-workflow-selection.md | 7 +
docs/dashboard-guide.md | 11 ++
packages/core/src/__tests__/mission-store.test.ts | 114 ++++++++++++
packages/core/src/mission-store.ts | 8 +
packages/dashboard/app/api/legacy.ts | 10 +-
.../app/components/HeaderWorkflowSwitcherSlot.tsx | 99 +++++++++++
.../dashboard/app/components/MissionManager.tsx | 23 ++-
.../components/PlanningWorkflowSwitcherSlot.tsx | 81 +--------
.../__tests__/HeaderWorkflowSwitcherSlot.test.tsx | 124 +++++++++++++
.../MissionManager.workflow-triage.test.tsx | 191 +++++++++++++++++++++
.../app/components/dashboard/MainContent.tsx | 15 +-
packages/dashboard/src/mission-routes.ts | 21 ++-
.../mission-workflow-triage-route.test.ts | 149 ++++++++++++++++
13 files changed, 765 insertions(+), 88 deletions(-)
Fusion-Task-Id: FN-6942
Fusion-Task-Lineage: 53d7b2ea-01cc-4eb6-bdda-988fb684602c
2026-06-25 08:35:44 -07:00
Phil Larson
8cc5fd895e
feat(FN-783): add supported overlap blocker repair API
2026-06-25 03:44:23 -07:00
gsxdsm
28ceca2cbd
Address PR review feedback ( #1747 )
...
- core/store: include workspaceWorktrees in the slim and activity-log-limited
SELECT lists (rowToTask reads it, but the explicit column lists omitted it, so
slim/limited reads dropped the field and could misclassify workspace tasks);
add regression tests for both read surfaces
- dashboard/register-git-github: validate caller-supplied repoPath in resolveGitDir
via isPathWithin containment check (path-traversal hardening for all git
endpoints); make loadWorkspaceConfig a static @fusion/core import per AGENTS.md
- dashboard/legacy: preserve repoPath in the string-form pullBranch overload
- dashboard/GitManagerModal: revalidate selectedRepo against the fetched repo list
so a stale selection can't persist across project switches
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 15:43:12 -07:00
gsxdsm
be2866ee66
feat(git-manager): multi-repo workspace support with repo selector
...
- Add GET /api/git/workspace-repos endpoint returning sub-repo list
- Add resolveGitDir() helper: resolves repoPath query param to sub-repo dir
- Update all 34 git endpoints to use resolveGitDir for workspace targeting
- Add repoPath param to 30+ frontend git API functions
- GitManagerModal: auto-detect workspace repos on mount, show repo selector
dropdown at top of sidebar, pass selected repo to all git API calls
- Auto-select first repo when workspace mode is detected
- Repo change triggers data refetch via gitRepoPath dependency
2026-06-24 15:02:12 -07:00
gsxdsm
9e7c85d221
feat(dashboard): workspace detection + task prefix in import wizard
...
- Add POST /api/projects/detect-workspace endpoint for sub-repo scanning
- Modify POST /api/projects to accept workspaceMode + taskPrefix params
- SetupWizardModal: auto-detect sub-repos when path is entered, show
workspace mode checkbox with detected repo count, add task prefix field
auto-derived from project name
- Wire workspaceMode and taskPrefix through registration API call
2026-06-24 14:08:32 -07:00
gsxdsm
90cba95bdd
FN-6933: show stopped engine state in footer
...
Show the dashboard footer when the global AI engine stop control is active.
- Add a stopped executor state derived from globalPause and expose it through the legacy API types.
- Render Stopped with error-red styling and a stop-rectangle icon in the executor status bar.
- Cover stopped state derivation, footer rendering, API responses, and localized labels.
Files changed:
.../dashboard/app/__tests__/api-projects.test.ts | 3 ++-
packages/dashboard/app/api/legacy.ts | 14 +++++++----
.../dashboard/app/components/ExecutorStatusBar.tsx | 11 ++++++---
.../__tests__/ExecutorStatusBar.test.tsx | 27 ++++++++++++++++++++++
.../app/hooks/__tests__/useExecutorStats.test.ts | 22 ++++++++++++++++--
packages/dashboard/app/hooks/useExecutorStats.ts | 10 +++++---
packages/i18n/locales/en/app.json | 1 +
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, 85 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6933
Fusion-Task-Lineage: 1f128b36-105a-4133-87ce-75bb8df8a42f
2026-06-23 00:45:00 -07:00
gsxdsm
a1cac3a6a3
fix(dashboard): replace quick chat with modal chat
2026-06-22 15:23:43 -07:00
gsxdsm
5697d2c98b
feat(dashboard): Skills detail renders SKILL.md as markdown + compact file browser
...
SKILL.md now renders via MailboxMessageContent (markdown + sanitized HTML + mermaid) instead of raw <pre>. Files strip is compact and lists all files; clicking a file loads its content in the detail pane (markdown via MailboxMessageContent, other text via <pre>, binary/oversized notice) with a Back-to-SKILL.md affordance. New GET /api/skills/:id/file endpoint (readSkillFileContent: path-traversal-guarded, 2MB ceiling, binary detection) + fetchSkillFileContent client fn.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 11:49:52 -07:00
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