Skip to content

feat(home): port Home agent onto stable v0.1.6 - #15

Closed
amartya18 wants to merge 5 commits into
agentc/release-plumbing-9b2ffrom
agentc/home-agent-9b2f
Closed

amartya18 wants to merge 5 commits into
agentc/release-plumbing-9b2ffrom
agentc/home-agent-9b2f

Conversation

@amartya18

@amartya18 amartya18 commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Problem

This personal fork needs Theo's Home agent on the current upstream stable tag (v0.1.6). pingdotgg#15975 is still open and does not apply cleanly to that tag.

Change

Port Home onto v0.1.6 as a stacked PR on the signing/CI plumbing branch. New Home modules are in-tree; MCP tools keep v0.1.6 combined schemas with Home routing inside. v0.1.6 Effect APIs (randomUUIDv4(), ProviderRegistry path, assertFullAccess) and t3-thread://v2 links replace the Home PR's later Effect / v1 hrefs.

Drops from pingdotgg#15975 are listed in PATCH.md (preview-automation RPCs, MCP tool splits, v1 hrefs, mobile ThreadFeed hunks, timeline labels, global home.open, cross-env open-related-thread).

Scope

Do not merge. Stacked on #13. Independent of #14 (daily sync). After #13 lands, retarget this PR to patches.

Open in Web Open in Cursor 

@github-actions github-actions Bot added size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Nov 2, 2026
@cursor
cursor Bot force-pushed the agentc/home-agent-9b2f branch from a34a91c to 4983b50 Compare November 2, 2026 11:48
@cursor
cursor Bot force-pushed the agentc/home-agent-9b2f branch from 4983b50 to ebb6624 Compare November 2, 2026 11:56
@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 5.0 KiB — 6.8 KiB ✅
Codex Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Codex Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Codex Live turn WebSocket decoded — 21.6 KiB — 24.4 KiB ✅
Codex Live turn messages — 2 — 8 ✅
Claude Total thread wire — 5.0 KiB — 6.8 KiB ✅
Claude Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Claude Live turn WebSocket wire — 1.3 KiB — 2.0 KiB ✅
Claude Live turn WebSocket decoded — 21.9 KiB — 24.4 KiB ✅
Claude Live turn messages — 2 — 8 ✅

Baseline: unavailable · PR result: 75e6c28 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@cursor
cursor Bot force-pushed the agentc/home-agent-9b2f branch from 1f43ad7 to 6427e3a Compare November 2, 2026 12:36
cursoragent and others added 5 commits November 2, 2026 12:37
Port pingdotgg#15975 onto the current stable tag. Keep v0.1.6
MCP tool schemas and add Home routing, fleet host, settings.home, and
keep-alive-on-close. Trim only what the four-week drift blocked.
Dropped items are listed in PATCH.md.

Co-authored-by: amartya18 <[email protected]>
Home PR 15975 targeted later Effect and t3-thread v1 hrefs. On stable
v0.1.6, Crypto.randomUUIDv4 is a method, ProviderRegistry lives next to
the drivers, and list/watch links are v2 autolinks from threadLinkFor.

Co-authored-by: amartya18 <[email protected]>
Toolkit.toLayer produced a plain Layer, so HandlersLayer.layer threw on
import and Test Server shards failed. Route Home tools through
McpToolAccess.toLayer like the other v0.1.6 toolkits. Drop the unused
isHomeReportMessageId export that knip flagged.

Co-authored-by: amartya18 <[email protected]>
Break the ProjectToolkit init cycle by loading it on demand from
RemoteDelegation, convert Home/fleet helpers to Effect.fn, provide Home
mocks in WS and MCP tests, and pin the MCP tool-list budget.

Co-authored-by: amartya18 <[email protected]>
AgentContextBudget.test.ts still pins measured bytes. pingdotgg's
budget-vs-main job needs a label this fork cannot apply.

Co-authored-by: amartya18 <[email protected]>
@amartya18

Copy link
Copy Markdown
Owner Author

Closed by the owner: superseded by #17 and the new fork release setup.

@amartya18 amartya18 closed this Nov 5, 2026
@amartya18
amartya18 deleted the agentc/home-agent-9b2f branch November 5, 2026 17:35
amartya18 added a commit that referenced this pull request Nov 5, 2026
Port pingdotgg#15975 onto the fork's main. Built from the v0.1.6
port (fork PR #15), replayed onto main with four conflicts resolved.

Restores what the v0.1.6 port dropped:
- mod+shift+0 opens Home (handler in shortcuts/commandPaletteCommands).
- Watch reports render as "Sent by T3 Code", not as the user's own message.
- Messages Home sent are labeled "Home" even when its thread lives on another
  environment, and "Open thread" opens it on the hub.

Fixes Home settings offering no model when the first enabled provider is not
ready (for example Codex enabled but not installed).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
amartya18 added a commit that referenced this pull request Nov 6, 2026
…nes (#16)

* feat(home): add Home, an agent that manages threads across your machines

Port pingdotgg#15975 onto the fork's main. Built from the v0.1.6
port (fork PR #15), replayed onto main with four conflicts resolved.

Restores what the v0.1.6 port dropped:
- mod+shift+0 opens Home (handler in shortcuts/commandPaletteCommands).
- Watch reports render as "Sent by T3 Code", not as the user's own message.
- Messages Home sent are labeled "Home" even when its thread lives on another
  environment, and "Open thread" opens it on the hub.

Fixes Home settings offering no model when the first enabled provider is not
ready (for example Codex enabled but not installed).

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* fix(home): Home's calls to other environments use its relay, not peer links

Main forwards every tool that takes a linked environment through PeerForwarding
and strips environmentId first, so Home's routing never saw the target. When
Home names another environment, the tools that route Home now reach its own
routing, and its other linked-environment tools refuse instead of using a peer
link. That also keeps a full-access peer link from bypassing Home's no-delete
rule. delegate_task keeps its own environment field and is unchanged.

Also from review: a watch report needs createdBy "system" to show as T3 Code,
and "Open thread" for a Home sender opens it in whichever environment has it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* fix(home): the desktop relay runs each request once

HomeRelay built a new consumer atom whenever its registration changed. A
new consumer started with an empty handled set and an immediate read, and
consumers could stay live after a reconnect, so one Home call ran on the
other environment two or three times. Launches then failed with "failed
during create-thread" even though the thread was created.

The relay now keeps one consumer. A new registration rebuilds it through
an atom, and the handled set lives with the relay.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* fix(home): relayed calls survive re-registration, retries, and bursts

From review of the relay fix:
- The same window re-registering no longer fails the calls it still owes.
  They move to its new queue, along with anything not yet delivered.
- A retried Home launch keeps its command id, so it replays instead of
  failing because the thread already exists.
- The relay stream publishes every request. Stream atoms keep only the last
  value of a chunk, which could drop one of two parallel calls.
- A long Home thread title is cut by code point, so it cannot split an emoji.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants