chore(schema): bump @typra/emitter to 0.4.20 and regenerate - #448
Closed
Seth Juarez (sethjuarez) wants to merge 2 commits into
Closed
chore(schema): bump @typra/emitter to 0.4.20 and regenerate#448Seth Juarez (sethjuarez) wants to merge 2 commits into
Seth Juarez (sethjuarez) wants to merge 2 commits into
Conversation
0.4.20 is the first release cut from typra's `main` since 0.4.2. Versions 0.4.3 through 0.4.18 were published from an unmerged branch, so this pin moves from 0.4.2 straight to the current `latest`. Regeneration follows in the next commit. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Pure regeneration - `npm run generate` in `schema/`, no handwritten edits.
This pulls in every emitter fix that accumulated behind typra's unmerged PR
stack, plus the defects found and fixed while landing it.
Measured effect on this repository's suites:
go test ./... 58 failed -> 2 failed
TypeScript (4 workspaces) 63 failed -> 10 failed
Zero generated-test failures remain in either backend. All 12 remaining
failures are in handwritten tests and are unrelated to code generation:
Go (2)
TestReferenceTurnRunnerMatchesSharedGoldenReplayVectors and its
permission_denied subtest, package prompty/model.
TypeScript (10)
tests/harness/turn-runner.test.ts (1) golden replay journal vectors
tests/loader.test.ts (5) allowedFileRoots, structured output
tests/models.test.ts (2) Azure modalities, OpenAI enrichment
tests/spec-vectors.test.ts (2) empty_frontmatter_body_only,
tools_mcp_load
Emitter fixes included, by typra issue:
#37 non-abstract polymorphic bases absorb unclaimed discriminator values
#38 open discriminators are no longer pre-validated ahead of dispatch
#39 Go numeric coercions bridge encoding/json float64 and yaml.v3 int
#46 named-collection round-trips, including duplicate and unnamed entries
#47 diagnostic paths carry array element indices, e.g. messages[3].role
#53 generated tests synthesize required complex fields from nested samples
#54 Go abstract-open discriminators absorb unknown kinds into the base
#56 TypeScript dictionary-load tests use the built example payload
#64 TypeScript never emits a generated test file with no test cases
Not verified: this repository's Rust, C# and Python suites were not run for
this bump. Python does not build (typra#43).
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| @@ -23,6 +23,9 @@ type AiResourceInfo struct { | |||
|
|
|||
| // LoadAiResourceInfo creates a AiResourceInfo from a map[string]interface{} | |||
| func LoadAiResourceInfo(data interface{}, ctx *LoadContext) (AiResourceInfo, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -20,6 +20,9 @@ type AnthropicImageSource struct { | |||
|
|
|||
| // LoadAnthropicImageSource creates a AnthropicImageSource from a map[string]interface{} | |||
| func LoadAnthropicImageSource(data interface{}, ctx *LoadContext) (AnthropicImageSource, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -19,6 +19,9 @@ type AnthropicTextBlock struct { | |||
|
|
|||
| // LoadAnthropicTextBlock creates a AnthropicTextBlock from a map[string]interface{} | |||
| func LoadAnthropicTextBlock(data interface{}, ctx *LoadContext) (AnthropicTextBlock, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -22,6 +22,9 @@ type AnthropicToolDefinition struct { | |||
|
|
|||
| // LoadAnthropicToolDefinition creates a AnthropicToolDefinition from a map[string]interface{} | |||
| func LoadAnthropicToolDefinition(data interface{}, ctx *LoadContext) (AnthropicToolDefinition, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -20,6 +20,9 @@ type AnthropicToolResultBlock struct { | |||
|
|
|||
| // LoadAnthropicToolResultBlock creates a AnthropicToolResultBlock from a map[string]interface{} | |||
| func LoadAnthropicToolResultBlock(data interface{}, ctx *LoadContext) (AnthropicToolResultBlock, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -21,6 +21,9 @@ type AnthropicWireMessage struct { | |||
|
|
|||
| // LoadAnthropicWireMessage creates a AnthropicWireMessage from a map[string]interface{} | |||
| func LoadAnthropicWireMessage(data interface{}, ctx *LoadContext) (AnthropicWireMessage, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -22,6 +22,9 @@ type AnthropicToolUseBlock struct { | |||
|
|
|||
| // LoadAnthropicToolUseBlock creates a AnthropicToolUseBlock from a map[string]interface{} | |||
| func LoadAnthropicToolUseBlock(data interface{}, ctx *LoadContext) (AnthropicToolUseBlock, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -19,6 +19,9 @@ type AnthropicUsage struct { | |||
|
|
|||
| // LoadAnthropicUsage creates a AnthropicUsage from a map[string]interface{} | |||
| func LoadAnthropicUsage(data interface{}, ctx *LoadContext) (AnthropicUsage, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -19,6 +19,9 @@ type AuthorizationCodeFlow struct { | |||
|
|
|||
| // LoadAuthorizationCodeFlow creates a AuthorizationCodeFlow from a map[string]interface{} | |||
| func LoadAuthorizationCodeFlow(data interface{}, ctx *LoadContext) (AuthorizationCodeFlow, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
| @@ -20,6 +20,9 @@ type CompactionCompletePayload struct { | |||
|
|
|||
| // LoadCompactionCompletePayload creates a CompactionCompletePayload from a map[string]interface{} | |||
| func LoadCompactionCompletePayload(data interface{}, ctx *LoadContext) (CompactionCompletePayload, error) { | |||
| if ctx == nil { | |||
| ctx = NewLoadContext() | |||
This was referenced Aug 5, 2026
Open
Member
Author
|
Superseded by #453, which pins |
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
schema/package.jsonfrom@typra/emitter@0.4.2to0.4.20and regenerates the runtime model code.Two commits, kept separate: the pin edit, then the pure regeneration. No handwritten edits.
Why the jump from 0.4.2
typra's
0.4.3through0.4.18were published from an unmerged branch, so itsmaindeclared0.4.2while npmlatestwas0.4.18. That branch has since been merged, and0.4.20is the first release cut frommainsince0.4.2.Measured effect on this repository
Baseline is this branch's merge-base (
c4e7bd49) with its committed generated output.go test ./...Zero generated-test failures remain in either backend.
Every remaining failure, attributed
All 12 are in handwritten tests.
TestReferenceTurnRunnerMatchesSharedGoldenReplayVectorswas re-run againstc4e7bd49and fails there too - it is pre-existing, not a regression from this bump.Go (2) -
TestReferenceTurnRunnerMatchesSharedGoldenReplayVectorsand itspermission_deniedsubtest, packageprompty/model.TypeScript (10)
tests/harness/turn-runner.test.tstests/loader.test.tsallowedFileRoots; 4 structured-output teststests/models.test.tstests/spec-vectors.test.tsempty_frontmatter_body_only,tools_mcp_loadEmitter fixes included
encoding/jsonfloat64andyaml.v3intmessages[3].role#53 is the one that moved the numbers:
buildExamples()omitted required complex properties that carried no@sample, so a generated test could not pass its own generated validation.Reproducibility
Regenerated twice - once from a local
npm packtarball, once from the published0.4.20on the registry. Both produced an identical 1168-file diff, so the published package reproduces the build.Not verified
uv pip install -e ".[dev,all]"fails withModuleNotFoundError: No module named 'prompty'inside its own build isolation) - tracked as typra#43.c4e7bd49; only the Go golden-vector test was confirmed pre-existing by direct re-run.