Audit fixes: sync chain, box, desktop, install, UI (B1-B30, F1-F5) #5

Closed
daniel.w wants to merge 0 commits from brain-computers into main
Owner

Full-audit fix pass over BUGS.md.

  • Relay: rate-limit/lock by the real peer (XFF trust opt-in), request-scoped waiting, roles gate; relay tests (11)
  • Sync chain (C1-C9): brain-mirror link tests, per-IP login lock, egress peer/timeout narrowing
  • Streams: tool-call deltas keep slots (B7); httpd chunked bodies; portal session race + Ordering
  • Data safety: export drops threads; broken keyring stops recoverable (B12/B13)
  • Agent/MCP: compaction keeps tool pairs, MCP per-server lock, computer keywords need whole words (B2/B14/B26)
  • Routines/channels: timezone-aligned schedules, DST, Slack/Telegram cursors, retry-after (B15/B16/B17)
  • Box/desktop: Docker timeouts, VNC key, resource limits, path sandbox; X11/Wayland leaks, freezes, zombies (B18/B22/B24/B25)
  • Teach/mic/install: recording off the UI thread, EventTap cache, installer traps, rustc 2.x, zypper set (B27)
  • UI: texture caps, big previews off-thread, spawn reaping (F5); setup atomic writes
  • wl negative-origin finding verified NOT a bug (protocol-checked, unchanged)

140 app tests + 11 relay tests green; both crates clippy-clean.

Full-audit fix pass over BUGS.md. - Relay: rate-limit/lock by the real peer (XFF trust opt-in), request-scoped waiting, roles gate; relay tests (11) - Sync chain (C1-C9): brain-mirror link tests, per-IP login lock, egress peer/timeout narrowing - Streams: tool-call deltas keep slots (B7); httpd chunked bodies; portal session race + Ordering - Data safety: export drops threads; broken keyring stops recoverable (B12/B13) - Agent/MCP: compaction keeps tool pairs, MCP per-server lock, computer keywords need whole words (B2/B14/B26) - Routines/channels: timezone-aligned schedules, DST, Slack/Telegram cursors, retry-after (B15/B16/B17) - Box/desktop: Docker timeouts, VNC key, resource limits, path sandbox; X11/Wayland leaks, freezes, zombies (B18/B22/B24/B25) - Teach/mic/install: recording off the UI thread, EventTap cache, installer traps, rustc 2.x, zypper set (B27) - UI: texture caps, big previews off-thread, spawn reaping (F5); setup atomic writes - wl negative-origin finding verified NOT a bug (protocol-checked, unchanged) 140 app tests + 11 relay tests green; both crates clippy-clean.
daniel.w added 13 commits 2026-11-05 07:48:48 +00:00
94cadca1b8 A brain on a server knows which computer is the person's; the phone page opens the brain in use
- On a server brain whose hands are the person's computer, 你的電腦 is that computer;
  the server itself is 大腦伺服器 (its browser too), so 「我的 Mac」 means the Mac.
- A brain with its own hands no longer lists the account's other brains as computers.
- 查看電腦 lists the computers the bot really has, with their real names.
- Phone page: with several brains on, it opens the one the account's computers use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4c0db53647 Replies in Traditional Chinese when that is the setting; a cloud brain's browser is the person's
- 語言 繁體中文: a reply's Simplified characters are turned into Traditional with Taiwan
  wording (zhconv), since some models (Qwen) slip despite the instruction.
- A brain on a server: browser steps go to the person's computer (its hands) unless the
  server's own browser is named; 你的電腦 is listed first.
- update_bot says the default computer it set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
c1e4994219 Cloud brain uses a model on the person's network through their computer; the chosen computer is where a bot works
- A brain that can't reach a model at a private address (e.g. Qwen at 10.x) sends the request
  through its hands; the hands only forward to addresses on their own network, and only for
  their brain (uses the existing device channel, so the account server is unchanged).
- The computer chosen for a bot is binding: a step naming another computer goes to the chosen
  one unless the person's message names that one (「在我的 Mac 上」).
- Browser steps follow the computer: Bot 的電腦 drives the Chromium on its own desktop (through
  docker exec, no new port), 你的電腦 its browser; before, they always used this computer's.

Checked: on this Mac, Bot 的電腦 browsing opened example.com in the box's Chromium and an
unasked 你的電腦 command ran in the box; 「在我的 Mac 上」 ran on the Mac. Linux brain in Docker
with 10.0.0.0/8 blocked + this Mac as hands: model calls went through the Mac, shell on
你的電腦 answered from the Mac, browser defaulted to the Mac's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
daniel.w merged commit into main 2026-11-05 07:52:30 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: daniel.w/AnyBot#5
No description provided.