Commit Graph
559 Commits
Author SHA1 Message Date
thePR0M3TH3AN f02b360062 Fix beta TUI startup preflight and installer fallback hints 2026-03-01 17:47:17 -05:00
thePR0M3TH3AN 3470fd6aac Strengthen determinism gates and add TUI v2 agent testing workflow 2026-03-01 17:35:39 -05:00
thePR0M3TH3AN e667249ec4 Improve TUI v2 UX with help overlay and pane focus 2026-03-01 16:55:39 -05:00
thePR0M3TH3AN e3c117110a Switch default interactive CLI routing to TUI v2 2026-03-01 16:46:08 -05:00
thePR0M3TH3AN 5f0dbe82af Add TUI v2 parity scenarios and align help hints 2026-03-01 16:44:07 -05:00
thePR0M3TH3AN 733a70c16f Add CI-like large-vault validation for TUI v2 2026-03-01 16:39:35 -05:00
thePR0M3TH3AN eba7ff3353 Add Textual pilot tests for TUI v2 workflows 2026-03-01 16:27:55 -05:00
thePR0M3TH3AN 7a1768f349 Add testable TUI v2 helper layer and unit coverage 2026-03-01 16:24:55 -05:00
thePR0M3TH3AN 4113bd1282 Implement TUI v2 phase 1 read-only shell 2026-03-01 16:06:39 -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 24aa3f12a2 Merge branch 'beta'
# Conflicts:
#	memory-update.md
#	torch/_backups/backup_2026-02-26T13-45-30-661Z/scripts/find_dead_code.py
2026-03-01 01:02:55 -05:00
thePR0M3TH3AN 68cb1169e3 Add agent autonomy controls, docs updates, and landing page agent section 2026-03-01 01:02:11 -05:00
thePR0M3TH3AN baaaa25e45 Merge pull request #958 from PR0M3TH3AN/test-audit-agent-daily-run-15521316835403864428
refactor: improve test determinism by removing time.sleep
2026-02-28 22:37:27 -05:00
thePR0M3TH3AN 1b14291a6e Merge branch 'beta' into agents/daily/audit-agent-2969675987751687080 2026-02-28 22:35:07 -05:00
thePR0M3TH3AN fe96ccd7c7 Add agent security controls, broker auth, and capability discovery 2026-02-28 22:32:38 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6e916fdb69 refactor: format refactored tests with black to fix CI
Ran `poetry run black --check .` and `black src/tests/test_nostr_index_size.py src/tests/test_nostr_sdk_workflow.py`
to fix code formatting issues in the test audit run, which caused GitHub
Actions CI checks to fail.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-01 03:09:02 +00:00
google-labs-jules[bot]andPR0M3TH3AN e1400f32a5 refactor: improve test determinism by removing time.sleep
Replaced non-deterministic `time.sleep` calls with active polling loops or
thread joins in `src/tests/` to improve test determinism and reliability.
Modified `test_unlock_sync.py`, `test_nostr_sdk_workflow.py`,
`test_background_relay_check.py`, `test_offline_mode_behavior.py`, and
`test_nostr_index_size.py`.
Generated integrity and audit reports in `reports/test-audit/`.
Completed the scheduler rotation by publishing completion logic and
task log file to `torch/task-logs/daily/`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-01 02:59:43 +00:00
thePR0M3TH3AN 65d9f916d2 Merge branch 'beta' into agents/daily/audit-agent-17254275400947240958 2026-02-28 13:44:45 -05:00
thePR0M3TH3AN 3cd919eead Merge branch 'beta' into content-audit-agent-fixes-3621733322784994394 2026-02-28 13:44:08 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6db570f2a7 test: gracefully skip test_ai_tui_agent_harness on Windows
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-28 03:32:48 +00:00
google-labs-jules[bot]andPR0M3TH3AN a4fb4c24ed fix(tests): skip pty/termios tests on non-unix systems
Added pytest.importorskip calls for 'pty' and 'termios' modules in
test_ai_tui_agent_harness.py to fix test failures on Windows where
these modules are unavailable.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-28 00:46:37 +00:00
google-labs-jules[bot]andPR0M3TH3AN b8da933fb7 fix: skip pty and termios on windows for test_ai_tui_agent_harness.py
Added `pytest.importorskip("pty")` and `pytest.importorskip("termios")` before `_load_harness_module()` call to properly skip `test_ai_tui_agent_harness.py` on Windows environments where these modules are not available. This prevents the `ModuleNotFoundError: No module named 'termios'` error during pytest collection.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-28 00:07:54 +00:00
google-labs-jules[bot]andPR0M3TH3AN ee7cde10f8 Fix Windows CI failure in AI TUI agent tests
- Skip `src/tests/test_ai_tui_agent_harness.py` on Windows to avoid `ImportError` due to missing `termios`/`pty` modules.
- Ensure the harness module is only loaded if the skip condition is not met.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 19:16:52 +00:00
google-labs-jules[bot]andPR0M3TH3AN 4ba2581eff style: reformat src/tests/conftest.py with black
- Formatted `src/tests/conftest.py` using `black` to fix CI formatting failures.
- This change ensures compliance with the repository's strict formatting checks (`poetry run black --check .`).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 03:55:13 +00:00
google-labs-jules[bot]andPR0M3TH3AN d84363ef83 style: fix formatting in src/tests/conftest.py
- Manually applied PEP 8 formatting (sorted imports, correct spacing) to `src/tests/conftest.py` to satisfy `poetry run black --check .` in CI.
- Retained the robust `try-import-except` logic for `trio` detection.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 03:43:38 +00:00
google-labs-jules[bot]andPR0M3TH3AN 7295807013 fix: resolve CI failures in trio tests and GUI/CLI test pollution
- Made `trio` backend detection in `src/tests/conftest.py` robust by using `try-import-except` instead of `find_spec`, fixing `ModuleNotFoundError` in environments where `find_spec` behavior differs or trio is partially present but not importable.
- Prevented test pollution in `src/tests/test_gui_features.py` by adding `try...finally` block to unsubscribe `refresh_codes` from the global `bus`, ensuring subsequent CLI tests (like `test_nostr_sync`) don't crash due to lingering callbacks.
- Hardened `src/seedpass_gui/app.py` against test-induced errors:
    - `TotpViewerWindow.refresh_codes` now accepts `*args, **kwargs` to safely ignore event arguments if called via subscription.
    - `MainWindow.vault_locked` catches `ValueError` when closing, handling cases where the window is already detached in test environments.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 03:32:38 +00:00
