Skip to content

Implement full-fidelity ACP session reuse - #515

Draft
jessmartin wants to merge 1 commit into
fabro-sh:mainfrom
jessmartin:codex/acp-full-fidelity-session-reuse
Draft

Implement full-fidelity ACP session reuse#515
jessmartin wants to merge 1 commit into
fabro-sh:mainfrom
jessmartin:codex/acp-full-fidelity-session-reuse

Conversation

@jessmartin

Copy link
Copy Markdown
Contributor

Summary

  • Adds a reusable ACP session handle that keeps the initialized ACP process/session alive across prompts.
  • Enables backend="acp" agent nodes with resolved fidelity="full" to reuse sessions by explicit thread_id, or by an implicit run/parallel-branch scoped key when no explicit thread is set.
  • Discards reusable ACP sessions on timeout, cancellation, protocol/process errors, and process-config mismatches.
  • Adds agent.acp.started.properties.reused for observability.
  • Adds validation for statically-detectable full-fidelity ACP nodes sharing an explicit/default thread_id with mismatched ACP process configuration.

Closes #514.

Testing

  • cargo check -p fabro-acp
  • cargo check -p fabro-workflow
  • cargo check -p fabro-validate
  • cargo check -p fabro-server
  • cargo test -p fabro-validate backend_valid
  • cargo test -p fabro-workflow acp_backend_full_fidelity
  • cargo test -p fabro-acp
  • cargo test -p fabro-workflow handler::llm::acp::tests
  • cargo +nightly-2026-04-14 fmt --check --all
  • cargo +nightly-2026-04-14 clippy -p fabro-acp -p fabro-workflow -p fabro-validate -p fabro-server --all-targets -- -D warnings

Copy link
Copy Markdown
Contributor Author

Follow-up note: the next thing to do here is end-to-end testing of the ACP full-fidelity session reuse path before moving this out of draft or considering merge.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support fidelity="full" session reuse for backend="acp" agent nodes

1 participant