Skip to content

feat(holon): entity DNA, place-safe multi-host agents (draft handoff) - #5419

Draft
Trevongit wants to merge 7 commits into
block:mainfrom
Trevongit:feat/remote-agents-desktop
Draft

feat(holon): entity DNA, place-safe multi-host agents (draft handoff)#5419
Trevongit wants to merge 7 commits into
block:mainfrom
Trevongit:feat/remote-agents-desktop

Conversation

@Trevongit

Copy link
Copy Markdown

Draft for core review

Upstream-facing handoff of multi-host entity holon work dogfooded on Trevongit/buzz.

Full PR (with CI on fork): Trevongit#1

Design handoff: docs/metabolic/host-agents/CORE_HANDOFF_ENTITY_HOLON.md

One-liner

Treat agent identity as DNA (pubkey), bodies as place-bound instances with leases, presence as status (and place when known), and refuse silent dual-spawn — with public proofs that never leak home paths.

Why

Silent dual-spawn of the same agent face across laptop + 24h home breaks presence, tooling, and scale. Aligns with VISION_REMOTE_AGENTS (same agent, new body) and remote-agents.md I3/I4.

Suggested review order (phased)

  1. Docs / vocabulary + place_proof.v1
  2. Host dual_body 409 + public proof
  3. Desktop Remote Agents place cards
  4. Local Start/Respawn dual refuse (spirit of fix(desktop): avoid duplicate remote agent starts #2857)
  5. Self-location inject
  6. Mobile presence snapshot (spirit of fix(mobile): bootstrap presence snapshots reliably #4417)

Related open work: #2857 #4417 #5138 #4666

This draft may need rebase onto current block/buzz main before merge-ready review.

Agent co-lab was blocked on skill packs because buzz-cli only allowed
image/* and video/mp4. The relay already accepts generic Blossom uploads
via a danger denylist (HTML/JS/SVG/executables). Align the CLI with that
policy so zip/pdf/text and similar types work while unsafe types stay
blocked.

Add unit coverage for allow/block and size tiers (100MB generic).

Signed-off-by: Trevor P <trev2005@gmail.com>
Codex P2 on block#4880: after widening upload MIME types, `messages send --file`
still emitted `![image](url)` for every non-video blob. Desktop FileCard
expects plain `[filename](url)` plus imeta `filename` for zip/pdf/txt.

Match Desktop formatImetaMediaLine: images/video stay inline; generic files
and agent/team snapshot PNGs use markdown links; escape label metacharacters;
include basename on imeta tags.

Signed-off-by: Trevor P <trev2005@gmail.com>
Add host-pinned Remote Agents under Desktop Agents (layer-3 seat
location), HTTP host-agentd wrapping buzz-host-agents, arm presets
including push-nerve, and dogfood docs for laptop tunnel to headless home.

Signed-off-by: Trevor P <trev2005@gmail.com>
Expose /v1/location-proof from host-agentd, merge surface/project into
Desktop Remote Agent cards, and document hybrid proof dogfood.

Signed-off-by: Trevor P <trev2005@gmail.com>
Signed-off-by: Trevor P <trev2005@gmail.com>
Birth cert (pubkey) ≠ face ≠ body ≠ place. Refuse silent dual-spawn;
privacy-shaped place_proof.v1; self-location on Desktop + host-agentd;
mobile presence snapshot on track; core handoff for block/buzz.

Co-lab SoT: #agent-entity-holon · dogfood GREEN on home host-agentd.

Signed-off-by: Trevor P <trev2005@gmail.com>
Comment on lines +64 to +72
result = subprocess.run(
cmd,
shell=True,
input=json.dumps(payload),
text=True,
capture_output=True,
timeout=float(os.environ.get("BUZZ_DRIVER_ANTIGRAVITY_TIMEOUT", "90")),
check=False,
)
Comment on lines +106 to +114
result = subprocess.run(
cmd,
shell=True,
input=prompt,
text=True,
capture_output=True,
timeout=timeout,
check=False,
)
Fetch presence inside start/respawn rules so Agents view and sidebar
cannot bypass dual-body refuse. Mobile concurrent track snapshots apply
independently; re-snapshot tracked pubkeys on reconnect. Reset terminal
panel state on community switch.

Signed-off-by: Trevor P <trev2005@gmail.com>
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