google-labs-jules[bot]andPR0M3TH3AN 5767742050 fix: restore conftest.py and clean pubsub
- Restored `src/tests/conftest.py` from `.bak` to fix missing `trio` conditional check, resolving `ModuleNotFoundError: No module named 'trio'`.
- Added `clean_pubsub` autouse fixture to `conftest.py` to clear the global `bus` subscribers between tests. This prevents test pollution that was causing `TypeError` in CLI tests and `ValueError` in GUI tests due to lingering callbacks.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 03:22:41 +00:00
thePR0M3TH3AN 7dc80ed50f Merge branch 'beta' into agents/daily/style-agent-3237388057797561077 2026-02-26 21:36:11 -05:00
thePR0M3TH3AN b414f797d9 Merge branch 'beta' into agents/daily/test-audit-agent-9196356756711804853 2026-02-26 21:33:27 -05:00
google-labs-jules[bot]andPR0M3TH3AN 8495df0910 test(ci): mock masked_input in profile management test
Fixes `OSError: [Errno 22] Invalid argument` in Windows CI runs by mocking
`utils.password_prompt.masked_input` in `test_add_and_delete_entry`. This prevents
`msvcrt.getwch()` from being called in non-interactive environments when
`PasswordManager.add_new_fingerprint` requests a password/seed.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 00:45:49 +00:00
google-labs-jules[bot]andPR0M3TH3AN 5e9ff2ab8f chore(style-agent): format code and update task logs
- Ran `black .` to reformat Python files:
  - src/seedpass/core/display_service.py
  - src/seedpass/core/manager.py
  - src/seedpass/core/password_generation.py
  - src/tests/test_stats_manager.py
  - test_atomic_write_perms.py
- Verified with `pytest` (766 passed) and `npm run lint`.
- Updated `.scheduler-memory/latest/daily/memories.md` with execution details.
- Added daily task log: `torch/task-logs/daily/2026-02-27T...__style-agent__completed.md`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 00:14:18 +00:00
google-labs-jules[bot]andPR0M3TH3AN b891787a92 Fix: Monkeypatch masked_input in test_profile_management to prevent Windows CI crash
- Explicitly mocks `utils.seed_prompt.masked_input`, `seedpass.core.manager.masked_input`, and `utils.password_prompt.masked_input` in `test_add_and_delete_entry`.
- This prevents `msvcrt.getwch()` from being called in non-interactive CI environments on Windows, which was causing `OSError: [Errno 22] Invalid argument`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 00:03:47 +00:00
google-labs-jules[bot]andPR0M3TH3AN 198ed4e440 chore(ai): format sources (style-agent)
Reformatted 5 Python files using black and verified linting for Node.js sources. No functional changes.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 22:20:16 +00:00
thePR0M3TH3AN 4459dfea78 Fix display service input hooks and clean pytest warnings 2026-02-26 15:45:55 -05:00
thePR0M3TH3AN b680e1dfa5 Merge pull request #924 from PR0M3TH3AN/test-fingerprint-edge-cases-17056355250998203024
🧪 Add edge case tests for generate_fingerprint
2026-02-26 14:35:44 -05:00
thePR0M3TH3AN 115eacb326 Merge pull request #916 from PR0M3TH3AN/jules-stats-manager-test-11560243951841616901
Add test for StatsManager.reset
2026-02-26 14:32:34 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6a921b8f84 test: add comprehensive unit tests for generate_fingerprint
Add `src/tests/test_fingerprint.py` to cover:
- Happy path fingerprint generation.
- Custom fingerprint length.
- Input normalization (whitespace/case).
- Error handling via mocked exception in `hashlib.sha256`.
- Invalid input handling (NoneType).

