mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-14 13:22:37 +00:00
* fix(server): release ACP provider process after history resume Resuming a persisted agent with purpose "history" only replays the session into the canonical timeline, but ACP sessions kept the spawned CLI process resident afterwards. Every client that fetches an archived agent's timeline (the app reconnects fetching every visible agent) therefore re-materialized a provider process per archived agent and nothing ever released it — measured ~280 MB resident per dsh agent. After the replay and configured overrides finish, a history-purpose resume now settles the commands gate, drops the connection, and terminates the child. The session object stays registered with the replayed history so read paths keep working; the existing `this.child !== child` exit guard already ignores the released process, and interactive use goes through reloadAgentSession which spawns a fresh process. This matches the runtime-only contract the Codex provider already implements. * fix(server): retain child refs when history-runtime release times out Addresses Greptile review: if terminateProcess returns kill-timeout the child stays registered so close() can retry instead of leaking an untracked process. The test now asserts the process is already dead when resumeSession resolves, which pins the documented release-before-return contract instead of a post-hoc poll. Greptile iteration 1.