Commit Graph

10435 Commits

Author SHA1 Message Date
gsxdsm
a65633d878 FN-7368: keep accepted chat sends visible after provider errors
Preserve sent chat turns when provider failures arrive after the server accepts a stream.

- Track whether chat stream errors happen before or after server acceptance.
- Reconcile persisted user-message echoes with optimistic bubbles across global chat and planner chat.
- Preserve delivered room-chat messages when reply generation or recovery refresh fails.
- Cover accepted-error and pre-acceptance rollback behavior with focused dashboard tests.

Files changed:
 .changeset/fn-7368-chat-provider-error.md          |  7 ++
 packages/dashboard/app/api/legacy.ts               | 25 ++++--
 .../app/components/TaskPlannerChatTab.tsx          | 47 ++++++++++-
 .../__tests__/TaskPlannerChatTab.test.tsx          | 71 ++++++++++++++++
 .../dashboard/app/hooks/__tests__/useChat.test.ts  | 96 ++++++++++++++++++++++
 .../app/hooks/__tests__/useChatRooms.test.ts       | 25 ++++++
 .../app/hooks/createChatStreamHandlers.ts          | 10 +--
 packages/dashboard/app/hooks/useChat.ts            | 48 ++++++++---
 packages/dashboard/app/hooks/useChatRooms.ts       |  5 +-
 9 files changed, 305 insertions(+), 29 deletions(-)

Fusion-Task-Id: FN-7368

Fusion-Task-Lineage: b7935c3f-3604-4ed5-b32e-a6ead536a991

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:50:52 -07:00
gsxdsm
f04f01db1d FN-7362: Fix board task context menu clipping
Render Board task context menus as viewport overlays so column clipping no longer hides actions.

- Portal TaskCard context menus to document.body and position them with viewport coordinates.
- Clamp context menus after render and close them when the task identity or column changes.
- Update TaskCard coverage for overflow escape, keyboard/touch placement, and menu lifecycle behavior.
- Document the overlay behavior and add a patch changeset for @runfusion/fusion.

Files changed:
 .changeset/fn-7362-board-context-menu-overlay.md   |   7 +
 docs/dashboard-guide.md                            |   5 +-
 packages/dashboard/app/components/TaskCard.css     |   6 +-
 packages/dashboard/app/components/TaskCard.tsx     |  38 ++--
 .../app/components/__tests__/TaskCard.test.tsx     | 242 ++++++++++++++++-----
 5 files changed, 211 insertions(+), 87 deletions(-)

Fusion-Task-Id: FN-7362

Fusion-Task-Lineage: 8f2fc0b1-ad63-402e-a960-6a09cbe9c893

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:57 -07:00
gsxdsm
98ca9ac090 FN-7353: fix mobile task menu action taps
Fix task context menu touch activation so mobile popup actions complete reliably.

- Commit touch and pen menu actions on pointer release while preserving mouse click activation.
- Guard synthesized mobile clicks so each selected task action runs exactly once and closes the menu.
- Cover Board, List, shared context menu, and Task Detail mobile popup action selection in tests and docs.
- Add a patch changeset for the published CLI bundle.

Files changed:
 .changeset/fn-7353-mobile-popup-context-menu.md    |  7 ++++
 docs/dashboard-guide.md                            | 12 ++++---
 .../dashboard/app/components/TaskContextMenu.tsx   | 41 ++++++++++++++++++----
 .../app/components/__tests__/ListView.test.tsx     | 12 +++++--
 .../app/components/__tests__/TaskCard.test.tsx     | 26 +++++++++++---
 .../components/__tests__/TaskContextMenu.test.tsx  | 23 ++++++++++++
 .../TaskDetailModal.definition-actions.test.tsx    | 31 ++++++++++++++++
 7 files changed, 133 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-7353

Fusion-Task-Lineage: 4de96306-1bcc-403d-88fa-be4ec0d9149d

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
62c4aae038 FN-7358: recover Sonnet 5 chat fallbacks
Recover Sonnet 5 chat sends by applying configured fallback models and clearer failure context.

- Allow explicit dashboard chat model selections to use the configured fallback on retryable provider/model failures.
- Preserve selected provider/model context in no-fallback chat errors so operators can identify unavailable models.
- Expand provider not-found detection and regression coverage for Anthropic Sonnet 5 404 payloads.
- Document fallback behavior and add the published package changeset.

Files changed:
 .changeset/fn-7358-sonnet-5-response-failed.md     |  7 +++
 docs/settings-reference.md                         |  2 +-
 .../dashboard/src/__tests__/chat-manager.test.ts   | 71 +++++++++++++++++++---
 packages/dashboard/src/chat.ts                     | 67 +++++++++++++++++---
 packages/engine/src/__tests__/pi.test.ts           | 71 +++++++++++++++++++++-
 .../src/__tests__/transient-error-detector.test.ts |  4 ++
 packages/engine/src/pi.ts                          |  4 +-
 packages/engine/src/transient-error-detector.ts    |  4 +-
 8 files changed, 208 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-7358

Fusion-Task-Lineage: 095a3218-1d4a-4ccb-a8c9-c9f81822b084

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
7457f04287 FN-7355: reuse standard chat surface for planner
Task planner chat now renders through the shared Chat surface while preserving task-scoped behavior.

- Extract shared standard chat message, streaming, tool-call, and action-button rendering for reuse outside ChatView.
- Update TaskPlannerChatTab to use the shared surface for messages, thinking output, mobile send dedupe, and stop generation.
- Cover planner chat standard-surface rendering and mobile first-tap behavior in tests, docs, and a patch changeset.

