Repository navigation
Releases
Releases · punitmishra/coviber
v0.5.0 — architect audit fixes
Fourth tagged release. Ships the second adversarial audit pass — this one at the architecture level (v0.4 was line-level bugs; v0.5 is API design, data model, config precedence, error philosophy, release hygiene, tests strategy, DX).
Audit summary
- 175 review + verify agents across 10 architecture lenses (API, data-model, concurrency, config, error-handling, performance, security/privacy, docs/release, test strategy, DX).
- 55 raw findings → 34 confirmed after 3-skeptic adversarial verification (≥2 of 3 refute to drop).
- 18 fix-now landed in #32 (docs/release/DX) and #33 (correctness).
- 12 file-issue filed as #34–#45.
- 4 accept-and-document now explicit invariants in ARCHITECTURE.md.
Landed behavior changes
__version__is now dynamic viaimportlib.metadata— pyproject.toml is the single source of truth.- Entry-point loader failures observable via
warnings.warn(was: silent swallow). - Full env-var reference table in README + ARCHITECTURE.
resolve()prints a stderr warning when the Qdrant URL isn't a loopback host — local-first boundary now explicit.- CI MCP smoke test uses a name-set assertion (was: magic count of 7).
urgency.score()docstring/comment lie about clamping — fixed; new test pins the loosened contract.Record.from_dictwarns (deduped) on unknown fields — forward-compat visible.Store.upserttmp filenames PID+uuid-tagged — matches other write paths.- Consistent
Path.expanduser()at theStore.__init__choke point. Store.load_graph()shared defensive-read helper (CLI + MCP).- Test pins the MCP
ConfigError-per-tool invariant.
Test suite
133 pass, 0 failures, 1 opt-in Qdrant skip. ruff check clean. The pre-existing failing test that dogged v0.4 is finally fixed (finding #25 — split into keyword+embedding backend-forced tests).
v0.4.0 — adversarial layer audit
Third tagged release. Ships the adversarial layer audit: 35 confirmed findings across seven layers, each landed as its own reviewed PR.
Audit summary
- 142 review + verify agents ran a per-layer find → adversarial-verify workflow (3 skeptic lenses per finding, ≥2-of-3 refute to drop).
- 45 raw findings → 35 confirmed after verification.
- All 35 landed across 7 layer-scoped PRs and merged in order.
Layer PRs
- L1 Store — #24: crash on non-string ts, tmp-file race, atomic save_graph, exception log, float32 vectors + concurrent-search test.
- L2 Pipeline+Config+CLI — #25: empty list = opt-out end-to-end, single store.all read, Settings.from_dict passthrough tests.
- L3 Records+Loaders — #26: reject non-positive limit, IMAP socket timeout, webscrape
is_file()detection, JSONL mid-file diagnostics + numeric-ts survival. - L4 WorkGraph — #27: word-boundary project matching, PR ticket dedup, case-insensitive person identity with display_name, live channel/ticket mentions.
- L5 Urgency — #28: FYI word-boundary, empty cfg.you guard, empty-set opt-out, weight-value & unknown-key diagnostics.
- L6 Persona — #29: opener/closer dedup for single-line, contraction filter, empty-corpus sentinel, extended emoji range, MCP name plumbing + new persona test file.
- L7 MCP server — #30: torn-graph read defense,
graph_summaryhardening,refresherror messages, case-insensitivewho_is, coverage for 5 previously-untested tools.
Test suite
129 pass, 1 pre-existing unrelated failure, 1 opt-in Qdrant skip. ruff check clean.