Skip to content

Match ACP session modes to the CLI's permission modes - #1189

Merged
fazxes merged 1 commit into
mainfrom
fazxes/acp-permission-modes
Oct 7, 2026
Merged

fazxes merged 1 commit into
mainfrom
fazxes/acp-permission-modes

Conversation

@fazxes

@fazxes fazxes commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • ACP sessions offer the CLI's permission modes, auto, ask, and full-access, named Auto, Ask, and Full access, in both the mode config option and the modes field. The code mode is removed.
  • A session starts in the saved permission_mode, or auto when none is saved, and reports the mode it enforces. Sessions previously reported ask while enforcing the saved mode.
  • Choosing a mode with session/set_config_option or session/set_mode saves it as the default permission mode, like /permissions, so new sessions and the CLI start in it.
  • A session reads the saved mode when it starts, so a long-running ACP process follows a mode another fx process saved. Open sessions keep their own mode.
  • In full-access, tool calls run without a permission request or an automatic review.
  • An unknown mode, including code, returns an Unknown mode error and changes nothing. session/set_mode without a modeId, and a mode change without an active session, also return errors.
  • Mode option values report their permission mode in _meta.fx.permissionMode instead of a top-level field outside ACP's schema.
  • libfx host config saves modes as auto, ask, and full-access, and ignores a saved code when restoring.

- ACP sessions offer the CLI's permission modes, auto, ask, and
  full-access, named Auto, Ask, and Full access, in both the mode config
  option and the modes field. The code mode is removed.
- A session starts in the saved permission_mode, or auto when none is
  saved, and reports the mode it enforces. Sessions previously reported
  ask while enforcing the saved mode.
- Choosing a mode with session/set_config_option or session/set_mode
  saves it as the default permission mode, like /permissions, so new
  sessions and the CLI start in it.
- A session reads the saved mode when it starts, so a long-running ACP
  process follows a mode another fx process saved. Open sessions keep
  their own mode.
- In full-access, tool calls run without a permission request or an
  automatic review.
- An unknown mode, including code, returns an "Unknown mode" error and
  changes nothing. session/set_mode without a modeId, and a mode change
  without an active session, also return errors.
- Mode option values report their permission mode in
  _meta.fx.permissionMode instead of a top-level field outside ACP's
  schema.
- libfx host config saves modes as auto, ask, and full-access, and
  ignores a saved code when restoring.
@fazxes fazxes added the type: improvement Improves existing user-facing behavior label Oct 7, 2026
@fazxes
fazxes marked this pull request as ready for review October 7, 2026 19:33
@fazxes
fazxes merged commit 7b5b4a2 into main Oct 7, 2026
39 of 44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: improvement Improves existing user-facing behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant