NAVIG 3.25.0 is on PyPI: pip install -U navig
This is the first tagged release since 3.24.0 (2026-07-19) and covers 541 commits. The
full entry in CHANGELOG.md runs
to ~300 items across 40 sections; the shape of it:
Added
- Telegram Extensions — one switch per bot feature, and "off" actually means off. The
bot's 108 commands, ~34 button prefixes, silent pipeline behaviours and scheduled senders
are grouped into 18 extensions (/extensions,navig telegram extensions …, or Deck →
Social → Telegram). Switching one off removes its commands from Telegram's autocomplete
and/help, stops its buttons being offered, rejects a stale tap with an explanation, and
halts its scheduled messages. Nothing is deleted; switching it back on restores it exactly.
Security
- A fourth tool dispatcher ran shell commands with no approval interlock, and widening
the guard that should have caught it found a fifth. The guard now derives from both tool
registries and accepts both interlock seams, so a new dispatcher cannot be added silently. - Further hardening across host locking, SSRF, and credential handling.
Fixed — the bulk of the release. Recurring themes:
- Guards that watched the wrong thing. Several checks described a failure precisely while
being scoped to a path the failure did not live in; each is re-derived from the shape of
the defect instead. - Tests that certified nothing. Fakes carrying the same wrong names as the code, loops
that assert over an empty list, and suites that ran in no CI tier at all. - Silent degradation. Calls that could only raise sitting inside
exceptblocks that
returned a default — a configured setting that could never take effect, an empty plan
returned every time, TUI panels rendering as error badges. - Windows correctness — 41 subprocess sites now decode with the codec the child actually
writes, and path handling no longer assumes the host that produced a path.
Performance
- The core test suite went from 73 minutes to 11: an autouse fixture ended in a full
gc.collect()before and after every test, so ~55,000 full gen-2 sweeps of a heap holding
the entire collected suite ran per xdist worker.
Install: pip install -U navig · PyPI ·
full changelog
Provenance. navig-3.25.0.tar.gz attached here is the exact artifact published to
PyPI (sha256 0f5e71e537c50f26926ca9ada60a28b84eb4b5b794f61856511f8cd81a983c40), downloaded
and digest-verified rather than rebuilt, so it is byte-identical to what pip install navig
resolves. This repo is synced from the NAVIG monorepo and had not been synced between 3.24.0
and now, so the tag marks the sync commit that carries 3.25.0 plus a handful of later fixes —
there is no earlier commit here that corresponds to the release exactly.