Commit Graph

9587 Commits

Author SHA1 Message Date
gsxdsm
4850e4309e fix(dashboard): apply code-review fixes + live UI tweaks
Code review (8 reviewers) fixes:
- P1: embedded board task-detail now passes onRequestClose so delete/merge/retry dismiss the panel (no ghost task).
- P1: RightDock + TerminalModal drag handlers add pointercancel + unmount teardown (no leaked document listeners / rAF / stuck userSelect); remove dead onOpenChange prop.
- Planning slot DOM-poll interval now caps (self-cancels on mobile); heartbeat slider persist debounced + mounted-guarded.
- Cleanup: remove dead ViewHeader-migration CSS (Skills/Insights), extract shared GithubIcon, move Activity Log embedded CSS to ActivityLogModal.css, FNXC date-format fixes, AGENTS lazy-view note.
- Update stale RightDock roster tests + LeftSidebarNav 'Compound Eng' test to current behavior.

Live UI tweaks:
- Default load lands on board, never the Command Center Dashboard.
- View Board/View Agents moved to the Command Center Overview tab (under the live-activity strip).
- Heartbeat card full-width with spaced, wrapping controls.
- Dev Server panel scrolls in the dock; ChatView right-pane title takes the full line.
- Files pop-out renders deterministic left-right two-pane.
- Mailbox list pane narrower + narrow by default; Add Goal button height matches the Compound stage button; Memory Working-Memory tab no longer overlaps; Skills view fills full width.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:57:10 -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
3b4daf3e66 feat(dashboard): place View Board/View Agents under the AI engine button
Move the Command Center AI-engine card's View Board / View Agents shortcuts to sit directly under the engine toggle button (above the heartbeat-speed slider) so they read as engine-card navigation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
df3cafa201 feat(dashboard): right-dock views render their mobile layout in the narrow dock
Container queries on the dock-body container so embedded views use their single-column mobile layout in the narrow dock: Git Manager (full mobile layout incl. labeled tabs + mobile remotes view), Activity Log, Dev Server (config/logs/preview stack full-width and scroll), Secrets, Pull Requests. Wide pop-out keeps the desktop layout. 80 view tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
10e445edd9 fix(dashboard): Import Tasks preview is tall and scrollable
Embedded Import Tasks: the preview pane's inner content kept a side-by-side flex:1/overflow that collapsed it under the stacked natural-height parent (preview looked short). Stacked layout now lets the preview take full intrinsic height and the view body scrolls; wide two-pane lets the preview scroll internally without moving the list.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
202f34158d fix(dashboard): Files pop-out renders left-right two-pane
The .dock-files-view root lacked width:100%, so as a flex root it reported a shrunk width to its container query and the min-width:720px two-pane rule never fired in the wide expand modal (which can be ~864px and shrinks with 90vw). Add width:100% and lower the breakpoint to 640px so the pop-out shows tree-left / viewer-right; narrow dock keeps the single-panel stack.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
bb4e6e5b9a fix(dashboard): regressed tests + Memory scroll + apostrophe copy
- WorkflowNodeEditor.css.test: update selector lookups to the :not(--embedded)-scoped mobile rules (the embedded editor no longer takes over the mobile viewport).
- Memory view: add flex-shrink:0 to the description + tab bar so they don't collapse and overlap the scrolling content (regressed when the header moved to ViewHeader).
- Settings General: fix literal '&apos;' showing in the GitHub-tracking helper copy (pre-existing FN-6771 localization bug) in the i18n source + component default.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
533d10095d feat(dashboard): finish ViewHeader rollout + normalize content padding
- Migrate Insights, Dev Server, Todos, Pull Requests to the shared ViewHeader.
- Fix doubled top padding (ViewHeader already pads top) across Documents/Agents/Mailbox/Missions content areas.
- Nudge embedded-view headers to the shared spec (CommandCenter icon 20; WorkflowNodeEditor icon+1.125rem title+space-lg; Settings embedded icon). ChatView intentionally headerless.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
fe98a2a699 feat(compound-plugin): use shared ViewHeader for a consistent view header
Compound Engineering plugin view now renders the dashboard's shared ViewHeader (Sparkles icon + title) so it matches the other main-content views. Expose ViewHeader via the dashboard exports map; resolve it in the plugin via an ambient interop declaration (no host runtime dependency). Tests updated (plugin suite green).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
4bcdc7778e FN-6916: fix planning loader first-paint spin
Ensure Planning Mode loading spinners animate immediately on the first loading paint.

- Switch shared SVG spinner geometry to fill-box so Lucide loaders resolve their center transform without waiting for a later repaint.
- Cover initial and streaming Planning Mode loading spinners across modal/embedded and desktop/mobile presentations.
- Assert related Planning Mode Loader2 spin affordances remain wired.

Files changed:
 .../PlanningModeModal.ui-interactions.test.tsx     | 111 +++++++++++++++++++++
 packages/dashboard/app/styles.css                  |   7 +-
 2 files changed, 117 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6916

Fusion-Task-Lineage: f4db8f45-d52d-4cd5-8178-54b92d86a5ff
2026-06-22 03:34:16 -07:00
gsxdsm
f5ace75c92 fix(dashboard): gm dock tabs shrink to icon width; Skills content padding
- gm: reset the base .gm-nav-item width:100% in the icon-only container query so each tab is icon-sized and many fit horizontally (was one full-width tab at a time).
- Skills view content no longer repeats the ViewHeader's top padding (removes the doubled gap under the header).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
e467394dc9 feat(dashboard): consistent ViewHeader on Skills/Mailbox/Agents; title metric on Missions
- Skills, Mailbox, Agents migrated to the shared ViewHeader (existing controls passed through actions; Skills icon -> Zap to match sidebar).
- Missions keeps its integrated header but adopts the shared 1.125rem title + size-20 icon.
- ChatView intentionally left as-is (height-sensitive two-pane; documented with FNXC).
- Tests updated for the new header markup (606 pass across the view suites).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
b45df4c83b feat(dashboard): board task detail opens as a full main-panel view
Clicking a board card opens its detail in a full main-content view (replacing the board) with a 'Back to board' button, instead of the TaskDetailModal overlay. Only the Board entry point changes; list-view embed, right-dock cards, and other openDetail callers keep the modal. New 'task-detail' task view; embedded TaskDetailContent prefers the live task. Works within the mobile shell (swipe-back reverts to board). Tests updated (70 pass).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
0f98cf941f feat(dashboard): consistent ViewHeader on Artifacts/Research/Evals/Goals/Memory
Normalize these main-content views onto the shared ViewHeader (icon + CC-style title; existing header controls moved into the actions slot). Tests updated for the new header markup (95 pass).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
efd659be0e feat(dashboard): Command Center Team card - View Board/Agents buttons + heartbeat multiplier slider
- TeamArea heartbeat card gains a heartbeat-multiplier slider (mirrors AgentsView: same range/step/presets, persisted via updateSettings) and a View Board / View Agents nav row (onChangeView threaded from CommandCenter <- App handleChangeTaskView).
- Update CC/TeamArea test mocks to export fetchSettings/updateSettings (220 pass).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
f531618d0f feat(dashboard): mobile nav - Dashboard first tab; Skills overflow-only
- Dashboard (Command Center) is the first mobile bottom-nav tab (before Tasks), matching the desktop sidebar.
- Skills is never a top-level mobile tab; when enabled it lives only in the three-dot More sheet.
- Tests updated to the new order/More-sheet behavior (74 pass).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
ef8ca55ebf fix(dashboard): embedded main-views keep the mobile header/footer
Scope each converted modal's mobile full-screen/viewport-takeover rules to :not(--embedded) (Settings, GitHub import, Git Manager, Workflows) so the embedded main-content variant fills only the content pane and the app Header + MobileNavBar stay visible on mobile. Modal presentation unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
8637ff96fa feat(dashboard): Files view two-pane when expanded, single-panel stack in dock
DockFilesView uses a container query: narrow (dock) keeps the single-panel tree<->viewer navigation stack; wide (pop-out expand modal) shows the file tree and viewer side by side with an empty 'Select a file' state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
8ab8cd1526 fix(dashboard): smoother/larger terminal resize handle; icon-only gm dock tabs; Compound Eng label
- Docked terminal resize handle: larger grab target straddling the panel edge with touch-action:none; resize batches height to one rAF update per frame and writes localStorage once on pointer-up (was a sync clamp + write every move).
- Git Manager dock tabs are icon-only in the narrow dock (label sr-only, title/aria-label tooltip) so many tabs fit horizontally.
- Left sidebar Compound plugin label reads 'Compound Eng'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:16 -07:00
gsxdsm
6719e6195c feat(dashboard): Settings loads as a main-panel view
Add a 'settings' main-content task view: SettingsModal gains a presentation=embedded mode (no overlay/close, modal-only behaviors disabled, CC-style padded header) and a thin SettingsView wrapper. App renders it in renderMainContent (before the overview gate so the gear works with no project); settings entry points navigate to the view (carrying the deep-link section via setSettingsSection) while the modal mount stays for bootstrap callers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
a6f49b847c feat(dashboard): integrate stashed workflow-selection refactor; Dashboard rename; resolve CC conflicts
- Resolve the stash-pop conflicts in command-center CSS/test by keeping the current branch's newer FN-6784 responsive clamps, Team heartbeat docs, and recharts assertions (the stashed snapshot was older).
- Land the stashed workflow-selection refactor (Board/NewTaskModal/WorkflowSwitcher; remove lastSelectedWorkflow util).
- Rename Command Center -> Dashboard (i18n source) and move it to the top of the left sidebar; workflow switcher chevron sized to match the project selector.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
c0ab7f43b8 FN-6923: default new tasks to the selected workflow lane
New Task now inherits the project's current or last valid workflow lane.

