Session and stream itests: timing-dependent and always-true assertions #81

Open
opened 2026-10-12 11:35:16 +00:00 by claude · 0 comments
Member

Found closing kyo-experiment/02-kyo-session (code review and gate runs, 2026-10-01). Four follow-ups, one cause: tests whose result depends on scheduling under load, and one assertion that cannot fail.

  • QueryProcessIntegrationTest "each message arrives while the CLI is still running" fails under load — failed in ./mill __.itest and once in kyo.itest (2026-10-01, with the 3072-line flood test and real-CLI E2E in the same run); passed 3/3 alone and 2/2 in later full kyo.itest runs; direct ClaudeCodeStreamingTest, ProcessManagerTest timeout cleanup and effectful lifecycle failed in the same parallel run and pass alone
  • Chat and interrupt itests decide "the turn is in flight" with fixed sleeps (between = 300.millis, a 2 s stand-in delay); a loaded host can reorder them — kyo/itest/.../ChatIntegrationTest.scala, SessionIntegrationTest.scala "send returns before the result lands" (02-kyo-session review)
  • E2E interrupt asserts stillQueued.forall(_.nonEmpty), true for an empty list; ported as in zio — kyo/itest/.../SessionE2ETest.scala, zio/itest/.../SessionE2ETest.scala (02-kyo-session review)
  • effectful SessionIntegrationTest "full single-turn session lifecycle with mock CLI" gets the wrong message count under a parallel ./mill __.itest (effectful/itest/.../SessionIntegrationTest.scala:47, failed in 2 of 3 parallel runs on 2026-10-01); passes alone; not touched by this branch
Found closing kyo-experiment/02-kyo-session (code review and gate runs, 2026-10-01). Four follow-ups, one cause: tests whose result depends on scheduling under load, and one assertion that cannot fail. - `QueryProcessIntegrationTest` "each message arrives while the CLI is still running" fails under load — failed in `./mill __.itest` and once in `kyo.itest` (2026-10-01, with the 3072-line flood test and real-CLI E2E in the same run); passed 3/3 alone and 2/2 in later full `kyo.itest` runs; `direct` `ClaudeCodeStreamingTest`, `ProcessManagerTest` timeout cleanup and `effectful` lifecycle failed in the same parallel run and pass alone - Chat and interrupt itests decide "the turn is in flight" with fixed sleeps (`between = 300.millis`, a 2 s stand-in delay); a loaded host can reorder them — `kyo/itest/.../ChatIntegrationTest.scala`, `SessionIntegrationTest.scala` "send returns before the result lands" (02-kyo-session review) - E2E interrupt asserts `stillQueued.forall(_.nonEmpty)`, true for an empty list; ported as in `zio` — `kyo/itest/.../SessionE2ETest.scala`, `zio/itest/.../SessionE2ETest.scala` (02-kyo-session review) - `effectful` `SessionIntegrationTest` "full single-turn session lifecycle with mock CLI" gets the wrong message count under a parallel `./mill __.itest` (`effectful/itest/.../SessionIntegrationTest.scala:47`, failed in 2 of 3 parallel runs on 2026-10-01); passes alone; not touched by this branch
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
iterative-works/claude-code-query#81
No description provided.