mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-10-27 07:52:03 +00:00
5.2 KiB
5.2 KiB
Learnings from known-issues-agent run
- Initialized
KNOWN_ISSUES.mdas it was missing. - Verified that
npm run --prefix torch lintrequiresnpm install --prefix torchto be run first. - Confirmed that
landing/index.htmlno longer containsinnerHTMLviolations. - Confirmed
torch-config.jsoncorrectly defines scheduler handoff commands. - Consolidated resolved issues into
KNOWN_ISSUES.mdfor historical tracking.
Learnings from test-coverage run
artifacts/coverage/coverage.full.jsonis useful for choosing high-impact gaps quickly;src/utils/input_utils.pywas at 25.00% and had no direct tests.- Added deterministic unit tests for
timed_inputPOSIX/Windows dispatch, timeout handling, and backspace behavior without relying on real terminal input. - Added positive-path tests for
utils/terminal_utilsheader/notification rendering to complement existing failure-path tests. - Focused coverage after changes:
src/utils/input_utils.pyreached 100% andsrc/utils/terminal_utils.pyreached 88% in targeted runs.
Learnings from entry-type verification run
- Added an enum-driven regression suite to verify every
EntryTypevalue can be added, retrieved, and filtered viaEntryManager. - Guard test now asserts
ALL_ENTRY_TYPESstays in sync with theEntryTypeenum, so introducing a new kind requires explicit test coverage updates.
Learnings from account roundtrip restore run
- Added end-to-end regression tests for account lifecycle recovery: Nostr sync -> local account deletion -> seed-based restore -> entry integrity checks.
- Added parallel lifecycle regression for portable backups: export -> local account deletion -> import with seed -> entry integrity checks.
PasswordManagertest harnesses that callsync_vault()needstate_managerset (evenNone) to avoidAttributeErrorinsync_vault_async.
Learnings from real-relay roundtrip run
- Added an opt-in
@pytest.mark.networkroundtrip test intest_nostr_real.pythat uses live relays and validates sync -> delete local index -> seed-based restore. - Real-relay tests should isolate keyspace per run using a random
account_indexso snapshot queries do not collide with prior runs. - Relay propagation can be eventual; bounded retry/backoff around
attempt_initial_sync()improves stability for live network execution.
Learnings from live relay + portable chain run
- Added an opt-in live test that chains both recovery paths: real-relay sync and portable export/import, then re-syncs and restores again from relays.
- Keeping
fingerprint+account_indexconsistent across source/import/restore clients preserves deterministic relay identity for end-to-end verification.
Learnings from nostr-index-size gating update
test_nostr_index_size_limitsremains discoverable in test collection but now requires explicitNOSTR_INDEX_SIZE_E2E=1to execute.- This avoids automatic execution in CI desktop jobs while preserving manual E2E stress capability.
Learnings from 1000-entry live index-size run
- With
NOSTR_INDEX_SIZE_E2E=1, live relays handled checkpoints up to 1000 entries with successful publish/retrieve at every batch. - Observed encrypted payload growth is strongly superlinear (about 30 KB at 100 entries to about 4.6 MB at 1000 entries), which is useful for practical relay size planning.
Learnings from security checklist + threat model kickoff
- Added
docs/security_readiness_checklist.mdwith status/owner/evidence fields and explicit exit criteria per security readiness item. - Started item 1 by drafting
docs/threat_model.mdwith scope, assets, trust boundaries, attacker profiles, assumptions, non-goals, and prioritized risks. - Added five explicit decision gates to complete item 1 (metadata leakage posture, endpoint stance, recovery policy, relay trust posture, release trust chain).
Learnings from threat model defaults pass
- Added concrete proposed defaults and requirements for all five item-1 decision gates in
docs/threat_model.md. - Added a decision approval table so maintainers can formally approve/reject each gate and close item 1 with traceable signoff.
Learnings from threat model provisional approval
- Applied best-judgment provisional approvals for all five decision gates and recorded them in
docs/threat_model.md. - Marked checklist item 1 as
Doneindocs/security_readiness_checklist.mdwith evidence and approval date.
Learnings from crypto/key-management review kickoff
- Added
docs/crypto_key_management_review.mdand moved checklist item 2 toIn Progress. - Identified immediate P0 gaps: PBKDF2 baseline appears low for modern threat levels and Argon2
time_costconfig is not clearly wired through all active unlock paths. - Documented prioritized remediation plan and explicit completion criteria for closing item 2.
Learnings from argon2 wiring remediation
- Added
PasswordManager._derive_seed_keyand related config helpers so seed-key derivation consistently applies configuredkdf_modeand Argon2time_cost. - Replaced multiple direct seed-key derivation callsites with the shared helper across setup/unlock/import/password-change flows.
- Added focused tests in
src/tests/test_kdf_modes.pyvalidating Argon2time_costpropagation and PBKDF2 iteration override behavior.