- Persist explicit Board and List workflow switcher selections per project.
- Seed the New Task workflow selector from the cached valid lane without marking the pristine dialog dirty.
- Preserve default-workflow inheritance when no remembered lane exists or the remembered lane was deleted.
- Cover quick-add parity, workflow defaulting, stale-lane fallback, and storage helper behavior in tests.
- Document New Task workflow selector defaulting in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |   2 +
 packages/dashboard/app/components/Board.tsx        |  12 +-
 packages/dashboard/app/components/ListView.tsx     |  12 +-
 packages/dashboard/app/components/NewTaskModal.tsx |  21 ++-
 .../app/components/__tests__/NewTaskModal.test.tsx | 142 ++++++++++++++++++++-
 .../utils/__tests__/lastSelectedWorkflow.test.ts   |  67 ++++++++++
 .../dashboard/app/utils/lastSelectedWorkflow.ts    |  31 +++++
 7 files changed, 279 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6923
Fusion-Task-Lineage: 6e3c8efd-3865-4975-a754-2f0d5ff89ab0
2026-06-22 03:34:15 -07:00
gsxdsm
322077b804 feat(dashboard): quick-add collapsed by default in List, open in Board
Add a defaultExpanded prop to QuickEntryBox (default true = open, preserving Board/column behavior); List view passes defaultExpanded={false} so the quick-add controls start collapsed. autoExpand (expand-on-focus) is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
125c5f5744 feat(dashboard): TodoView nav-stack in narrow dock; taller scrollable import preview; shared ViewHeader
- TodoView collapses to a single-panel navigation stack (list -> items with Back) via container query when narrow (right dock); wide two-panel layout unchanged.
- Embedded Import Tasks body scrolls vertically so the preview can be much taller (stacked layout gives the preview natural height; wide layout keeps internal scroll).
- Add a shared ViewHeader component (icon + CC-style title + wrapping actions) for consistent main-view headers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
cf702c9bbd fix(dashboard): taller Git Manager dock tab strip with narrower icon-over-label tabs
Each section tab stacks its icon over a small label so all tabs are visible at once in the narrow dock with minimal horizontal scrolling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
744bb384dc feat(dashboard): Usage back to header; Skills/Memory after Mailbox; tests updated
- Usage (Activity) removed from the right dock and rendered as a non-mobile header button (left of the right-sidebar toggle) that opens the UsageIndicator as a header-anchored modal.
- Left sidebar: Skills and Memory moved to immediately after Mailbox.
- Updated overflowViewRegistry / Header / tablet-header / LeftSidebarNav tests to the new behavior (all green).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
0b410d54e1 FN-6915: surface user comments in agent prompts
User task chat and steering comments now flow into planning, review, and merge agent context.

- Add a shared user-comment formatter and selector for prompt context.
- Inject latest user comments into planner-triggered review, reviewer, merger, and clean-room AI merge prompts.
- Cover comment selection, prompt formatting, review/merge propagation, and docs updates with targeted tests.

Files changed:
 docs/architecture.md                               |  1 +
 docs/dashboard-guide.md                            |  1 +
 .../src/__tests__/agent-user-comments.test.ts      | 81 ++++++++++++++++++++++
 .../executor-review-step-indexing.test.ts          | 28 +++++++-
 packages/engine/src/__tests__/merger-ai.test.ts    | 54 +++++++++++++++
 .../src/__tests__/merger-prompt-and-utils.test.ts  | 29 ++++++++
 packages/engine/src/__tests__/reviewer.test.ts     | 37 ++++++++--
 packages/engine/src/__tests__/triage.test.ts       | 23 ++++++
 packages/engine/src/agent-user-comments.ts         | 60 ++++++++++++++++
 packages/engine/src/executor.ts                    | 14 ++--
 packages/engine/src/merger-ai.ts                   | 23 +++++-
 packages/engine/src/merger.ts                      | 22 +++++-
 packages/engine/src/reviewer.ts                    | 13 ++++
 13 files changed, 372 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-6915

