Pi Durable can expose tool progress, but does not automatically mirror external ACP events into Hermes chat. I propose a code-only bridge that stores worker state and renders updates; workers need neither chat credentials nor delivery instructions.
Pi documents api.output() for streaming tool output and view/watch APIs for observing committed conversation state. ACP provides session/update notifications. Connecting those surfaces to a messaging chat is application work.
Proposed flow: receive ACP events, update a persisted job view, and render that view into the correct chat/thread. Keep routing and message identifiers in the bridge, not in the worker's prompt. Throttle edits and recover the current display from saved state after reconnect. Invoke the orchestration model for results or decisions, not for forwarding every output chunk.
This preserves the Operator's requirement that the bridge own chat delivery. It does not establish an existing Pi-to-Hermes chat integration.
Sources: Pi Durable observation and tool APIs, ACP v1 updates.