Make Hermes collector writes atomic and monotonic #26
Loading…
Reference in a new issue
No description provided.
Delete branch "audit/collector-atomicity"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Remediates HUI-001 and HUI-002.
Baseline:
36a6494b01538328d906dfc8b3d9393ec0690a33Head:
abf71f5100c9cf1c04c5cbdd66a4160c73fe172fBehavior
BEGIN IMMEDIATEtransaction so checkpoint and event writes commit or roll back together.Regression evidence
Verification
uv run pytest -q(16 passed)uv run black --check src testsuv run isort --check-only src testsuv run pyrightuv run python -m buildanduv run twine check dist/*uv run mkdocs build --strictResidual risk
SQLite uses its configured busy timeout. A writer held longer than that can cause a collector run to fail safely rather than wait indefinitely; a later retry remains lossless. Cumulative counters are intentionally treated as monotonic for a stable Hermes session ID.
Independent reviewer verdict: APPROVED at exact head
abf71f5100. Verified signed logical commit; baseline/main ancestry and three-file diff scope; atomic rollback and lossless retry; serialized two-connection import with monotonic checkpoint; normal idempotency; SQLite-compatible additive/no-migration changes; 2 focused and 16 full tests; Black, isort, Pyright, package build, Twine, strict MkDocs, synthetic CLI smoke; redaction-safe added-line secret scan; and both exact-SHA Forgejo CI contexts successful. No blocker/important/minor findings. Residual: long writers can exceed SQLite busy timeout and fail safely for later retry; stable session counters are assumed cumulative. Forgejo rejected a formal approval because the shared clawlter service identity authored the PR, so this comment records the independent reviewer-profile gate.WIP: Make Hermes collector writes atomic and monotonicto Make Hermes collector writes atomic and monotonic