Skip to content

Fix/dashboard wallet scoped data - #1579

Merged
1nonlypiece merged 5 commits into
Disciplr-Org:mainfrom
Devadakene:fix/dashboard-wallet-scoped-data
Oct 24, 2026
Merged

1nonlypiece merged 5 commits into
Disciplr-Org:mainfrom
Devadakene:fix/dashboard-wallet-scoped-data

Conversation

@Devadakene

Copy link
Copy Markdown
Contributor

Closes #1513

What

  • Dashboard now loads only the connected wallet's vaults (creator, plus vaults it verifies, merged and de-duplicated).
  • listVaults takes { creator?, status? }. The filter is encoded into the API query (GET /vaults?creator=) and applied locally for offline fixtures.
  • New getStats({ creator }) backs the Total Locked and Active Vaults cards via /stats?creator=.
  • Recent Activity is built from /transactions, filtered to the user's vaults, newest first, top 8. Upcoming Deadlines come from pending milestones of active vaults, with the vault end date as fallback.
  • Disconnected users see a connect prompt instead of other people's data.
  • The list heading is now "Your vaults" with an active-first sort.
  • src/fixtures/dashboard data is used only when VITE_API is unset.

Why

The landing page showed every vault in the system plus fabricated activity and deadlines in production, and summary numbers weren't scoped to the user.

Notes

  • Verifier vaults are filtered client-side from the full list until the API supports ?verifier=. They are excluded from the /stats-backed cards.
  • Stale responses after a wallet switch are ignored, and displayed data is gated on the address it was loaded for.
  • Added an optional Milestone.dueDate, populated in toVault.

Tests

vaultService.filters.test.ts, dashboardDerive.test.ts, Dashboard.live.test.tsx.

Screenshots

TODO: before/after at 1440px and 390px, and the dashboard for two different wallets.

AI and others added 4 commits July 26, 2026 16:37
Dedupe concurrent requests, serve fresh data for 15s, revalidate stale data in the background, and invalidate on createVault. Errors are never cached.
…tivity from the API

Dashboard showed every vault in the system and read recent activity and deadlines from hard-coded fixtures even in production.\n\n- listVaults accepts { creator, status } (encoded query for the API, offline filter for fixtures); add getStats({ creator }) backed by /stats?creator=\n- load the connected wallet's vaults (creator + verifier, merged and de-duplicated); show a connect prompt when disconnected\n- derive Recent Activity (top 8, newest first) from /transactions and Upcoming Deadlines from pending milestones; fixtures kept for offline mode only\n- guard against stale responses on wallet switch; rename list to 'Your vaults' with active-first sort\n- add tests for service filters, derive helpers and live dashboard
@drips-wave

drips-wave Bot commented Oct 19, 2026

Copy link
Copy Markdown

@Devadakene Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@1nonlypiece
1nonlypiece merged commit 31b5227 into Disciplr-Org:main Oct 24, 2026
1 of 2 checks passed
1nonlypiece added a commit that referenced this pull request Oct 25, 2026
…perf check

- Journey 1: dashboard list heading is now "Your vaults" (#1579).
- Journey 2: amounts render with two decimals via formatUsdc (#1571).
- commandPalette perf budget: take the best of five passes so a single
  GC/worker stall on CI does not fail the 5ms budget.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[dashboard] Scope the dashboard to the connected wallet and replace fixture activity and deadlines with live data

2 participants