mirror of
https://github.com/multica-ai/multica.git
synced 2026-08-05 17:40:11 +02:00
The heartbeat runner used agent.write() (normal write), which persisted both the heartbeat prompt and HEARTBEAT_OK response as regular messages visible in the UI chat history. Switch to runInternalForResult() — a new AsyncAgent method that runs via runInternal() (messages marked internal: true, rolled back from in-memory state). This hides both the heartbeat prompt and response from the UI entirely, while still persisting to JSONL for diagnostics. The previous commit's event-stream heartbeat ACK filter remains as a defense-in-depth layer for edge cases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>