Skip to content

Validate complete typed IPC values and release 0.52.3 - #76

Merged
rustyconover merged 3 commits into
mainfrom
codex/single-record-ipc-framing
Oct 27, 2026
Merged

rustyconover merged 3 commits into
mainfrom
codex/single-record-ipc-framing

Conversation

@rustyconover

Copy link
Copy Markdown
Collaborator

Typed RPC parameters previously decoded only the first batch of their embedded Arrow IPC value. That silently accepted extra batches/trailing bytes and bypassed subclasses' deserialize_from_bytes validation, including VGI's raw payload-size bound.

Route typed parameters and unary results through the existing byte-codec hook. The default decoder requires one complete batch followed by physical EOF or a valid legacy/modern EOS; its existing empty/schema-only utility behavior is preserved. Normalize malformed in-memory IPC errors so HTTP requests return 400 and corrupt unary results retain the client's TransportError handling. Streaming RPC framing is unchanged.

Prepare v0.52.3. This is a decoder correction; it adds no wire fields or protocol capabilities.

Validation on Linux ARM64 EC2:

  • Full RPC suite: 5,736 passed, 19 skipped (Python 3.14.7 / PyArrow 26.0.0), including pipe/HTTP malformed-request and unary-result regressions.
  • Full VGI Python suite: 4,661 passed, 129 skipped (PyArrow 25.0.1); all 27 standard and 37 extended public projection cases pass over subprocess and real localhost HTTP.
  • Native 1.5 Python SQL lane: 356 files passed, 33 expected skips, plus both crash/recovery files; all 18 native query scenarios passed.
  • Ruff check/format, full library mypy, CI-scoped ty check vgi_rpc/, pydoclint, lock consistency, and wheel/sdist build passed.
  • Repository-wide ty check reports 232 diagnostics, also reproduced at unchanged base f616b98; the library scope used by CI passes.


def accept(self, request: _Request) -> int:
"""Return the accepted request value."""
...

def retrieve(self) -> _Request:
"""Return a typed record."""
...
@codecov

codecov Bot commented Oct 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@rustyconover
rustyconover merged commit 2daca09 into main Oct 27, 2026
10 checks passed
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