Add inline exec approval flow#751
Conversation
Route local exec approval prompts into the active chat timeline when session context is available, including allow-once, always-allow, deny, resolved-state stamping, and local prompt cancellation handling. Preserve native prompt fallback for requests without chat context. Thread session keys through node.invoke request/event paths and system.run approvals while preserving trusted envelope metadata over command args. Keep legacy policy compatibility by accepting ask/prompt/numeric action values and preserving stable ChatPermissionDecision enum values. Update the permissions UI to use canonical prompt actions, upsert exact duplicate command patterns, safely coalesce duplicate loaded rules without changing first-match semantics, and refresh localized approval copy for allow-once versus always-allow behavior. Add regression coverage for inline approval decisions, session-key propagation, duplicate policy rule handling, legacy policy deserialization, enum stability, and action-button fallback behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Codex review: needs real behavior proof before merge. Reviewed June 12, 2026, 6:24 PM ET / 22:24 UTC. Summary Reproducibility: unclear. The review failed before ClawSweeper could establish a reproduction path. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Review detailsBest possible solution: Retry the Codex review after fixing the execution failure. Do we have a high-confidence way to reproduce the issue? Unclear. The review failed before ClawSweeper could establish a reproduction path. Is this the best way to solve the issue? Unclear. Retry the review first so ClawSweeper can evaluate the actual issue and fix direction. AGENTS.md: unclear because the file could not be read completely. Codex review notes: model internal, reasoning high; reviewed against ebacf0c825f9. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Route local exec approval prompts into the active chat timeline when session context is available, including allow-once, always-allow, deny, resolved-state stamping, and local prompt cancellation handling. Preserve native prompt fallback for requests without chat context.
Thread session keys through node.invoke request/event paths and system.run approvals while preserving trusted envelope metadata over command args. Keep legacy policy compatibility by accepting ask/prompt/numeric action values and preserving stable ChatPermissionDecision enum values.
Update the permissions UI to use canonical prompt actions, upsert exact duplicate command patterns, safely coalesce duplicate loaded rules without changing first-match semantics, and refresh localized approval copy for allow-once versus always-allow behavior.
Add regression coverage for inline approval decisions, session-key propagation, duplicate policy rule handling, legacy policy deserialization, enum stability, and action-button fallback behavior.
Proof Screenshots:
Type of (cut-off) UI that's moved inline into the chat history ...

... in order to align with existing inline approval UI:

This is the resulting UI:

Also fixing the incomplete custom rule combobox:

Testing and review
./build.ps1passed after resolving PR Add app notifications surface #748 conflicts.dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restorepassed (2243 passed, 29 skipped).dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restorepassed (1073 passed).user/rbrid/InlineApprovalwith./run-app-local.ps1 -NoBuild -AllowNonMainand used the screenshots above to validate the inline approval and permissions combobox UI.python .agents/skills/autoreview/scripts/autoreview --mode local --engine copilot, withPYTHONUTF8=1andAUTOREVIEW_ALLOW_UNSANDBOXED_TOOLS=1; default Codex engine was unavailable becausecodexis not installed locally).