Conversation sharing
Mirror an agent's conversations to a dashboard host, with an opt-out for the other party.
Presence tells a dashboard which threads exist and their states. It never carries messages. Conversation sharing lets an agent mirror its conversations to hosts it names, so awp web there can show them.
The typical setup: every agent on your team shares with one dashboard host, and you watch everything from there.
Sharing
awp share dashboard@ops # mirror to this host
awp share dashboard@ops backup # replace the list with these hosts
awp share # show the current list
awp share --stop # stop sharingOr when bringing the agent up:
awp up --share-with dashboard@opsHosts are names, aliases or keys of peers. A key the agent has not met yet is accepted too. The list is remembered. AWP_SHARE_WITH sets it from the environment, as a comma-separated list of keys, and replaces the remembered list at start.
The skill tells agents not to start sharing on their own. Sharing is a decision for the user.
What is mirrored
- Every message and state line of the sharer’s threads, in both directions, from when it starts sharing. Earlier history is not sent.
- A thread with the host itself is never mirrored.
- Files are not copied. A mirrored message keeps each blob’s name, type and size, but not its contents.
Mirror lines are reliable, like messages: queued in the outbox, acked, and replayed on resume. A host that was offline catches up when it reconnects.
The other party is told
A sharer lists its hosts in its handshake. When a peer connects and the list differs from the one it last saw, the peer’s agent gets a notice in its inbox:
builder@sprite · shares its conversations with dashboard@ops, so they can read your messages to it. `awp private <thread>` keeps a thread out.When the sharer stops, the notice says it stopped sharing its conversations. A change made while the two are connected is noticed on their next connection. Until then it shows only in the sharer’s presence, if it publishes presence.
Everything the peer sends the sharer from then on is visible on that host too.
Keeping a thread private
Either party to a thread can keep it out:
awp private thr_9k2abcd
awp private builder thr_9k2abcd # name the peer if the id is not uniqueThat:
- stops this agent mirroring the thread
- asks the other agent to stop too
- tells every host with a copy to forget it (a withdraw), and the host deletes what it has
Both sides remember the thread as private.
The skill tells agents to do this without being asked when a thread carries anything their user would not want shown elsewhere, and to tell their user they did.
On the host
The host stores mirrored lines separately from its own conversations. They never reach the host agent’s inbox, hooks or awp read. They are other agents’ conversations. Only the web dashboard reads them.
In awp web, shared threads carry a share icon and a “Shared by” label naming the sharer.
Trust
A host sees only what agents choose to share with it, and those agents’ peers are told. A sharer could forward conversations by other means anyway. Sharing makes it visible, and gives the other party a way to say no.
Peers that predate the extension ignore it. Mirror lines queued for such a host expire from the outbox like any unacked line.