gsxdsm
5631c88d54
FN-7614: replace planning-mode banner with yellow nav badge for needs-input state
...
Planning Mode's "waiting for input" indicator moves from a top banner (whose button did not redirect correctly) to a yellow status-dot badge on the Planning nav destination, matching the existing chat unread-badge pattern.
- Add a `planningNeedsInput` flag in app lifecycle utils to detect awaiting_input planning sessions
- Exclude planning awaiting_input sessions from SessionNotificationBanner so the banner no longer shows for this case
- Add a status-dot--pending badge to the Planning entry in LeftSidebarNav and to the Planning item/tab in MobileNavBar
- Add/extend tests covering appLifecycle, LeftSidebarNav, MobileNavBar, and SessionNotificationBanner behavior
- Add changeset (patch) documenting the fix
- Update dashboard-guide.md docs
Files changed:
.changeset/fn-7614-planning-badge.md | 7 +++
docs/dashboard-guide.md | 4 ++
packages/dashboard/app/App.tsx | 13 +++-
.../dashboard/app/components/LeftSidebarNav.tsx | 10 +++
packages/dashboard/app/components/MobileNavBar.css | 20 ++++++
packages/dashboard/app/components/MobileNavBar.tsx | 19 +++++-
.../components/__tests__/LeftSidebarNav.test.tsx | 28 +++++++++
.../app/components/__tests__/MobileNavBar.test.tsx | 41 ++++++++++++
.../__tests__/SessionNotificationBanner.test.tsx | 44 +++++++++++++
.../app/utils/__tests__/appLifecycle.test.ts | 73 +++++++++++++++++++++-
packages/dashboard/app/utils/appLifecycle.ts | 12 ++++
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 +
packages/i18n/src/resources.d.ts | 1 +
18 files changed, 275 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7614
Fusion-Task-Lineage: 249e6ee8-149c-4d51-85b6-561dfc30c769
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-06 19:03:06 -07:00
gsxdsm
3b52a4d2d9
FN-7527: fix desktop server switching redirects
...
Route desktop shell server switches through the live runtime/profile state.
- Replace separate local/remote redirect effects with a shared resolver that uses localRuntime/baseUrl and active remote profiles.
- Remove the dead localServer shell state field and document the local/remote switch navigation behavior.
- Add regression coverage for desktop shell redirect targets and include a patch changeset.
Files changed:
.changeset/fn-7527-desktop-switch-server-navigation.md | 7 +
docs/native-shell.md | 2 +-
packages/dashboard/app/App.tsx | 44 ++---
packages/dashboard/app/components/__tests__/App.test.tsx | 1 -
packages/dashboard/app/types/native-shell.d.ts | 13 +-
packages/dashboard/app/utils/__tests__/appLifecycle.test.ts | 180 +++++++++++++++++++++
packages/dashboard/app/utils/appLifecycle.ts | 70 ++++++++
7 files changed, 280 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-7527
Fusion-Task-Lineage: a0fe5cbc-120b-4a56-b791-48306223a636
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 13:43:59 -07:00
gsxdsm
f01a48690d
refactor(dashboard): extract App.tsx lifecycle helpers to utils/appLifecycle
...
Move the module-level pure functions (approval-banner dedupe helpers, CLI
banner actions, boot-loader/shell-onboarding guards, remote-dashboard URL
builder) and storage-key constants out of App.tsx into
app/utils/appLifecycle.ts. App.tsx re-exports the seven unit-tested symbols
so existing `from "../../App"` test imports resolve unchanged.
Behavior-preserving; no functional change. Verified: dashboard typecheck
(both passes), eslint clean on both files, 16 pure-function unit tests
pass, App.test.tsx identical to pristine (5 pre-existing experimental-flag
failures, none introduced by this change).
U1 of the App.tsx module-breakup plan
(docs/plans/2026-06-24-001-refactor-dashboard-app-tsx-module-breakup-plan.md).
2026-06-23 19:17:40 -07:00