This addresses the gap where the exception path in `src/utils/fingerprint.py` was unreachable with standard inputs.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 19:15:19 +00:00
google-labs-jules[bot]andPR0M3TH3AN 407dfee1a5 Add unit test for StatsManager.reset method
This commit adds a new test file `src/tests/test_stats_manager.py` to verify the functionality of the `StatsManager.reset` method. The test ensures that the `reset` method correctly resets the internal `_displayed` flag, allowing stats to be displayed again after a reset.

Testing:
- Added `test_stats_manager_reset` which mocks the manager and verifies `display_stats` calls before and after reset.
- Verified the test passes in isolation.
- Skipped full integration tests due to environment limitations, but the change is isolated to a new test file and does not modify production code.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:46:25 +00:00
google-labs-jules[bot]andPR0M3TH3AN 566988bdf9 test: verify atomic_write cleanup on failure
Added two new test cases to `src/tests/test_atomic_write.py`:
- `test_atomic_write_cleanup_on_failure`: Verifies that the temporary file is deleted if the write operation fails.
- `test_atomic_write_preserves_existing_on_failure`: Verifies that an existing destination file is preserved if the write operation fails.

These tests ensure the robustness of the `atomic_write` utility function.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:45:29 +00:00
thePR0M3TH3AN 67fd7a1063 Merge pull request #914 from PR0M3TH3AN/fix-legacy-empty-salt-8731732856332646806
🔒 Fix Weak Legacy Key Derivation (Empty Salt)
2026-02-26 12:26:30 -05:00
google-labs-jules[bot]andPR0M3TH3AN b5a321544b 🔒 fix: Weak Legacy Key Derivation (Empty Salt)
This commit addresses a security vulnerability where legacy Fernet keys
were derived using PBKDF2 with an empty salt (b"").

Changes:
- Modified `_derive_legacy_key_from_password` to accept an optional `salt`
  parameter.
- Updated `EncryptionManager.decrypt_legacy` to attempt decryption using
   a salt derived from the user's fingerprint (unique per user) before
  falling back to the empty salt for backward compatibility.
- Added a new test file `src/tests/test_legacy_salt_fix.py` to verify the
  new logic.

Rationale: Using a unique salt per user is standard practice to prevent
precomputed attacks. While legacy vaults cannot be retroactively
secured, this change ensures that any future legacy-style derivations
use a unique salt if possible, while maintaining access to existing
vaults.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:26:00 +00:00
thePR0M3TH3AN 249edf6753 Merge pull request #912 from PR0M3TH3AN/fix-totp-index-verification-test-13868609691641482932
Verify Index for TOTP in Modify Entry Test
2026-02-26 12:21:29 -05:00
google-labs-jules[bot]andPR0M3TH3AN 29b955c913 Fix index verification for TOTP in modify entry test
The test `test_modify_entry_invalid_fields` was hardcoding `index = 0` for TOTP entries because `add_totp` returns a URI string instead of an index.

This change unifies the index determination logic by calling `entry_manager.get_next_index()` before adding the entry. This ensures the correct index is verified for all entry types, including TOTP.

Modified:
- src/tests/test_modify_entry_validation.py: Use get_next_index() for dynamic index determination.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:21:02 +00:00
google-labs-jules[bot]andPR0M3TH3AN 00d19d90f7 test: verify verify_checksum behavior when file is missing
Added a new test case `test_verify_checksum_missing` to `src/tests/test_checksum_utils.py` to ensure that `verify_checksum` correctly raises `FileNotFoundError` and logs an appropriate error message when the checksum file does not exist. This improves diagnostic reliability for checksum verification failures.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:13:53 +00:00
thePR0M3TH3AN df0ed4f1a9 Merge branch 'beta' into agents/daily/protocol-research-agent-1628573958005058735 2026-02-26 08:10:55 -05:00
thePR0M3TH3AN 056f12eb43 Merge branch 'beta' into agents/daily/onboarding-audit-agent-8897219026798356218 2026-02-26 08:10:12 -05:00
google-labs-jules[bot]andPR0M3TH3AN f13afb8dec Fix infinite loop in profile management test with robust input mocking
- Update `src/tests/test_profile_management.py` to use a more robust `input` mock iterator.
- Mock returns fallback "y" responses after the initial choice ("3") to break any potential infinite loops in `confirm_action` if mocking fails or module reloading interferes.
- Addresses `OSError` and timeout on Windows CI caused by interactive prompt loops.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 09:34:18 +00:00
google-labs-jules[bot]andPR0M3TH3AN d2052904c5 Fix Windows CI failure in test_profile_management.py
Replace unsafe module reloading with explicit monkeypatching of constants.
This prevents potential OSError: [Errno 22] Invalid argument on Windows
during TemporaryDirectory cleanup or test execution when modules are reloaded
in a way that affects global state or file handles.

Also ensured `pm.fingerprint_manager` is initialized using the monkeypatched
`APP_DIR` from the manager module context to guarantee it operates within
the temporary directory context and aligns with the mocked constants.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 09:24:23 +00:00