The new thin client in Go (replaces the Tebako-packaged Ruby client). Built against the conformance harness.
- WebSocket transport + MessagePack; multiplexed stream dispatch via goroutines/channels.
- Sans-IO protocol core (testable without sockets).
- Entitlement enforcement on the client (the trust boundary). Watch the glob gotcha: Go stdlib
filepath.Match has no ** — use the doublestar lib to match the old Ruby File.fnmatch(FNM_PATHNAME) semantics.
- Resource execution: stdout/stderr/stdin (raw TTY, getpass), file/dir, browser-open, env.
- Clean signal handling (Ctrl+C), structured errors.
- Self-update built in (antidote to the installed-client-lag problem).
- Keep it thin: transport + enforcement + raw resource execution only; everything else server-side.
The new thin client in Go (replaces the Tebako-packaged Ruby client). Built against the conformance harness.
filepath.Matchhas no**— use thedoublestarlib to match the old RubyFile.fnmatch(FNM_PATHNAME)semantics.