All notable changes to this project will be documented in this file.
- Structured
--verboseobservability logging:key=valueevents for startup, request begin/end, config reloads, proxy errors, and shutdown, with sensitive query-string redaction and control-character sanitization. Warnings and errors are written to stderr, info/debug to stdout.
- Bumped GitHub Actions Go runtime to
1.25.12in CI and release workflows to clear theGO-2026-5856standard-library advisory. - Release workflow now mints a short-lived GitHub App token and announces releases to Discord.
- Bumped GitHub Actions Go runtime to
1.25.11in CI and release workflows.
- Restored passing
govulncheckin CI/release after upstream Go standard library vulnerability updates.
failFirstNmiddleware: fails the first N requests, then passes through all subsequent requests. Config:{ n, status?, body? }.
- Hardened CI and release workflows:
- pinned GitHub Actions to commit SHAs
- added
govulncheckto CI and release checks - pinned GoReleaser version in the release workflow
- tightened workflow permissions
- Bumped GitHub Actions Go runtime to
1.25.10so vulnerability checks pass against patched standard library versions.
- Updated Go modules via Dependabot (
go.modandgo.sum).
- OpenTelemetry endpoint implementation.
- Optional seed support for failRandomly, dropConnection, and latencyRange for reproducible randomness
bodyTransformJSONnow skips response mutation for streamed responses and preserves pass-through behavior
- Test added for in-flight request snapshot isolation during config reload.
- Runtime config reload via
POST /reloadendpoint without process restart. ReloadConfigprogrammatic API for dynamic configuration updates.- Full atomic snapshot semantics: in-flight requests are deterministic, new requests use updated config immediately.
- Integration tests for reload success, failure/rollback, HTTP endpoint, and concurrent rejection.
- Graceful shutdown using
http.Serverwith OS signal handling. --verboseper-request logging.- Throttle middleware registration in the default middleware registry.
- Improved project documentation.
- Client abort propagation in
latencyandlatencyRangemiddleware. - Throttle burst allowance reset per request.
--helpno longer starts the server (startup logic moved into CobraRunE).- Rate-limit race condition and negative
X-RateLimit-Remainingheader values. - Throttle delay precision using nanosecond-accurate duration calculation.
bodyTransformJSONnow applies to parameterizedContent-Typeheaders.- Silent
url.Parseerror handling andGET/POSTtypo in example config.
- Initial release: Go port of fetch-kit/chaos-proxy
- Core proxy server and middleware registry
- Middleware: latency, fail, headerTransform, bodyTransformJSON, rateLimit, cors, throttle, dropConnection, etc.
- CLI and programmatic API
- YAML configuration support
- Full integration and unit test suite