Files changed:
 .changeset/fn-7355-standard-planner-chat.md        |   7 +
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/ChatView.css     |  18 +
 packages/dashboard/app/components/ChatView.tsx     | 795 ++-------------------
 .../app/components/StandardChatSurface.tsx         | 417 +++++++++++
 .../app/components/TaskPlannerChatTab.css          |  39 +-
 .../app/components/TaskPlannerChatTab.tsx          | 246 ++++---
 ...etailModal.responsive-and-dependencies.test.tsx |   4 +-
 .../__tests__/TaskPlannerChatTab.test.tsx          |  52 ++
 9 files changed, 693 insertions(+), 887 deletions(-)

Fusion-Task-Id: FN-7355

Fusion-Task-Lineage: 608ee0d7-3a1b-4f5f-a295-d3a4e62d759e

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
72eb9af16c FN-7351: Make Activity tab switch views
Make the Activity tab act as the Live, Feed, and Raw view picker in task details.

- Add an Activity tab dropdown with keyboard, outside-click, and Escape handling.
- Remove the duplicate in-panel Activity view selector while preserving legacy segment routing.
- Keep Activity view switching available in expanded mode and update responsive styling/tests.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7351-activity-tab-dropdown.md        |   7 +
 .../dashboard/app/components/TaskDetailModal.css   |  84 +++++++++---
 .../dashboard/app/components/TaskDetailModal.tsx   | 148 +++++++++++++++------
 .../TaskDetailModal.attachments-and-tabs.test.tsx  |  49 +++++--
 .../__tests__/TaskDetailModal.css.test.ts          |   8 +-
 ...lModal.inline-editing-and-integrations.test.tsx |   2 +-
 ...skDetailModal.models-progress-workflow.test.tsx |  15 ++-
 .../__tests__/TaskDetailModal.rendering.test.tsx   |   2 +-
 ...etailModal.responsive-and-dependencies.test.tsx |  29 ++--
 .../TaskDetailModal.task-activity-chat.test.tsx    |  53 ++++++--
 .../components/__tests__/TaskDetailModal.test.tsx  |  30 ++++-
 11 files changed, 318 insertions(+), 109 deletions(-)

Fusion-Task-Id: FN-7351
Fusion-Task-Lineage: 7b544505-953f-4c77-a92f-eadb2d9477f3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
b3b01bc25d FN-7357: add all workflows to top-level selectors
Extend the dashboard aggregate workflow view across top-level workflow selectors without leaking its sentinel into task creation.

- Add All workflows as an aggregate option for List, Header, Planning/Missions, and Graph selectors.\n- Preserve real workflow handoffs for quick create, planning, missions, and workflow editor entry points.\n- Include aggregate workflow counts and cross-surface regression coverage, plus docs and a changeset.\n\nFiles changed:\n .changeset/fn-7357-all-workflows-selectors.md      |  7 +++\n docs/dashboard-guide.md                            |  9 ++--\n .../workflow-selection-cross-surface.test.tsx      | 20 ++++---\n .../app/components/GraphWorkflowSwitcherSlot.tsx   | 12 +++--\n .../app/components/HeaderWorkflowSwitcherSlot.tsx  | 10 ++--\n packages/dashboard/app/components/ListView.tsx     | 63 +++++++++++++++++-----\n .../components/PlanningWorkflowSwitcherSlot.tsx    |  5 +-\n .../__tests__/GraphWorkflowSwitcherSlot.test.tsx   | 34 ++++++++++++\n .../__tests__/HeaderWorkflowSwitcherSlot.test.tsx  | 27 ++++++++++\n .../app/components/__tests__/ListView.test.tsx     | 41 +++++++++++++-\n .../app/components/dashboard/MainContent.tsx       | 17 ++++--\n .../app/components/workflowStatusCounts.ts         |  5 ++\n packages/dashboard/app/hooks/useBoardWorkflows.ts  | 20 +++++--\n .../dashboard/app/utils/boardWorkflowSelection.ts  |  5 +-\n 14 files changed, 233 insertions(+), 42 deletions(-)

Fusion-Task-Id: FN-7357

Fusion-Task-Lineage: b8658cad-7b12-4a06-b627-e2bde7de6951

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
d448603e71 FN-7352: route completed-task refine menus to detail
Completed task context menus now open the existing Task Detail refinement composer.\n\n- Add one-shot detail initial actions so Refine can reopen the composer from board and list menus.\n- Wire Board, List, Column, and grouped task cards to pass Refine through Task Detail instead of hiding it.\n- Cover board/list refine menu behavior with dashboard tests and document the completed-task flow.\n\nFiles changed:\n .changeset/fn-7352-done-context-refine.md          |  7 +++\n docs/dashboard-guide.md                            |  9 ++--\n packages/dashboard/app/components/AppModals.tsx    |  9 +++-\n packages/dashboard/app/components/Board.tsx        |  7 ++-\n packages/dashboard/app/components/Column.tsx       |  5 +-\n packages/dashboard/app/components/ListView.tsx     |  7 +--\n packages/dashboard/app/components/TaskCard.tsx     | 12 +++--\n .../dashboard/app/components/TaskDetailModal.tsx   | 13 +++++\n .../dashboard/app/components/WorktreeGroup.tsx     |  4 ++\n .../app/components/__tests__/ListView.test.tsx     | 62 +++++++++++++++++++++-\n .../app/components/__tests__/TaskCard.test.tsx     | 43 +++++++++++++++\n .../TaskDetailModal.definition-actions.test.tsx    | 18 +++++++\n .../app/components/dashboard/MainContent.tsx       |  2 +\n .../dashboard/app/components/dashboard/types.ts    |  4 +-\n packages/dashboard/app/hooks/useModalManager.ts    | 28 ++++++++--\n 15 files changed, 208 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-7352

Fusion-Task-Lineage: 3f1107a6-fdac-4430-ab8d-50096c36cc3c

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
d8f3cc64ae FN-7356: fix mobile chat send taps
Make task chat and planner chat submit reliably from mobile send buttons.

- Submit touch and pen send-button interactions on pointer down before soft-keyboard blur can consume the tap.
- Add synchronous duplicate-send guards for task chat and planner chat send flows.
- Cover one-tap mobile send behavior and duplicate prevention in chat component tests.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7356-mobile-chat-send.md             |  7 +++
 packages/dashboard/app/components/TaskChatTab.tsx  | 25 +++++++-
 .../app/components/TaskPlannerChatTab.tsx          | 36 +++++++++++-
 .../app/components/__tests__/TaskChatTab.test.tsx  | 65 +++++++++++++++++++++
 .../__tests__/TaskPlannerChatTab.test.tsx          | 67 +++++++++++++++++++++-
 5 files changed, 194 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-7356

Fusion-Task-Lineage: 90b243e0-ae36-459d-bf01-112219e7865b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
03160ebac0 FN-7354: add mobile terminal tab selector
Add a compact mobile terminal tab selector while preserving desktop tab behavior.

- Replace the mobile terminal tab strip with a native dropdown, new-tab action, and current-tab close action.
- Update mobile terminal header styles so tab, workspace, and session controls wrap cleanly on narrow screens.
- Cover mobile selector behavior with dashboard tests and document the mobile terminal tab workflow.
- Add a release changeset for the published Fusion package.

Files changed:
 .changeset/mobile-terminal-tabs-dropdown.md        |   7 ++
 docs/dashboard-guide.md                            |   8 +-
 .../__tests__/terminal-mobile-header-row.test.ts   |  22 ++--
 .../dashboard/app/components/TerminalModal.css     |  69 +++++++++++-
 .../dashboard/app/components/TerminalModal.tsx     | 119 +++++++++++++++------
 .../components/__tests__/TerminalModal.test.tsx    | 107 ++++++++++++++++++
 6 files changed, 282 insertions(+), 50 deletions(-)

Fusion-Task-Id: FN-7354

Fusion-Task-Lineage: 20b5b7d5-5795-4cc6-9975-c363954adb97

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
c93f2d4da0 FN-7346: fix TUI settings arrow editing
Fix Settings keyboard handling so arrow keys edit selected enum values in the terminal dashboard.

- Keep Tab as the Settings pane switcher so arrow keys remain scoped to the active pane.
- Route detail-pane left/right arrows and h/l keys through enum setting cycling and remote provider activation.
- Add terminal dashboard coverage for list navigation and enum cycling, plus CLI docs and release note coverage.

Files changed:
 .changeset/fn-7346-tui-settings-arrows.md          |   7 ++
 docs/cli-reference.md                              |   5 +
 .../commands/dashboard-tui/__tests__/app.test.tsx  | 121 ++++++++++++++++++++-
 packages/cli/src/commands/dashboard-tui/app.tsx    | 119 ++++++++++----------
 4 files changed, 186 insertions(+), 66 deletions(-)

Fusion-Task-Id: FN-7346

Fusion-Task-Lineage: c67861a7-7bb3-408d-926c-e85a44fe2dec

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 07:33:56 -07:00
gsxdsm
47fa2ae2b6 refactor(workflow): extract node runner boundaries (#1842)
## Summary

Workflow node behavior now has explicit engine-owned runner and service
boundaries instead of being concentrated in the default handler factory
and private executor seams. Workflow IR remains declarative: the graph
executor still walks and routes the graph, while node runners and
runtime services own node-kind behavior, primitive construction,
custom-node execution, review invocation, and planning dispatch.

## Design Notes

- Added a `WorkflowNodeRunner` registry that adapts runners to the
existing handler contract while preserving explicit handler override
precedence.
- Moved gate, notify, code, parse-steps, and merge behavior behind
runner modules while keeping compatibility exports from
`workflow-node-handlers.ts`.
- Added service boundaries for runtime primitive creation, custom-node
execution, single-cwd review invocation, and graph planning.
- Preserved fast-mode raw runner compatibility for stepwise built-ins by
skipping executable custom nodes and parsing `PROMPT.md` in memory when
no executor primitive deps are wired.
- Updated concepts and workflow runtime docs so future workflow behavior
has a clear home: IR, runner, primitive provider, runtime service, or
substrate.

## Validation

- `pnpm --filter @fusion/engine exec vitest run ... --silent=passed-only
--reporter=dot` across 20 focused workflow/runtime test files: 166 tests
passed.
- Targeted ESLint on touched workflow files and tests passed.
- `pnpm --filter @fusion/engine exec tsc --noEmit --pretty false`
passed.
- `git diff --check` passed.
- Browser pipeline: skipped by scope; no changed files map to
browser-testable routes.

## Post-Deploy Monitoring & Validation

No additional operational monitoring required. This is an internal
engine refactor with focused tests covering runner dispatch,
primitive-provider compatibility, custom-node service delegation,
review/planning service boundaries, merge behavior, fast-mode raw runner
compatibility, and docs alignment.

Healthy signals: workflow graph runs continue through planning,
parse-steps, optional groups, custom nodes, review, and merge with
existing outcome values. Failure signals: new `parse-steps-unwired`,
custom-node, review, or merge-attempt regressions in engine logs for
previously working built-in workflows. Rollback trigger: repeated
workflow graph task failures attributable to runner/service dispatch
rather than task content or provider errors.

---

[![Compound
Engineering](https://img.shields.io/badge/Built_with-Compound_Engineering-6366f1)](https://github.com/EveryInc/compound-engineering-plugin)
![Codex](https://img.shields.io/badge/GPT--5_Codex-000000)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added engine-owned workflow node runners and dedicated services for
custom-node execution, workflow planning, and step review.
* Exposed a runtime primitive provider abstraction and a node-runner
registry in the public API, including built-in runners for gate, code,
merge, parse-steps, and notify.
* **Bug Fixes**
* Improved fast-mode behavior when runtime capabilities are unavailable
(including optional-group skipping, merge/review handling, and a safe
parse-steps fallback).
* **Tests**
* Expanded coverage for the runner registry integration, custom-node
execution, runtime primitive provider, planning/review, and fast-mode
semantics.
* **Documentation**
* Clarified workflow responsibility boundaries and added glossary
definitions plus a refactor plan.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-01 07:33:24 -07:00
gsxdsm
cbd61c56ca Merge branch 'main' into feature/workflow-nodes 2026-07-01 07:27:51 -07:00
gsxdsm
2eb6edb2fc fix: keep dashboard available after planning failures (#1846)
## Summary
- keep malformed planning-session responses persisted as retryable error
state instead of deleting the session
- add `fn dashboard --supervise` to restart unexpected dashboard exits
with bounded exponential backoff
- document the supervised-dashboard run mode and add a patch changeset

## Test Plan
- `corepack pnpm --filter @runfusion/fusion exec vitest run
src/commands/__tests__/dashboard.test.ts --silent=passed-only
--reporter=dot`
- `corepack pnpm --filter @fusion/dashboard exec vitest run
src/__tests__/session-error-recovery.test.ts --silent=passed-only
--reporter=dot`
- `corepack pnpm --filter @fusion/dashboard exec vitest run
src/__tests__/server.test.ts -t "returns health OK independently"
--silent=passed-only --reporter=dot`
- `corepack pnpm lint`
- `corepack pnpm typecheck`
- `corepack pnpm build`
- `corepack pnpm test:gate`

Note: a full `server.test.ts` run also exposes four existing
routine-runner expectation failures unrelated to this change; the added
health check passes when run by name.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added dashboard supervised mode via a new `--supervise` option, with
automatic restarts using a bounded restart budget and exponential
backoff.
* **Bug Fixes**
* Planning sessions now persist as retryable error states when AI output
can’t be parsed, preventing session loss.
* Improved reliability so `GET /api/health` remains available during
these planning error states.
* **Documentation**
* Documented “Dashboard Availability &amp;amp; Supervised Mode”,
including health-check guidance and operational guardrails.
* **Tests**
* Added test coverage for supervised restart behavior, health during
planning errors, and ensuring no unhandled rejections on parse failures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-01 07:26:24 -07:00
gsxdsm
b07105dbfb fix(workflows): address workflow node PR feedback 2026-07-01 00:51:01 -07:00
gsxdsm
3a2f3b5ade refactor(workflow): extract node runner boundaries 2026-07-01 00:51:01 -07:00
gsxdsm
d4ce6f9319 chore(release): v0.52.0
Version bump via changesets.
2026-07-01 00:47:09 -07:00
gsxdsm
8079722314 fix(FN-7291): retry fallback for provider model 404s
Classify structured provider model-not-found payloads as model-selection failures so configured fallback models run when Claude Sonnet 5 is unavailable on an account or API surface.
2026-07-01 00:33:38 -07:00
gsxdsm
d96eb3c644 FN-7349: expand Plan prompt editor width
Make Plan prompt editing surfaces span the task-detail layout consistently.

- Scope a Plan prompt wrapper around markdown, empty, inline edit, and revision controls.
- Let SpecEditor action rows and text inputs shrink and wrap within modal, embedded, and mobile layouts.
- Cover full-width Plan prompt behavior with task-detail CSS and rendering tests.

Files changed:
 .changeset/plan-prompt-full-width.md               |   7 ++
 packages/dashboard/app/components/SpecEditor.css   |  27 ++++-
 .../dashboard/app/components/TaskDetailModal.css   |  58 ++++++++-
 .../dashboard/app/components/TaskDetailModal.tsx   |  13 +-
 .../TaskDetailModal.definition-actions.test.tsx    | 134 ++++++++++++---------
 ...etailModal.responsive-and-dependencies.test.tsx |  44 +++++++
 6 files changed, 219 insertions(+), 64 deletions(-)

Fusion-Task-Id: FN-7349

Fusion-Task-Lineage: 65defcea-ce70-49fb-bd00-2127239e09d0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 00:28:25 -07:00
gsxdsm
058a041714 FN-7348: pin mobile planning New session footer
Keep the mobile Planning Mode New session CTA reachable while saved sessions scroll independently.

- Bound the mobile planning list shell so only the session list scrolls.
- Preserve the sidebar footer as a non-shrinking bottom action in list view.
- Add CSS contract coverage and a changeset for the published CLI package.

Files changed:
 .changeset/fn-7348-mobile-planning-new-session.md  |  7 ++++++
 .../dashboard/app/components/PlanningModeModal.css | 23 +++++++++++++++++
 .../__tests__/PlanningModeModal.css.test.ts        | 29 ++++++++++++++++++++++
 3 files changed, 59 insertions(+)

Fusion-Task-Id: FN-7348

Fusion-Task-Lineage: 0142e539-3e4c-4ac5-9a44-d02bce2c139b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-01 00:20:56 -07:00
gsxdsm
411f46a5ea fix(FN-7344): keep planner chat empty state at top 2026-07-01 00:13:47 -07:00
gsxdsm
35d37d603d fix(FN-7344): compact planner and activity chat inputs 2026-07-01 00:07:42 -07:00
gsxdsm
7c53c97137 fix(FN-7344): make planner chat expansion intentional 2026-06-30 23:51:16 -07:00
gsxdsm
e37260b30c fix(FN-7344): keep planner chat context expanded 2026-06-30 23:45:03 -07:00
gsxdsm
6005f89979 fix(FN-7344): compact planner chat on mobile 2026-06-30 23:45:03 -07:00
gsxdsm
4a1a04303f fix(FN-7344): hide stall badges during active agent logs 2026-06-30 23:45:03 -07:00
gsxdsm
4ab4aae02e FN-7344: replace Activity subtabs with a dropdown
Replace the task detail Activity subtab strip with a compact selector while keeping legacy routing intact.

- Swap the Live, Feed, and Raw Logs segmented control for an Activity view dropdown.
- Preserve legacy Activity segment ids and initial-tab routing for Live, Feed, and Raw views.
- Update Activity styling, coverage, and the published CLI changeset for the dropdown behavior.

Files changed:
 .changeset/fn-7344-activity-dropdown.md            |  7 ++
 .../dashboard/app/components/TaskDetailModal.css   | 63 +++---------------
 .../dashboard/app/components/TaskDetailModal.tsx   | 56 +++++++---------
 .../TaskDetailModal.attachments-and-tabs.test.tsx  | 76 ++++++++++++----------
 .../__tests__/TaskDetailModal.css.test.ts          | 10 +--
 ...lModal.inline-editing-and-integrations.test.tsx |  2 +-
 ...skDetailModal.models-progress-workflow.test.tsx | 12 ++--
 .../__tests__/TaskDetailModal.rendering.test.tsx   |  2 +-
 ...etailModal.responsive-and-dependencies.test.tsx | 43 +++++-------
 .../TaskDetailModal.task-activity-chat.test.tsx    | 39 ++++++-----
 .../components/__tests__/TaskDetailModal.test.tsx  | 28 ++++----
 11 files changed, 153 insertions(+), 185 deletions(-)

Fusion-Task-Id: FN-7344

Fusion-Task-Lineage: cb609122-d9b6-4ef2-9cf0-35130c3dcffc

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:02 -07:00
gsxdsm
519f158400 FN-7345: Persist remote access settings saves
Remote Access settings now save from the main Settings dialog without requiring tunnel startup.

- Map flattened Remote Access form fields into the canonical global remoteAccess payload during section saves.
- Preserve provider, token, and lifecycle branches while saving Tailscale accept-routes and remember-running options.
- Cover the UI save flow, split helper, API route contract, docs, and release note.

Files changed:
 .changeset/fn-7345-remote-settings-windows.md      |   7 +
 docs/dashboard-guide.md                            |   1 +
 .../app/__tests__/settings-save-split.test.ts      |  56 ++++++++
 .../SettingsModal.remote-notifications.test.tsx    | 144 +++++++++++++++++++++
 .../app/components/settings/save-split.ts          | 103 +++++++++++++++
 .../src/__tests__/routes-remote-access.test.ts     |  54 ++++++++
 6 files changed, 365 insertions(+)

Fusion-Task-Id: FN-7345

Fusion-Task-Lineage: 9d1eb7f7-7e13-4070-af7d-eb6c6a41fe44

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:02 -07:00
gsxdsm
d786e7b9c9 FN-7340: align footer concurrency marker geometry
Align footer Engine Controls current-use dots with Command Center slider geometry.

- Mirror Command Center range sizing, touch behavior, and mobile thumb geometry in the footer controls.
- Cover the shared marker geometry contract and pending-cap marker recalculation in EngineControlMenu tests.
- Document the footer/Command Center alignment requirement and add a patch changeset for the published CLI package.

Files changed:
 .changeset/fn-7340-footer-concurrency-dot-alignment.md    |  7 ++
 docs/dashboard-guide.md                            |  3 +-
 packages/dashboard/app/components/EngineControlMenu.css | 28 ++++++-
 packages/dashboard/app/components/__tests__/EngineControlMenu.test.tsx           | 85 ++++++++++++++++++++++
 4 files changed, 121 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7340

Fusion-Task-Lineage: 5cb4d829-2b70-429c-b9da-0c559fdbf131

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:02 -07:00
gsxdsm
45b1ee6f9c FN-7341: replan tasks after execution mode changes
Execution-mode changes now confirm and rebuild task plans when active task state would be invalidated.

- Require confirmation before changing Standard/Fast mode on todo and in-progress tasks.
- Route confirmed execution-mode edits through the task spec rebuild path and close the modal with replanning feedback.
- Cover inline and edit-mode execution-mode changes with dashboard tests and localized copy.

Files changed:
 .changeset/fn-7341-execution-mode-replan.md        |   7 +
 .../dashboard/app/components/TaskDetailModal.tsx   |  70 +++++++-
 ...lModal.inline-editing-and-integrations.test.tsx | 181 ++++++++++++++++++---
 .../__tests__/TaskDetailModal.test-helpers.ts      |   1 +
 packages/i18n/locales/en/app.json                  |   3 +
 packages/i18n/locales/es/app.json                  |   5 +-
 packages/i18n/locales/fr/app.json                  |   5 +-
 packages/i18n/locales/ko/app.json                  |   5 +-
 packages/i18n/locales/zh-CN/app.json               |   5 +-
 packages/i18n/locales/zh-TW/app.json               |   5 +-
 packages/i18n/src/resources.d.ts                   |   3 +
 11 files changed, 257 insertions(+), 33 deletions(-)

Fusion-Task-Id: FN-7341
Fusion-Task-Lineage: 2b1e7ac9-81b4-438a-84d1-965da5ed84fb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:02 -07:00
gsxdsm
ae1ca5cf16 FN-7339: align Shadcn Ember colors with Ember
Align Shadcn Ember theme tokens with the Ember palette while preserving shadcn structure.

- Match Shadcn Ember accent text tokens to Ember values in dark and light modes.
- Strengthen regression coverage to compare every Ember-owned color token across both modes.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7339-shadcn-ember-colors.md          |  7 +++
 .../app/__tests__/shadcn-ember-theme.test.ts       | 69 +++++++++++++++-------
 packages/dashboard/app/public/theme-data.css       |  7 ++-
 3 files changed, 60 insertions(+), 23 deletions(-)

Fusion-Task-Id: FN-7339

Fusion-Task-Lineage: d0c2f0cf-938f-46a4-8da4-9acafc5cc4cf

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:02 -07:00
gsxdsm
5ff81cb460 FN-7343: Remove task chat steering guidance copy
Remove the visible steering/refinement guidance shell from task Activity chat while preserving composer behavior.

- Drop the TaskChatTab composer label/hint affordance and stale aria-describedby wiring.
- Keep accessible form names and existing steering/refinement send flows intact.
- Update dashboard docs, regression tests, and the published package changeset for the copy removal.

Files changed:
 .changeset/fn-7343-task-chat-copy.md               |  7 ++++
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.css  | 29 ---------------
 packages/dashboard/app/components/TaskChatTab.tsx  | 24 +++++--------
 .../app/components/__tests__/TaskChatTab.test.tsx  | 41 +++++++++++++---------
 .../TaskDetailModal.task-activity-chat.test.tsx    | 13 ++++---
 .../components/__tests__/TaskDetailModal.test.tsx  | 15 ++++----
 7 files changed, 59 insertions(+), 72 deletions(-)

Fusion-Task-Id: FN-7343

Fusion-Task-Lineage: ebcffb2c-a42e-46af-8291-1ff77bcec2c6

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:02 -07:00
gsxdsm
f840cbc14a FN-7342: preserve board scroll during refresh stabilization
Board stabilization now avoids resetting the user's horizontal column position during refresh and resize handling.

- Keep mobile stabilization focused on document-level drift instead of forcing #board.scrollLeft back to triage.
- Add regression coverage for board and all-workflows scroll preservation across task refresh, window resize, and visualViewport resize.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7342-board-scroll-reset.md           |   7 ++
 packages/dashboard/app/components/Board.tsx        |   7 +-
 .../app/components/__tests__/Board.test.tsx        | 109 +++++++++++++++++++++
 3 files changed, 121 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7342

Fusion-Task-Lineage: 0aa8b152-5cc0-4f77-93d5-f20faf0a5e19

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:02 -07:00
gsxdsm
c54b231290 FN-7335: default task details to Activity first
Default task detail opens now prioritize Activity while preserving an opt-in Chat-first mode.

- Add a project setting and dashboard plumbing for Chat-first task detail ordering.
- Default non-done task detail opens to Activity/Live while keeping explicit Chat, Activity, and Logs links stable.
- Update Settings, docs, changeset, and regression coverage for Activity-first and Chat-first behavior.

Files changed:
 .changeset/activity-first-task-detail.md           |  7 +++
 docs/dashboard-guide.md                            |  6 +-
 .../core/src/__tests__/settings-defaults.test.ts   | 13 ++++
 packages/core/src/settings-schema.ts               |  5 ++
 packages/core/src/types.ts                         |  5 ++
 packages/dashboard/app/App.tsx                     |  7 ++-
 packages/dashboard/app/components/AppModals.tsx    |  2 +
 packages/dashboard/app/components/ListView.tsx     |  3 +
 .../dashboard/app/components/SettingsModal.tsx     |  6 ++
 .../dashboard/app/components/TaskDetailModal.tsx   | 71 ++++++++++++++-------
 .../TaskDetailModal.attachments-and-tabs.test.tsx  | 19 ++++--
 ...etailModal.responsive-and-dependencies.test.tsx |  2 +-
 .../TaskDetailModal.task-activity-chat.test.tsx    | 72 +++++++++++++++++++---
 .../components/__tests__/TaskDetailModal.test.tsx  |  3 +
 .../app/components/dashboard/MainContent.tsx       |  3 +
 .../dashboard/app/components/dashboard/types.ts    |  1 +
 .../settings/sections/AppearanceSection.tsx        |  8 +++
 .../sections/__tests__/AppearanceSection.test.tsx  | 20 ++++++
 .../app/components/useRightDockController.tsx      |  2 +
 packages/dashboard/app/hooks/useAppSettings.ts     |  9 +++
 20 files changed, 220 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-7335

Fusion-Task-Lineage: d983c41a-f2f5-4e53-aee4-3ec3a4c057a3

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:01 -07:00
gsxdsm
33279538f0 fix(FN-7335): log pause abort recovery details 2026-06-30 23:45:01 -07:00
gsxdsm
234248a3cd fix(FN-7335): retry active merge pause aborts 2026-06-30 23:45:01 -07:00
gsxdsm
a3ad0c8ecf fix(FN-7335): keep fast completion summaries 2026-06-30 23:45:01 -07:00
gsxdsm
7d2bd9794e FN-7337: make planner chats lazy and archive-scoped
Task planner chats now stay out of global chat history until a user interacts and are retained until task archive.

- Load task planner chat tabs with lookup-only resume before any user send.
- Show task-planner sessions in global Chat only after messages exist, including SSE refresh handling.
- Keep interacted planner chats for done tasks while deleting task-scoped planner sessions on archive.
- Cover chat store deletion, planner tab behavior, route filtering, and chat-list refresh with regression tests.

Files changed:
 .changeset/fn-7337-planner-chat-retention.md       |   7 ++
 docs/dashboard-guide.md                            |   4 +-
 packages/core/src/__tests__/chat-store.test.ts     |  44 +++++++++
 packages/core/src/chat-store.ts                    |  22 +++++
 packages/dashboard/app/api/legacy.ts               |  35 ++++++-
 .../app/components/TaskPlannerChatTab.tsx          |  13 ++-
 .../__tests__/TaskPlannerChatTab.test.tsx          |  91 +++++++++++++-----
 .../dashboard/app/hooks/__tests__/useChat.test.ts  |  41 ++++++++
 packages/dashboard/app/hooks/useChat.ts            |  15 ++-
 .../dashboard/src/__tests__/chat-routes.test.ts    | 105 +++++++++++++++++++++
 .../dashboard/src/routes/register-chat-routes.ts   |  17 +++-
 packages/dashboard/src/server.ts                   |  10 +-
 packages/engine/src/runtimes/in-process-runtime.ts |   8 ++
 13 files changed, 378 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-7337

Fusion-Task-Lineage: 7ef9ed8f-af2e-4fa9-a2b6-0e8c8a805d5e

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:01 -07:00
gsxdsm
5ee19647f8 FN-7336: remove redundant workflow step badges
Remove duplicate workflow labels from expanded task-card step rows while preserving workflow progress visibility.

- Drop the per-step workflow text badge rendering and its phase-specific styles.
- Keep workflow rows identifiable through names, status dots, and active badges.
- Update task-card tests to assert workflow badge removal and running workflow-step behavior.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/remove-task-card-workflow-step-badge.md |  7 +++++
 packages/dashboard/app/components/TaskCard.css     | 24 -----------------
 packages/dashboard/app/components/TaskCard.tsx     | 11 +++-----
 .../app/components/__tests__/TaskCard.test.tsx     | 31 +++++++++++++---------
 4 files changed, 28 insertions(+), 45 deletions(-)

Fusion-Task-Id: FN-7336
Fusion-Task-Lineage: f4d29c69-edce-4f19-a156-8203e4784777
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:01 -07:00
gsxdsm
65822a02b4 FN-7333: stabilize Planner Chat expanded spacing
Stabilize Planner Chat task detail spacing across expanded and mobile layouts.

- Move Planner Chat body padding to the base selector so expand/collapse only changes height and flex behavior.
- Apply the mobile Planner Chat padding override to the same base body selector.
- Add CSS regression coverage and a patch changeset for the published CLI bundle.

Files changed:
 .changeset/planner-chat-stable-spacing.md          |  7 ++++
 .../dashboard/app/components/TaskDetailModal.css   | 11 +++++-
 ...etailModal.responsive-and-dependencies.test.tsx | 44 ++++++++++++++++++++++
 3 files changed, 60 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7333

Fusion-Task-Lineage: 84130908-fabb-433f-a48d-5d9c6649c234

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:01 -07:00
gsxdsm
1c1206a1ca FN-7332: update chat-first task detail tab tests
Refresh TaskDetailModal coverage for Chat-first tab ordering and Activity-only controls.

- Assert omitted non-done task detail modals open planner Chat before Activity.
- Keep legacy Activity requests and Feed/Raw Logs segment behavior covered after selecting Activity.
- Update related Activity/planner Chat integration expectations for the new tab order.

Files changed:
 .../TaskDetailModal.attachments-and-tabs.test.tsx  | 208 ++++++++++++---------
 .../TaskDetailModal.task-activity-chat.test.tsx    |  12 +-
 2 files changed, 126 insertions(+), 94 deletions(-)

Fusion-Task-Id: FN-7332

Fusion-Task-Lineage: e732884f-4d2a-421a-b9d6-481382c3742b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:00 -07:00
gsxdsm
aa4c2c1b26 FN-7331: remove Quick Add AI refine control
Remove the Quick Add refine affordance while preserving richer task refinement elsewhere.

- Drop QuickEntryBox refine state, menu positioning, API calls, and action rendering.
- Update Quick Add tests to assert the refine controls and refine-text path are absent.
- Add a patch changeset for the published CLI bundle.

Files changed:
 .changeset/fn-7331-remove-quick-add-refine.md      |   7 +
 .../__tests__/quick-entry-expanded-height.test.tsx |   3 +-
 .../dashboard/app/components/QuickEntryBox.tsx     | 198 +-------------
 .../components/__tests__/QuickEntryBox.test.tsx    | 286 ++++-----------------
 4 files changed, 71 insertions(+), 423 deletions(-)

Fusion-Task-Id: FN-7331

Fusion-Task-Lineage: ed30e9da-1c1c-4e94-9fbe-e44ad5ae7133

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:00 -07:00
gsxdsm
a48ff305db FN-7330: normalize Activity segment sizing
Normalize the task-detail Activity segmented control so active tabs do not change row height.

- Set base Activity segment sizing, label size, line-height, and border-box behavior for consistent Live/Feed/Raw Logs heights.
- Add regression coverage for equal-height, horizontally scrollable Activity segment tabs across modal and embedded surfaces.
- Add a patch changeset for the dashboard Activity tab sizing fix.

Files changed:
 .changeset/silver-activity-segments.md             |  7 +++++
 .../dashboard/app/components/TaskDetailModal.css   |  8 +++++-
 ...etailModal.responsive-and-dependencies.test.tsx | 30 ++++++++++++++++++++++
 3 files changed, 44 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7330

Fusion-Task-Lineage: b833c5f0-b46b-4a05-84a5-e199c1547a6a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:00 -07:00
gsxdsm
b52f92cb7c FN-7328: keep Planner Chat controls compact
Keep Planner Chat compact while preserving expanded mobile task context.

- Match the Planner Chat composer sizing to Activity chat on desktop and mobile.
- Keep the expanded mobile detail tab bar, priority, and execution-mode controls visible while hiding lower-priority metadata.
- Move and constrain the planner model badge so header actions stay compact.
- Cover the responsive layout and header ordering with dashboard tests.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7328-planner-chat-compact.md         |  7 +++
 .../dashboard/app/components/TaskDetailModal.css   | 21 +++++++--
 .../app/components/TaskPlannerChatTab.css          | 51 +++++++++++++++++-----
 .../app/components/TaskPlannerChatTab.tsx          | 10 ++---
 ...etailModal.responsive-and-dependencies.test.tsx | 26 +++++++++--
 .../__tests__/TaskPlannerChatTab.test.tsx          |  2 +
 6 files changed, 93 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-7328

Fusion-Task-Lineage: b787d818-e65c-486b-b5f7-cd0881bf3ee0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:00 -07:00
gsxdsm
4ae0456c48 FN-7329: rename task title summary button
Shorten the task detail title summarization action label across UI copy and tests.

- Rename the task detail button label from "Summarize as title" to "Summarize".
- Update focused accessibility assertions for the new button copy.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7329-task-detail-summarize.md                        | 7 +++++++
 packages/dashboard/app/components/TaskDetailModal.tsx              | 2 +-
 .../dashboard/app/components/__tests__/TaskDetailModal.test.tsx    | 4 ++--
 packages/i18n/locales/en/app.json                                  | 2 +-
 packages/i18n/src/resources.d.ts                                   | 2 +-
 5 files changed, 12 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-7329

Fusion-Task-Lineage: db7df162-19fe-480e-8008-fa89d637de2b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:00 -07:00
gsxdsm
2f5e15ac43 FN-7324: Focus task details on planner chat
Task details now prioritize the planner Chat experience while preserving Activity links and done-task summaries.

- Default active task details to Chat and render it before Activity without breaking legacy Activity tab ids.
- Add focused planner Chat expansion, pinned composer, mobile row hiding, and in-view expand/collapse controls.
- Update responsive coverage, planner-chat tests, dashboard docs, and the release changeset.

Files changed:
 .changeset/fn-7324-chat-focused-task-detail.md     |  7 ++
 docs/dashboard-guide.md                            | 11 +--
 .../dashboard/app/components/TaskDetailModal.css   | 47 ++++++++++-
 .../dashboard/app/components/TaskDetailModal.tsx   | 36 +++++----
 .../app/components/TaskPlannerChatTab.css          | 36 ++++++++-
 .../app/components/TaskPlannerChatTab.tsx          | 37 ++++++---
 ...etailModal.responsive-and-dependencies.test.tsx | 14 +++-
 .../components/__tests__/TaskDetailModal.test.tsx  | 93 +++++++++++++++++++---
 .../__tests__/TaskPlannerChatTab.test.tsx          | 18 +++++
 9 files changed, 255 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-7324
Fusion-Task-Lineage: 0699d224-7280-4959-8086-b0ea985937a2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:00 -07:00
gsxdsm
abb5a8b29d FN-7315: add task-detail activity chat flow tests
Add focused dashboard coverage for task-detail activity/chat tab separation and planner chat steering behavior.

- Cover desktop Activity tab segment switching across Live, Feed, and Raw Logs without duplicate Chat controls.
- Cover mobile done-task defaults so Summary remains selected while Activity and Chat stay ordered and isolated.
- Extend planner chat tests for recent-activity starter prompts, missing context sends, risky clarification questions, failed steering tools, and read-only answered questions without lingering controls.

Files changed:
 .../__tests__/ChatQuestionResponse.test.tsx        |  25 +++-
 .../TaskDetailModal.task-activity-chat.test.tsx    | 148 +++++++++++++++++++++
 .../__tests__/TaskPlannerChatTab.test.tsx          | 145 ++++++++++++++++++++
 3 files changed, 313 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-7315

Fusion-Task-Lineage: a41b0e62-d1bf-4495-b95a-70ff30ba0624

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:45:00 -07:00
gsxdsm
863c5ce83f FN-7325: rename Activity Current to Live
Renames the task-detail Activity Current segment to Live and makes expansion available across Activity views.

- relabel Activity Current as Live while preserving the legacy internal current segment routing
- move the Activity expand/collapse control to the shared Activity toolbar for Live, Feed, and Raw Logs
- update expanded Activity layout, docs, tests, and release notes for the shared behavior

Files changed:
 .changeset/fn-7325-activity-live-expand.md         |   7 ++
 docs/dashboard-guide.md                            |   8 +-
 packages/dashboard/app/components/TaskChatTab.tsx  |   6 +-
 .../dashboard/app/components/TaskDetailModal.css   |  53 ++++++++++-
 .../dashboard/app/components/TaskDetailModal.tsx   | 103 ++++++++++++---------
 .../app/components/__tests__/TaskChatTab.test.tsx  |  12 +--
 .../TaskDetailModal.attachments-and-tabs.test.tsx  |  90 ++++++++++++++++--
 .../__tests__/TaskDetailModal.rendering.test.tsx   |   2 +-
 .../components/__tests__/TaskDetailModal.test.tsx  |   8 +-
 9 files changed, 213 insertions(+), 76 deletions(-)

Fusion-Task-Id: FN-7325
Fusion-Task-Lineage: 1aee503b-ace8-4238-a9f9-3e536a43c1f8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-30 23:44:59 -07:00
Phil Larson
9432339363 fix: keep dashboard available after planning failures 2026-06-30 23:35:27 -07:00
gsxdsm
f2c4f7dd9d Propose dashboard theme and UI plugin system (#1844)
## Summary
- Add a maintainer-facing proposal for a dashboard theme/UI plugin
system
- Frame themes as scoped backend-compatible UI experiments, not just CSS
skins
- Call out selected-project scoping as a prerequisite and immediate bug
class

## Verification
- docs-only proposal; no runtime tests required

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
  * Added a proposal for a dashboard theme and UI plugin system.
* Defines support for multiple dashboard themes/shells sharing the same
backend.
* Describes a stable, project-scoped UI contract, project-scoped API
access, token-based styling, and a theme switcher.
* Documents non-goals, safety boundaries for UI experimentation,
feasibility considerations, and an implementation plan.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-30 22:24:42 -07:00