From 2217c7bf7a86ccf4a733468d99c025b9921256ce Mon Sep 17 00:00:00 2001 From: "Aaron D. Lee" Date: Mon, 6 Jul 2026 03:17:04 -0400 Subject: [PATCH] =?UTF-8?q?feat(smoke):=20assert-lifecycle-event-lands-in-?= =?UTF-8?q?Valkey-stream=20hook=20(deploy-C=20=C2=A75.6,=20deploy-B=20smok?= =?UTF-8?q?e=20harness)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aaron D. Lee --- .../plans/2026-07-05-deploy-b-packaging-ci.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/superpowers/plans/2026-07-05-deploy-b-packaging-ci.md b/docs/superpowers/plans/2026-07-05-deploy-b-packaging-ci.md index 0d1fe0e..ab235b3 100644 --- a/docs/superpowers/plans/2026-07-05-deploy-b-packaging-ci.md +++ b/docs/superpowers/plans/2026-07-05-deploy-b-packaging-ci.md @@ -1912,15 +1912,16 @@ curl --cacert /tmp/rutster-smoke-root.pem -fsS https://localhost/readyz \ || { echo "[compose_smoke] FAIL: /readyz never returned ok"; docker compose logs; exit 1; } echo "[compose_smoke] /readyz ok" -# TODO slice-C: assert lifecycle event in Valkey stream. -# Slice C lands ValkeyEventSink (spec §5.6) + the assert-event-lands-in- -# Valkey-stream smoke addition. The hook here documents the contract: -# Once slice C lands, this smoke runs: -# docker compose exec valkey valkey-cli XLEN rutster:events -# and asserts > 0 after a sim call completes (an EventSink::on_event -# call writes via XADD MAXLEN ~). Until then, the valkey service is dark -# (no consumers) — counting the stream length would always be 0. -# Leaving the named hook so slice C's plan can grep for it. +# Assert lifecycle event lands in the Valkey stream (deploy-C §5.6). +# The all-in-one smoke simulated a session lifecycle (register + delete); +# ValkeyEventSink should have XADD-ed SessionRegistered + SessionEnded. +EVENT_COUNT=$(docker compose exec -T valkey valkey-cli XLEN rutster:events) +if [ "$EVENT_COUNT" -lt 2 ]; then + echo "[compose_smoke] FAIL: expected >= 2 events in rutster:events, got $EVENT_COUNT" >&2 + docker compose logs + exit 1 +fi +echo "[compose_smoke] rutster:events has $EVENT_COUNT lifecycle event(s)" echo "[compose_smoke] PASS: T2 compose boots + /healthz + /readyz verified" # Cleanup (compose down; volumes left for warm cache on re-run).