mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-23 09:42:53 +00:00
* fix(server): report archived agents correctly over MCP
An archived agent is resumed back into memory whenever something reads its history:
agent-loading passes `{ purpose: "history" }` to resumeAgentFromPersistence exactly when
`record.archivedAt` is set. `list_agents` then sees it as a live ManagedAgent, which
carries no archive timestamp, so AgentDirectory's archive predicate passes it and the
stored record's timestamp never reaches the result:
- `list_agents` returns the agent with `archivedAt: null`, because
serializeSnapshotWithMetadata merges only the title from storage. A caller reconciling
ownership from that list concludes an archived agent is still running.
- a default call (`includeArchived: false`) returns it anyway.
Storage stays the single owner of the timestamp. The MCP boundary merges the stored
record the same way the WebSocket path does in Session.enrichAgentPayload, reusing the
storage read it already makes for the title, and `archivedAt` becomes a projection option
beside `title`. `list_agents` filters archives after projection, where the timestamp is
known.
Copying the timestamp onto the managed agent was the other option and is worse:
unarchiveSnapshot clears only the stored record, so a managed copy would report an
unarchived agent as archived until it was reloaded.
The wire change is additive: `archivedAt` is already nullable and optional in the
protocol, and already populated on the stored path.
Fixes #4753
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(server): keep archived agents out of discovery after history reads
Apply archive filtering after stored metadata is projected in the shared directory. Exercise archive, history hydration, MCP discovery, WebSocket discovery and unarchive through a real daemon instead of mocked manager snapshots.
Co-authored-by: Thomas Van <minhthong@gmail.com>
---------
Co-authored-by: Thomas Van <minhthong@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com>