From 733a70c16f5a24ae02365bc1b0fca3bf9d94af43 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Sun, 1 Mar 2026 16:39:35 -0500 Subject: [PATCH] Add CI-like large-vault validation for TUI v2 --- docs/README.md | 1 + docs/tui_v2_large_vault_validation.md | 48 +++++++++++ docs/tui_v2_parity_checklist.md | 6 +- landing/docs.html | 1 + memory-update.md | 2 + .../test_tui_v2_large_vault_validation.py | 82 +++++++++++++++++++ 6 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 docs/tui_v2_large_vault_validation.md create mode 100644 src/tests/test_tui_v2_large_vault_validation.py diff --git a/docs/README.md b/docs/README.md index f9eae49b..b560f1e0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,6 +26,7 @@ This directory contains SeedPass project documentation. - `tui_v2_plan.md` - `tui_v2_parity_checklist.md` - `tui_v2_cutover_decision.md` +- `tui_v2_large_vault_validation.md` - `security.md` - `nostr_setup.md` - `nostr_namespace_reset.md` diff --git a/docs/tui_v2_large_vault_validation.md b/docs/tui_v2_large_vault_validation.md new file mode 100644 index 00000000..26730602 --- /dev/null +++ b/docs/tui_v2_large_vault_validation.md @@ -0,0 +1,48 @@ +# TUI v2 Large-Vault Validation + +Status: Added on `beta` (March 1, 2026). + +This document defines a deterministic, CI-like validation pass for TUI v2 behavior at large vault sizes. + +## What Is Validated + +- Pagination behavior across large deterministic datasets. +- Detail preview truncation behavior for large document content. + +## Test Module + +- `src/tests/test_tui_v2_large_vault_validation.py` + +## Deterministic Data Profile + +- Standard profile: `10,000` entries. +- Stress profile: `50,000` entries (`--stress`). +- Labels are deterministic (`Entry-000000` style). + +## Runtime Thresholds + +Pagination scan budget (wall-clock for scan loop): +- `10,000` rows: `<= 2.0s` +- `50,000` rows: `<= 8.0s` + +Detail truncation checks: +- Confirms bounded preview behavior at large content sizes. + +## Commands + +Standard CI-like run: + +```bash +.venv/bin/python -m pytest -q src/tests/test_tui_v2_large_vault_validation.py +``` + +Extended stress run: + +```bash +.venv/bin/python -m pytest -q --stress src/tests/test_tui_v2_large_vault_validation.py +``` + +## Notes + +- Stress tests are opt-in in this repository (require `--stress`). +- Thresholds are intentionally conservative to reduce environment flakiness while still catching regressions. diff --git a/docs/tui_v2_parity_checklist.md b/docs/tui_v2_parity_checklist.md index 250367d4..e68f9f43 100644 --- a/docs/tui_v2_parity_checklist.md +++ b/docs/tui_v2_parity_checklist.md @@ -39,7 +39,7 @@ This checklist tracks readiness to switch default interactive mode from legacy T - Incomplete parity for legacy-only interactive operations not yet mapped into TUI v2. - Textual runtime/version behavior can vary by environment. -- No dedicated Textual interaction test suite yet for pagination and graph traversal. +- Large-vault validation is bounded to deterministic pagination/preview checks and should be expanded with full end-to-end sync workloads. ## Validation Checklist Before Cutover @@ -48,5 +48,7 @@ This checklist tracks readiness to switch default interactive mode from legacy T - `src/tests/test_tui_v2_textual_interactions.py` (skips when `textual` is unavailable). - [x] Add non-UI unit tests for TUI v2 helper logic. - `src/tests/test_tui_v2_helpers.py` covers command parsing, pagination, and detail truncation. -- [ ] Verify large vault behavior with realistic data volume in CI-like environment. +- [x] Verify large vault behavior with realistic data volume in CI-like environment. + - `src/tests/test_tui_v2_large_vault_validation.py` + - standard: `10,000` rows, stress: `50,000` rows (`--stress`) - [ ] Confirm help text and docs match shipped keybindings and palette commands. diff --git a/landing/docs.html b/landing/docs.html index 1b5a5d52..ea4343a9 100644 --- a/landing/docs.html +++ b/landing/docs.html @@ -59,6 +59,7 @@