Repository navigation
v0.3.0
Functional-bug, correctness, and SDLC fixes from a full code review. Two more masked
Zig-0.16 build breaks (same class as the 0.2.2 streaming fix) were found and fixed.
Breaking
- Removed the connection-pool API (
ConnectionPool,PoolManager,PoolStats). It
was never wired intoK8sClient, leaked connections, andstd.http.Clientalready
pools internally. (H2)
Fixed
- JSON field binding:
List(T).metadata.continueandServiceSpec/SecretData/
deployment-strategytype(andWatchEvent.type) now bind the real wire names —
Zig'sstd.jsondoes no underscore stripping, so pagination tokens and Service
typewere silently dropped/mis-serialized. (H1) - Retry actually runs: idempotent CRUD (GET/PUT/DELETE/PATCH) is retried per
retry_config; previously every operation used the non-retrying path. POST stays
single-attempt. (H3) - apply/auth/crd JSON serialization didn't compile on 0.16 (used removed
std.json.stringify,ArrayList.writer, and managed map/list APIs) — masked by
lazy compilation. Migrated tostd.json.Stringify.valueAlloc+ unmanaged
collections;StrategicMergePatchnow stores a serializableObjectMap. - Plugged error-path memory leaks in the kubeconfig parse helpers (errdefer per
duped field). AddedClusterInfo.deinit.
Security / hardening
exec_credentiallogs viastd.loginstead of stderr; documented that
ExecConfig.envis not yet applied.proxy_fallbacknow logs the TLS→plaintext
downgrade instead of failing open silently. Documented thatK8sClientis
single-threaded (last_api_erroris unsynchronized).
CI / DevEx
build.zig.zongit-pins zig-yaml (was a relative path) so a clean clone builds;
CI drops the sibling checkout.- CI:
zig fmt --checkgate,{ubuntu, macos}build matrix, non-blocking Zig-master
canary. Release attachesSHA256SUMS. - Added
SECURITY.md,CONTRIBUTING.md,CODEOWNERS, a PR template, a README
Stability section; rewrote the staledocs/TESTING.md; removed dead
websocket_live_test.zig;zig fmtacross the tree. - The migration probe now force-compiles every public method body (
_ = &T.method),
so removed-API breakage fails the build instead of a downstream consumer.