Skip to content

Feature/dashboard validation - #1580

Merged
1nonlypiece merged 5 commits into
Disciplr-Org:mainfrom
Devadakene:feature/dashboard-validation
Oct 24, 2026
Merged

1nonlypiece merged 5 commits into
Disciplr-Org:mainfrom
Devadakene:feature/dashboard-validation

Conversation

@Devadakene

Copy link
Copy Markdown
Contributor

Closes #1512

What

  • Implements validateVaultPreview (id, name ≤ 200 chars, status, positive finite amount, currency, ISO deadline, progress in [0, 100]) with a distinct reason code per failure, and sanitizeActivity (array guard, id/type/timestamp checks, 50-entry cap).
  • Routes the loaded vault payload through readVaultList. This de-duplicates ids and counts rejected entries.
  • rejectedCount is now real state, so "N vaults could not be verified and are not shown." renders. If no vault is usable, the retryable error state shows instead of "No vaults yet".
  • toSafePreviews counts dropped previews, and the summary only uses vaults that passed.

Why
The validation code was dead, so a malformed or duplicated record could inflate "Total Locked" or break the page. Only id and the reason code are logged, never names or addresses.

Tests
Unit and fast-check property tests, plus boundary tests that mock listVaults with mixed, all-bad, duplicate, empty and 1,000-vault payloads.

Screenshots
Before/after at 1440px and 390px still need to be added.

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 4b1b85d into Disciplr-Org:main Oct 24, 2026
1 of 2 checks passed
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] Replace the pass-through dashboard validation stub and wire the unused vault-list boundary

2 participants