Skip to content

fix(victauri-test): IPC checkpoint cannot miss a same-millisecond call (0.8.8 audit) - #66

Merged
runyourempire merged 1 commit into
mainfrom
fix/v088-audit-checkpoint-boundary
Aug 12, 2026
Merged

fix(victauri-test): IPC checkpoint cannot miss a same-millisecond call (0.8.8 audit)#66
runyourempire merged 1 commit into
mainfrom
fix/v088-audit-checkpoint-boundary

Conversation

@runyourempire

Copy link
Copy Markdown
Collaborator

Why

Pre-release GPT-5.5 adversarial audit of the tagged v0.8.8 candidate (c9ee229). The audit
confirmed the tagged tree otherwise clean and found one real issue, in exactly the spot the
audit brief disclosed as the weakest (T2 — the checkpoint boundary).

The bug

ipc_calls_since filters with a strict timestamp > checkpoint. create_ipc_checkpoint returned
the newest visible entry timestamp immediately — so any IPC call logged in the same millisecond
right after the checkpoint returned was silently invisible to calls_since. On a busy app that's
the common case, not an edge case: the checkpoint→invoke gap is routinely sub-millisecond.

This is the same family as the bug fixed in #64 (checkpoints silently returning nothing), one layer
deeper: #64 fixed which coordinate the checkpoint uses, this fixes the boundary semantics of
that coordinate.

The fix

create_ipc_checkpoint now waits until the local clock has advanced past the checkpoint
millisecond before returning, bounded at 5 ms so a skewed/future server timestamp can't stall the
caller. Calls made after the checkpoint therefore cannot share the boundary timestamp.

  • crates/victauri-test/src/client.rs — the fix + doc update on the public method.
  • crates/victauri-test/tests/client_tests.rs — regression pinning the same-ms boundary.
  • crates/victauri-plugin/tests/integration_tests.rs — second new test: Bearer-auth enforcement on
    the 2026-07-28 server/discover lifecycle method under stateless MCP (audit surface T3 —
    a new-protocol lifecycle method reaching the rmcp handler before the auth layer would be a real
    bypass; it does not, and now that's pinned).
  • CHANGELOG.md — folded into the existing [0.8.8] entry.

No public API change. cargo semver-checks vs published 0.8.7: no semver update required on
both victauri-plugin and victauri-test, so this stays in ^0.8.

Gate (re-run in full post-restart, on this tree)

cargo fmt --check · clippy ×4 (default / --no-default-features / --release / --features sqlite), all --all-targets -D warnings · cargo test --workspace (and again with --features sqlite via preflight) · RUSTDOCFLAGS="-D warnings" cargo doc · cargo semver-checks check-release --workspace · cargo deny check (advisories/bans/licenses/sources ok) · cargo audit (0, allowed warnings only) · bash tools/test-install-gate.sh · scripts/preflight.ps1
(incl. doc-count lint: 35 tools consistent across README/getting-started/tools-reference).

🤖 Generated with Claude Code

https://claude.ai/code/session_01B3UneTjEcPtULZuER1BSvY

The pre-release GPT-5.5 adversarial audit of the v0.8.8 candidate found
one real issue: ipc_calls_since filters with a strict timestamp >
checkpoint comparison, so a call logged in the same millisecond
immediately after create_ipc_checkpoint returned was silently invisible.

create_ipc_checkpoint now waits until the local clock has advanced past
the checkpoint millisecond before returning (bounded at 5ms against
clock skew), so calls made after the checkpoint cannot share the
boundary timestamp. No API change; semver-checks vs 0.8.7 stays clean.

Also adds a stateless-MCP auth regression test pinning Bearer
enforcement on the 2026-07-28 server/discover lifecycle method, and
folds both into the 0.8.8 CHANGELOG entry.

Full local gate re-verified post-restart: fmt, clippy x4 (default /
no-default / release / sqlite) -D warnings, workspace tests (+sqlite),
doc -D warnings, semver-checks (no update required), cargo deny, cargo
audit, install-gate self-test, doc-count lint.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01B3UneTjEcPtULZuER1BSvY
@runyourempire
runyourempire merged commit fc71b07 into main Aug 12, 2026
139 of 147 checks passed
@runyourempire
runyourempire deleted the fix/v088-audit-checkpoint-boundary branch August 12, 2026 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant