Skip to content

Go thin client #14

@bradgessler

Description

@bradgessler

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1v2Terminalwire v2 clean-sheet rewrite

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions