fix(pubsub): wake reconciliation only for a full queue; run the new tests in CI

A queued Subscribe is processed in order, and a closed queue means the
subscriber restarts and re-subscribes the whole desired map. Only a
subscribe hint dropped by a full queue needs the reconciliation wake-up,
so first retains no longer each make the subscriber rescan the map.

The new relay lifecycle tests and the full-queue pubsub test join the
infra-free unit lanes (Justfile and scripts/run-tests.sh). The Redis
subscriber test runs in a Redis-backed backend-integration step, so
buzz-pubsub joins that archive.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
This commit is contained in:
Logan Johnson
2026-11-06 13:23:24 -05:00
parent 3402a67ade
commit bbecb47cff
4 changed files with 45 additions and 12 deletions

View File

@@ -103,6 +103,12 @@ run_unit_tests() {
run_test_step "buzz-pubsub connection tests" \
cargo test -p buzz-pubsub --lib connection::tests:: -- --nocapture
# A retain past a full subscriber command queue (no Redis dialed;
# infra-free). Mirrors `just test-unit`.
run_test_step "buzz-pubsub full-queue retain test" \
cargo test -p buzz-pubsub --lib -- --exact --nocapture \
tests::queue_full_retain_does_not_wait_and_schedules_reconciliation
run_test_step "buzz-voice tests" \
cargo test -p buzz-voice --lib -- --nocapture
@@ -295,6 +301,10 @@ run_unit_tests() {
handlers::req::tests::concurrent_claims_and_stale_teardowns_keep_the_last_owner \
handlers::req::tests::timeout_closed_is_emitted_before_a_replacement_can_claim \
handlers::req::tests::revoke_then_replacement_keeps_replacement_whole \
handlers::req::tests::revoke_of_a_replaced_holder_spares_the_pending_replacement \
handlers::req::tests::superseded_or_closed_requests_cannot_claim \
connection::tests::close_fences_a_req_whose_handler_has_not_run \
connection::tests::only_the_newest_same_id_req_answers \
handlers::req::tests::claims_after_connection_cleanup_are_refused \
handlers::req::tests::dropped_terminal_frame_cancels_connection \
handlers::req::tests::revoke_dropped_terminal_frame_cancels_connection \