Fusion-Task-Lineage: 02de0c12-481a-4489-b495-70c9c00619bc
2026-06-22 03:34:15 -07:00
gsxdsm
d9b4f29f5d fix(dashboard): docked terminal backdrop override must out-specify base modal-overlay
The base .modal-overlay (dim + blur) and the docked/floating override were both single-class selectors, so stylesheet order could let the dim/blur win and fade the page. Qualify the override with .modal-overlay so the transparent, non-blurring, click-through backdrop always wins.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
18adb8f251 feat(dashboard): add Todos and Pull Requests to the right dock
Both render inline in the dock; Todos is gated by the todosEnabled flag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
ea7c14964c fix(dashboard): make the list-view split sidebar easy to resize
Widen the split resize column from 4px to --space-sm and add a centered grip line that brightens on hover/focus, so the task-list sidebar is easy to grab and drag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
7533fa14eb feat(dashboard): reorder left sidebar; Dev Server + Secrets to right dock; Import Tasks CC header
- Left sidebar reordered to a single explicit list (board, list, graph, command-center, agents, chat, mailbox, planning, missions, artifacts, goals, compound, automation, import, workflows, insights, research, skills, memory, evals, remaining plugins). Command Center before Agents; Artifacts after Missions.
- Dev Server and Secrets moved off the left sidebar into the right dock (inline render; Dev Server gated by the devServerView flag).
- Import Tasks embedded view uses a Command Center-style header (GitHub logo + shared title font + padding).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
dc0064bd15 feat(dashboard): right-dock inline tools, left-sidebar views, embedded-view polish
- Right dock: Files first/default; usage/activity-log/git-manager render inline; embedded Git Manager uses a container query (compact horizontal tab strip in the dock, full two-pane in the wide pop-out); Files inline viewer + pop-out.
- Import Tasks layout fits its container (stacked when narrow, two-pane when wide); Import Tasks uses the GitHub mark.
- Planning embeds full-area and works on mobile; planning shows the board WorkflowSwitcher.
- Automations screen uses theme color tokens.
- Workflow selector matches the project selector height/font.
- Left sidebar: uniform spacing across the primary/secondary boundary.

Adds a changeset for @runfusion/fusion (minor).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
70442d2b42 feat(dashboard): dock file viewer, planning workflow switcher, gm mobile layout
- Files dock: clicking a file opens it inline (read-only FileEditor) with Back + pop-out-to-resizable-modal controls (DockFilesView).
- Planning view shows the same board WorkflowSwitcher in the same Header workflow slot (PlanningWorkflowSwitcherSlot, portaled).
- Embedded Git Manager uses the mobile single-column layout in the narrow dock (section tabs strip + full-width content).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
7830c13a7e feat(dashboard): Workflows, Import Tasks, Automations as left-sidebar main views
- New built-in task views: workflows, import-tasks, automations (left-sidebar destinations rendering in the main content area).
- WorkflowNodeEditor, GitHubImportModal, and ScheduledTasksModal gain a presentation=embedded mode (inline, no overlay/close, modal-only behaviors disabled). Automations embedded view uses a Command Center-style header and a responsive two-pane (list + detail) layout when wide enough.
- Left sidebar adds Workflows, Import Tasks, Automations entries; renderMainContent renders the embedded views.
- Remove github-import and automation from the right dock; hide the desktop Header Workflow button when the left sidebar owns Workflows. Mobile overflow keeps the modal entry points unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
cf0465785c style(dashboard): workflow selector matches project selector
Align the workflow-switcher trigger with the project-selector trigger: transparent background, --radius-md, muted text that brightens on hover with --card-hover fill and --text-dim border, content-driven width (drop the fixed min-width; keep the max-width clamp).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
cdee83c3ec fix(dashboard): list narrowing, planning blend, insights header, graph out of dock
- List view split sidebar min-width 120->64 so it can be dragged much narrower; titles wrap to two lines in the split sidebar.
- Embedded planning blends like Command Center: no panel shadow/border/outline, transparent background, matching --space-lg padding.
- Insights view header wraps so action buttons drop to a new line instead of overlapping the title.
- Dependency graph no longer appears in the right dock (left-sidebar destination only).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
7ceea21194 feat(dashboard): right-dock tools render inline (no popup modals)
- Add an embedded presentation to UsageIndicator, ActivityLogModal, and GitManagerModal: rendered inline inside the right-dock container with no fixed overlay, no modal-close, and modal-only behaviors (scroll lock, resize-persist, escape-to-close, popover anchor positioning) disabled when embedded. Modal path unchanged.
- Right-dock registry mounts usage/activity-log/git-manager via presentation=embedded render instead of onActivate modal launchers; Files already inline.
- Remove the in-dock collapse button; the header right-sidebar toggle is the sole show/hide control.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
b9a27785eb feat(dashboard): right-sidebar header toggle + sidebar fixes
- Add a non-mobile header right-sidebar show/hide toggle (PanelRight) wired to the right-dock open state; replaces the tablet three-dots overflow. Mobile keeps its overflow menu untouched.
- Right dock is fully hidden when closed (no persistent rail); main content reclaims the space. Resize handle preserved when open.
- Fix New Task CTA width: .left-sidebar-nav__item width:100% was overriding it, overflowing the unpadded aside by 2x--space-sm and overlapping the resize bar; raise specificity so it matches the item highlight box.
- Make the primary/secondary nav gap match the row rhythm (Compound -> Goals no longer doubled).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
901ca72efd FN-6912: slim the messages split pane divider
Slim the full-page Messages split-pane divider without reducing its interactive resize target.

- Reduce the visible mailbox split resize handle from space-sm to space-xs.
- Keep the pseudo-element hit target at space-sm for hover, active, and drag affordances.
- Extend MailboxView CSS coverage to assert the thinner handle and preserved target width.

Files changed:
 packages/dashboard/app/components/MailboxModal.css           |  8 ++++++--
 .../dashboard/app/components/__tests__/MailboxView.test.tsx  | 12 +++++++++++-
 2 files changed, 17 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6912

Fusion-Task-Lineage: c5fccc5f-56b2-4188-8c27-51ed3b269f86
2026-06-22 03:34:15 -07:00
gsxdsm
108d9f6dca feat(dashboard): embedded planning + sidebar/dev-server styling
- Planning mode embedded view drops the modal header/close and uses a plain common title like Command Center.
- Remove the divider before the secondary section (Goals/Evals) in the left sidebar.
- Flatten the Dev Server view header to match embedded-view styling (no card chrome).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
7f9849d6ed FN-6908: add expandable artifact media previews
Adds a polished media gallery experience for image and video artifacts in Documents.

- Make image and video artifact cards open an accessible lightbox with keyboard, backdrop, and close-button dismissal.
- Style expandable previews, hover affordances, and responsive full-size media presentation.
- Cover the media lightbox behavior in DocumentsView tests and document the dashboard gallery behavior.
- Add localized labels for expanding and closing artifact previews.

Files changed:
 docs/dashboard-guide.md                            |   4 +-
 .../dashboard/app/components/DocumentsView.css     | 156 +++++++++++++++++++--
 .../dashboard/app/components/DocumentsView.tsx     | 121 +++++++++++++++-
 .../components/__tests__/DocumentsView.test.tsx    |  46 +++++-
 packages/i18n/locales/en/app.json                  |   6 +-
 packages/i18n/locales/es/app.json                  |   6 +-
 packages/i18n/locales/fr/app.json                  |   6 +-
 packages/i18n/locales/ko/app.json                  |   6 +-
 packages/i18n/locales/zh-CN/app.json               |   6 +-
 packages/i18n/locales/zh-TW/app.json               |   6 +-
 10 files changed, 338 insertions(+), 25 deletions(-)

Fusion-Task-Id: FN-6908

Fusion-Task-Lineage: cf4d7d83-f58f-4686-ade9-b8b260bf400d
2026-06-22 03:34:15 -07:00
gsxdsm
db17d6a19e fix(dashboard): tighten sidebar/terminal chrome
- Left sidebar New Task CTA now occupies the same box as item highlights (drop bleeding box-shadow).
- Add spacing between Collapse and Settings in the sidebar footer.
- Docked/floating terminal no longer blurs the page behind; page stays interactive.
- Flatten the footer Terminal launcher to plain clickable text like the executor running-state trigger.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:34:15 -07:00
gsxdsm
af06170a51 FN-6778: add agent artifact registry tools
Adds engine and chat tools for registering, discovering, and viewing artifacts with inbox notifications.

