feat(h2o): accept per-port external + contract_name (wire regen) - #62
Merged
Conversation
The h2o Port schema gained `external` and `contract_name`. Vendor the updated contract and regenerate the wire client so the generated Port / WirePort models carry the two new fields (external: Option<bool>, contract_name: Option<Option<String>>). The CLI treats these as accept-and-ignore data: it never authors them, so the hand-written port-construction sites set them to None (skipped on the wire) and show/pull deserialize + render a graph carrying them without error. Adds a tolerance test for a port carrying both fields. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…olerance test (review) Public repo — strip roadmap phase labels from comments (consistent with #59/#60). Fix the test comment (it constructs in-memory, doesn't round-trip JSON deserialize) and assert the port survives into JSON output too, not just Human mode. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rennehan
added a commit
that referenced
this pull request
Jul 19, 2026
…e contract) (#63) Ships #62 (accept the per-port external + contract_name h2o fields; regenerated wire client from the updated openapi). Bumps Cargo.toml/Cargo.lock 0.1.10→0.1.11 + README install tag. release.yml asserts the tag matches this version. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
Phase 1.5 CLI leg: the h2o
Portgainedexternal+contract_name(already on app main). This vendors the updated OpenAPI contract and regenerates the wire client so the generatedPort/WirePortmodels carry the two new fields.Changes
openapi.jsonrefreshed from the backend (byte-identical); thePortschema now carriesexternal(boolean, default false) andcontract_name(nullable string)../scripts/regen-wire.sh, not hand-edited):Port/WirePortgainexternal: Option<bool>andcontract_name: Option<Option<String>>(double-option for the nullable field). Both skip serializing when unset.show/pullneed no structural change. The port-construction sites (mint/stage + tests) set the two fields toNone(never sent on the wire) — accept-and-ignore.externalandcontract_namepulls/shows without error in both output modes.Gates (all green locally)
cargo fmt -p hydrate -- --check-> 0cargo clippy --workspace --all-targets -- -D warnings-> 0cargo test-> 0git diff --exit-code wire/clean on regen re-run;cmpof vendoredopenapi.jsonvs backend byte-identicalNote
A tagged release is needed post-merge (the wire client + vendored contract changed). Version bump / release is handled separately.