Revision history for Net-Async-Kubernetes

0.006     2026-03-09 08:37:54Z
 - Add async Pod Log API via `log()`.
   Supports one-shot mode (Future resolves to full text) and streaming mode
   (`on_line` callback with Kubernetes::REST::LogEvent objects).
   Streaming mode supports follow, tailLines, sinceSeconds, sinceTime,
   timestamps, previous, limitBytes, and container parameters.
 - Add mock log test coverage (`t/09-mock-log.t`) and extend mock transport
   with generic streaming chunk support for log streams.
 - Add active `port_forward()` API that builds Kubernetes port-forward requests
   and delegates to duplex transport (`_do_duplex_request`).
 - Implement default websocket duplex transport for `port_forward()` using
   Net::Async::WebSocket::Client, including channel frame decoding and a
   `Net::Async::Kubernetes::PortForwardSession` helper (`write_channel`,
   `close`).
 - Add duplex transport tests (`t/13-duplex-transport.t`) for websocket
   handshake wiring, frame handling, session writes/closes, and connect errors.
 - Add active `exec()` API that builds Kubernetes pod `/exec` requests with
   repeated `command=` parameters and stream toggles
   (stdin/stdout/stderr/tty).
 - Add async exec test coverage (`t/14-mock-exec.t`) and duplex transport
   assertions for exec in `t/13-duplex-transport.t`.
 - Raise minimum versions to Kubernetes::REST 1.101 and IO::K8s 1.008.

0.005     2026-03-04 17:14:31Z
 - Use public Kubernetes::REST building-block API (build_path,
   prepare_request, check_response, inflate_object, inflate_list,
   process_watch_chunk) instead of private underscore methods.
   Requires Kubernetes::REST >= 1.100.

0.004     2026-02-28 01:39:32Z

0.003     2026-02-28 01:11:24Z
 - Auto-detect kubeconfig and in-cluster service account via
   Kubernetes::REST::Kubeconfig (requires Kubernetes::REST >= 1.004).
   When no explicit server/kubeconfig is provided, construction silently
   tries default kubeconfig and in-cluster auth before falling back to
   lazy resolution.

0.003     2026-02-28 00:00:00Z

0.002     2026-02-18 22:52:19Z
 - Updating minimum requirements

0.001     2026-02-13 06:03:10Z
 - Initial release
 - Async Kubernetes client built on IO::Async and Kubernetes::REST
 - Future-based CRUD: list(), get(), create(), update(), patch(), delete()
 - Three patch types: strategic-merge (default), merge, json
 - Delete by class+name or by object reference
 - Net::Async::Kubernetes::Watcher for streaming watch with auto-reconnect
 - Separate on_added, on_modified, on_deleted, on_error callbacks
 - Catch-all on_event callback for raw WatchEvent access
 - Client-side event filtering: names (regex/string/array) and event_types
 - Smart event type auto-derivation from registered callbacks
 - Resumable watches via resourceVersion tracking
 - Automatic 410 Gone recovery (clear resourceVersion and restart)
 - Auto-reconnect on stream completion (server timeout) and connection errors
 - Kubeconfig support via Kubernetes::REST::Kubeconfig
 - SSL/TLS with client certificate support
 - Custom resource_map for CRD support
 - Pass Content-Type correctly to Net::Async::HTTP for all request bodies
 - Defer watcher stop() HTTP close to avoid Net::Async::HTTP spurious read errors
 - Comprehensive inline POD documentation for all public methods and attributes
