Commit Graph

10 Commits

Author SHA1 Message Date
gsxdsm
3453d164ea FN-7416: preserve dashboard project selection in URL
Keep dashboard project selection in the URL so refreshing or sharing the page retains the active project.

- Hydrate current project state from the existing ?project= query parameter before falling back to cached or global defaults.
- Update project selection, setup completion, overview, and unregister flows to preserve or clear the project URL parameter without dropping other URL state.
- Cover URL-driven project persistence and query/hash preservation with hook tests.
- Document the refresh-safe project URL behavior and add a patch changeset.

Files changed:
 .changeset/fn-7416-project-url-persistence.md      |  7 +++
 docs/dashboard-guide.md                            |  2 +
 packages/dashboard/app/App.tsx                     |  2 +-
 .../app/hooks/__tests__/useCurrentProject.test.ts  | 64 ++++++++++++++++++++++
 .../app/hooks/__tests__/useProjectActions.test.ts  | 40 +++++++++++++-
 packages/dashboard/app/hooks/useCurrentProject.ts  | 54 ++++++++++++++++--
 packages/dashboard/app/hooks/useProjectActions.ts  |  5 ++
 packages/dashboard/app/utils/projectUrlState.ts    | 24 ++++++++
 8 files changed, 190 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-7416

Fusion-Task-Lineage: 2d640ae6-629f-4632-9014-986320acfef5

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-02 11:38:31 -07:00
Fusion (runfusion.ai)
cf12704885 feat(FN-4924): apply cache ttl hydration across dashboard hooks
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
b073f4ab27 feat(FN-4780): complete Step 3 — hydrate useCurrentProject from cache
Fusion-Task-Id: FN-4780
Fusion-Task-Lineage: 7f052539-9d15-4997-8135-21434f065d4a
2026-05-16 13:24:51 -07:00
Fusion (runfusion.ai)
5dbe44e736 feat(FN-4732): complete Step 1 — fix one-time per-node hydration
Fusion-Task-Id: FN-4732
Fusion-Task-Lineage: 3377a9a1-bb22-42a9-bada-ecd623000b42
2026-05-16 08:37:25 -07:00
Fusion (runfusion.ai)
3508515ede feat(FN-4693): complete Step 2 — unify fallback absence handling
Fusion-Task-Id: FN-4693
Fusion-Task-Lineage: 0525aae3-09af-45ce-8393-8fd1177a92f8
2026-05-15 17:17:03 -07:00
Fusion (runfusion.ai)
9741dbabaa feat(FN-4693): complete Step 1 — debounce null auto-default selection
Fusion-Task-Id: FN-4693
Fusion-Task-Lineage: 0525aae3-09af-45ce-8393-8fd1177a92f8
2026-05-15 17:17:03 -07:00
Fusion (runfusion.ai)
f10eac2a18 feat(FN-4677): add sustained-absence threshold to project validation
Fusion-Task-Id: FN-4677
Fusion-Task-Lineage: b3b9eb56-a76b-469c-9f7b-79232da29807
2026-05-15 15:42:08 -07:00
Fusion
85a1adbd0b feat(FN-2269): migrate dashboard session selection to global settings
- Add global settings schema/types fields for persisted dashboard session state (selected project and node)
- Refactor NodeContext and current-project hooks to read/write project and node selection via global settings instead of project-local state
- Update App wiring to use the new selection flow across dashboard startup and switching behavior
- Add and expand dashboard tests for NodeContext, useCurrentProject, and view-state persistence behavior
2026-04-22 17:12:27 -07:00
gsxdsm
f3311d5aaf fix(FN-949): prevent bounce-back on Projects nav and show in mobile overflow
clearCurrentProject was triggering auto-reselect in useCurrentProject,
making the Projects button ineffective for single-project users. Added
explicit-clear flag to suppress auto-select. Also changed mobile overflow
menu to show Projects for single-project users (was gated to 2+ projects).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 20:30:24 -07:00
gsxdsm
f88611b071 feat(KB-502): add dashboard multi-project hooks and project API routes
- Add project API routes for multi-project backend integration
- Create useProjects hook for listing and managing registered projects
- Create useCurrentProject hook for current project selection and switching
- Create useProjectHealth hook for real-time project health metrics
- Create useActivityLog hook with ActivityLogModal integration
- Add comprehensive test coverage for all hooks (useProjects, useCurrentProject, useActivityLog)
- Add test setup utilities for React Query mocking
2026-04-01 01:15:44 -07:00