Files
zeekayandHanzo Dev 7d4a2293f1 migrate openclaw holds OpenClaw's approvals under /exec and a merge's exec to who gets in
OpenClaw applies its exec approvals policy after a session's /exec. A /exec in
Hanzo Bot replaces tools.exec, so the import also writes the policy into
~/.bot/exec-approvals.json, the floor Hanzo Bot applies to gateway and node
exec after /exec: each agent gets the stricter of what that file held it to
and what the policy holds it to, nothing else in the file changes, and the
old file is kept as .bak. With BOT_STATE_DIR elsewhere Hanzo Bot would not
read it from the target, so the import stops (RED-EXECPARITY-2).

A merge now bounds exec by who reaches each agent: each channel (with
channels.defaults and its pairing entries), pairing entries of a channel no
config names, and hooks. An audience that admits and routes exactly as the
import alone keeps OpenClaw's exec, one that does so as the existing bot.json
keeps its exec (unset is deny), one that only admits as an install gets that
install's strictest agent, and one that admits as neither denies exec to every
agent it reaches, in tools.exec and, for /exec, in the host floor. A channel
turned off admits no one. The same bound runs on a fresh bot.json when the
target already holds pairing entries (RED-EXECPARITY-1).

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-27 17:36:42 -07:00
..
…