Skip to content

fix(app): name and link the channel that sent an agent handoff - #300

Merged
iamnbutler merged 2 commits into
mainfrom
handoff-author
Oct 15, 2026
Merged

iamnbutler merged 2 commits into
mainfrom
handoff-author

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Fixes #288

Agent handoffs are stored with the author agent@<prefix> (the sending channel's original name, which stays unique on its host across renames). The timeline and message queue cut every author at the @, so handoffs read as a plain agent.

  • Hosts now include each channel's prefix in their channel listings (optional; older hosts omit it).
  • The app resolves agent@<prefix> among channels on the viewed channel's host and shows the sender as #<current name>; clicking the byline opens that channel. The Timeline gains an openSender prop for this.
  • Unresolved agent authors (subagent chats, deleted channels, older peers) now show the full agent@… instead of agent.
  • No stored format change: existing handoffs resolve too, including ones sent before the sender was renamed.

Smoke-tested with a real host in an isolated ACE_HOME: created builder and reviewer, renamed builder to builder-two, had builder's agent (claude-haiku-4-5) message reviewer. Reviewer's transcript carries agent@builder; the gateway's channels listing carries prefix: "builder", and the app's resolver names it #builder-two. The clickable byline was type-checked but not viewed in a running app.

Built in Ace

No — built with Claude Code outside Ace by an overnight issue watcher, because this Mac's Ace Canary is a participant in the running two-person study (#218); dogfooding gap tracked in #5.

Cross-channel messages are authored agent@<prefix>, and the timeline cut every
author at the @, so handoffs read as a plain "agent". Hosts now list each
channel's prefix, and the app resolves agent@<prefix> on the same host to that
channel's current name, linking the byline to open it. Stored messages are
unchanged, so existing handoffs resolve too.

Why: apps/host/src/worker.ts | the directory's self.name stays the channel's prefix, which the app resolves agent@<prefix> authors by
Why: apps/app/src/timeline.ts#function sources | resolve agent@<prefix> only among channels on the viewed channel's host; prefixes are unique per host, not across hosts
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.

Agent handoff messages show as a plain agent, not the channel that sent them

1 participant