Repository navigation
Closed
0 / 10 of 1 issue completed
Copy link
Labels
agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Description
Parent
#2180 (spec #2178). First runnable Web slice, split out as #2180 asks before coding.
Why
The phone's Chats list already has an All → Computer → Organization strip (#2194), and the computer-icon work puts each Computer's chosen icon after the chat name in All. The browser Web Client still serves exactly one Host: its channel list has no source tabs, and a Computer cannot add another Computer. The Human wants the two surfaces unified: a tab strip that defaults to All and switches to one Computer, on mobile and on the Web/Desktop client, with other Computers added over the tailnet.
Current facts (main @ 4227b25)
- The Web Client talks only to its serving Host through the DSH client connection (
packages/client/src/client/bridge.ts); every list, conversation and composer assumes that one Host. - A Host exposes a device gateway for paired devices (ADR-0199):
Authorization: Device <id>.<secret>, unary/api/<method>and the Remote stream mux, reached over Tailscale HTTPS. It has no CORS, and only phones pair with it today. - The Computer look (name, icon, colour) is stored on the phone, not on the Host, so the Web Client cannot show the same icon yet.
- The spec keeps automatic Tailscale discovery out of scope: a second Computer is added by explicit pairing, never by reachability alone.
What to build
- Pair a second Computer from the browser. In the Web Client, the Human enters another Computer's tailnet address and a pairing code from that Computer. The browser holds the device credential in its own profile and origin (not in Host settings). The other Host admits the browser through its existing device gateway (add the origin checks / CORS the browser needs; no new port, proxy or credential form).
- Channel list source tabs. Above the channel list: All (default, remembered locally), then one tab per connected Computer with its icon and name. All mixes both Computers' DMs and groups; rows carry the trailing Computer icon from the computer-icon work. Same visual rules as the mobile strip: one line, tail ellipsis, icon leads and never shrinks, selected Computer colour on the underline.
- Open and send to the right Computer. Opening a row from the second Computer reads and sends through that Computer's credential; the serving Host's management context does not change. Drafts, routes and caches are keyed by source, so the same Bot slug or Channel ID on two Computers never collide.
- Shared Computer look (if needed for 2). Decide whether the icon and colour move to the Host so phone and Web agree, or stay per client.
- CLI parity for any new Host route, tests,
changes/fragment, light and dark screenshots.
Acceptance
- Two isolated local Hosts (valid logical-device coverage, labelled as such): Web on Host A pairs Host B; All shows both, each tab filters to one Computer.
- Opening and sending in a Host B conversation lands on Host B with Host B's Human identity; nothing is written to Host A.
- Same slug / Channel name on both Hosts never leaks drafts, history or sends.
- Host B offline: its cached rows stay with an offline state; no autosend on reconnect.
- Revoking the browser on Host B removes its rows and refuses its next request.
- Real browser Web evidence (light and dark). DSH Desktop qualification stays with Web and Desktop: unified conversations across paired Computers and Cloud #2180.
Out of scope
Cloud Organizations on Web, DSH Desktop storage, read/pin sync, automatic Tailscale discovery.
Metadata
Metadata
Assignees
Labels
agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Activity
feat(#2500): browser pairs other Computers and the channel list gains…
docs(#2500): Host Feed, Remote Host and device-owned notification pre…
docs(#2500): Host Feed, Remote Host and device-owned notification pre…
DoodleBears commentedon Oct 21, 2026
Agent work claim
codex/local/01a15ebb-a278-7f21-8363-dd343bbf7c0f(not a DSH Session)codex/2500-host-feed-scaffolddocs(#2500): drop environment tabs; drawer on the phone, icon strip o…
Desktop: icon-only Host strip, Add remote in the + menu (#2500)
Rebuild browser and computer client bundles (#2500)
DoodleBears commentedon Oct 21, 2026
Agent work outcome
codex/local/01a15ebb-a278-7f21-8363-dd343bbf7c0fDoodleBears commentedon Oct 21, 2026
Agent work claim
codex/local/01a15ee9-772a-7060-893b-027cecd4242d(not a DSH Session)t3/remote-host-avatarsDoodleBears commentedon Oct 21, 2026
Agent work claim
codex/local/01a15ee9-f10e-7e21-90ba-727ffccb2183(not a DSH Session)t3/device-notification-preferencesDoodleBears commentedon Oct 21, 2026
Agent work claim
codex/local/01a15ee9-f4f0-73c3-9ac3-8ad11e6637bb(not a DSH Session)t3/remote-host-activity-centerDoodleBears commentedon Oct 21, 2026
Agent work claim
codex/local/01a15ee9-7784-7292-9194-6a6b18b23098(not a DSH Session)t3/remote-activity-unread255 remaining items
fix(cli): await phone notification owner results on Hermes (#2565)
Unify Host settings with device-local appearance and notifications
fix(client): serialize Host look writes and enforce request expiry
style(client): format Host settings implementation
fix(client): show Host settings preference hints in body
docs: record Host settings UI and validation evidence
style: format Host settings evidence ledger
Unify Host settings with device-local appearance and notifications
fix(client): serialize Host look writes and enforce request expiry
style(client): format Host settings implementation
fix(client): show Host settings preference hints in body
docs: record Host settings UI and validation evidence
style: format Host settings evidence ledger
Human commentedon Oct 22, 2026
Please stop mentioning me in PRs and issues.
Remote Host chats render images and cards like local chats (BotHarnes…