| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| sbom.json | 2026-08-30 | 7.7 kB | |
| README.md | 2026-08-30 | 5.4 kB | |
| v0.18.5 -- retention, self-awareness, and a tighter bar for tutorials source code.tar.gz | 2026-08-30 | 2.2 MB | |
| v0.18.5 -- retention, self-awareness, and a tighter bar for tutorials source code.zip | 2026-08-30 | 2.5 MB | |
| Totals: 4 Items | 4.8 MB | 10 | |
Retention, self-awareness, and a tighter bar for tutorials. The decision log can now be pruned by age or row budget without touching pending approvals, and it prunes every resolved AUTH row, not just three literal outcomes.
doberman updateand a passive nudge instatustell you when you're behind PyPI. The dashboard lets you copy a pending approval's redacted details, shows the real mark, and keeps its counters in step with the feed. The doctor reports the password factor and the optional dash/tui extras; changelog fragments end the CHANGELOG conflict tax; and the plugin tutorials are covered by CI without ever being installed.
-
Decision-log retention is explicit and fail-safe.
doberman decision-log-prunelets an operator delete resolved rows by age and/or retained-row budget; pending AUTH challenges and the append-only policy-change ledger are never touched, and mediated agents cannot invoke the mutating command through the shell. Any AUTH row with a recorded outcome (approval method, denied, blocked, error, executed) counts as resolved and is eligible for pruning, not only the three literal values it originally accepted (#461, [#502]) -
doberman update— and a passive "new version available" nudge. Doberman now tells you when the installed version is behind PyPI, so a friction fix reaches you without watching the releases page.doberman updatedoes one timeout-bounded PyPI check and prints thepip install -Ucommand (it never installs anything);doberman statusshows a one-line nudge when a newer version is cached. The check is best-effort and fail-open (an unreachable PyPI is silent, never an error), caches for 24h, never runs on the hook/proxy hot paths, and is off underDO_NOT_TRACK,CI, orDOBERMAN_UPDATE_CHECK=off(#508). -
Copy a pending approval's details from the dashboard. A Copy details action on each pending card copies only the existing redacted fields as formatted JSON (thanks @slegarraga, [#498], closes [#443])
-
doberman doctorreports the password factor: aPasswordrow next to2FA, OK when enrolled, a non-critical WARN with thedoberman password sethint when not; presence only, never the secret (thanks @slegarraga, [#474], closes [#439]) -
doberman doctorreports the optional UI extras:Dash extraandTUI extrarows say whetherstarlette/textualare installed (viafind_spec, nothing imported) and print thepip install 'doberman[dash]'/[tui]hint when not (thanks @slegarraga, [#475], closes [#440]) -
doberman egress-velocity [KNOB] [VALUE]: show or set theburst,volume-bytes, andfanoutdetection thresholds from the CLI. Lowering a threshold applies at once; raising one crosses the same possession-factor gate as every other loosening (TOTP if enrolled, else the password), is recorded in the policy-change ledger, and is saved only when approved, so hand-editing the policy file is no longer the only way to set them (thanks @Maqbool61, [#459], closes [#457]) -
install-hooks --dry-runpreviews the command the installer really writes. The SessionStart line now comes from the sameDASHBOARD_COMMANDconstant as the write path (doberman session-summary), so the preview cannot drift again (thanks @slegarraga, [#463], closes [#429]) -
tune --jsonis compact like every other JSON command (separators=(",", ":")), keeping the machine-readable output contract in docs/CLI.md (thanks @slegarraga, [#470], closes [#431]) -
doberman logcolumns no longer shift for the 15-character action types (network_request,package_install): the action column width now comes from theActionTypeenum, the way verdict labels already do (thanks @slegarraga, [#472], closes [#428]) -
The dashboard stats strip stays in step with the live feed. A decision landing in the feed now triggers an immediate (trailing-debounced 150 ms) stats refresh instead of lagging up to 5 s behind the list; the 5 s interval remains as a fallback. (#491)
-
Tests: the data-class rule's two documented non-detections are now proven: a six-digit one-time code bound for an external host stays PASS, and the valid SSN's digits without dashes stay PASS, so the rule is pinned to the dashed shape rather than the value (thanks @slegarraga, [#468], closes [#405])
-
Docs: five stale "(a later slice)" comments that promised features which have since shipped now describe what the code does today (thanks @slegarraga, [#473], closes [#426])
-
Changelog entries no longer collide on every parallel pull request. Each PR now adds its own
changelog.d/<PR-number>.md, and release tooling compiles those fragments together (thanks @slegarraga, [#476], closes [#456]) -
The dashboard header now shows the real Doberman mark. The placeholder "D" is replaced by an embedded PNG data URI, so
doberman dashstays one self-contained page with no static-file route. (#490) -
docs/README.mdindexes every doc page. An "open this when…" guide to each document makes the right one a single scan away (thanks @navaneethsankar07, [#492], [#500], closes [#409]) -
Tests: the core standalone-guarantee test asserts no
doberman.audit_sinksplugin is registered by default again; the plugin-audit-sink tutorial is now covered by a CI-visible test that never installs it (#501)