- Add fn_artifact_register, fn_artifact_list, and fn_artifact_view tools for heartbeat, executor, and chat sessions.
- Send best-effort dashboard system inbox notifications when artifacts are registered.
- Classify artifact tools for action gating and coordination exemptions, with coverage for executor, heartbeat, permanent agent, and chat flows.
- Document the artifact registry behavior and update package metadata, quarantine ledger, and line-count baseline.

Files changed:
 .changeset/fn-6778-artifact-agent-tools.md         |   5 +
 CONCEPTS.md                                        |   3 +
 docs/agents.md                                     |   1 +
 packages/core/src/db.ts                            |   1 +
 .../src/__tests__/session-error-recovery.test.ts   |   1 +
 .../session-persistence-roundtrip.test.ts          |   1 +
 .../src/__tests__/session-reconnect.test.ts        |   1 +
 .../src/__tests__/session-resume-history.test.ts   |   1 +
 packages/dashboard/src/chat.ts                     |   6 +-
 packages/dashboard/src/planning.ts                 |   4 +
 packages/dashboard/src/test/mockCoreEngine.ts      |   1 +
 .../engine/src/__tests__/agent-action-gate.test.ts |   3 +
 .../src/__tests__/agent-artifact-tools.test.ts     | 458 +++++++++++++++++++++
 .../src/__tests__/executor-step-session.test.ts    |  48 +++
 .../src/__tests__/gating-classifications.test.ts   |   3 +
 .../src/__tests__/heartbeat-executor.test.ts       |  40 +-
 .../src/__tests__/heartbeat-session-prompt.test.ts |  25 +-
 .../src/__tests__/permanent-agent-gating.test.ts   |   6 +
 packages/engine/src/agent-heartbeat.ts             |   6 +-
 packages/engine/src/agent-tools.ts                 | 288 ++++++++++++-
 packages/engine/src/executor.ts                    |  25 ++
 packages/engine/src/gating-classifications.ts      |   7 +
 packages/engine/src/index.ts                       |   9 +
 scripts/lib/test-quarantine.json                   |   8 +-
 scripts/line-count-baseline.json                   |  54 +--
 25 files changed, 945 insertions(+), 60 deletions(-)

Fusion-Task-Id: FN-6778
Fusion-Task-Lineage: 7eb4afcb-8140-4f86-9540-eb3b83e64148
2026-06-22 03:34:14 -07:00
gsxdsm
8c478adc78 FN-6851: prevent stale task board entries
Keep board listings consistent after task dependency moves.\n\n- Sync the watched task cache after dependency updates write todo-to-triage re-specification moves.\n- Deduplicate listTasks results so active task rows win over archived snapshots.\n- Cover dependency edits, archive snapshots, soft deletes, done rows, and orphan reconciliation with regression tests.\n- Add a patch changeset for the published Fusion package.\n\nFiles changed:\n .../fn-6851-stale-board-entries-after-move.md      |   5 +\n .../store-stale-board-entries-after-move.test.ts   | 144 +++++++++++++++++++++\n packages/core/src/store.ts                         |  18 ++-\n 3 files changed, 157 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-6851

Fusion-Task-Lineage: 4622439e-631c-4410-be96-9a9f38c1815e
2026-06-22 03:34:14 -07:00
gsxdsm
b71b0aafa0 Merge pull request #1719 from Runfusion/feature/readme-mobile
docs: add 'AI factory in your pocket' mobile showcase
2026-06-22 03:32:17 -07:00
gsxdsm
314e54f1c3 Update README.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-06-22 03:32:08 -07:00
gsxdsm
63c702d4b7 docs: add 'AI factory in your pocket' mobile showcase to the README
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:28:21 -07:00
gsxdsm
40fd3014e9 Merge pull request #1716 from Runfusion/feature/update-readme
docs: refresh README with feature showcase and media
2026-06-22 01:35:26 -07:00
gsxdsm
65d9a812f8 docs: sync localized READMEs with the refreshed English README
Apply the inline orange logo, software-factory framing, the
'See it in action' showcase (Command Center, workflows, agent chat,
chat rooms, agent mail), moved Quick start, and removed stat table to
all five locale READMEs, translating the new copy. Image paths and
section order match the English README exactly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 00:45:53 -07:00
gsxdsm
3c01f25379 docs: inline an orange Fusion mark beside the title in the README hero
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 00:34:35 -07:00