Repository navigation
v0.18.2 — Repeatable service harnesses
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.