[codex] Navigation and responsiveness upgrade with grouped nav and prefetch cache #1

Closed
Francy51 wants to merge 0 commits from codex/nav-prefetch-upgrade into main
Owner

Summary

This PR upgrades application navigation and perceived responsiveness for cross-surface analyst workflows.

It replaces the flat shell navigation with grouped IA, adds route-aware active states for deep analysis routes, introduces breadcrumb context, preserves ticker query context across research pages, and adds mobile bottom navigation plus a More sheet.

It also adds a two-layer prefetch approach (route prefetch + data prefetch) backed by TanStack Query to reduce cold transitions between common paths.

User Impact

Before this change, users moving between analysis, filings, and financials had weak context continuity and slower transitions because each view relied on post-mount fetches with no shared in-memory query layer.

After this change, users can browse with clearer section orientation and quicker transitions, especially when navigating around an active ticker.

Root Cause

Navigation and loading behavior were fragmented:

  • Flat nav without grouped semantics or deep-route active matching.
  • No shared query cache layer for API-backed views.
  • No systematic prefetch strategy for likely next actions.

What Changed

Navigation and IA

  • Introduced grouped nav model: Overview / Research / Portfolio.
  • Simplified labels (Home, Filings, Portfolio).
  • Added prefix active matching for analysis deep routes.
  • Added aria-current and focus-visible parity across desktop/mobile nav.
  • Added breadcrumbs with deep report mapping.
  • Added ticker-preserving nav links for research pages.
  • Replaced mobile horizontal strip with fixed bottom nav + More sheet.

Prefetch and Cache Layer

  • Added TanStack Query provider at root layout.
  • Added shared query key contracts and query option builders with stale-time policy.
  • Added reusable API query hooks and link prefetch helpers.
  • Added route/data prefetch on nav hover/focus and idle warmup.
  • Wired contextual prefetch from watchlist/filings/analysis report links.

Query invalidation and read paths

  • Updated page loaders to rely on query cache (ensureQueryData) for faster revisits.
  • Added targeted invalidation after mutations and queued task actions.

Validation

  • bun run lint (TypeScript no-emit) passes.
  • Full authenticated browser E2E routing checks passed on http://localhost:3020:
    • Desktop grouped nav and labels
    • Home active state + breadcrumb
    • Ticker-preserving Analysis -> Financials
    • Ticker-preserving Financials -> Filings
    • Deep report route keeps Analysis active + report breadcrumb
    • Mobile bottom nav + More routing flow
  • Additional prefetch verification: hover/focus triggered pre-click data requests (observed /api/watchlist prefetch on nav hover).

Notes

  • This PR keeps existing chart contrast edits intact and scopes changes to navigation/responsiveness.
## Summary This PR upgrades application navigation and perceived responsiveness for cross-surface analyst workflows. It replaces the flat shell navigation with grouped IA, adds route-aware active states for deep analysis routes, introduces breadcrumb context, preserves ticker query context across research pages, and adds mobile bottom navigation plus a More sheet. It also adds a two-layer prefetch approach (route prefetch + data prefetch) backed by TanStack Query to reduce cold transitions between common paths. ## User Impact Before this change, users moving between analysis, filings, and financials had weak context continuity and slower transitions because each view relied on post-mount fetches with no shared in-memory query layer. After this change, users can browse with clearer section orientation and quicker transitions, especially when navigating around an active ticker. ## Root Cause Navigation and loading behavior were fragmented: - Flat nav without grouped semantics or deep-route active matching. - No shared query cache layer for API-backed views. - No systematic prefetch strategy for likely next actions. ## What Changed ### Navigation and IA - Introduced grouped nav model: Overview / Research / Portfolio. - Simplified labels (Home, Filings, Portfolio). - Added prefix active matching for analysis deep routes. - Added `aria-current` and focus-visible parity across desktop/mobile nav. - Added breadcrumbs with deep report mapping. - Added ticker-preserving nav links for research pages. - Replaced mobile horizontal strip with fixed bottom nav + More sheet. ### Prefetch and Cache Layer - Added TanStack Query provider at root layout. - Added shared query key contracts and query option builders with stale-time policy. - Added reusable API query hooks and link prefetch helpers. - Added route/data prefetch on nav hover/focus and idle warmup. - Wired contextual prefetch from watchlist/filings/analysis report links. ### Query invalidation and read paths - Updated page loaders to rely on query cache (`ensureQueryData`) for faster revisits. - Added targeted invalidation after mutations and queued task actions. ## Validation - `bun run lint` (TypeScript no-emit) passes. - Full authenticated browser E2E routing checks passed on `http://localhost:3020`: - Desktop grouped nav and labels - Home active state + breadcrumb - Ticker-preserving Analysis -> Financials - Ticker-preserving Financials -> Filings - Deep report route keeps Analysis active + report breadcrumb - Mobile bottom nav + More routing flow - Additional prefetch verification: hover/focus triggered pre-click data requests (observed `/api/watchlist` prefetch on nav hover). ## Notes - This PR keeps existing chart contrast edits intact and scopes changes to navigation/responsiveness.
Francy51 added 2 commits 2026-03-02 02:09:31 +00:00
Francy51 added 1 commit 2026-03-02 02:15:49 +00:00
add gitea pr checks workflow
Some checks failed
PR Checks / typecheck-and-build (push) Has been cancelled
PR Checks / typecheck-and-build (pull_request) Has been cancelled
76e94807e5
Francy51 closed this pull request 2026-03-07 20:25:34 +00:00
Some checks failed
PR Checks / typecheck-and-build (push) Has been cancelled
PR Checks / typecheck-and-build (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Francy51/Neon-Desk#1