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
{{ message }}
Repository navigation
Commit 814d06c
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/ARCHITECTURE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,7 +131,7 @@ A worker deny-on-ask registers a harness-owned denied-call envelope (`src/permis
131
131
- Bootstrap consumes the shared session assembly (`src/session/assemble-runtime.ts`, layered over `src/session/runtime-assembly.ts`) instead of hand-wiring a second copy. Intentional deltas vs TUI:
132
132
- No workflow controller (`isWorkflowActive` is always false)
133
133
- Non-interactive permission gate by default
134
-
-`ask_operator` is unmounted when stdin/stdout are not TTYs (no cancel stub on the wire); TTY exec still prompts on stdin
134
+
-`ask_operator` is unmounted when stdin is not a TTY (no cancel stub on the wire); TTY-stdin exec still prompts on stdin even with stdout piped
135
135
- MCP connect is awaited before workflow resume and first inference, abort-capped at 15s so a hung handshake cannot block the run. A rejected batch does not disarm that abort while sibling dials are still in flight. A 1s log fires if connect is still in progress; remaining dials keep running until settle or abort. The TUI still fire-and-forgets connect (no rewrite). `tool_search` does not treat an empty catalog as a definitive miss while servers are still connecting.
// The --dangerously-skip-permissions escape hatch: auto-allow anything the
399
406
// authorization layer did not already deny.
400
407
skipPermissions: boolean;
@@ -1023,6 +1030,7 @@ export function createPermissionGate(
1023
1030
? `${request.action} references a sensitive path and requires operator approval, which is unavailable in a non-interactive run.`
1024
1031
: `${request.action} requires operator approval, which is unavailable in a non-interactive run. Re-run with --dangerously-skip-permissions to bypass, or narrow the action.`;
1025
1032
denialMemory.record(stableId,reason);
1033
+
options.onHeadlessDeny?.(reason);
1026
1034
return{kind: "deny", reason };
1027
1035
}
1028
1036
@@ -1067,6 +1075,7 @@ export function createPermissionGate(
constreason=`${request.action} requires operator approval, which is unavailable in a non-interactive run. Re-run with --dangerously-skip-permissions to bypass, or narrow the action.`;
0 commit comments