## MervinPraison/PraisonAI — v4.7.8…v4.7.9

_93 commits._

### Features
- **feat(task): require a person to sign off a task's output (#4986)** (4813db8)
- **Revert "Add AnyAPI built-in tool (#4817)"** (cf445b4)
- **feat(ts): model-harness helpers and guardrail retry (#4964)** (1de6072)
- **Add AnyAPI built-in tool (#4817)** (eaa62e5)
- **feat(ts): team-wide toolsRunOn shares one sandbox across members (#5008)** (f20eb95)
- **feat(ts): per-tool input/output guardrails (#5012)** (0d7a57f)
- **feat(ci): dual OAuth pre-flight probe and failover (v1.1.8)** (79343b0)

### Fixes
- **fix: reset registry availability memo in test fixture (fixes #5133)** (b165c34)
- **fix: incident wiring survives delivery failures + shared recovery path** (df934bf)
- **fix: wire IncidentTracker into scheduler failure delivery (fixes #5131)** (613492c)
- **fix: session-scoped stop drains queued backlog (#5129) (#5130)** (b48cef4)
- **fix: canonical terminal-outcome contract with deterministic precedence (#5006)** (a4ec761)
- **fix: ship isolated tool-capable code_mode with default subprocess bridge (#5127)** (942fa83)
- **fix: close three concurrency gaps in agent state (#5121)** (11cd502)
- **fix: add missing trailing newline (POSIX) (#5119)** (388d311)
- **fix(config): load AutonomyConfig lazily in feature_configs (#5058)** (5ee8275)
- **fix(plugins): PR #5023 follow-ups — allow-list, waivers, session tests (#5128)** (c278edf)
- **fix: stop concurrent agents sharing one LLM from misattributing tokens (#5114)** (ad08e78)
- **fix: carry the archived marker into session bookends (#5113)** (b4fc60e)
- **fix: auto-extend MCP init timeout for npx/uvx cold-starts (#5110)** (6823f7f)
- **fix: inject retrieved RAG context into llm_prompt in sync chat (#5109)** (30d01b3)
- **fix: fail fast on duplicate Telegram poller (409 Conflict) (#5106)** (365e2f4)
- **fix: wrap chonkie embeddings import with actionable error (#5105)** (55f9e57)
- **fix: pin Langflow transitive deps for praisonai[flow] on Python 3.13 (#5103)** (2d601c4)
- **fix: pass the resolved base URL to headers_for, not the Qwen constant (#5091)** (32b8951)
- **fix(agents): wire enabled plugin tools into agents (#5023)** (3f04ae5)
- **fix: fourteen shipped defects, and the unit tree from 277 failures to zero (#4958)** (cc0216d)
- **fix: backend-safe run-history locking, per-loop async client, webhook race, langfuse tests** (9e77def)
- **fix: close wrapper gaps in adapter resolver, run-history RMW, HTTP client reuse (fixes #5123)** (bcdd509)
- **fix(ci): use hub pick-oauth-token so failover works on old PR branches** (4b5808a)
- **Merge pull request #4959 from MervinPraison/fix/agent-backend-protocol-detection** (bf50683)
- **fix: narrow cache-reset fixture guard to ImportError (PR #5118 review)** (861adaa)
- **fix: reset process-global framework availability cache per test (fixes #5117)** (edb4d3f)
- **fix: validate unknown_user_policy, sharpen deny banner/log accuracy (PR #5112 review)** (577c820)
- **fix: surface Telegram deny-policy drops and correct security banner (fixes #5092)** (4bc139c)
- **fix(ci): unblock offline unit tests and review-chain when GH_TOKEN is empty** (b887ea9)
- **fix: coerce numeric owner_user_id and validate top-level policy (PR #5111 review)** (dfb16de)
- **fix: wire unknown_user_policy from YAML in `praisonai bot start` (fixes #5093)** (e893672)
- **fix(test): invalidate availability cache in framework validator tests** (967949d)
- **fix: replace non-existent @modelcontextprotocol/server-time npm package (fixes #5100)** (b73c9f5)
- **fix: scope single-bot app_token migration to Slack + add ref-form tests** (e81f321)
- **fix: carry top-level app_token into single-bot Slack channel (fixes #5097)** (6eadd88)
- **fix(tests): force litellm local model-cost map to keep unit imports offline** (5e4677f)
- **fix: restore availability cache after ImportError containment tests** (700a6b7)
- **fix: invalidate framework availability cache in registry ImportError tests (fixes #5115)** (aa3ca1b)
- **fix: fall back to default registry in _build_yaml_workflow when none injected** (49ac885)
- **fix: honor explicit framework precedence + registry consistency (PR #5039 review)** (deca917)
- **fix: route framework default through registry as single source of truth (fixes #5016)** (c479bf1)
- **Merge pull request #5090 from MervinPraison/fix/framework-registry-defaults-5022** (9541cf7)
- **fix(framework): honor registry defaults in agents generator** (d33d6ce)
- **fix: bind lazy gateway exports into globals + add __dir__ (fixes #5088 CI)** (bd005ed)
- **fix: lazy-load gateway/__init__.py to defer protocols.py parse (fixes #5088)** (1c11106)
- **fix: release LLM client in aclose() and derive clone-ownership race-free (#5076)** (49ec2d7)
- **fix: close per-request agent clones in HTTP invoke API (fixes #5076)** (e35f672)
- **fix: relocate live _run_async_in_sync_context helper out of deprecated mixin (fixes #4984)** (e15e7f7)
- **fix: pin backend adoption to the surface the tool loop actually drives** (a7ca8b5)
- **fix: adopt every documented backend protocol, not just get_response** (df6c5ac)

### Backend
- **Release v4.7.9** (3806a55)
- **Merge pull request #5132 from MervinPraison/claude/issue-5131-20260917-0949** (bf95347)
- **Merge pull request #5134 from MervinPraison/claude/issue-5133-20260917-1313** (6e60373)
- **Merge pull request #5125 from MervinPraison/revert/anyapi-5122** (5056159)
- **Merge pull request #5124 from MervinPraison/claude/issue-5123-20260917-0820** (fc10348)
- **Merge pull request #5118 from MervinPraison/claude/issue-5117-20260916-1635** (47b9e49)
- **Merge pull request #5112 from MervinPraison/claude/issue-5092-20260915-1308** (77f2414)
- **Merge pull request #5111 from MervinPraison/claude/issue-5093-20260915-1308** (3eb8288)
- **Merge pull request #5108 from MervinPraison/claude/issue-5097-20260915-1309** (1281138)
- **Merge pull request #5107 from MervinPraison/claude/issue-5095-20260915-1309** (118d101)
- **Merge pull request #5104 from MervinPraison/claude/issue-5100-20260915-1309** (df5efc2)
- **Merge pull request #5116 from MervinPraison/claude/issue-5115-20260916-1315** (4e46682)
- **Merge pull request #5039 from MervinPraison/claude/issue-5016-20260910-1655** (6e7dafe)
- **Merge pull request #5005 from MervinPraison/claude/issue-4984-20260908-1945** (be84084)
- **Merge pull request #5083 from MervinPraison/claude/issue-5076-20260914-0945** (929a07d)
- **Merge pull request #5089 from MervinPraison/claude/issue-5088-20260914-1713** (9ed86ea)

### Tests
- **test: make availability-cache cleanup exception-safe; clarify routing test** (ae935db)
- **test: lock run <missing>.yaml routing to agent runner (fixes #5095)** (7b5a593)
- **test: cover relocated run_async_in_sync_context behaviour (#4984)** (ccc195f)

### Docs
- **docs: auto-update feature parity trackers [skip ci]** (4e5b83f)
- **docs: auto-update feature parity trackers [skip ci]** (04d53dc)
- **docs: auto-update documentation parity trackers [skip ci]** (c3059ae)
- **docs: auto-update documentation parity trackers [skip ci]** (47e82d2)
- **docs: auto-update documentation parity trackers [skip ci]** (848dec8)
- **docs: remove AnyAPI exports from api.md after revert** (04e2132)
- **docs: auto-update api.md [skip ci]** (3e298c8)
- **docs: auto-update documentation parity trackers [skip ci]** (b7662c6)
- **docs: auto-update feature parity trackers [skip ci]** (09457a6)
- **docs: auto-update api.md [skip ci]** (c26c7e1)
- **docs: auto-update feature parity trackers [skip ci]** (b9296da)
- **docs: auto-update documentation parity trackers [skip ci]** (d58ce07)
- **docs: auto-update documentation parity trackers [skip ci]** (801db38)
- **docs: make MCP.get_tools docstring example cross-platform** (99c310c)
- **docs: auto-update documentation parity trackers [skip ci]** (578f9de)
- **docs: auto-update documentation parity trackers [skip ci]** (b3bf0a1)

### Chore
- **ci: run the whole praisonai-agents unit suite — 297 failures to 0 (#5010)** (cce3b40)

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