Skip to content

v1.3.3 — audit fixes: quorum denominator + hardening

Choose a tag to compare

@sdsrss sdsrss released this 12 Jul 22:23
· 17 commits to main since this release

Fixes from a full second-pass audit of v1.3.2 (report: docs/audit-report-2026-07-12-v1.3.2.md).

Fixed

  • Quorum denominator (N1, P1): generate/refine scoped the min_successful_members gate to all seats (including pure CH1 subagent seats) while only counting dispatchable (CH2/CH3) successes — so the default 2-subagent + 2-dispatchable committee would false-[abort] "not enough advisors" when a single dispatchable seat failed, defeating the fallback/quorum degrade-and-continue path. The gate is now scoped to dispatchable seats; an all-CH1 config exits cleanly instead of aborting.
  • load_transcript skips corrupt discussion.jsonl lines (stderr count) instead of crashing the whole discussion.
  • blindvote_<seat>.json filenames pass through _safe_name (path-traversal gap on seat).

Added (tests, 126 → 137)

  • leak-check exit-1 (secret-found) regression test — previously only exit-0/exit-2 were covered.
  • _dispatch_channels fallback-chain traversal, http_post transport build, and main() argparse wiring smoke tests.

Docs

  • Disclosed the line-level secret-scan false negative in SKILL.md inherent-limitations.
  • discuss.md --member <member_name> (filter matches name, not seat); roles-decide.md is_fact wording aligned to the generation schema; config.example.yaml name-vs-role clarification + codex_bin; quorum phrasing corrected across SKILL.md + both READMEs; English Troubleshooting table for parity; new root CHANGELOG.md.

Full offline suite: 137 passed. leak-check clean. Version consistent across all six locations.