Skip to content

hyp status tells an OTEL-attached machine to run hyp attach claude to restore CA trust, which that path deliberately never does #855

Description

@philcunliffe

Problem

On a machine whose Claude attach is otel, hyp status prints a proxy-trust
repair that cannot work:

  proxy trust:
    ca fingerprint: F0:F5:4B:...
    login keychain: not trusted - Remote Control inbound will not work, run `hyp attach claude` to retry
    launchd env:    NODE_USE_SYSTEM_CA not set - run `hyp attach claude` to set it

The warning is correct: with the CA untrusted, Remote Control inbound really
does not work. The repair is stale. The otel attach path deliberately
touches neither the keychain nor the launchd environment
(LLP 0258#nothing-else:
"no keychain, no launchctl setenv, no LaunchAgent on this path"), and otel is
now the claude client's only attach mode. So a user who follows the instruction
runs hyp attach claude, sees it report success, re-runs hyp status, and gets
the identical two lines back with nothing changed.

This is reachable by the documented migration route, not an exotic state:
hyp attach claude on a proxy machine migrates it to otel and prints
"Run hyp detach claude --purge to remove it". Doing exactly that leaves the
machine in this state permanently.

Reproduction

Observed on macOS, HypAware at master 8f740a3f.

  1. On a machine with a proxy-mode claude attach, run hyp detach claude --purge
    (removes the CA, its login-keychain trust, NODE_USE_SYSTEM_CA, and the
    login agent).
  2. Restart the daemon, letting it re-attach claude in otel mode. The gateway
    mints a fresh, untrusted CA.
  3. hyp status.

Observed: both remediation lines name hyp attach claude. Running it changes
neither the keychain nor the launchd env, and status is unchanged afterward.

Expected: on a machine with no proxy-mode client attach, either name a command
that actually restores trust, or say plainly that trust is not restored by
attach any more and name what a user should do if they want Remote Control
inbound back.

Code path

src/core/commands/status.js:689

return 'not trusted - Remote Control inbound will not work, run `hyp attach claude` to retry'

and the sibling launchd-env line. Both are emitted without consulting the
client's attach mode, so they still assume the pre-LLP-0262 world in which
hyp attach claude was the command that established proxy trust.

Notes for whoever picks this up

  • The lines are not simply dead. Codex, OpenClaw, Hermes, Claude Desktop, and
    raw SDK traffic still route through the gateway, and Remote Control inbound
    still wants the trusted CA. On this machine those clients were unaffected by
    the purge only because they target http://127.0.0.1:18521 with no TLS. So
    the fix is to make the remediation honest about who can restore trust, not to
    delete the section.
  • Whether some command should be able to re-establish trust without a proxy
    attach (Remote Control inbound being the remaining consumer) is a design
    question worth settling before wording the line, and may deserve its own
    decision LLP rather than being decided inside a status-string fix.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneutral:fixDelegate this issue to neutral for an autonomous fix attempt (reproduce -> fix -> PR)neutral:stuckneutral attempted this but cannot complete it autonomously — needs a human

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions