You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of the Vibe-embedding epic (ACP-hosted vibe-acp).
Scope
Bridge ACP's host-delegated control surface into the fork's own UX and policy:
session/request_permission: when the agent asks, surface the tool call + its options (allow_once, allow_always, reject_once, reject_always as offered) through the fork's approval flow; return the user's selection as the outcome. Timeouts/cancel must resolve as rejection, never silent approval.
Session modes as first-class session config: ask (approval for tool executions), accept-edits (auto-approve file edits only — the agent's default), auto-approve (approve everything). Expose via session/set_mode and/or the mode config option the agent advertises in session/new.
Model + effort config options: surface the agent's model select (tonight: mistral-medium-3.5, alias mistral-vibe-cli-latest) and reasoning-effort select (off/high observed) as settable session options, mapped to the fork's variant system.
Open verification from the spike
The 2026-11-05 spike turn ran under the default accept-edits mode and its bash call executed with zero permission requests — expected for edits, but the bash-under-accept-edits behavior needs a pinned answer: run the same turn in ask mode and prove the session/request_permission round-trip fires and is honored (deny path included: a rejected command must not execute).
Acceptance
In ask mode, a bash tool call produces exactly one permission request; allow → executes; deny → does not execute and the agent is told.
Switching mode/model/effort mid-session takes effect on the next turn and is reflected in the session record.
Spike verification update (2026-11-05): the ALLOW path of this issue's open verification is now proven.
session/set_mode to ask works (empty result = success).
In ask mode, a plain echo tool call produced ZERO permission requests; a create+rm sequence produced exactly ONE session/request_permission (options: allow_once / allow_always / allow_always_permanent / reject_once). Host selected allow_always → command executed, deletion verified by the agent itself.
So the trigger is risk classification by the agent, not the mode alone; trusted_folders.toml is empty, so folder trust is not the cause.
Remaining for this issue's acceptance: the DENY path (answer reject_once → the command must not execute and the agent must be told), and the classification matrix across ask / accept-edits / smart-approve / auto-approve. Transcripts: laptop ~/work/spikes/vibe-acp-embed-2026-11-05/transcript-ask.jsonl + transcript-rm.jsonl.
CLOSED with parent epic #1709 — direction corrected by Drew (2026-11-05): *-direct providers emulate the first-party wire; no ACP embedding. See doctrine issue #1717. The auth/usage concerns that remain valid (keyring credential lifecycle, call_source attribution) are carried in #1717's status and audit sections.
Activity
dezren39 commentedon Nov 5, 2026
Spike verification update (2026-11-05): the ALLOW path of this issue's open verification is now proven.
session/set_modetoaskworks (empty result = success).echotool call produced ZERO permission requests; a create+rmsequence produced exactly ONEsession/request_permission(options: allow_once / allow_always / allow_always_permanent / reject_once). Host selected allow_always → command executed, deletion verified by the agent itself.Remaining for this issue's acceptance: the DENY path (answer reject_once → the command must not execute and the agent must be told), and the classification matrix across ask / accept-edits / smart-approve / auto-approve. Transcripts: laptop
~/work/spikes/vibe-acp-embed-2026-11-05/transcript-ask.jsonl+transcript-rm.jsonl.dezren39 commentedon Nov 5, 2026
CLOSED with parent epic #1709 — direction corrected by Drew (2026-11-05): *-direct providers emulate the first-party wire; no ACP embedding. See doctrine issue #1717. The auth/usage concerns that remain valid (keyring credential lifecycle, call_source attribution) are carried in #1717's status and audit sections.