v0.4.1 — Maintenance release
Maintenance release: one bug fix, internal refactoring, added test coverage. No public CLI or API changes — every command and endpoint that worked in 0.4.0 keeps working identically.
Fixes
--redact dry-runnow leaves the original text unchanged, as the docs (and the upload UI) always promised. Previouslydry-runfell through to the same hash-replacement path as--redact redact— hit counts and detection were already correct, but the output text was being rewritten. Locked with new unit tests.
Internal refactors (no behaviour change)
- Severity-ordering consolidated onto a single
.levelproperty onFindingSeverity/Severity. Five copies of the same map across the codebase — two with opposite directions, a latent foot-gun. - New
Principalabstraction inlogatory.web.auth, forward-compatible with the planned multi-user server. Existing Bearer-token behaviour unchanged. - Six dedup helpers extracted across the CLI:
SEVERITY_COLOR,BUILTIN_RULES_DIR,parse_lookback_seconds,compile_plugin_pii_patterns,build_engine, and a sharedrun_tail_pipelinefor the realtime loop (7 commands × ~50 lines of identical async pipeline → one helper). SqliteRepositorybase class — the four SQLite repos (Findings, Errors, Baseline, Dismiss) now declare_schemas+ an optional_migratehook instead of repeating ~25 lines of lifecycle each.- Net −262 LOC across the project.
Tests
- New coverage for: fleet tail mid-stream target failure isolation, SSH
poll()first-connect failure (file + journald modes), OpenSearchpoll()deduplication contract for documents without_id, the newPrincipalabstraction, and the severity-level API. - Test count: 735 → 757, all passing.
Docs
- New Sponsoring & Enterprise section in the README — a passive contact path for teams interested in the planned multi-user server, sponsoring a specific adapter or detection ruleset, priority support, or commercial / air-gapped licensing. The single-user mode stays Apache-2.0 and is called out as such.
Upgrade
pip install -U logatory — drop-in upgrade from 0.4.0, no config changes needed.