v0.5.0
v0.5.0 — consumer surface
The wire matches what the docs claim, the generator can emit multi-route
bundles, the proxy serves them end-to-end, and brew install delivers
wavefront-bundle as a fast binary download. The TypeScript-specific codegen
was considered, scoped to message emission, then dropped — replaced by
docs/client.md showing how to wire any language's protoc-gen-X against the
bundle directly. OTel SDK adoption was deferred after a dependency-footprint
analysis (#92).
-
Wire-contract conformance. Five new X-Wavefront-Error codes:
internal_error, unknown_route, upstream_status (bounded passthrough set
401/403/404/405/409/410/422/429/451), unsupported_media_type, unavailable.
2xx fidelity preserved; upstream redirects refused; panic recovery; strict
(path, method) route gating. New wavefront_stdlib_boundary_total metric
labelled by status (#39, #54 closed). -
Multi-route bundle generator. wavefront-bundle add now walks every
paths.. operation in the input OpenAPI; the proxy serves multi-route
bundles via (path, method, version) negotiation. --force flag for
same-info.version re-add (#77 closed). -
Per-language client integration guide. docs/client.md documents how
to wire the bundle into TypeScript / Go / Python / Rust applications using
each language's standard protoc-gen-X. No wavefront-specific codegen
surface (#72 closed). -
Homebrew binary distribution. brew install alternet-dev/tap/wavefront-bundle
becomes a fast binary download instead of a source build; per-arch matrix
for darwin-arm64 / linux-arm64 / linux-amd64; formula scoped to the CLI
only (server stays container-only). Intel-Mac (x86_64-apple-darwin) is
intentionally not built — the macos-13 runner queue is too slow to gate a
release on; Intel-Mac users use the Linux binary via Rosetta or build from
source (#73 closed). -
Server timeout + 100-continue posture. WAVEFRONT_READ_HEADER_TIMEOUT_MS
and WAVEFRONT_READ_TIMEOUT_MS env-configurable; oversized declared bodies
rejected with 413 before any 100 Continue is sent. -
server: panic-recovery middleware and shared wire-error helper (#75)
-
feat: unknown_route 404 envelope on unmatched routes (#76)
-
feat: wavefront-bundle gen-ts-client subcommand skeleton (#78) [reverted in #100]
-
feat: per-arch binary build matrix for wavefront-bundle releases (#79)
-
feat: preserve upstream 2xx status on response (#80)
-
feat: TS message-class emission via protoc-gen-es (#81) [reverted in #100]
-
build: render-homebrew-formula.sh for wavefront-bundle releases (#82)
-
feat: upstream-status passthrough for bounded 4xx set (#83)
-
feat: emit unsupported_media_type 415 for wrong Content-Type (#84)
-
feat: refuse upstream redirects (3xx -> 502) (#85)
-
feat: env-configurable data-plane read timeouts; 413 before 100 Continue (#86)
-
feat: emit 503 unavailable on proxy path when bundle not loaded (#87)
-
feat: defense-in-depth check for proto-package collisions across bundle layers (#88)
-
test: set Content-Type on redirect tests so 415 gate doesn't intercept (#90)
-
feat: multi-route bundle generator emission core (#93)
-
build: wire render-homebrew-formula.sh into update-tap, rename formula to wavefront-bundle (#94)
-
feat: observability for stdlib-boundary HTTP responses (labelled by status) (#96)
-
docs: protocol.md and concepts.md updates for wire-contract conformance (#97)
-
feat: serve multi-route bundles end-to-end (#98)
-
feat: --force flag for wavefront-bundle add (#99)
-
docs: client.md per-language integration guide (drop gen-ts-client subcommand) (#100)
-
docs: AGENTS.md — correct stale 'no in-place reload' claim (#103)
-
build: drop Intel-Mac (x86_64-apple-darwin) from release matrix (#104)
-
OTel SDK adoption — dropped after dep-footprint analysis (#92, plus upstream open-telemetry/opentelemetry-go#8385 and #8386)
-
Per-language client codegen revisit — captured in #102
-
Intercept stdlib-boundary statuses with the wire envelope — captured in #91
-
Bundlegen polish (confidence knobs + intent files) — captured in #74
-
Inbound HTTP/2 / h2c / HTTP/3 — captured in #101