Repository navigation
nexgen v0.2.10
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
Added
- Go system Nexus code generation supports
@nexus.serialization-contexthelpers and emits an operation registry keyed by wire service and operation names, allowing the SDK to select the serialization context for an operation's nested user payloads. - Generated Go model types expose value-receiver getters for exported fields, allowing support packages to consume models through interfaces without importing the generated package.
- Go WIT function references support
go-value-type/go-args-typerepresentation overrides andgo-name-extractorhelpers that can resolve registered workflow aliases. - TypeScript generation now supports the notification-service, proto-generic, and proto-oneof WIT examples, including nested generic protobuf payload carriers, required and optional oneofs, and model-only exports with generic transfer converters.
- Generated TypeScript protobuf helpers now use non-null input/output contracts, and oneof switches fail typechecking when a discriminator or variant case is unhandled.
Changed
- Generated protobuf-backed Go models used as eligible top-level Nexus inputs or outputs implement
TransferTypeConverter, deferring model conversion to the SDK. Ordinary Nexus models use the public transfer converter API; system Nexus models receive the SDK-selected data converter with the operation's serialization context applied. - Generated Go request models expose
@nexus.sourcefields as exported fields populated at the operation call site before SDK conversion, making them available to serialization-context helpers. - Generated TypeScript
requiredFieldhelpers are now private to the modules that use them, rather than exported frommodels.ts; unused definitions are omitted. - Go convenience wrappers derive function argument grouping and variadic placement from their signatures and primary role, not argument-field names. Signals retain their name-and-single-payload API through explicit Go representation overrides.
cargo test --all-featuresno longer requires language-specific toolchains.cargo validate <language>now runs that language's generated-code compilation and runtime regressions alongside its sample checks.cargo validate conformancechecks JSON Schema behavior across Go, Java, Python, and TypeScript, and is included in full validation.
Fixed
- Render
@nexus.docon WIT variants and their cases in Python, TypeScript, Go, and .NET, including per-language overrides and protobuf oneof-backed cases. - Go and .NET now honor
@nexus.defaultWIT directives. - Fix .NET protobuf-backed model conversion for list elements and map values, populating protobuf collections instead of assigning incompatible model collections.
- Fix accidental identifier shadowing in Python transfer converters and Go imports.
- Fix protobuf collection presence metadata; collections don't have presence.
- Preserve
@nexus.docon generated Python WIT record classes, including protobuf-backed and empty records. - Go generation now selects system Nexus behavior with
--system-nexus, not endpoint names. - Render
@nexus.experimentalwarnings on WIT variants in Python, TypeScript, Go, and .NET without marking individual cases experimental.