## MervinPraison/PraisonAI — v4.6.162…v4.6.163

_324+ commits._

### Features
- **feat(managed): support `run_on:` in workflow YAML** (70e9d1d)
- **feat(managed): add `praisonai managed ps`/`stop`, rename compute= to run_on=** (c4516e7)
- **feat(managed): share one remote sandbox across a whole team or workflow** (ba79330)
- **feat: add Signal channel adapter to gateway roster (fixes #3918)** (257639a)

### Fixes
- **Merge pull request #3976 from MervinPraison/fix/revert-sandbox-tool-injection** (7d5e33e)
- **fix(ci): sync DOCS_GITHUB_TOKEN when provisioning pipeline secrets** (546422a)
- **fix(ci): recognise Claude replies and unblock stale-FINAL after rebase** (8315e72)
- **Merge pull request #3975 from MervinPraison/fix/sandbox-security-gaps** (084daf8)
- **fix(sandbox): regenerate clone-bound execution tools; robust PID assert** (9d6f6dc)
- **fix(sandbox): make Agent(sandbox=...) actually isolate execution** (826c2e6)
- **fix: don't reset pairing lockout on channel_id mismatch; count rehydrated pending in max_pending** (befeb72)
- **fix: harden gateway pairing store with at-rest hashing and store-level lockout (fixes #3973)** (264ae6c)
- **fix(managed): attach action-only temp agents to run_on sandbox** (cd27a40)
- **fix: route native deferred results to durable history so late completions survive** (8aa5bd9)
- **fix: narrow gateway click-probe exception and cover legacy Namespace dispatch** (d54920c)
- **fix: consume after_tool redaction/block in both tool executors (#3968)** (c2bbeac)
- **fix: unify praisonai gateway CLI with canonical command surface (fixes #3966)** (19b9215)
- **fix: register deferred tool results on the native tool loop (fixes #3967)** (dbbddbb)
- **fix: honour after_tool plugin return so tool results can be redacted (fixes #3968)** (79a0941)
- **fix: harden session replay — clear stale display, fix omission count, render fallback turns** (f8a486a)
- **fix: replay conversation visually when resuming a session (fixes #3964)** (6d95431)
- **fix: restore _resolve_effective_tool_timeout delegation on workflow path (fixes #3251 regression)** (236e4b0)
- **fix: only reject explicit workflow tool_timeout, not implicit CLI default** (6eeb906)
- **fix: offload blocking auto-gen I/O, fix claude stream flag drift, fail-fast tool_timeout on workflow (fixes #3962)** (221aa9f)
- **Merge pull request #3954 from dajiaohuang/fix/3930-headless-code** (67ce4c9)
- **fix(suite_runner): deterministic latest-report tie-break on equal mtime** (70e6deb)
- **fix(managed): surface provider inventory failures in ps/stop; fix docstring** (788d17e)
- **fix: address reviewer P1s — async cascade at consumption, doom-loop window boundary, bounded tool-executor recycling** (f20a152)
- **fix(code): contain headless search tools to workspace** (6367ae8)
- **Merge pull request #3958 from dajiaohuang/fix/3934-responses-vision-input** (7bbd2eb)
- **Merge pull request #3957 from dajiaohuang/fix/3933-token-collector-default** (90fce93)
- **Merge pull request #3956 from dajiaohuang/fix/3932-harbor-budget** (f9a629d)
- **Merge pull request #3955 from dajiaohuang/fix/3931-acp-tools** (05b7361)
- **Merge pull request #3936 from dajiaohuang/fix/async-state-deepcopy-overlap** (d3ba6cc)
- **fix: align async sequential, recycle tool executor, fix doom-loop no-progress (fixes #3959)** (7c29158)
- **fix(llm): propagate local image validation** (d82555b)
- **fix(code): contain headless tools to workspace** (8370d01)
- **fix(harbor): include iteration budget metadata** (11926a2)
- **fix(llm): preserve image detail setting** (1809f85)
- **fix(llm): cover all non-stream usage paths** (4d6b9a1)
- **fix(code): harden headless lifecycle** (8cd0ccf)
- **fix(harbor): use backend-aware last_stop_reason for stop diagnostics** (9c1d8e4)
- **fix(llm): translate multimodal responses input** (36d4952)
- **fix(llm): collect token usage with quiet output** (1366739)
- **fix(acp): wire workspace tools and capability gates** (a90c081)
- **fix(code): restore headless coding agent execution** (b54289d)
- **fix(harbor): configure coding budget and verifier flow** (b53dc46)
- **fix: remove dead code _execute_memory_tool_call in llm.py (fixes #3952)** (a5c1ef5)
- **fix: make wrapper StreamingTracker.end() idempotent to avoid double-recorded streaming records** (bf64318)
- **fix: wrapper profiler builds on core praisonaiagents.profiling primitives (fixes #3950)** (d03e120)
- **fix(managed): serialize sandbox provisioning and randomize heredoc delimiter** (799e07a)
- **fix: remove misleading PydanticUserError special-case in guardrail path** (76c58b9)
- **fix: robust MCP stdio command parsing for spaced paths and whitespace** (e410647)
- **fix: forward KnowledgeConfig embedder into Knowledge (fixes #3941)** (32cefe2)
- **fix: unify duplicate TaskOutput classes so agent guardrails work (fixes #3939)** (bca5085)
- **fix: MCP splits multi-word command string when args supplied (fixes #3940)** (817942a)
- **fix: guard state cloning during async access** (338001d)
- **Merge pull request #3926 from dajiaohuang/fix/audit-recipe-serve-unbound** (0a46cf1)
- **Merge pull request #3927 from dajiaohuang/fix/audit-stream-tool-dispatch** (853fc58)
- **Merge pull request #3928 from dajiaohuang/fix/audit-memory-flush-timeout** (f7152e9)
- **fix: enforce memory flush deadline at commit** (05f6a6f)
- **Merge pull request #3929 from dajiaohuang/fix/audit-agent-deepcopy-locks** (533d848)
- **fix: validate recipe auth configuration strictly** (6c5be10)
- **fix: replace approval lock when cloning agents** (d70713f)
- **fix: reject unsupported recipe auth modes** (1770c55)
- **fix: serialize memory flush commit with cancellation to close post-timeout race** (f7b6ff2)
- **fix: fail closed for unsupported recipe serve auth modes** (28d6c5a)
- **fix: deepcopy async-safe agent state** (88e4206)
- **fix: keep memory flush timeouts bounded** (27c564d)
- **fix: dispatch streaming tool calls** (1cc2faf)
- **fix: initialize recipe serve config before auth check** (a40523b)
- **fix: gate reactions on adapter capabilities dict, not missing PlatformCapabilities.reactions (#3917)** (7959df3)
- **fix(signal): exempt token-free channel from gateway token check and align session attr for route tool policy** (35acb62)
- **fix: agent can add/remove message reactions via send_message (fixes #3917)** (1015830)
- **fix(gateway): reap stalled pre-session connections via per-connection last-seen clock** (a6c937a)
- **fix: clear stale Redis handles on outage so writes count and status reports disconnected** (fe8657b)
- **fix: bound poll queue via config so durable overflow is reachable** (32d7cf9)
- **fix: wire connection-liveness runtime into gateway server & client (fixes #3911)** (d97e681)
- **fix: reconnect Redis pub/sub and surface cross-instance outage (fixes #3913)** (dc7d436)
- **fix: durable long-poll delivery for gateway fallback transport (fixes #3912)** (9f03de1)
- **fix(scheduler): reset leaked-worker count on close to prevent pool churn on restart** (5e66add)
- **fix: resolve scheduler self-join, tracemalloc race, and pool leak threshold (fixes #3909)** (9632a9d)
- **fix: skip string guardrails as input gate; terminate abandoned managed-stream producers** (18ea895)
- **fix: honour input guardrails, async LLM hooks, and managed streaming contracts (fixes #3907)** (e95d70c)
- **Merge pull request #3902 from dajiaohuang/fix/durable-none-result-status** (9a2277b)
- **fix: correct import paths in clone_for_channel backward-compat branch (fixes #3904)** (5ef7ffe)
- **fix: target interrupts to active turns** (d4d0de3)
- **fix: preserve pre-set interrupt semantics** (8e382a2)
- **fix: scope persistent interrupts to active turns** (67914fd)
- **fix: isolate durable cancellation per turn** (dbce5c2)
- **fix: reset durable stop state per turn** (7c785b6)
- **Merge pull request #3903 from MervinPraison/patch-1** (d4a86a1)

### Backend
- **Release v4.6.163** (e27b9d1)
- **revert(sandbox): stop auto-injecting code-execution tools from sandbox=** (9bf8625)
- **Merge pull request #3974 from MervinPraison/claude/issue-3973-20260815-0949** (908debe)
- **Merge pull request #3972 from MervinPraison/feat/yaml-run-on** (eb8aa96)
- **Merge pull request #3971 from MervinPraison/claude/issue-3966-20260815-0912** (420925a)
- **Merge pull request #3970 from MervinPraison/claude/issue-3967-20260815-0913** (6874ebf)
- **Merge pull request #3969 from MervinPraison/claude/issue-3968-20260815-0913** (29cf8c4)
- **Merge pull request #3965 from MervinPraison/claude/issue-3964-20260815-0851** (a10592c)
- **Merge pull request #3963 from MervinPraison/claude/issue-3962-20260815-0824** (659290c)
- **Merge pull request #3960 from MervinPraison/claude/issue-3959-20260815-0709** (3f23a3a)
- **Merge pull request #3961 from MervinPraison/feat/managed-ps** (d2389cd)
- **Merge pull request #3935 from dajiaohuang/test/stream-follow-up-completion** (6903252)
- **Merge pull request #3944 from MervinPraison/claude/issue-3939-20260814-1431** (edab0de)
- **Merge pull request #3943 from MervinPraison/claude/issue-3940-20260814-1431** (5afe4a9)
- **Merge pull request #3953 from MervinPraison/claude/issue-3952-20260814-1720** (2fb47fb)
- **Merge pull request #3951 from MervinPraison/claude/issue-3950-20260814-1618** (e73e360)
- **Merge pull request #3949 from MervinPraison/research/managed-agents-remote-execution** (1e0059a)
- **Merge pull request #3946 from MervinPraison/claude/issue-3941-20260814-1431** (3778469)
- **Merge pull request #3945 from MervinPraison/claude/issue-3942-20260814-1432** (c4fdb39)
- **Merge pull request #3948 from MervinPraison/docs/readme-move-demo-gifs** (dbfbb7f)
- **Merge pull request #3938 from MervinPraison/docs/five-layer-agent-stack-readme** (69803c4)
- **Merge pull request #3908 from MervinPraison/claude/issue-3907-20260814-0728** (df90609)
- **Merge pull request #3920 from MervinPraison/claude/issue-3917-20260814-0950** (a1c9c2a)
- **Merge pull request #3919 from MervinPraison/claude/issue-3918-20260814-0951** (8a0f0cd)
- **Merge pull request #3916 from MervinPraison/claude/issue-3911-20260814-0921** (d47ab7a)
- **Merge pull request #3915 from MervinPraison/claude/issue-3913-20260814-0922** (bae6514)
- **Merge pull request #3914 from MervinPraison/claude/issue-3912-20260814-0922** (c7e4c1f)
- **Merge pull request #3910 from MervinPraison/claude/issue-3909-20260814-0840** (912a740)
- **Merge pull request #3906 from MervinPraison/credit/3060-gateway-validation-attribution** (43bea02)
- **Merge pull request #3242 from rishijoshi/feat/tenki-compute-provider** (11bcd13)
- **Merge pull request #3896 from dajiaohuang/feat/3762-memory-prefetch** (0a4e990)
- **Merge pull request #3905 from MervinPraison/claude/issue-3904-20260813-1734** (7ba5301)
- **Merge pull request #3901 from MervinPraison/claude/issue-3900-20260813-1620** (809a6f2)

### Tests
- **test(sandbox): robust no-injection contract + real agentic guard** (e6f785a)
- **test: add Agent-level regression tests for KnowledgeConfig embedder forwarding** (77062e3)
- **test: cover async entry during state cloning** (cc82b8a)
- **test: document real stream dispatch coverage** (03e7cb8)
- **test: cover direct async state context** (395835c)
- **test: require streamed follow-up completion** (7af7941)
- **test: synchronize blocked memory flush timeout** (9383a3d)
- **test: cover streamed tool dispatch end to end** (9ac1b7c)
- **test(gateway): cover misspelled gateway block at load time (#3050)** (d3b9987)

### Docs
- **docs: auto-update documentation parity trackers [skip ci]** (3c6e8af)
- **docs: auto-update documentation parity trackers [skip ci]** (13ca53b)
- **docs: auto-update documentation parity trackers [skip ci]** (631cc7e)
- **docs: auto-update api.md [skip ci]** (f55bb3f)
- **docs: auto-update api.md [skip ci]** (04f6985)
- **docs: auto-update feature parity trackers [skip ci]** (17f9d9e)
- **docs: auto-update documentation parity trackers [skip ci]** (cf47c8f)
- **docs: auto-update documentation parity trackers [skip ci]** (db9e59c)
- **docs(readme): move demo GIFs down above the Langfuse section** (1567eed)
- **docs: make thinking docstring honest about thinking_budget no-op** (86d37d9)
- **docs: fix module docstrings advertising invalid Agent kwargs (fixes #3942)** (65d4707)
- **docs(readme): correct budget reason, handoff, hosted-loop & session-cmd claims** (cbac721)
- **docs(readme): lead with the five-layer agent stack** (5ba9c14)
- **docs: auto-update documentation parity trackers [skip ci]** (3bcf8a8)
- **docs: auto-update feature parity trackers [skip ci]** (b70c4e2)
- **docs: auto-update feature parity trackers [skip ci]** (f05a77d)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/MervinPraison/PraisonAI?utm_source=github-action)._