• v3.10.2 52d70cae07

    ric_harvey released this 2026-03-27 23:15:18 +00:00 | 133 commits to main since this release

    What's changed

    Raised test coverage from 76% to 90% with 131 new tests (286 → 417 total).

    New test files

    • test_core_coverage.py — validation edges, query-based deprioritise/archive/reinstate/forget, recall optional fields (tags, effort, breakthrough, contradictions, source_url, reinstate_candidate), recall_detail metadata, find_duplicates, contradiction warnings in remember()
    • test_contradiction_coverage.pycheck_contradiction_api with mocked anthropic (no key, placeholder key, success, non-JSON response, exception), link_contradiction duplicate avoidance, malformed JSON handling
    • test_backup_coverage.py — path traversal, dump/restore error paths (exception, file write, file too large, invalid JSON, invalid format, invalid keys, OS errors), list_backups edge cases
    • test_briefing_coverage.py — helper function None-data branches, project filtering, malformed JSON, experience parsing edge cases, auto-maintenance exception handling
    • test_recall_coverage.py — comma-separated tags fallback, effort score parsing errors, contradiction JSON parsing, warn_if_abandoned scan cap (5000 keys), log_recall_event exception handling

    Coverage highlights

    Module Before After
    tools/core.py 76% 100%
    memory/recall.py 87% 100%
    memory/contradiction.py 76% 100%
    tools/backup.py 82% 97%
    tools/briefing.py 86% 94%
    tools/contradiction.py 80% 95%
    tools/experience.py 89% 97%

    Bug fixes

    • Fixed Bandit B310 annotation in version_check.py — was using # noqa: S310 (Ruff) instead of # nosec B310 (Bandit)
    • Fixed version update indicator in web UI sidebar — warning triangle now red, tooltip text only appears on hover instead of rendering inline
    Downloads