diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 590c2c97..47d4ccdb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -30,6 +30,8 @@ jobs: run: | poetry run pip-audit || echo "::warning::pip-audit found vulnerabilities" shell: bash + - name: TUI v2 check smoke + run: poetry run seedpass tui2 --check - name: Run deterministic regression tests run: poetry run pytest -q src/tests/test_deterministic_artifact_regression.py - name: Run tests with coverage diff --git a/docs/README.md b/docs/README.md index 38b31c9b..d5963afd 100644 --- a/docs/README.md +++ b/docs/README.md @@ -25,6 +25,7 @@ This directory contains SeedPass project documentation. - `entry_graph.md` - `tui_v2_plan.md` - `tui_v2_parity_checklist.md` +- `tui_v2_parity_backlog.md` - `tui_v2_cutover_decision.md` - `tui_v2_large_vault_validation.md` - `security.md` diff --git a/docs/tui_v2_parity_backlog.md b/docs/tui_v2_parity_backlog.md new file mode 100644 index 00000000..01a886d1 --- /dev/null +++ b/docs/tui_v2_parity_backlog.md @@ -0,0 +1,87 @@ +# TUI v2 Parity Backlog + +Status: Active tracking on `beta` (updated 2026-03-01). + +This document captures parity learnings and the remaining implementation queue +for Textual TUI v2 versus legacy interactive TUI. + +Linked plans: +- `docs/tui_v2_plan.md` +- `docs/tui_v2_parity_checklist.md` +- `docs/tui_v2_cutover_decision.md` + +## What We Learned + +1. Core shell workflows are stable in TUI v2: +- list/search/filter/detail +- archive/restore +- document edit save/cancel +- graph links + relation filtering + neighbor traversal +- retry/error-recovery flows + +2. Security-sensitive parity has improved: +- reveal/QR for `password`, `totp`, `seed`, `managed_account`, `ssh`, `pgp`, `nostr` +- high-risk confirm gates (`reveal confirm`, `qr private confirm`) +- secret-mode clipboard-aware reveal behavior + +3. Scale validation now exists for KB-like workloads: +- core sort/tag/search + high-degree graph link stress +- TUI large-index navigation stress + +4. Remaining parity is mostly feature-surface breadth, not stability: +- add-entry creation flows in v2 +- legacy retrieve/action micro-workflows +- dedicated 2FA board +- settings/profile/nostr operational menus + +## Active Build Queue + +### Phase A: Add Entry in TUI v2 +- [x] Add password creation flow +- [x] Add TOTP creation flow +- [x] Add key/value creation flow +- [x] Add document creation flow +- [x] Add SSH/PGP/Nostr/Seed/Managed Account creation flows +- [x] Add validation and post-create focus/selection behavior + +### Phase B: Retrieve/Action Parity +- [x] Add note from selected entry +- [x] Add custom field / hidden field actions +- [x] Edit tags action parity +- [x] Field-level edit parity for non-document kinds +- [x] Document export action +- [x] Nostr QR submenu parity (public/private explicit flows) + +### Phase C: 2FA Board Parity +- [x] Dedicated 2FA list board view +- [x] rolling code refresh + remaining timer UI +- [x] secret-mode clipboard behavior in board view +- [x] deterministic/imported split parity and display semantics + +### Phase D: Settings/Profile/Nostr Parity +- [x] profile switch/add/remove/list/rename +- [x] secret mode / quick unlock / offline toggles +- [x] inactivity timeout + KDF settings +- [x] relay view/add/remove/reset + sync controls +- [x] checksum verify/generate, import/export db, export totp, parent seed backup/reveal + +### Phase E: Release/CI Closure +- [x] Add CI smoke step for `seedpass tui2 --check` +- [x] Extend docs/help parity after each feature landing +- [x] Keep `legacy` fallback path until parity checklist has no high-severity gaps + +Release note: +- CI now runs a dedicated `tui2 --check` smoke gate via `scripts/tui2_check_smoke.sh` + (invoked by `scripts/run_ci_tests.sh`) and in Poetry workflow (`tests.yml`). +- Legacy fallback command/flag paths remain available (`seedpass legacy`, + `seedpass --legacy-tui`, and `tui2` fallback toggle) while cutover hardening + continues. + +## Execution Notes + +- Implement in small vertical slices and check boxes as each slice lands with + tests. +- Each parity slice must include: + 1) command/keybind discoverability, + 2) service-layer coverage, + 3) Textual interaction tests. diff --git a/docs/tui_v2_parity_checklist.md b/docs/tui_v2_parity_checklist.md index 92393d83..69000105 100644 --- a/docs/tui_v2_parity_checklist.md +++ b/docs/tui_v2_parity_checklist.md @@ -54,3 +54,18 @@ This checklist tracks readiness to switch default interactive mode from legacy T - standard: `10,000` rows, stress: `50,000` rows (`--stress`) - [x] Confirm help text and docs match shipped keybindings and palette commands. - Updated `seedpass tui2 --help`, capabilities hints, and docs discoverability commands. + +## Ongoing Tracking + +- Active parity continuation and checkoff queue: + - `docs/tui_v2_parity_backlog.md` + +## Phase E Closure Notes + +- CI smoke now explicitly validates `seedpass tui2 --check` output shape: + - `scripts/tui2_check_smoke.sh` (called from `scripts/run_ci_tests.sh`) + - `.github/workflows/tests.yml` (`poetry run seedpass tui2 --check`) +- Legacy fallback paths remain intentionally available during hardening: + - `seedpass --legacy-tui` + - `seedpass legacy` + - `seedpass tui2 --fallback-legacy` diff --git a/docs/tui_v2_plan.md b/docs/tui_v2_plan.md index 1a7b70cc..014d9ae0 100644 --- a/docs/tui_v2_plan.md +++ b/docs/tui_v2_plan.md @@ -38,7 +38,7 @@ Goal: Introduce a modern, modular TUI (`seedpass tui2`) without rewriting core l - [x] Add plan doc. - [x] Add `seedpass tui2` command. - [x] Add runtime check utility and placeholder launcher. -- [ ] Add CI smoke command for `seedpass tui2 --check`. +- [x] Add CI smoke command for `seedpass tui2 --check`. ### Phase 1: Read-only shell - [x] Textual app skeleton with 3-pane layout: @@ -94,3 +94,4 @@ Goal: Introduce a modern, modular TUI (`seedpass tui2`) without rewriting core l - `seedpass/tui_v2/` - Docs updates: - this file listed in docs index and discoverability nav. + - parity continuation tracker: `docs/tui_v2_parity_backlog.md` diff --git a/memory-update.md b/memory-update.md index ba10d5d2..edc86fc6 100644 --- a/memory-update.md +++ b/memory-update.md @@ -300,3 +300,231 @@ - Added docs `docs/kb_scale_validation.md` with exact commands for standard and `--stress` runs. - Updated launch documentation to clearly show all interactive launch modes: - default (`seedpass`), explicit v2 (`seedpass tui2`), and legacy (`seedpass legacy` / `seedpass --legacy-tui`). + +## 2026-03-01 TUI v2 parity backlog prioritization +- TORCH latest daily/weekly memory snapshots are mostly scheduler metadata; TUI parity priorities should continue to be driven by `docs/tui_v2_plan.md`, `docs/tui_v2_parity_checklist.md`, and direct legacy-vs-v2 code diff. +- Highest-impact remaining parity gaps identified: + 1) Add-entry workflows for all kinds in TUI v2 + 2) Retrieve/action parity (notes/custom fields/tags/edit field-level variants/document export/QR submenus) + 3) 2FA codes live board parity with timer + secret-mode clipboard behavior + 4) Settings/profile/nostr operational parity in TUI v2 + 5) CI smoke gate for `seedpass tui2 --check` still marked open in plan + +## 2026-03-01 TUI v2 parity tracking + Phase A add-entry slice +- Added a dedicated continuation tracker `docs/tui_v2_parity_backlog.md` and linked it from: + - `docs/tui_v2_plan.md` + - `docs/tui_v2_parity_checklist.md` + - `docs/README.md` +- Landed TUI v2 command-palette add-entry flows in `src/seedpass/tui_v2/app.py`: + - `add-password