Files
ClawX/harness/specs/tasks/acp-native-chat.md
T

4.3 KiB

id, title, scenario, taskType, intent, touchedAreas, expectedUserBehavior, requiredProfiles, requiredRules, requiredTests, acceptance, docs
id title scenario taskType intent touchedAreas expectedUserBehavior requiredProfiles requiredRules requiredTests acceptance docs
acp-native-chat Move Chat to ACP-native Main-owned stdio transport and Renderer reducer gateway-backend-communication runtime-bridge Replace the ClawX-specific Chat stream/history path with ACP session/load, session/prompt, session/cancel, session/update, and session/request_permission while keeping non-Chat Gateway capabilities intact.
harness/specs/tasks/acp-native-chat.md
package.json
pnpm-lock.yaml
harness/reference/acp-chat.md
harness/reference/acp-generated-media-and-diagnostics.md
harness/specs/scenarios/acp-chat-experience.md
harness/specs/rules/acp-chat-state-and-history.md
shared/acp-chat/**
shared/chat/types.ts
shared/host-api/contract.ts
shared/host-events/contract.ts
electron/utils/openclaw-cli.ts
electron/services/acp-chat-service.ts
electron/services/chat-api.ts
electron/main/ipc-handlers.ts
src/lib/host-api.ts
src/lib/host-events.ts
src/lib/acp/**
src/stores/acp-chat-session.ts
src/pages/Chat/**
shared/i18n/locales/**/chat.json
tests/unit/acp-*.test.ts
tests/unit/acp-*.test.tsx
tests/unit/chat-input.test.tsx
tests/unit/chat-acp-page.test.tsx
tests/unit/chat-acp-inline-timeline.test.tsx
tests/unit/host-api-facade.test.ts
tests/unit/host-events.test.ts
tests/unit/host-services.test.ts
tests/unit/openclaw-cli.test.ts
tests/e2e/chat-acp-inline-timeline.spec.ts
tests/e2e/chat-run-state-events.spec.ts
tests/e2e/chat-acp-process-timeline.spec.ts
README.md
README.zh-CN.md
README.ja-JP.md
Opening a Chat session loads history through ACP session/load replay.
The ACP child receives the authoritative ClawX Gateway token through its private process environment, so history replay does not depend on a separately resolved config token.
Sending a Chat prompt uses ACP session/prompt, shows an optimistic user segment, and coalesces it with the ACP user echo.
Thinking, tool calls, permission requests, plans, generated files, and generated images appear as inline timeline blocks in ACP event order.
Renderer does not call Gateway HTTP or WebSocket endpoints directly.
Gateway-backed models, providers, plugins, skills, doctor, workspace, settings, and media configuration continue to work.
fast
comms
renderer-main-boundary
backend-communication-boundary
api-client-transport-policy
host-api-fallback-policy
host-events-fallback-policy
gateway-readiness-policy
acp-chat-state-and-history
acp-compatibility-content-safety
diagnostics-trace-safety
ui-i18n-design-tokens
docs-sync
pnpm run typecheck
pnpm exec vitest run tests/unit/acp-host-contract.test.ts tests/unit/acp-chat-service.test.ts tests/unit/acp-reducer.test.ts tests/unit/acp-chat-store.test.ts tests/unit/acp-chat-components.test.tsx tests/unit/chat-acp-page.test.tsx
pnpm exec vitest run tests/unit/host-api-facade.test.ts tests/unit/host-events.test.ts tests/unit/openclaw-cli.test.ts tests/unit/host-services.test.ts tests/unit/chat-acp-inline-timeline.test.tsx
pnpm exec playwright test tests/e2e/chat-acp-inline-timeline.spec.ts
pnpm exec playwright test tests/e2e/chat-run-state-events.spec.ts tests/e2e/chat-acp-process-timeline.spec.ts
pnpm run comms:replay
pnpm run comms:compare
Main starts and reuses openclaw acp through a spawn-safe CLI spec and @agentclientprotocol/sdk ClientSideConnection.
Main passes the Electron-store Gateway token to the local ACP child with `OPENCLAW_GATEWAY_TOKEN`, without placing the token in CLI arguments or Renderer state.
Main forwards ACP SessionNotification envelopes and permission request envelopes without translating text, thinking, tools, or media into legacy Chat events.
Renderer reduces ACP notifications into an in-memory ordered timeline.
No ClawX ACP replay ledger, Chat history cache, or reduced timeline persistence is introduced.
The primary Chat page uses ACP notifications and replay as its ordinary timeline sources; bounded image-generation compatibility evidence remains allowed.
Inline process blocks preserve ordering between assistant message segments.
required
true