thePR0M3TH3AN and Claude Opus 5
9e0f045ccb
Stop the test suite exiting 0 after 10% of its tests
...
`pytest src/tests` died at 123 of 1170 tests with exit code 0 -- no summary,
no coverage report, and a shell that saw success. Four tests reach code
paths that call os._exit(0), which skips interpreter finalization and takes
pytest with it.
The os._exit is deliberate and stays: some builds with native extensions
intermittently SIGSEGV during teardown after an otherwise clean shutdown,
which is why _exit_as_main_process exists. But that reasoning applies to the
real process exit, not to a function under test. Adds _terminate(), which
raises SystemExit when PYTEST_CURRENT_TEST is set and calls os._exit
otherwise, and routes the three in-process exit paths through it.
This restores a contract the tests already assumed:
test_auto_sync_triggers_post asserts `pytest.raises(SystemExit)`. It was
written when display_menu raised, and the later switch to os._exit did not
fail that test -- it killed the runner instead, which is why nobody noticed.
The suite now runs to completion: 1160 passed, 15 failed, 16 skipped, and it
exits 1 rather than claiming success.
Those 15 were always failing; they were simply never reached. Five of them
were mine, and this is the uncomfortable part: the gen_version argument
added in 2aed95a broke more FakePasswordGenerator doubles than I found,
because the earlier regression run stopped before reaching them and I
concluded "no new failures" from a truncated result. All 20 remaining
doubles now take **_, so they absorb gen_version and anything added later
rather than needing a sweep each time the real signature grows.
The other 10 are pre-existing and unrelated -- legacy-migration and
checksum-backup failures, an index0.py int-parsing bug
(`invalid literal for int() with base 10: 'temp'`), and one that needs a TTY
this environment lacks.
Determinism gate still green.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected] >
Claude-Session: https://claude.ai/code/session_01HtNMsKzzFTPURemX7tT19u
2026-07-31 22:31:19 -04:00
thePR0M3TH3AN and Claude Sonnet 4.6
5dc8e015ae
fix: replace sys.exit(0) with os._exit(0) to prevent SIGSEGV on graceful exit
...
Python interpreter teardown with C extensions (Textual, crypto libs) can
trigger SIGSEGV (-11) when sys.exit() is called. os._exit() bypasses the
teardown entirely, producing a clean exit code 0.
Three call sites replaced:
- _cleanup_and_exit() in handle_remove_fingerprint (~line 254)
- graceful exit path in main loop (~line 1520)
- signal_handler shutdown path (~line 1862)
Fixes: SeedPass-1d93
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-03-09 12:49:23 -04:00
thePR0M3TH3AN
033870f2df
fix: harden legacy/tui3 non-tty flows and shutdown stability
2026-03-03 21:56:55 -05:00
thePR0M3TH3AN
8e3aaa8653
cli: restore legacy launch compatibility and fix tui v2 header rendering
2026-03-02 15:51:25 -05:00
thePR0M3TH3AN
f0c120f84d
feat: add semantic search modes across cli api and tuis
2026-03-02 12:28:24 -05:00
thePR0M3TH3AN
ec407c611a
feat: wire semantic controls into legacy and tui v2 interfaces
2026-03-02 11:52:30 -05:00
thePR0M3TH3AN
d0ea0d96f6
Add document workflows, entry graph links, and discovery/docs updates
2026-03-01 15:43:43 -05:00
thePR0M3TH3AN
64efd1175d
Improve Nostr sync failure messaging for offline mode
2026-03-01 01:31:08 -05:00
thePR0M3TH3AN
b9d6c0d49d
Add Nostr sync reset/fresh namespace workflow and docs
2026-03-01 01:24:33 -05:00
thePR0M3TH3AN
073b1065ca
Handle unlock cancellation messages robustly in settings flow
2026-02-25 21:35:33 -05:00
thePR0M3TH3AN
88c1974ac6
Harden TUI recovery paths and add release integrity gates
2026-02-25 19:18:54 -05:00
thePR0M3TH3AN
fcbe2b2943
Harden security item 2: KDF policy, export safeguards, and tests
2026-02-25 18:15:51 -05:00
thePR0M3TH3AN
dd7290e83b
Add robust AI TUI harness, docs roadmap, and lock/unlock fix
2026-02-23 14:35:40 -05:00
google-labs-jules[bot] and PR0M3TH3AN
8e33f9c5e1
Fix formatting, linting, and logic errors from codebase scan
...
- Apply black formatting to 17 files.
- Fix F821 undefined name errors in:
- src/main.py: Add missing `queue` import.
- src/seedpass/core/encryption.py: Fix `JSONDecodeError` reference.
- src/utils/__init__.py: Fix exception variable scope in fallback code.
- src/utils/key_derivation.py: Add `TYPE_CHECKING` imports.
- src/seedpass/core/config_manager.py: Add `TYPE_CHECKING` imports.
- Initialize torch environment and TODO file.
Co-authored-by: PR0M3TH3AN <[email protected] >
2026-02-16 18:09:48 +00:00
thePR0M3TH3AN
e528bebae3
Refine console logging
2025-08-23 13:19:27 -04:00
thePR0M3TH3AN
d106802a18
Reduce console logging noise
2025-08-23 12:46:52 -04:00
thePR0M3TH3AN
7b0344739f
refactor: restrict console logging and pause during UI
2025-08-22 22:24:04 -04:00
thePR0M3TH3AN
b307728c05
feat: support pausing console logs
2025-08-22 21:50:04 -04:00
thePR0M3TH3AN
c13742f3f3
Merge pull request #838 from PR0M3TH3AN/codex/add-manual-export-without-encryption
...
Add option to export and import database without encryption
2025-08-20 21:08:49 -04:00
thePR0M3TH3AN
6c8b1928b8
Add option to export and import database without encryption
2025-08-20 21:00:12 -04:00
thePR0M3TH3AN
492bfba3fb
tests: add offline default and kdf slider
2025-08-20 20:51:36 -04:00
thePR0M3TH3AN
619226d336
feat: support random and deterministic TOTP secrets
2025-08-20 18:36:19 -04:00
thePR0M3TH3AN
b97d60778b
Restore compatibility for key hierarchy
2025-08-20 18:12:02 -04:00
thePR0M3TH3AN
bbb26ca55a
test: add key hierarchy tests
2025-08-20 17:57:50 -04:00
thePR0M3TH3AN
87999b1888
test: cover backup restore startup
2025-08-19 08:53:26 -04:00
thePR0M3TH3AN
199d02ab72
Clarify placeholder utils and clean imports
2025-08-08 15:47:52 -04:00
thePR0M3TH3AN
051454ff2e
Test avoiding decryption when selecting active profile
2025-08-06 21:45:21 -04:00
thePR0M3TH3AN
5cdb4ecac5
Test quick unlock toggle after profile creation
2025-08-06 20:04:32 -04:00
thePR0M3TH3AN
7521014a61
Initialize config manager lazily for offline mode
2025-08-06 19:49:46 -04:00
thePR0M3TH3AN
d92385eff9
Add tests for secret mode initialization
2025-08-06 19:23:56 -04:00
thePR0M3TH3AN
ed7763195e
Improve password change flow
2025-08-06 19:07:40 -04:00
thePR0M3TH3AN
f0a7fb7da1
Queue background errors
2025-08-05 23:26:54 -04:00
thePR0M3TH3AN
099c24921f
feat: add configurable prompt backoff
2025-08-05 22:48:18 -04:00
thePR0M3TH3AN
6888fa2431
Remove duplicate import in test
2025-08-05 22:18:26 -04:00
thePR0M3TH3AN
68eaa34d76
Add dependency scanning and optional dependency checks
2025-08-05 21:04:50 -04:00
thePR0M3TH3AN
87cf2d837b
Refine exception handling
2025-08-05 20:34:26 -04:00
thePR0M3TH3AN
89cbef1aa4
Flush stdin and exit stats screen on Enter
2025-08-05 13:13:31 -04:00
thePR0M3TH3AN
1f669746db
Handle empty profile cleanup
2025-08-05 12:24:53 -04:00
thePR0M3TH3AN
8e78a72257
Use manager sync for Nostr restore
2025-08-03 16:38:33 -04:00
thePR0M3TH3AN
032caed3d0
Add atomic write utility and tests
2025-08-03 08:57:04 -04:00
thePR0M3TH3AN
ccca399b09
docs: clarify manual clipboard dependencies
2025-08-03 08:12:25 -04:00
thePR0M3TH3AN
dcd095d1af
Include entry type in search results
2025-08-02 16:26:52 -04:00
thePR0M3TH3AN
144751ef02
fix exit crash when nostr client missing
2025-08-01 09:28:49 -04:00
thePR0M3TH3AN
9adb539b84
Keep stats screen visible
2025-08-01 08:32:44 -04:00
thePR0M3TH3AN
77757152d7
Add async background sync task management
2025-07-31 19:38:09 -04:00
thePR0M3TH3AN
6d82ef1815
Add StatsManager for single display
2025-07-31 16:01:40 -04:00
thePR0M3TH3AN
ceb2eb28ad
Fix Nostr manifest handling
2025-07-31 14:42:53 -04:00
thePR0M3TH3AN
2d39d7a5bd
feat(stats): refresh triggers background sync
2025-07-28 13:31:15 -04:00
thePR0M3TH3AN
c23b2e4913
Refactor password manager modules
2025-07-17 19:21:10 -04:00
thePR0M3TH3AN
c787651899
Return all Nostr event IDs
2025-07-17 15:21:08 -04:00