- en2ru.py: EN markdown -> Russian via Ollama ,
strips code-fence artifacts, prints jargon-review hints to stderr
- DOCSTRAT.md: rule — EN canonical source, RU for comprehension only,
never edit on drifted Russian (dedup/receive mistranslation guard)
- ROADMAP.ru.md: sample RU generated from EN source
- AGENTS.md: section 8 documenting the EN-first workflow
- ingest.parse_web: direct fetch; on block/timeout retry via socks5h://127.0.0.1:1080 (SOCKS_FALLBACK_PROXY); raises ValueError if both fail.
- config: add SOCKS_FALLBACK_PROXY default (socks5h://127.0.0.1:1080).
- self_improve.stale_guard: supported LLM verdict now sets status_change='supported' (authoritative), no fallthrough to age fallback -> no double-checked/skipped_no_source.
- README: document auto-fallback.
- memory_commit: closes the 'commit hole' — writes verified answers from
closed gaps back into atoms (mandatory dedup); leaves gap open if no
verified answer exists. Reads verified status from PostgreSQL (source of
truth), not the Qdrant projection.
- memory_stale: staleness guard with two signals — content-staleness
(re-fetch + LLM verdict, needs proxy for foreign sites) and age-staleness
(proxy-free fallback by pm_document.fetched_at, max_age_days).
- db: populate pm_document.fetched_at on upsert (freshness signal).
- docs: README/AGENTS/ARCHITECTURE/EXAMPLES updated (18 tools).
- self_improve.py: new module (227 lines).