Skip to content

v0.18.2 — Repeatable service harnesses

Choose a tag to compare

@github-actions github-actions released this 30 Sep 14:18
· 4 commits to main since this release
8e8820d

Faultbox 0.18.2 makes large service harnesses repeatable with native protocol and lifecycle support.

  • Kafka process attribution: managed Linux consumers may share a client ID. Successful Fetch positions and acknowledged commits identify the originating service and process instance, including through proxies. Each consumer must establish its own readiness; stale or unresolved ownership is never guessed.
  • Typed unary gRPC calls: descriptor-backed JSON/dict requests without reflection or an external helper, with protobuf Any/WKTs, exact integers, metadata and cancellation.
  • Per-test mock profiles: typed request bodies, immutable state snapshots and boot-time overrides with isolated handler execution.
  • Kafka observation: acknowledged binary-safe publishing, bounded batch consumption and protobuf decoding with exact offsets.
  • Portable replay and evidence: captured resources/contracts/binaries, module-relative paths, guarded recursion and structured spec output.
  • Lifecycle diagnostics: protocol-aware container readiness, early-exit and occupied-port errors, cancellable startup and bounded teardown.

The application team confirmed the fixes. The shared-client-ID regression passed all four blocking scenarios across three fixed-seed runs without warm-up records or log-readiness fallback. Repository CI covers real direct/proxied child consumers, lifecycle cleanup and the existing protocol/testops suites.

Managed process attribution requires observable Linux process/socket ownership. Unknown owners and overlapping groups within the same process remain conservative. Kafka commits are completion evidence only when the service commits after processing.

Full changelog · Kafka readiness · Release history

Known existing limitation found during release verification: native seccomp listener transfer can race target exec and report pidfd_getfd: bad file descriptor. The same race was reproduced in the previous main implementation with a controlled parent scheduling delay; this patch does not address it.