docs(m1): narrow the host-dependency risk to the case that actually bites

The note said a plugin MCP tool needs this Mac "awake, connected and carrying
the right Python", and called sleep a state that would occur routinely. Two
things were wrong with that.

This operator's Mac does not sleep, so the named instance does not apply. And
there is no wider population to generalise to: build-brief lines 3 and 22 scope
the whole system to a single operator searching for their own job, and jobbsok
is not in the marketplace catalog. A worry about "most other users" is a worry
about people this project does not have.

The dependency itself is real; only the instance was wrong. The one that
survives a never-sleeping Mac is Cowork opened from somewhere else: the bridge
is named remote-devices and the server is a child of Claude.app on THIS Mac, so
a session started on a phone or a second laptop may or may not reach it. That
was not measured, and the note now says so in both directions rather than
guessing.

Stated precisely rather than darkly, because an overstated risk gets discounted
and takes the real one with it. The degradation branch now has two named
triggers instead of one vague one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-04 19:07:20 +02:00
commit 8328d487a9

View file

@ -279,13 +279,27 @@ version would have made this handshake a different and worse story.
**The consequence, which is a cost and not only a capability.** Because the **The consequence, which is a cost and not only a capability.** Because the
server runs on the Mac and is bridged in, a plugin-declared MCP tool in Cowork server runs on the Mac and is bridged in, a plugin-declared MCP tool in Cowork
depends on this machine being awake, connected, and carrying the right Python is reachable only from a session that can reach this machine. That is the
environment. A cloud session on a phone or another laptop reaches nothing. That honest shape of operator decision 7: it buys real host access -- the guard, the
is the honest shape of operator decision 7: it buys real host access -- the workspace, the filesystem -- at the price of tying the Cowork surface to one
guard, the workspace, the filesystem -- at the price of tying the Cowork surface machine.
to one machine. The degradation branch below is therefore not only the answer to
a `nei`; it is also the answer to "this Mac is asleep", which is a state that Stating the risk precisely matters more than stating it darkly, because an
will occur routinely rather than exceptionally. overstated risk gets discounted and takes the real one with it. So:
- **"This Mac is asleep" is not the risk here.** This operator's Mac does not
sleep. And there is no wider user population to generalise to: build-brief
lines 3 and 22 scope this to a single operator searching for their own job,
and the plugin is not in the marketplace catalog. A concern about "most other
users" would be a concern about people this project does not have.
- **"Cowork opened somewhere else" is the risk.** The bridge is named
`remote-devices` and the server is a child of `Claude.app` on this Mac. A
session started on a phone or a second laptop was **not measured**, and
whether it reaches this machine's servers should not be assumed in either
direction until it is.
So the degradation branch below answers two triggers, not one: a `nei` on
`- Host-MCP:`, and Cowork being used away from this Mac.
Also worth recording, because it shaped this script's own check: an individual Also worth recording, because it shaped this script's own check: an individual
`tools/call` does **not** appear in `main.log`. The connection lifecycle does. `tools/call` does **not** appear in `main.log`. The connection lifecycle does.