🧹 Carry-forward from the T352 review (2026-08-28)
Two things the v5.4.1 riders loop found but did not own:
- Seven file-local
LoginAsync copies remain across tests/GenWave.Host.Tests/Specs (Story196/256/350/353/358/366 …) now that Support/AnnouncementWireSupport.LoginAsync exists (hoisted from Story345 in T352). Same shape, same cookie dance — one helper, seven callers.
Story358_AnnouncementFlavorEndToEnd.cs:41 builds a literal SegmentRequest("af_heart", "GenWave", …, "test-station") — the exact shape that made T352's first round vacuous (a hard-coded station name that renders the factory's Station:Name inert). Harmless there today only because that factory sets no Station:* keys at all; the honest fix is AnnouncementWireSupport.AnnouncementRequest(factory.Services) (the PersonaController.Preview seam), so the request always carries the host's configured identity.
Also observed (pre-existing, unrelated to the riders): Story346_AdoptionVerifyRepair's real-Postgres probe can leak a genwave-hosttest-story346-* compose project on a back-to-back full run and flakes under container contention (--wait timeout); the fixture's teardown should be await using-shaped like EphemeralStationDatabase.
Refs: T350–T352 (the v5.4.1 riders), gh-#569/#602 (unique compose project per fixture), Support/EphemeralStationDatabase.cs.
🧹 Carry-forward from the T352 review (2026-08-28)
Two things the v5.4.1 riders loop found but did not own:
LoginAsynccopies remain acrosstests/GenWave.Host.Tests/Specs(Story196/256/350/353/358/366 …) now thatSupport/AnnouncementWireSupport.LoginAsyncexists (hoisted from Story345 in T352). Same shape, same cookie dance — one helper, seven callers.Story358_AnnouncementFlavorEndToEnd.cs:41builds a literalSegmentRequest("af_heart", "GenWave", …, "test-station")— the exact shape that made T352's first round vacuous (a hard-coded station name that renders the factory'sStation:Nameinert). Harmless there today only because that factory sets noStation:*keys at all; the honest fix isAnnouncementWireSupport.AnnouncementRequest(factory.Services)(thePersonaController.Previewseam), so the request always carries the host's configured identity.Also observed (pre-existing, unrelated to the riders):
Story346_AdoptionVerifyRepair's real-Postgres probe can leak agenwave-hosttest-story346-*compose project on a back-to-back full run and flakes under container contention (--waittimeout); the fixture's teardown should beawait using-shaped likeEphemeralStationDatabase.Refs: T350–T352 (the v5.4.1 riders), gh-#569/#602 (unique compose project per fixture),
Support/EphemeralStationDatabase.cs.