Skip to content

Hosted lists each computer by the name it enrolled under - #1396

Merged
nedtwigg merged 4 commits into
mainfrom
hosted-computer-names
Oct 28, 2026
Merged

nedtwigg merged 4 commits into
mainfrom
hosted-computer-names

Conversation

@nedtwigg

Copy link
Copy Markdown
Member

Hosted's account page listed every computer as "Computer abcd1234". The remote enrollment poll now carries the computer's name, by default its hostname (the existing BurrowNameField prefill). Hosted stores it and shows it on the computer row and in the passkey "from …" line. A computer enrolled before this keeps showing its short id.

  • One reduction: the Burrow and Hosted share reduceBurrowLabel (remote-lib-common), which strips control, format and separator characters and caps the name at 64 code points. The CHECK on migration 012's column refuses anything that reduction would strip, and an older Burrow that sends no name still enrolls.
  • Scope: the self-host Relay still learns no name, and no Pocket route returns Hosted's. relay.md and remote-security-model.md → "Residual metadata" name this one exception.
  • Privacy: the page now lists the name among what Hosted stores. The policy date moves to 2026-10-28, which matches TERMS_VERSION.
  • No rename: the desktop has no rename, since the name changes only by enrolling again, so it is sent only at enrollment.

🤖 Generated with Claude Code

nedtwigg and others added 3 commits October 28, 2026 00:00
The remote enrollment poll now carries the Burrow's label (by default
its hostname), reduced by the shared reduceBurrowLabel: control, format,
surrogate, and line/paragraph separator characters gone, whitespace
collapsed, at most 64 code points. Hosted stores it in a new nullable
dormouse_relay_burrows.label column whose CHECK refuses what the
reduction strips, and the account route lists it. An older Burrow sends
none and still enrolls. The self-host Relay still learns no label, and
no Pocket route returns Hosted's.

The privacy page lists the name among what Hosted stores for an enrolled
computer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A computer row and a passkey's "from" line show the name the computer
enrolled under, falling back to the short id for one enrolled before
Hosted kept names. Stories show a named and an unnamed computer, and a
64-character hostname at phone width.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Deploying mouseterm with  Cloudflare Pages  Cloudflare Pages

Latest commit: 732001e
Status: ✅  Deploy successful!
Preview URL: https://fabcb2f3.mouseterm.pages.dev
Branch Preview URL: https://hosted-computer-names.mouseterm.pages.dev

View logs

@dormouse-bot dormouse-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nightly audit prompt still says the opposite of what this PR ships. .github/audit/remote.md, under Is the relay actually opaque?, tells the auditor: "The Relay must be unable to read a pairing decision, a Burrow label, a remote-api message, …". After this change, Hosted's Relay receives the label in plaintext on POST /api/burrow/enroll/poll and stores it in dormouse_relay_burrows.label. An auditor following that line will report a finding, and per docs/specs/security.md a failed audit holds the release. The specs were updated (remote-security-model.md → "Residual metadata", relay.md), but the prompt was not. The bullet could scope the label clause to the encrypted channel, for example "a Burrow label (other than the one Hosted's remote enrollment poll carries for its account page)". That way the auditor still checks every other path.

…eads

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nedtwigg

Copy link
Copy Markdown
Member Author

Fixed in 732001e: .github/audit/remote.md → "Is the relay actually opaque?" now excepts the label Hosted's remote enrollment poll carries, pointing at remote-security-model.md → "Residual metadata". I swept the other audit prompts and security specs; none claimed the Relay keeps no label.

@dormouse-bot

Copy link
Copy Markdown
Collaborator

Thanks, the scoped bullet in 732001e resolves my review finding. The auditor still checks every other path a label could take, and Hosted's enrollment poll is the one exception it now allows.

@nedtwigg
nedtwigg merged commit e57ef5f into main Oct 28, 2026
24 of 25 checks passed
@nedtwigg
nedtwigg deleted the hosted-computer-names branch October 28, 2026 07:30
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.

2 participants