gsxdsm
efa9580b93
FN-8366: enforce end-to-end project scoping
Ensure asynchronous dashboard data and real-time streams remain bound to their active project context.
- Resolve SSE and badge WebSocket stores through the canonical project resolver
- Guard agents, artifacts, and documents hooks against stale project responses and events
- Add scoped cache handling, regression coverage, and architecture documentation
Files changed:
docs/architecture.md | 7 ++++
.../app/hooks/__tests__/useAgents.test.ts | 24 +++++++++++
.../app/hooks/__tests__/useArtifacts.test.ts | 47 ++++++++++++++++++++++
.../app/hooks/__tests__/useDocuments.test.ts | 34 ++++++++++++++++
packages/dashboard/app/hooks/useAgents.ts | 47 +++++++++++++++++-----
packages/dashboard/app/hooks/useArtifacts.ts | 26 +++++++++---
packages/dashboard/app/hooks/useDocuments.ts | 18 ++++++++-
.../dashboard/app/hooks/useProjectContextGuard.ts | 38 +++++++++++++++++
.../routes-context-project-identity.test.ts | 12 ++++++
packages/dashboard/src/server.ts | 21 +++++++---
10 files changed, 251 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-8366
Fusion-Task-Lineage: 0fcd38c1-727f-4511-8209-5d70cbf9eb0d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 16:29:39 -07:00
..
2026-07-19 16:07:34 -07:00
2026-07-18 00:52:59 -07:00
2026-07-19 15:45:45 -07:00
2026-07-19 16:29:39 -07:00
2026-07-19 13:34:25 -07:00
2026-07-18 00:52:59 -07:00
2026-07-19 16:13:17 -07:00
2026-07-19 14:51:49 -07:00
2026-07-18 00:52:59 -07:00
2026-07-19 12:08:10 -07:00
2026-07-18 00:52:59 -07:00