Phase 4 transport-neutral client evidence
Implemented boundary
The public client package is the UI-facing, transport-neutral contract for a
negotiated daemon session. It imports only the Go standard library and exposes
no Protobuf, gRPC, daemon-host, kernel, discovery, authentication-token, or OS
endpoint type. A future local adapter owns those details and translates them
into the immutable values and interfaces in this package.
One client.Session represents an exact stable-client ownership epoch. Its
methods are safe for concurrent use, use caller-owned operation contexts, and
never make a mutation retry decision on behalf of the caller. Connection
remains an immutable local negotiation snapshot after close. Session and
stream close operations are context-free, nonblocking, idempotent, race-safe,
and unblock active stream reads.
Event streams preserve every kernel event payload needed by a client without requiring prior-event reconstruction. Successful page and tail state is an explicit control frame carrying requested and next cursors, retained bounds, latest sequence, continuation state, and tail state. Interaction streams similarly carry a complete pending snapshot followed by revision-contiguous changes and explicit stream controls.
Safety and fidelity
All public values validate the same count, byte, token, health, replay, and
protocol invariants as the wire boundary. Collections and byte slices are
defensively copied. Interaction schemas and responses use bounded arbitrary
JSON rather than a text-only shortcut. StructuredValue is secret-bearing and
safe by default under ordinary formatting, Go-syntax formatting, structured
logging, nested JSON encoding, errors, and diagnostics. Exact JSON bytes are
available only through the deliberately named EncodeTransfer adapter method.
Every failed wire status maps without discarding its safe message, retryable
flag, or optional status operation ID. Dedicated errors retain their typed
recovery detail in addition to those common ErrorFacts; uncertain-operation
detail keeps its distinct operation ID. Callers can use errors.As against a
specific recovery type or the common StatusFailure interface without
depending on transport status values.
The package’s architecture test derives the exact standard-library package set from the active Go 1.26.5 installation. It does not rely on import-path naming heuristics and performs no network access.
Verification scope
Tests cover positive and negative construction, defensive copying, all event payload variants, page and tail controls, interaction snapshot/delta ordering, cursor gaps in both directions, every generic and structured failure, token control characters, arbitrary JSON kinds, secret canaries under nested formatting/logging/encoding, cancellation, concurrent session use, stream single-reader ownership, close races, and immutable post-close connection inspection.
Exact whole-repository acceptance commands and timings are recorded with the commit that accepts this slice. This evidence establishes a public client contract; it does not claim that a gRPC/local-IPC adapter, endpoint discovery, managed daemon, or TUI process workflow exists yet.