mirror of
https://github.com/langchain-ai/deepagents.git
synced 2026-07-24 20:35:31 -04:00
4600365ea0
Approval mode now has a live control path for remote `dcode` sessions instead of relying only on the run-context snapshot captured at stream start. That lets mid-run toggles take effect before the next gated tool call, while failing closed to manual approval when the live state cannot be synced or read. ## Changes - **Live approval state:** Added `approval_mode_key`, `approval_mode_payload`, `read_approval_mode_from_store`, and `awrite_approval_mode` to store per-thread auto-approve state in the LangGraph Store under a deterministic hashed thread key. - **Interrupt decisions:** Updated `_should_interrupt_tool_call` to prefer the live store value over stale context, so toggling from auto-approve back to manual can interrupt subsequent gated tool calls in the same active run. - **TUI synchronization:** Updated `DeepAgentsApp.action_toggle_auto_approve` and `_on_auto_approve_enabled` to write the live approval mode whenever the user toggles approval behavior. - **Fail-closed behavior:** If manual approval cannot sync while an agent is running, the app warns the user and cancels the active run rather than allowing stale auto-approval to continue. - **Remote support:** Added `RemoteAgent.aput_store_item` so remote sessions can write unindexed LangGraph Store records used by the server-side approval predicate. - **Context reconstruction:** Preserved `auto_approve` and `approval_mode_key` when dict-based runtime context is reconstructed into `CLIContextSchema`. - **Stream propagation:** Updated `execute_task_textual` to write live approval state before each stream iteration and await async auto-approve callbacks triggered from approval prompts.