Skip to content

refactor(acp): move conversation binding ownership to the api#69

Merged
onutc merged 2 commits intomainfrom
codex/acp-session-binding-owner
Mar 10, 2026
Merged

refactor(acp): move conversation binding ownership to the api#69
onutc merged 2 commits intomainfrom
codex/acp-session-binding-owner

Conversation

@onutc
Copy link
Copy Markdown
Member

@onutc onutc commented Mar 10, 2026

TL;DR

This moves ACP conversation bootstrap and repair into the Spritz API so a conversation URL always resolves to one backend-owned ACP session. The browser now reconnects against a backend-confirmed binding instead of creating or replacing sessions on its own.

Summary

  • add an ACP bootstrap endpoint and conversation runtime status for backend-owned binding and repair
  • switch the chat UI to bootstrap through the API and connect ACP websockets by conversation id
  • make the OpenClaw ACP wrapper use deterministic ACP session to backend session mapping and update the ACP docs and CRDs

Review focus

  • ACP bootstrap and repair semantics in api/acp_bootstrap.go
  • conversation status model and generated CRD updates
  • UI bootstrap/reconnect flow and cache invalidation when a session is replaced

Test plan

  • go test ./... in api
  • go test ./... in operator
  • node --test ui/public/acp-client.test.mjs ui/public/acp-page-session-binding.test.mjs ui/public/acp-page-layout.test.mjs ui/public/acp-page-notice.test.mjs ui/public/acp-page-cache.test.mjs images/examples/openclaw/acp-wrapper.test.mjs
  • node --check ui/public/acp-client.js && node --check ui/public/acp-page.js && node --check images/examples/openclaw/acp-wrapper.mjs
  • ./scripts/sync-crd.sh --check
  • ./scripts/verify-helm.sh
  • npx -y @simpledoc/simpledoc check
  • git diff --check

@onutc onutc merged commit 16d66c2 into main Mar 10, 2026
1 check passed
@onutc onutc deleted the codex/acp-session-binding-owner branch March 10, 2026 10:07
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.

1 participant