feat: approval gates block indefinitely instead of auto-rejecting on timeout

Remove the wall-clock approval timeout that auto-rejected pending approvals.
The timeout modeled machine latency, but approvals are human latency
(unbounded); it also created an intent/outcome divergence where a human
approving at the same instant the timeout fired was silently overridden by
the auto-reject. Approvals now block until the operator decides; the
resolved-request dedup still guards against double-submit.

Add ServerMessage.ApprovalResolved and map ApprovalDecisionResolvedEvent to
it in DomainEventMapper so clients are notified when any approval is resolved
(by anyone) — letting a second connected client clear its prompt. This is the
event-sourced replacement for the removed timeout notification path.

Drop the now-dead ApprovalConfig (timeout_ms) and its loader/test/sample-config
references. ApprovalStatus.TIMED_OUT is retained for replay of historical events.
This commit is contained in:
2026-05-30 21:48:23 +04:00
parent 780a00229e
commit d3ce310100
11 changed files with 106 additions and 98 deletions
-3
View File
@@ -12,9 +12,6 @@ session_list_limit = 5
[cli]
default_output = "human"
[approval]
timeout_ms = 300000
[tools]
sandbox_root = "~/.config/correx/sandbox"
working_dir = "/tmp"