RAGE #191: expose missing runtime approval prerequisite #210

Merged
lost-rob0t merged 5 commits from rage/191-zara1-tool-approvals into master 2026-08-24 08:34:17 +00:00
lost-rob0t commented 2026-08-24 08:14:48 +00:00 (Migrated from github.com)

Consumes #191 at immutable start a41877367f7e0af8d936e91982e88e03912dd5c2.

Auto-RAGE Analyze/Design/Adversarial review rejected production realization at the current architecture. Zara has approval command/event schemas, but its production LangGraph backend cannot pause/resume tools: approve/reject remains unsupported, the graph has no checkpointer/thread identity, ToolNode executes directly, and no production path emits a pending approval before a side effect.

This PR contains only append-only research/design/decision evidence. It creates and records blocker #209, and #191 now depends on #209. A wire-only implementation was rejected because it would make #134 pass on synthetic events.

Exact candidate: 2d827c5413fd5da534bfc55ee4e25095ce1debc2, including concurrent master PR #208.

Exact local gates:

  • full 9-phase scripts/test-all.sh: PASS; 119 protocol/transport, 75 voice, 1034 full pytest;
  • nix flake check: PASS, all 10 compatible-system checks;
  • nix build: PASS.

The pre-existing unstaged local LICENSE deletion is not included.

No production code, dependency, protocol behavior, model provider, or Prolog-RLM path is changed.

Consumes #191 at immutable start `a41877367f7e0af8d936e91982e88e03912dd5c2`. Auto-RAGE Analyze/Design/Adversarial review rejected production realization at the current architecture. Zara has approval command/event schemas, but its production LangGraph backend cannot pause/resume tools: approve/reject remains unsupported, the graph has no checkpointer/thread identity, ToolNode executes directly, and no production path emits a pending approval before a side effect. This PR contains only append-only research/design/decision evidence. It creates and records blocker #209, and #191 now depends on #209. A wire-only implementation was rejected because it would make #134 pass on synthetic events. Exact candidate: `2d827c5413fd5da534bfc55ee4e25095ce1debc2`, including concurrent master PR #208. Exact local gates: - full 9-phase `scripts/test-all.sh`: PASS; 119 protocol/transport, 75 voice, 1034 full pytest; - `nix flake check`: PASS, all 10 compatible-system checks; - `nix build`: PASS. The pre-existing unstaged local `LICENSE` deletion is not included. No production code, dependency, protocol behavior, model provider, or Prolog-RLM path is changed.
Sign in to join this conversation.
No description provided.