claude: protocol: drop null/ipv4/ipv6 schemas#69
Merged
Liam-DeVoe merged 4 commits intomainfrom Apr 30, 2026
Merged
Conversation
Update the JSON schemas the C++ client emits to match the latest
hegel-core protocol:
- `optional` now emits `{"type": "constant", "value": null}` instead
of `{"type": "null"}` for its null branch.
- `ip_addresses` now emits `{"type": "ip_addresses", "version": N}`
instead of `{"type": "ipv4"}` / `{"type": "ipv6"}`.
The "either" version case in `ip_addresses(...)` is unchanged — it
still composes a `one_of` of two single-version `IpGenerator`s, which
each pick up the new schema.
Coordinated with hegeldev/hegel-core issues #77, #78, #82.
The wire schema type string is now singular `ip_address` to match the naming convention of the other protocol schema types. No change to the public C++ `ip_addresses()` function.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Claude-written description
Update the JSON schemas the C++ client emits to match the latest
hegel-coreprotocol:optionalnow emits{"type": "constant", "value": null}for its null branch (replacing{"type": "null"})ip_addressesnow emits{"type": "ip_addresses", "version": N}(replacing{"type": "ipv4"}/{"type": "ipv6"})The C++ client never emitted a
sampled_fromschema — it already lowerssampled_fromto an integer-index draw — so there is no source change for that issue.Coordinated with the hegel-core protocol cleanup:
{"type": "null"}from schema hegel-core#77{"type": "ipv4"}and{"type": "ipv6"}into{"type": "ip_addresses"}hegel-core#78sampled_fromfrom the protocol hegel-core#82Expected CI failures
The conformance / integration tests run against the installed
hegelbinary and will fail until the coordinatedhegel-corePR merges and publishes a release. Unit tests, build, and format checks pass.Self-review notes
The
code-reviewersubagent flagged three points; addressing each:hegel-core==0.4.0intests/conformance/pyproject.toml— this file is not consumed byjust check-conformance(which callsuv run --with hegel-coreunpinned), so the pin is silently dead. Out of scope for this coordinated protocol PR; can be cleaned up separately.RELEASE_TYPE: minoroverpatch— the task spec for this coordinated update directspatchsince there is no public C++ API change. The wire-format compatibility break is what motivates the simultaneous landing across hegel-core + clients, so the patch level matches the rest of the cohort.schema().has_value()checks); adding them just here would be inconsistent. Better tackled as a follow-up that covers all schemas at once.