feat: panproto 0.52 + codegen emit gate + render pilot (release v0.11.0)#73
Merged
Conversation
Bump the panproto pin v0.47.0 -> v0.52.0 across the workspace. No source changes were needed for the existing surface; the bump unlocks panproto-parse's verified source-code emit (255 of 261 grammars under the corpus oracle). Wire two panproto-parse modules into idiolect-codegen: - emit::gate re-parses every generated file (rust and typescript) through the matching tree-sitter grammar and fails codegen on ERROR/MISSING recovery vertices, before write or drift-check. - emit::panproto_rust renders the directory mod.rs index files as by-construction AbstractSchemas through pretty_with_protocol, parity-pinned byte-equal (post-rustfmt) to the syn target. The syn target stays canonical. Pin EmitVerificationStatus::Verified for both grammars so an upstream emit downgrade is loud at the next bump. Only lang-rust and lang-typescript grammars are compiled in.
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.
Bumps the panproto pin v0.47.0 → v0.52.0 and integrates the new codegen capabilities, packaged as release v0.11.0.
What's in it
Panproto pin v0.47.0 → v0.52.0. No source changes were needed for the existing surface (SchemaBuilder, protolens constructors, lens runtime, panproto-check, expression engine). The bump unlocks
panproto-parse's verified source-code emit (255 of 261 grammars round-trip under the corpus oracle in 0.52).Emit gate (
idiolect-codegen/src/emit/gate.rs). Every generated file (rust and typescript) is re-parsed through the matching tree-sitter grammar before write or drift-check; codegen fails onERROR/MISSINGrecovery vertices. This hardens all codegen, not just the new path. Onlylang-rustandlang-typescriptgrammars are compiled in.Panproto-native render pilot (
idiolect-codegen/src/emit/panproto_rust.rs). The directorymod.rsindex files are built as by-constructionAbstractSchemas in the tree-sitter-rust theory and rendered throughpretty_with_protocol.tests/panproto_pilot_parity.rspins them byte-equal (post-rustfmt) to the syn target over the repo's real lexicon tree. The syn/oxc targets stay canonical; this is a deliberate pilot slice, not the full swap.tests/panproto_emit_gate.rspinsEmitVerificationStatus::Verifiedfor both grammars so an upstream emit downgrade is loud at the next bump.Scope
This is the pilot + gate, intentionally scoped. The full move to panproto-native emit is sequenced in a planning note (local
notes/, gitignored) and is gated on three upstream de-novo emit defects filed as panproto#187 (line_commentnewline,token_treeanonymous punctuation,blank-lines-beforeunconsumed). Nothing here is half-finished.Release packaging (v0.11.0)
Per
RELEASE.md, in separate commits:release: v0.11.0— bumpedCargo.toml,packages/schema/package.json, and the inter-crate path-dep version requirements (theRELEASE.mdsed snippet only covers the workspaceversionline; theidiolect-*path deps pinversion = "x"and must be bumped too or the build fails).Cargo.lockrefreshed.changelog: v0.11.0—[Unreleased]finalized to[0.11.0] — 2026-06-08with a fresh empty[Unreleased].Minor bump, consistent with v0.9.0 (the prior panproto pin bump) and the pre-1.0 policy treating minors as the breaking-change boundary.
Verification
cargo test --workspace: 506 passed, 0 failed.cargo clippy --workspace --all-targets,cargo fmt --check,cargo deny check: clean.idiolect-codegen check(drift gate): generated tree in sync.Cargo.toml==package.json==v0.11.0): matches what theverify-versionrelease job asserts.Follow-up
Suggest a
RELEASE.mdtweak so step 1 also bumps the inter-crate path-dep versions, since the current snippet leaves the build broken until they're done by hand.