Skip to content

Store ACP sessions in sessions v2 - #1079

Draft
fazxes wants to merge 3 commits into
fazxes/sessions-v2-running-toolsfrom
fazxes/sessions-v2-acp
Draft

fazxes wants to merge 3 commits into
fazxes/sessions-v2-running-toolsfrom
fazxes/sessions-v2-acp

Conversation

@fazxes

@fazxes fazxes commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • With FX_SESSIONS_V2=1, fx acp creates, loads, resumes and lists sessions in the v2 session log. The wasm build stays on v1.
  • A new ACP session is written to disk only after its first prompt.
  • session/list keeps v1's order, page size, cursor format and cwd matching.
  • session/load replays the whole conversation, including turns from before a compaction, without the compaction handoff.
  • Model, effort and provider changes, the generated title and token usage are saved with the session and restored on load.
  • A session killed during a prompt loads with that turn interrupted, and a tool that was still running is reported as failed and possibly partly run.
  • Loading a session that another process has open returns "Session is busy".
  • A load that hits a permission, read-only or full-disk fault answers "Session could not be loaded: permission denied" (or the matching cause) instead of "Session not found". A prompt that can't be saved answers "Session could not be saved: the disk is full" (or the matching cause) instead of "Io".
  • ACP image prompts are saved with the session and replayed on load. A deleted image loads as "Image Route subagent controls through typed actions #1 unavailable".
  • Images on a new v2 session no longer fail with ImageSnapshotPathUnsafe in fx ask, the app or ACP.
  • The managed TTY shell works in v2 sessions.
  • Listing or reading v2 sessions on an empty home creates nothing.
  • Loading the full history of a 10K-turn session takes 34 ms, against 39 ms on v1.
  • Subagents stay off on v2 sessions.
  • A paused model response is not resumed on v2 sessions.

Stacked on #1076.

@fazxes fazxes added the type: feature Adds a new user-facing capability label Sep 28, 2026
@fazxes
fazxes added this pull request to stack #1084 September 28, 2026 17:58
@fazxes
fazxes removed this pull request from stack #1084 September 28, 2026 18:00
@fazxes
fazxes added this pull request to stack #1085 September 28, 2026 18:39
@fazxes
fazxes force-pushed the fazxes/sessions-v2-acp branch from 39f2a0c to 4658adf Compare September 28, 2026 19:04
@fazxes
fazxes force-pushed the fazxes/sessions-v2-acp branch from 4658adf to 26238d8 Compare September 28, 2026 21:11
@fazxes
fazxes force-pushed the fazxes/sessions-v2-acp branch from 0371384 to 31afaa8 Compare September 28, 2026 23:01
@fazxes
fazxes force-pushed the fazxes/sessions-v2-acp branch from 31afaa8 to 3c5aeaf Compare September 29, 2026 04:24
@fazxes
fazxes force-pushed the fazxes/sessions-v2-acp branch 2 times, most recently from 34ce038 to 5683cf4 Compare September 29, 2026 15:48
- With FX_SESSIONS_V2=1, fx acp creates, loads, resumes and lists sessions in the v2 session log. The wasm build stays on v1.
- A new ACP session is written to disk only after its first prompt.
- session/list keeps v1's order, page size, cursor format and cwd matching.
- session/load replays the whole conversation, including turns from before a compaction, without the compaction handoff.
- Model, effort and provider changes, the generated title and token usage are saved with the session and restored on load.
- A session killed during a prompt loads with that turn interrupted, and a tool that was still running is reported as failed and possibly partly run.
- Loading a session that another process has open returns "Session is busy".
- ACP image prompts are saved with the session and replayed on load. A deleted image loads as "Image #1 unavailable".
- Images on a new v2 session no longer fail with ImageSnapshotPathUnsafe in fx ask, the app or ACP.
- The managed TTY shell works in v2 sessions.
- Listing or reading v2 sessions on an empty home creates nothing.
- Loading the full history of a 10K-turn session takes 34 ms, against 39 ms on v1.
- Subagents stay off on v2 sessions.
- A paused model response is not resumed on v2 sessions.
- With FX_SESSIONS_V2=1, resuming an interactive session whose history holds a shell result no longer hangs before the first frame. Reading the saved history held the session's lock while each turn was drawn, and drawing a shell row takes the same lock to read its command replay.
On v2, loading a session that cannot be written answered "Session not
found", and a prompt that could not be saved answered with a bare error
name such as "Io". Both now say what is wrong: permission denied, a
read-only disk, a full disk, or a file-size limit. v1 keeps its
messages.
@fazxes
fazxes force-pushed the fazxes/sessions-v2-acp branch from 5683cf4 to f30ad07 Compare September 29, 2026 18:32

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature Adds a new user-facing capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant