Skip to content

feat(relay): add claude-desktop launch target#153

Draft
CLEMENTINATOR wants to merge 2 commits into
mainfrom
feat/claude-desktop
Draft

feat(relay): add claude-desktop launch target#153
CLEMENTINATOR wants to merge 2 commits into
mainfrom
feat/claude-desktop

Conversation

@CLEMENTINATOR

Copy link
Copy Markdown
Member

Adds edgee launch/relay claude-desktop: launches the app behind the proxy with a dedicated, anthropic.com-name-constrained CA trusted in the system keychain only for the session, plus opt-in SSE chunk logging.

Add `edgee launch claude-desktop` (+ hidden `relay claude-desktop`), a dedicated
claude_desktop provider key/coding-assistant, default port 41400, and an `edgee
alias` desktop wrapper.

Claude Desktop is a Chromium app that verifies API certs against the macOS
system trust store only (it ignores NODE_EXTRA_CA_CERTS and the
--ignore-certificate-errors* switches). So the relay:
- launches the app bundle binary behind Chromium's --proxy-server;
- uses a dedicated CA name-constrained (critical) to anthropic.com, kept
  separate from the shared relay CA that MITMs other providers;
- trusts that CA in the system keychain only for the session (SessionTrust
  installs on launch, removes on quit/Ctrl-C; purge-on-start covers hard kills).

The trust grant is therefore bounded to the relay's lifetime and scoped to
Anthropic, never a persistent machine-wide MITM root.
Previously text/event-stream responses logged only headers and passed the body
through untouched, so streamed output was invisible. Tee it instead: forward the
body through a task that logs each chunk live (wall-clock timestamp + byte count)
before relaying it downstream via a channel-backed streaming body. Streaming and
backpressure-to-client are preserved (channel is unbounded; only relevant with
--log-output). This surfaces stalls — chunks that stop, or a stream that never
sends a terminating event — which is what we need to debug clients hanging
mid-stream (e.g. Claude Desktop).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant