Wraps the existing acp + parse + switch pattern into a typed helper that
scaffolds the JSON-with-reason prompt and validates the chosen value
against the supplied choices tuple. decisionEdge() builds the matching
switch edge with exhaustively-typed cases. Returns a plain AcpNodeDefinition
so no schema, snapshot, or replay-viewer changes are required.
Rewrites examples/flows/branch.flow.ts to use the helper.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Recognize Windows .cmd/.bat ACP agent wrappers when translating WSL cwd, including non-C drive installs.\n\nGate: pnpm run check locally on PR branch; rebased onto main after #289 and #291.\n\nThanks @solomonneas.
Send session/close from AcpClient.closeSession instead of the experimental nes/close method.\n\nGate: pnpm run check locally on PR branch; rebased onto main after #289.\n\nThanks @hexsprite.
Resolve claude.exe from PATH before spawning Claude ACP sessions on native Windows.\n\nGate: pnpm run check; GitHub CI green on "3637bce325a32bcf083626a3e9d4ee6534b19594".\n\nThanks @MikeChongCan.
Add --no-terminal so ACPX can initialize new agent clients with clientCapabilities.terminal=false.
Reworked on current main because the original branch targeted stale paths. Includes CLI/docs/changelog updates plus regression coverage for direct exec and queue-owner propagation.
Local verification:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run check
CI: https://github.com/openclaw/acpx/actions/runs/24926378907
Co-authored-by: DMQ <6860287+DMQ@users.noreply.github.com>
Add an explicit `sessions prune` command for deleting closed session records and optional event stream history.
- add `sessions prune` with `--dry-run`, `--before`, `--older-than`, and `--include-history`
- filter age by `closedAt`, falling back to `lastUsedAt` for older records
- avoid overmatching neighboring stream files when deleting history
- cover storage behavior plus CLI help, dry-run, JSON output, and include-history paths
- document the command and add the changelog entry
Validation:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run build:test
- fnm exec --using=24.15.0 node --test dist-test/test/sessions-prune.test.js dist-test/test/cli.test.js --test-name-pattern "sessions prune|sessions new command is present"
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run check
- CI: https://github.com/openclaw/acpx/actions/runs/24926186590 on c263cd981d66bf66750a1ac73c4f46d089c780cc
Co-authored-by: coder999999999 <coder999999999@users.noreply.github.com>
Reuse the kept-open persistent runtime client for mode/config controls and keep config option state visible in runtime status.
- share runtime control session acquisition across active, pending, and reconnect paths
- reuse the pending persistent client for controls before the first prompt turn
- persist returned config option state into session status
- preserve active-turn config option state through the turn finalizer
Validation:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run build:test
- fnm exec --using=24.15.0 node --test dist-test/test/runtime-manager.test.js
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run format:check
- CI: https://github.com/openclaw/acpx/actions/runs/24926069053 on 0683e507b9e109e101cd490173f5678df2234245
Co-authored-by: enki <29411+enki@users.noreply.github.com>
Add runtime turn handles for embedders that need live stream control without overloading terminal events.
- add startTurn(...) with live events, terminal result, per-turn cancel, and stream-only close
- keep runTurn(...) as the compatibility adapter that emits terminal done/error events
- retain reusable persistent clients across turns and close them on runtime close/active close
- make coverage exclude compiled test files explicitly and normalize early child-exit initialize failures
Validation:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run check
- CI: https://github.com/openclaw/acpx/actions/runs/24925872112 on 343b0b957259e0adf720bded199c718f3bb8c057
Co-authored-by: enki <29411+enki@users.noreply.github.com>
fix(prompt): honor model option on persistent prompts
- carry prompt session options through persistent prompt and queue owner paths
- apply requested --model before sending the prompt to an existing session
- add regression coverage for persistent prompt model switches and queue payload parsing
Co-authored-by: william khoo <6055148+skywills@users.noreply.github.com>
Bump the ACPX-owned Claude ACP adapter package range to `^0.31.0` so fresh built-in launches pick up Opus 4.7 support and later ACP compatibility fixes.
Also adds Claude built-in docs, fixes the stale docs package name, locks the range in tests, and hardens temp-home cleanup for a reproduced macOS `ENOTEMPTY` race in the CLI test suite.
Supersedes #253.
Adds Claude system prompt replace/append flags and persists the setting across acpx sessions.\n\nVerified locally with Node 24 / pnpm 10.33.2 full check and GitHub CI on 7453007.\n\nCo-authored-by: Miguel Salinas <mikeys@me.com>