You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: address review issues #22 through #30 (non-doc)
Bug fixes:
- #22 (critical): server now requires AllowAnonymousAuth=true before
it will accept auth.scheme="none" handshakes, so a configured
bearer verifier is no longer silently bypassed
- #23 (high): WebSocket client transport serialises sends through a
SemaphoreSlim so the BCL WebSocket's one-send-at-a-time contract is
respected across auto-ack, pong, submit, cancel, and close paths
- #24 (high): JobSubmitFlow claims the idempotency key before
registering the job record; a duplicate claim now short-circuits
with a single error response and no second job is launched
- #25 (medium): credential-provisioner failures unwind the partially
accepted job — record removed, idempotency key released, watchdog
disposed, cancellation source disposed, and any tracked credentials
revoked before responding with the error
- #26 (medium): Lease.isSubset accepts conservative narrower-glob
children (literal-prefix narrowing for `prefix/**`, literal child
under single-star parent) and the misleading unit test now uses a
genuinely narrower pattern
- #29 (medium): client dispatch tears down the JobHandle when a
ResultChunk is out of order or undecodable; ChunkAssembler also
catches FormatException / DecoderFallbackException and surfaces
them as InvalidRequest instead of throwing through the receive loop
Performance:
- #27 (medium): EventLog per-session buffer uses Queue<T> so Append
cap-eviction and EvictExpired are O(1) per removed entry instead
of O(n) RemoveAt(0) shifts
Testing (#30):
- Coverage rises from 73.4 % / 56.5 % to ~89 % line / ~75 % branch
(above the 80 % line target). New focused tests cover stdio
framing, WebSocket send serialisation and close behavior,
EventLog replay/eviction edge cases, JobContext authority and
event emission, ChunkAssembler index, Pending registry, JobHandle,
full Codec round-trip for every message type and event body,
bearer-verifier variants, error taxonomy, trace ids, JobManager
lifecycle, and table-driven property tests for id round-trips,
glob coverage, and lease subset laws
- CONTRIBUTING.md documents the dotnet test + reportgenerator
command pair used to regenerate the coverage report
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments