v0.29.4
Changed
- tooling: extend the
no-project-special-casingpre-commit hook to reject thexbergand
crawlbergdownstream product names (case-insensitive, including camelCase and separator
variants), and consolidate the brand allowlist so thexberg-ioorg namespace and thexberg.io
domain stay permitted whilexberg-io/xbergand barexbergmentions are still caught. Neutralize
thexberg-named Java/enum test fixtures to generic sample names.
Fixed
-
e2e: keep public Ruby and Elixir test calls on configured method names and
resolve$mock_urlplaceholders inside typed JSON-array arguments across
generated language e2e suites. -
e2e: resolve
$mock_urlplaceholders for Ruby object arrays, Elixir typed
object arguments, and Kotlin/PHP typed object setup while allowing Elixir e2e
calls to target keyword-opts public facades. -
e2e: avoid Elixir typed-object variable collisions and align Kotlin typed
object mock URL fallbacks with the generated mock-server harness. -
node: remove downstream internal DTO names from generated trait-bridge
return-value comments. -
ffi: honor
[crates.ffi].exclude_typeswhen generatingcbindgen.toml.
Excluded Rust-only helper DTOs are now omitted from the header prelude forward
declarations and emitted in[export].exclude, keeping C and cgo headers from
leaking types that the FFI layer does not expose. -
java/kotlin-android: route configured trait-bridge lifecycle functions through the generated
bridge APIs instead of also emitting ordinary FFI wrappers. This keeps raw Rust functions such as
register_document_extractorfrom shadowing typed host interfaces (IDocumentExtractor,
IRenderer) with danglingDocumentExtractor/Rendererparameter types or JSON-string JNI
declarations.