Skip to content

Consume rejected editor request bodies before responding - #328

Closed
concordia-claw wants to merge 1 commit into
google-deepmind:mainfrom
concordia-claw:fix/editor-rejected-http-006
Closed

concordia-claw wants to merge 1 commit into
google-deepmind:mainfrom
concordia-claw:fix/editor-rejected-http-006

Conversation

@concordia-claw

@concordia-claw concordia-claw commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Consolidated into #314. Closed only as a superseded review thread, following Joel Z. Leibo’s category guidance. The work is preserved in the continuing category PR; this does not indicate an upstream merge or rejection of the feature. Continuing issue: #313; continuing PR: #314.


Summary

Closes #327.

Consume the existing framed POST body before the dynamic editor's paused/bound-simulation guards reply. Unread request bytes can cause TCP reset at close, losing the intended JSON error. Keep original HTTP200/application-status semantics and guard precedence over JSON decoding. Rejected requests still cannot mutate or broadcast state.

This is an independent two-file bug fix based on current upstream main9e4173f, not a Bellwether feature stack. No engine/model execution or service/configuration changes.

Verification

  • Untouched upstream:17tests passed,1existing paused-rejection test failed with ConnectionResetError during response.read on macOS/Python3.12.
  • Patched full standard server module:19tests plus2subtests passed twice (6.11s and6.10s).
  • New regression reads complete errors for both guards with a malformed65KiBbody, verifies no changes/broadcast, then succeeds after pause.
  • Changed-lines pyink, test-file pyink, and git diff --check pass.
  • Pylint reports two existing line-too-long warnings (server223,test15), verified byte-identical to upstream; no new findings.

Run: python -m pytest -o addopts='' concordia/utils/simulation_server_test.py -q

Limits

This repairs valid Content-Length request completion; it does not redesign framing, streaming limits, legacy status codes, or runtime quiescence. Existing authenticated player/API listeners are not changed. No claim of exhaustive network-stack coverage.

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.

Return readable JSON when the editor rejects a state-edit request

1 participant