Skip to content

Enable client-initiated stream/request-format scenarios for sendspin-jvm#97

Merged
OnFreund merged 1 commit into
mainfrom
claude/jvm-request-format-support
Jul 18, 2026
Merged

Enable client-initiated stream/request-format scenarios for sendspin-jvm#97
OnFreund merged 1 commit into
mainfrom
claude/jvm-request-format-support

Conversation

@OnFreund

Copy link
Copy Markdown
Contributor

Summary

  • sendspin-jvm's SendSpinClient now implements requestPlayerFormat() (Sendspin/sendspin-jvm#27), so flip supports_request_format=True on its client RoleSpec — this was the only thing gating client-initiated-request-format-pcm/-flac to "skipped" for sendspin-jvm.
  • Wire the JVM adapter (adapters/sendspin-jvm/client) to actually drive the two renegotiation scenarios, mirroring the sendspin-rs adapter's run_request_format_client: advertise two formats in client/hello, wait for the first stream/start, call requestPlayerFormat with the second format, then wait for the server to re-emit stream/start and record stream_start_count / requested / initial_format / final_format in the summary for _compare_renegotiation_summaries to verify.

Test plan

  • python -m compileall src scripts
  • git diff --check
  • Built the JVM adapter jar via Gradle against a local sendspin-jvm checkout with PR [Spec coverage] Player role: server/command, static_delay_ms, chunk timestamps, 24-bit PCM, pre-stream binary rejection #27 merged
  • Ran conformance run --from aiosendspin --to sendspin-jvm locally end-to-end (aiosendspin server + real JVM client over a socket): both new scenarios pass —
    • client-initiated-request-format-pcm :: Renegotiated pcm/8000Hz/24bit/1ch -> pcm/8000Hz/16bit/1ch
    • client-initiated-request-format-flac :: Renegotiated pcm/8000Hz/16bit/1ch -> flac/8000Hz/16bit/1ch
  • conformance report renders cleanly against the resulting results dir

🤖 Generated with Claude Code

sendspin-jvm's SendSpinClient now implements requestPlayerFormat()
(Sendspin/sendspin-jvm#27), so the client role can drive the
client-initiated-request-format-pcm/-flac scenarios that were
previously gated purely on the static supports_request_format flag.

Wires the JVM adapter to advertise two formats in client/hello, wait
for the first stream/start, call requestPlayerFormat with the second
format, and record the resulting renegotiation for the harness to
verify against the re-emitted stream/start.
@OnFreund
OnFreund merged commit b9098f8 into main Jul 18, 2026
2 checks passed
@OnFreund
OnFreund deleted the claude/jvm-request-format-support branch July 18, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant