v1.14.0: style: ruff-format page_path.py after symbol move
[1.14.0] - 2026-07-16
Catalog write-safety, leaf-module dependency direction, and Clean Code Tier F closures
Reliability and architecture hardening after the 2026-07-16 deep code audit. Builds on v1.13.1 (parser 1.6.0 alignment). No intentional MCP/CLI surface break for vault operators.
Fixed
MasterCatalogwrite-safety (#210 / #211) —remove()followed byupsert()of the same title no longer loses the entry onsave()(upsertclears a pending removal); corrupt / non-dict catalog JSON is logged and quarantined during merge-save instead of silently treated as empty;prune_missing_pages()records its removals so a plain save cannot undo a prune;get_case_insensitiveuses a cached casefold index (invalidated on write) instead of a full linear scan under the lock.- File watcher (#211) — handles
on_movedevents (rename routed as delete+create); replaced per-filethreading.Timerfan-out with a single-thread debounce scheduler. - Leaf-module import cycles (#215 / #216) — 4 of 5 deferred-import cycles resolved by relocating symbols to their true lowest-layer home:
DaemonState/ phase-2 progress metrics fromdaemon_state.py/daemon_page_queue.py(not viamaintenance_daemonre-exports); lint handlers usedaemon.ast_cachedirectly; sharedcanonicalize_llm_base_url()inllm_url_policy.py;resolve_existing_page_titlemoved toalias_index.py. One Tana cycle left intentional (test monkeypatch constraint).
Added
- Graph → rag boundary guard (#171 / #192) —
tests/test_graph_layer_boundary.pyforbidssrc/graph/→src/rag/imports in CI; allowlistsgenerational_cache.py(lazytokenizeimport) for a follow-up extraction. Thanks to @Maqbool61. - Env clamp-contract tests (#173 / #187) — parametrized contracts for
MATRYCA_LINK_VERIFY_STRIKES/BATCH/TIMEOUTandMATRYCA_GENERATIONAL_CACHE_MAX_GRAPHS(bounds, invalid strings, empty → defaults). Thanks to @Maqbool61. - Deep code audit report —
docs/AUDIT_REPORT_2026-07-16.mdwith F1–F11 findings, remediation status, and Mermaid architecture / sequence diagrams; CONTRIBUTING and good-first guides gain matching lifecycle diagrams.
Changed
- Shared
env_parseadoption (Tier F) —concurrency_probeusesenv_bool("MATRYCA_ALLOW_FLOCK_DEGRADATION")instead of a private helper (#172 / #188);plumber_configdrops the_env_intshim so agent modules callutils.env_parse.env_intdirectly (#170 / #191). Thanks to @Maqbool61. - Dependencies — Sovereign UI frontend npm group bumps (#190, #218);
astral-sh/setup-uvin the github-actions Dependabot group (#189, #195). - Documentation — README star-history section and duplicate header fix; docs aligned to post-audit code state;
PROJECT_DIARYrecords F1–F11 remediation.