Skip to content

acpx v0.13.1

Latest

Choose a tag to compare

@steipete steipete released this 19 Aug 04:32
· 1 commit to main since this release
v0.13.1
2d735cf

Highlights

  • Embedding runtimes can now handle turn-scoped ACP form and URL elicitations with exact capability, session, request, cancellation, and late-response fencing.
  • Embedders can reuse the existing per-tool permission policy through AcpRuntimeOptions.
  • Session ownership, replay-viewer containment, terminal cleanup, model controls, and persistence failure reporting received a concentrated reliability pass.

Changes

  • Docs/readme: rewrite the project front door to the house standard and route detailed CLI guidance to the existing documentation.
  • Runtime/embedding: expose the existing per-tool permission policy through AcpRuntimeOptions so embedded clients can reuse its rule matching and decisions. Thanks @xenaocx-dev.
  • Runtime/embedding: add turn-scoped ACP form and URL elicitation handlers with capability and cancellation fencing.

Breaking

  • Runtime API: require AcpRuntimeTurn.promptStarted, which settles after connection.prompt() returns its request promise or fails beforehand.

Fixes

  • Runtime/embedding: settle turn results only after lifecycle persistence and client cleanup attempts finish, including unexpected finalization failures.
  • Replay viewer: contain manifest-selected projection reads within their run bundle, including symlink targets. Thanks @bunlongheng.
  • CLI/session: re-apply a session-pinned model before set_mode/set_model/set_config_option after reconnect, matching the prompt path so model-dependent options work. Fixes #489. Thanks @SebTardif.
  • Runtime: preserve non-empty messageId and a safe subset of ACP update _meta on text_delta events so consumers can distinguish model prose from adapter diagnostics that still use agent_message_chunk. Thanks @SebTardif.
  • Runtime/sessions: keep atomic-write temporary filenames within filesystem component limits when valid session IDs have long basenames. Thanks @henkterharmsel.
  • Runtime/embedding: snapshot permission policies at client configuration boundaries so caller-side mutation cannot change an in-flight turn after prompt readiness.
  • Replay viewer: return the same not-found response for missing files and containment-denied paths, preventing outside-target existence probes.
  • Runtime/sessions: surface checkpoint flush and session-store save failures during turn finalization instead of dropping them. Thanks @SebTardif.
  • ACP/terminal: time out hung ps / PowerShell process-list helpers after a shell-backed terminal exits so wait_for_exit, kill, and release can finish. Thanks @SebTardif.
  • ACP/terminal: raise the process-list helper stdout cap above execFile's 1 MiB default so large ps listings are not dropped as empty. Thanks @SebTardif.
  • Runtime/embedding: retain one-shot session ownership from initialization through its turn so repeated pre-turn ensureSession calls reuse one backend session, then clean it up after completion. Fixes #504. Thanks @jhgaylor.
  • Runtime/embedding: project and persist session/update notifications for the full lifetime of retained sessions, including idle periods before and between turns. Fixes #477. Thanks @nyl199310.

Verification

  • Source commit: 2d735cf18220e539bf7961a996bff0aceefcf3b0
  • Elicitation owner PR: #508
  • Signed tag: v0.13.1, SSH signing key SHA256:0R9sOfREAbuojItYW9O6fvh2RHbgqVJyvk8FBS/35dk
  • Exact-head CI: run 32213100130 — format, typecheck, lint, build, tests, mutation, Slophammer, conformance, docs, and CodeQL passed
  • Trusted npm publish with provenance: run 32214015462
  • npm: acpx@0.13.1
  • Registry tarball: acpx-0.13.1.tgz
  • Integrity: sha512-9zhvUrAR4XxSIgaLCiiWmrwmEWh+m6jxu2KUFC8BMOiK4sFsnrRL7H6VF54ZLTTpt0IHrZQju2V7+8wiMf9DXQ==
  • SHA-1: 6c4871b95290558994337f8b38eaca112014c7c1
  • Published: 2026-08-19T04:01:35.902Z
  • Installed-artifact smoke: a clean temporary npm install reported 0.13.1, started the real Codex ACP adapter with a fresh isolated Codex home, returned exactly OK, reported usage, and exited 0