gsxdsm
11c4120705
FN-6659: keep xterm font metrics symbols-free
...
Keep terminal wide-glyph fallback out of xterm's measured font path while preserving Nerd Font symbols in DOM rendering.
- Split terminal font resolution into symbols-free xterm font families and scoped glyph fallback families.
- Apply the glyph fallback CSS variable to both TerminalModal and SessionTerminal surfaces.
- Update regression coverage and the documented mobile xterm wide-glyph recurrence analysis.
Files changed:
.changeset/fn-6659-terminal-render.md | 5 +++
.../xterm-symbols-nerd-font-unicode-range.md | 22 +++++++-----
.../dashboard/app/__tests__/terminal-input.test.ts | 42 +++++++++++++---------
.../dashboard/app/components/SessionTerminal.css | 8 +++++
.../dashboard/app/components/SessionTerminal.tsx | 21 +++++++++--
.../dashboard/app/components/TerminalModal.css | 8 +++++
.../dashboard/app/components/TerminalModal.tsx | 13 ++++++-
.../__tests__/SessionTerminal.mobile.test.tsx | 6 ++--
.../components/__tests__/SessionTerminal.test.tsx | 14 ++++----
.../components/__tests__/TerminalModal.test.tsx | 9 +++--
.../utils/__tests__/terminalPreferences.test.ts | 2 +-
.../dashboard/app/utils/terminalPreferences.ts | 16 +++++----
12 files changed, 117 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-6659
Fusion-Task-Lineage: e29a709d-9d9d-4a90-9616-8f08c41b126d
2026-06-18 15:59:34 -07:00
gsxdsm
16b6e5decb
FN-6638: stabilize mobile terminal font metrics
...
Stabilize terminal font metric remeasurement across mobile and attach surfaces.
- Add a shared terminal font metric wait helper that falls back from full font stacks to concrete individual font families before remeasurement.
- Reapply font options, refit, resize, and refresh SessionTerminal after font metrics settle to cover attached CLI terminals.
- Pin text-size adjustment on xterm measurement subtrees so mobile WebKit cannot inflate ASCII cell metrics.
- Extend terminal preference and rendering tests, documentation, and changeset coverage for the recurrence.
Files changed:
.changeset/fn-6638-terminal-render.md | 5 +
.../xterm-async-font-remeasure-paste-dedupe.md | 20 +++-
.../dashboard/app/__tests__/terminal-input.test.ts | 26 +++++
.../dashboard/app/components/SessionTerminal.css | 10 ++
.../dashboard/app/components/SessionTerminal.tsx | 29 ++++++
.../dashboard/app/components/TerminalModal.css | 10 ++
.../dashboard/app/components/TerminalModal.tsx | 24 ++---
.../components/__tests__/SessionTerminal.test.tsx | 41 +++++++-
.../components/__tests__/TerminalModal.test.tsx | 38 ++++++++
.../utils/__tests__/terminalPreferences.test.ts | 29 +++++-
.../dashboard/app/utils/terminalPreferences.ts | 107 +++++++++++++++++++++
11 files changed, 319 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6638
Fusion-Task-Lineage: edbf071d-a0c1-4955-95ff-83e6996f4674
2026-06-18 13:19:43 -07:00
gsxdsm
1bd8f6de6f
FN-6603: fix mobile terminal font measurement
...
Stabilize terminal glyph measurement by keeping monospace text fonts ahead of symbols fallbacks.
- Move the Fusion Terminal Nerd Font Symbols face behind real monospace fonts in the shared xterm font stack and terminal presets.
- Document the mobile WebKit cell-measurement hazard and keep SessionTerminal aligned with the shared preference path.
- Add regression coverage for mobile wide-glyph spacing, preference presets, and terminal input rendering.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-6603-terminal-render.md | 5 +++
.../xterm-symbols-nerd-font-unicode-range.md | 17 ++++++---
.../dashboard/app/__tests__/terminal-input.test.ts | 42 ++++++++++++++++++++--
.../dashboard/app/components/SessionTerminal.tsx | 3 ++
.../dashboard/app/components/TerminalModal.css | 5 ++-
.../__tests__/SessionTerminal.mobile.test.tsx | 22 +++++++++++-
.../components/__tests__/SessionTerminal.test.tsx | 23 ++++++++++--
.../dashboard/app/utils/terminalPreferences.ts | 14 +++++---
8 files changed, 115 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6603
Fusion-Task-Lineage: b5d90064-1bfd-4da9-8d89-c95cf6fcec0c
2026-06-17 18:48:53 -07:00
gsxdsm
ca14a12b94
FN-6601: consolidate relative-time bucket formatting
...
Consolidate dashboard relative-time calculations behind a shared bucket helper while preserving each surface's display behavior.
- Add getRelativeTimeBucket to centralize parsing, boundary math, and bucket metadata.
- Route ActivityFeed, AgentLogViewer, MissionManager, and PlanningModeModal timestamp labels through the shared helper.
- Extend unit coverage for bucket boundaries plus surface-specific just-now and future timestamp behavior.
Files changed:
packages/dashboard/app/components/ActivityFeed.tsx | 36 ++++++----
.../dashboard/app/components/AgentLogViewer.tsx | 36 ++++++----
.../dashboard/app/components/MissionManager.tsx | 32 +++++----
.../dashboard/app/components/PlanningModeModal.tsx | 35 ++++++----
.../app/components/__tests__/ActivityFeed.test.tsx | 8 +++
.../components/__tests__/AgentLogViewer.test.tsx | 8 +++
.../app/utils/__tests__/relativeTimeAgo.test.ts | 77 +++++++++++++++++++++-
packages/dashboard/app/utils/relativeTimeAgo.ts | 66 +++++++++++++++----
8 files changed, 236 insertions(+), 62 deletions(-)
Fusion-Task-Id: FN-6601
Fusion-Task-Lineage: 3521afa0-f3ce-49a4-8861-efd4f64f9a69
2026-06-17 17:57:19 -07:00
gsxdsm
01b80db603
FN-6589: add structured ask-question chat tool
...
Add a native chat-agent tool for presenting structured questions to dashboard users.
- Register `fn_ask_question` for dashboard chat sessions with prompt guidance to wait for user replies.
- Reuse the existing structured question card parser by recognizing the new tool name.
- Validate ask-question parameters in engine tooling and cover chat/parser behavior with tests.
- Document the dashboard chat question flow and add a patch changeset.
Files changed:
.changeset/fn-6589-chat-ask-question.md | 5 ++
docs/dashboard-guide.md | 3 +-
.../utils/__tests__/parseQuestionToolCall.test.ts | 19 +++++
.../dashboard/app/utils/parseQuestionToolCall.ts | 3 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 10 ++-
packages/dashboard/src/chat.ts | 10 ++-
.../src/__tests__/agent-tools-ask-question.test.ts | 51 ++++++++++++
packages/engine/src/agent-tools.ts | 94 ++++++++++++++++++++++
packages/engine/src/index.ts | 2 +
9 files changed, 190 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6589
Fusion-Task-Lineage: 3f416010-ed2f-40b3-a899-7a9f4a6ed265
2026-06-17 16:53:29 -07:00
gsxdsm
c261217ac1
FN-6597: add task chat timestamps
...
Show compact relative timestamps in task chat without adding live polling.
- Add a shared relative-time formatter for chat timestamps.
- Render muted timestamps on user message headers and agent group metadata.
- Cover timestamp formatting and chat header rendering with dashboard tests.
- Document task chat timestamp behavior in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 19 +++++
packages/dashboard/app/components/TaskChatTab.tsx | 23 ++++-
.../app/components/__tests__/TaskChatTab.test.tsx | 97 +++++++++++++++++++++-
.../app/utils/__tests__/relativeTimeAgo.test.ts | 32 +++++++
packages/dashboard/app/utils/relativeTimeAgo.ts | 23 +++++
6 files changed, 192 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6597
Fusion-Task-Lineage: 52c54a9e-6d00-4df1-a454-2218a935ebda
2026-06-17 16:21:54 -07:00
gsxdsm
e923b5e84d
FN-6527: add terminal shortcuts and preferences
...
Adds persistent terminal customization and keyboard-less navigation controls to the dashboard terminal.
- Add arrow shortcut buttons that send ANSI cursor sequences alongside existing Ctrl/Alt helpers.
- Add localStorage-backed terminal preferences for font family, size, cursor style, blink, and renderer with legacy font-size migration.
- Apply font and cursor preferences live, document renderer behavior, and cover preference parsing and modal controls with tests.
Files changed:
docs/dashboard-guide.md | 3 +
.../dashboard/app/components/TerminalModal.css | 57 ++++-
.../dashboard/app/components/TerminalModal.tsx | 271 ++++++++++++++++-----
.../components/__tests__/TerminalModal.test.tsx | 135 +++++++++-
.../utils/__tests__/terminalPreferences.test.ts | 90 +++++++
.../dashboard/app/utils/terminalPreferences.ts | 197 +++++++++++++++
6 files changed, 690 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-6527
Fusion-Task-Lineage: bc863486-9d2c-41d5-84a4-7b697e81a298
2026-06-17 00:06:24 -07:00
gsxdsm
a4537167ab
FN-6501: render chat question response controls
...
Render structured assistant question prompts directly in chat surfaces.
- Add parser and formatter support for question tool calls.
- Add reusable question response UI for select, multi-select, text, and confirm prompts.
- Wire regular chat and quick chat to show live and answered question states.
- Cover parsing and chat response behavior with dashboard tests and localized labels.
Files changed:
.changeset/fn-6501-chat-question-response.md | 5 +
docs/dashboard-guide.md | 2 +
.../app/components/ChatQuestionResponse.css | 194 ++++++++++++++++
.../app/components/ChatQuestionResponse.tsx | 247 +++++++++++++++++++++
packages/dashboard/app/components/ChatView.tsx | 85 ++++++-
packages/dashboard/app/components/QuickChatFAB.tsx | 84 ++++++-
.../__tests__/ChatQuestionResponse.test.tsx | 52 +++++
.../app/components/__tests__/ChatView.test.tsx | 51 +++++
.../app/components/__tests__/QuickChatFAB.test.tsx | 64 ++++++
.../utils/__tests__/parseQuestionToolCall.test.ts | 82 +++++++
.../dashboard/app/utils/parseQuestionToolCall.ts | 240 ++++++++++++++++++++
packages/i18n/locales/en/app.json | 10 +
12 files changed, 1105 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6501
Fusion-Task-Lineage: 1fd4a3aa-b2d7-4157-a196-852fdeda680d
2026-06-16 20:13:13 -07:00
Phil Larson
724f31a877
fix(dashboard): document legacy task log deadlock handling
2026-06-14 14:27:45 -07:00
Phil Larson
84cf3ff6e5
fix(dashboard): guard task detail log entry rendering
2026-06-14 13:50:17 -07:00
gsxdsm
869a4f77da
FN-6329: prevent Quick Chat keyboard board shift
...
Keep the mobile board layout stable while Quick Chat owns the keyboard viewport.
- Treat fullscreen mobile overlays as suppressors for App-level footer hiding.
- Pass Quick Chat mobile open state into the shared keyboard flag helper.
- Cover iOS, Android, modal, and non-mobile keyboard flag behavior.
- Document the Quick Chat mobile keyboard board-shift root cause and fix.
Files changed:
.../quick-chat-mobile-keyboard-board-shift.md | 58 ++++++++++++++++++++++
packages/dashboard/app/App.tsx | 4 +-
.../utils/__tests__/mobileBarKeyboardFlags.test.ts | 57 ++++++++++++++++++++-
.../dashboard/app/utils/mobileBarKeyboardFlags.ts | 10 +++-
4 files changed, 126 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6329
Fusion-Task-Lineage: f7c37252-c0ea-44f0-b4e3-5aa2022cf7bc
2026-06-12 19:22:11 -07:00
gsxdsm
4bd6024ef7
FN-6300: add live task chat tab
...
Add a live chat-style task detail tab for following and steering active agent work.
- Add TaskChatTab with grouped agent log bubbles, live-follow scrolling, and steering message composer.
- Share chat input autosize helpers between ChatView and task chat.
- Wire the Chat tab into task detail navigation with localized labels and regression coverage.
Files changed:
docs/dashboard-guide.md | 2 +
.../dashboard/app/components/AgentLogViewer.tsx | 2 +-
packages/dashboard/app/components/ChatView.tsx | 25 +-
packages/dashboard/app/components/TaskChatTab.css | 193 ++++++++++++++
packages/dashboard/app/components/TaskChatTab.tsx | 276 +++++++++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 13 +-
.../app/components/__tests__/TaskChatTab.test.tsx | 181 ++++++++++++++
.../TaskDetailModal.attachments-and-tabs.test.tsx | 19 +-
.../TaskDetailModal.definition-actions.test.tsx | 104 ++++----
...etailModal.responsive-and-dependencies.test.tsx | 2 +-
packages/dashboard/app/utils/chatInputAutosize.ts | 18 ++
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
17 files changed, 757 insertions(+), 84 deletions(-)
Fusion-Task-Id: FN-6300
Fusion-Task-Lineage: 1eb8a17b-3ca5-4cba-81c6-ac7ccce0a113
2026-06-12 10:00:08 -07:00
gsxdsm
d67f61d03e
FN-6135: remove workflow toolbar collapse toggle
...
Simplify the workflow board toolbar by removing its collapse state and persistence.
- remove the workflow toolbar collapse toggle, handlers, and scoped localStorage persistence from Board
- drop collapse-specific workflow toolbar styling and mobile collapsed-layout rules
- replace collapse-focused board tests with assertions that the toolbar renders without a collapse affordance
- remove the unused workflow toolbar storage key and update project storage expectations
Files changed:
packages/dashboard/app/components/Board.tsx | 129 +++++---------
packages/dashboard/app/components/Lane.css | 36 ----
.../app/components/__tests__/Board.test.tsx | 187 +++------------------
.../app/utils/__tests__/projectStorage.test.ts | 3 +-
packages/dashboard/app/utils/projectStorage.ts | 1 -
5 files changed, 60 insertions(+), 296 deletions(-)
Fusion-Task-Id: FN-6135
Fusion-Task-Lineage: 11c17edf-bbed-4ec5-a06e-00a2537ffac1
2026-06-09 16:02:08 -07:00
gsxdsm
320b153c45
FN-6113: fail fast on terminal provider errors
...
Fail fast on non-retryable provider failures in the in-review stall recovery flow.
- classify failed-task provider errors as non-retryable, retryable, or unknown in core stall detection
- surface terminal provider errors with dedicated dashboard copy and exported stall signal metadata
- pause in-review tasks immediately on non-retryable provider failures and record a dedicated run-audit mutation
- add regression coverage for provider error classification, self-healing disposition, and dashboard badge behavior
Files changed:
.../core/src/__tests__/in-review-stall.test.ts | 70 ++++++++++
packages/core/src/in-review-stall.ts | 53 ++++++-
packages/core/src/index.ts | 4 +-
.../app/utils/__tests__/inReviewStallCopy.test.ts | 5 +-
packages/dashboard/app/utils/inReviewStallCopy.ts | 8 ++
.../in-review-stall-deadlock-disposition.test.ts | 153 +++++++++++++++++++++
packages/engine/src/run-audit.ts | 1 +
packages/engine/src/self-healing.ts | 30 +++-
8 files changed, 320 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6113
Fusion-Task-Lineage: 5e89adb4-6b59-4deb-8811-5c75d6fa19cc
2026-06-09 12:51:20 -07:00
gsxdsm
a2f4bb14c0
FN-6080: remove workflow selector collapse controls
...
Always render the workflow selector expanded across the dashboard.
- remove collapsible workflow selector props, state, icons, and toggle styles
- stop InlineCreateCard from passing collapse persistence options
- delete project storage support and tests for collapsed workflow selector state
- add a patch changeset for the published CLI package
Files changed:
.changeset/fn-6080-removal.md | 5 ++
.../dashboard/app/components/InlineCreateCard.tsx | 3 -
.../dashboard/app/components/WorkflowSelector.css | 14 +----
.../dashboard/app/components/WorkflowSelector.tsx | 65 +--------------------
.../components/__tests__/InlineCreateCard.test.tsx | 50 ----------------
.../components/__tests__/WorkflowSelector.test.tsx | 68 ----------------------
.../app/utils/__tests__/projectStorage.test.ts | 3 +-
packages/dashboard/app/utils/projectStorage.ts | 1 -
8 files changed, 8 insertions(+), 201 deletions(-)
Fusion-Task-Id: FN-6080
Fusion-Task-Lineage: cca26111-9e20-47d0-8473-d18a3b488ae1
2026-06-09 08:14:16 -07:00
gsxdsm
4366a933da
FN-6046: add collapsible workflow selectors
...
Add collapsible workflow selectors for board workflow controls and inline task creation.
- add a collapsible board workflow toolbar with persisted per-project state
- make the inline create workflow selector collapsible and store its expanded state per project
- update workflow selector styling, storage key allowlist, and regression coverage for collapse behavior
Files changed:
packages/dashboard/app/components/Board.tsx | 104 +++++++++++++--------
.../dashboard/app/components/InlineCreateCard.css | 9 ++
.../dashboard/app/components/InlineCreateCard.tsx | 3 +
packages/dashboard/app/components/Lane.css | 23 +++++
.../dashboard/app/components/WorkflowSelector.css | 20 +++-
.../dashboard/app/components/WorkflowSelector.tsx | 81 ++++++++++++++--
.../app/components/__tests__/Board.test.tsx | 101 ++++++++++++++++++--
.../components/__tests__/InlineCreateCard.test.tsx | 57 ++++++++++-
.../components/__tests__/WorkflowSelector.test.tsx | 73 ++++++++++++++-
.../app/utils/__tests__/projectStorage.test.ts | 4 +-
packages/dashboard/app/utils/projectStorage.ts | 2 +
11 files changed, 420 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-6046
Fusion-Task-Lineage: 07cbe7a8-5740-479d-94a3-b178c72a5273
2026-06-09 02:09:31 -07:00
gsxdsm
b95e7f7575
FN-5894: share project data-boundary and status helpers
...
Centralize project loading and status-state handling across dashboard surfaces.
- add a reusable DataBoundary component for loading, empty, error, and loaded states
- extract shared project status config helpers for labels, colors, icons, and initializing detection
- update project overview, cards, badges, and selector UI to use the shared helpers
- add regression coverage for data-boundary behavior, project overview empty/loading transitions, and status config fallbacks
Files changed:
packages/dashboard/app/components/DataBoundary.tsx | 64 ++++++++++++++++++++++
packages/dashboard/app/components/ProjectCard.tsx | 48 ++--------------
.../app/components/ProjectHealthBadge.tsx | 45 +--------------
.../dashboard/app/components/ProjectOverview.tsx | 4 +-
.../dashboard/app/components/ProjectSelector.tsx | 27 +--------
.../app/components/__tests__/DataBoundary.test.tsx | 62 +++++++++++++++++++++
.../components/__tests__/ProjectOverview.test.tsx | 25 +++++++++
.../__tests__/ProjectThemeTokens.test.tsx | 37 ++++---------
.../utils/__tests__/projectStatusConfig.test.ts | 53 ++++++++++++++++++
.../dashboard/app/utils/projectStatusConfig.ts | 50 +++++++++++++++++
packages/dashboard/vitest.config.ts | 2 +
11 files changed, 282 insertions(+), 135 deletions(-)
Fusion-Task-Id: FN-5894
Fusion-Task-Lineage: 3626a4af-b62b-456d-82d7-cf47bbf55c21
2026-06-02 14:14:24 -07:00
gsxdsm
9b54f52b39
FN-5707: fix Android executor footer overlap after keyboard dismiss
...
Adjust mobile keyboard bar flags so Android keeps the executor footer stacked above the nav bar while iOS retains collapse behavior.
- extract mobile bar keyboard flag computation into a dedicated utility
- keep nav keyboard pinning cross-platform while limiting footer keyboard-collapse to iOS
- add focused unit tests for Android/iOS/modal/desktop keyboard flag scenarios
- update ExecutorStatusBar keyboard-open test assertion and dashboard guide keyboard behavior notes
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/App.tsx | 23 ++++---
.../__tests__/ExecutorStatusBar.test.tsx | 6 +-
.../utils/__tests__/mobileBarKeyboardFlags.test.ts | 73 ++++++++++++++++++++++
.../dashboard/app/utils/mobileBarKeyboardFlags.ts | 36 +++++++++++
5 files changed, 129 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-5707
Fusion-Task-Lineage: ed01fcb0-d814-4595-9479-5baf97326ae7
2026-05-29 21:03:12 -07:00
gsxdsm
129e17d16c
FN-5702: keep mobile footer and nav pinned when keyboard opens
...
Add viewport-offset handling so mobile bottom bars stay anchored while virtual keyboards resize the visual viewport.
- add a shared viewportOffset utility to compute keyboard-related visual viewport compensation
- update dashboard app bootstrap/index logic to apply compensation variables for pinned footer/nav layout
- extend mobile keyboard layout coverage with dedicated viewport compensation and bottom-bar tests
- document the keyboard/pinned-bar behavior update in dashboard guide
Files changed:
docs/dashboard-guide.md | 2 +-
.../mobile-bottom-bars-keyboard-layout.test.ts | 12 ++-
.../viewport-compensation-keyboard.test.ts | 24 ++++++
packages/dashboard/app/index.html | 39 +++++++++-
.../app/utils/__tests__/viewportOffset.test.ts | 86 ++++++++++++++++++++++
packages/dashboard/app/utils/viewportOffset.ts | 64 ++++++++++++++++
6 files changed, 223 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-5702
Fusion-Task-Lineage: be47ad0c-82df-4c38-9577-94c2eee49a0e
2026-05-29 20:05:14 -07:00
gsxdsm
d37bebf8bf
feat(FN-5516): merge fusion/fn-5516
2026-05-22 17:24:38 -07:00
gsxdsm
ed4d021d3d
fix(dashboard): keep mobile nav visible on Android landscape and during keyboard
...
- Broaden mobile media query to include (max-height: 480px) so landscape
phones (which exceed 768 CSS px wide) still render the bottom nav and
mobile board layout instead of desktop horizontally-scrollable columns.
- Guard useMobileKeyboard against pinch-zoom (vv.scale > 1) — Android
Chrome ignores user-scalable=no, and a focused textarea + zoom was
false-positiving keyboard-open and hiding MobileNavBar.
- Read documentElement.clientHeight instead of stale window.innerHeight
when computing keyboard overlap (Android multi-window can leave
innerHeight cached at a wildly different value than the actual layout
viewport — observed 2848 while html was 797).
- Add interactive-widget=resizes-content to the viewport meta so Android
Chrome shrinks the layout viewport with the soft keyboard, matching iOS.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 13:12:36 -07:00
Fusion (runfusion.ai)
ef5dd7ba25
feat(FN-5435): reset fallback retry counter on success in reviewer
...
Adds a fallback retry counter to the reviewer that resets on successful step completion, preventing premature escalation when earlier steps exhaust retries while later ones succeed; also aligns dashboard trace buffer types and adds comprehensive coverage for the reset semantics.
Fusion-Task-Id: FN-5435
2026-05-21 08:43:57 -07:00
Fusion (runfusion.ai)
e96cb09982
feat(FN-5388): add warm room cache hydration with open diagnostics
...
Add room open performance diagnostics and warm cache hydration for room switches (FN-5388). The implementation adds a timing instrumentation utility, SWR cache constants, warm-room handoff logic in `useChatRooms`, and a documentation file covering the performance model, accompanied by regression tes
Fusion-Task-Id: FN-5388
2026-05-20 20:27:11 -07:00
Fusion (runfusion.ai)
1913cb59fe
feat(FN-5389): add resume event instrumentation with SSE, hooks, and diagno
...
FN-5389 adds dashboard resume event instrumentation: a `resumeInstrumentation` utility captures SSE resume signals, wired through `useChat`, `useChatRooms`, and `useTasks` hooks, with remount markers in `Board` and `ChatView`; diagnostics routes expose resume events for observability, documented in
Fusion-Task-Id: FN-5389
2026-05-20 19:58:49 -07:00
Fusion (runfusion.ai)
cfc70b21bd
feat(FN-5202): add SWR caching for chat agents, skills, and models
...
This merge introduces SWR-style caching across the dashboard to eliminate redundant fetches for models, agents, and skills, significantly refactoring ChatView.tsx (reduced by ~140 lines) by offloading cache coordination to three new dedicated hooks (`useAgentsMapCache`, `useDiscoveredSkillsCache`, `
Fusion-Task-Id: FN-5202
2026-05-20 03:19:44 -07:00
Fusion (runfusion.ai)
e6c7dcdd64
feat(FN-5139): wire lineage unlink delete and archive flows
...
Fusion-Task-Id: FN-5139
Fusion-Task-Lineage: c16f4245-bfda-4b9a-bd98-ffc44b45f5a0
2026-05-19 18:56:24 -07:00
Fusion (runfusion.ai)
ad35a1ccfc
test(FN-5134): complete Step 2 — cover no-worktree badge suppression
...
Fusion-Task-Id: FN-5134
Fusion-Task-Lineage: 1d7fd2a5-de42-4977-a4b9-583c04124c5d
2026-05-19 07:36:11 -07:00
Fusion (runfusion.ai)
d646bfb4b2
feat(FN-5134): complete Step 1 — suppress no-worktree in-review badge
...
Fusion-Task-Id: FN-5134
Fusion-Task-Lineage: 1d7fd2a5-de42-4977-a4b9-583c04124c5d
2026-05-19 07:36:11 -07:00
Fusion (runfusion.ai)
bca388af84
feat(FN-4963): complete Step 2 — add chat sessions cache key
...
Fusion-Task-Id: FN-4963
Fusion-Task-Lineage: 791f5e46-c630-4883-89de-942cc85c329b
2026-05-18 03:34:54 -07:00
gsxdsm
1842a69e6c
test(FN-4951): stabilize clipboard fallback coverage
...
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
3986c09154
test(FN-4951): complete Step 2 — add clipboard utility tests
...
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
c96a918591
feat(FN-4951): complete Step 1 — add shared clipboard utility
...
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
f9cf3f1bde
feat(FN-4921): merge fusion/fn-4921
2026-05-17 19:11:59 -07:00
Fusion (runfusion.ai)
13bcb8ed85
feat(FN-4924): complete Step 1 — add tasks TTL constant
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 12:41:21 -07:00
Fusion (runfusion.ai)
7ad3449c8f
feat(FN-4924): complete Step 1 — add swr cache envelope ttl
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
3d0cce72f2
feat(FN-4885): complete Step 7 — finalize docs and changeset
...
Fusion-Task-Id: FN-4885
Fusion-Task-Lineage: 31110eed-5ca3-4d67-8f11-581185056dc6
2026-05-17 09:31:07 -07:00
Fusion (runfusion.ai)
5793c4bcd7
feat(FN-4885): complete Step 6 — add deadlock disposition dashboard copy
...
Fusion-Task-Id: FN-4885
Fusion-Task-Lineage: 31110eed-5ca3-4d67-8f11-581185056dc6
2026-05-17 09:31:07 -07:00
Fusion (runfusion.ai)
672339619a
feat(FN-4859): complete Step 1 — extend swr cache keys
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:55 -07:00
Fusion (runfusion.ai)
228daa8f35
feat(FN-4854): complete Step 1 — extend cache keys and diagnostics
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:47 -07:00
Fusion (runfusion.ai)
167b2cf0c9
feat(FN-4780): complete Step 1 — add swr cache utility
...
Fusion-Task-Id: FN-4780
Fusion-Task-Lineage: 7f052539-9d15-4997-8135-21434f065d4a
2026-05-16 13:24:50 -07:00
Fusion
3648d1e1df
feat(FN-4595): implement cumulative execution timing semantics
...
Fusion-Task-Id: FN-4595
Fusion-Task-Lineage: 73a3d0ad-5c10-4560-aec5-f9d138deeefd
2026-05-15 07:50:34 -07:00
Fusion
03a4522118
test(FN-4570): complete Step 3 — cover merge-active stall suppression
...
Fusion-Task-Id: FN-4570
Fusion-Task-Lineage: 08deec6d-a54a-4296-9443-3101662314f2
2026-05-15 01:02:56 -07:00
Fusion
c11b2d199f
feat(FN-4570): complete Step 2 — centralize merge-active stall suppression
...
Fusion-Task-Id: FN-4570
Fusion-Task-Lineage: 08deec6d-a54a-4296-9443-3101662314f2
2026-05-15 01:02:56 -07:00
Fusion
3573573a39
feat(FN-4462): complete Step 1 — per-code stall copy and counter
...
Fusion-Task-Id: FN-4462
Fusion-Task-Lineage: 15fc09f5-1363-429e-b131-9c9fdabee532
2026-05-14 22:57:47 -07:00
Fusion
273fc7018a
feat(FN-4452): complete Step 4 — surface stale paused review in dashboard
...
Fusion-Task-Id: FN-4452
Fusion-Task-Lineage: 7d8b1c13-883b-4815-94ee-fdf18ad24e5f
2026-05-14 18:35:30 -07:00
Fusion
927a32182d
feat(FN-4465): complete Step 4 — dashboard stale signal surfacing
...
Fusion-Task-Id: FN-4465
Fusion-Task-Lineage: 4365d4cb-ab93-4ed5-add9-3e14b26237ad
2026-05-14 05:55:16 -07:00
Fusion
95d742abb3
feat(FN-4468): add workflow step gateMode advisory gating
...
Adds an "advisory" `gateMode` option for workflow steps: steps in advisory mode log findings but no longer block merge completion, while steps that must block can still be configured as blocking. The change covers the workflow step types and schema, executor gating logic, dashboard UI in WorkflowSte
Fusion-Task-Id: FN-4468
2026-05-14 05:35:12 -07:00
Fusion
280466a163
feat(FN-4411): complete Step 2 — add CodeMirror language resolver
...
Fusion-Task-Id: FN-4411
Fusion-Task-Lineage: d90785f2-b828-4fa0-b330-ede7f3c14349
2026-05-14 02:23:45 -07:00
Fusion
81611b370a
feat(FN-4415): revert todo aging indicator from FN-4316
...
Reverts the FN-4316 todo aging indicator feature, removing the `TodoAgingSummary` component and its CSS, the `todoAging` utility, all associated tests, and the corresponding documentation. The revert is accompanied by a changeset confirming the patch-level reversal.
Fusion-Task-Id: FN-4415
2026-05-13 19:22:38 -07:00
Fusion
b67f986e5e
feat(FN-4316): complete Step 1 — add todo aging utility
...
Fusion-Task-Id: FN-4316
Fusion-Task-Lineage: 6b2b78b4-effa-479c-9a22-5a53d0f74894
2026-05-13 18:14:22 -07:00