## MervinPraison/PraisonAI — v4.7.11…v4.7.12

_170+ commits._

### Features
- **feat(persistence): tag the Valkey client via CLIENT SETINFO LIB-NAME** (9000cb6)
- **feat: add notification policy for gateway push (fixes #5323)** (10078d5)

### Fixes
- **fix: surface Responses failures before accepting partial output (#5477)** (dadac29)
- **fix: publish gateway.yaml/bot.yaml JSON Schema for editor + CI validation (#5416)** (96e76b5)
- **fix: opt-in per-reply runtime footer for gateway bots (#5437)** (fdbbcbf)
- **fix: add --json to gateway status and report real version (#5368)** (2c91e0c)
- **fix(memory): enumerate SQLite records and preserve MCP user filters (#5479)** (1fca8e2)
- **fix: retain incomplete Responses outcomes and streamed usage (#5475)** (8641da4)
- **fix: capture re-entrancy sentinel before guarded import in YAML runner (fixes #5632)** (ebca47a)
- **fix: forward overwrite flag to indexed imported-session save (fixes #5627) (#5631)** (ce458b2)
- **fix(session): forward overwrite kwarg in SqliteSessionStore import override** (3e048ab)
- **fix: isolate in-memory metadata and read results from caller edits (#5483)** (8dd23bf)
- **fix(session): distinguish current and completed handoff progress (#5539)** (7fb721f)
- **fix: keep --json output parseable with --save and honor thresholds iterations/warmup** (151d740)
- **perf(agents): skip plugin-manager scan in Agent init when no plugins registered (fixes #5624)** (42c410d)
- **fix: apply session retention beyond listing limits (#5584)** (6b75254)
- **fix(storage): honor complete file backend suffixes (#5565)** (271ce2e)
- **fix(session): merge agent histories under the session lock (#5545)** (7d05bf9)
- **fix: add CI perf-gate flags to agent benchmark (fixes #5617)** (e9a5538)
- **fix(session): preserve complete agent history messages (#5541)** (f0aa4db)
- **fix: refresh indexed session recall and routes after portable imports (#5524)** (db86605)
- **fix(session): recheck import no-clobber under the write lock (#5547)** (bfa65d1)
- **fix: enforce approver authorization on HTTP and webhook approval backends (fixes #5610) (#5612)** (86a2877)
- **fix: remove partial staging file when FileBackend.save serialization fails (#5563)** (69f2af0)
- **fix: quote SQLite table and index identifiers in SQLiteBackend (#5571)** (0f3f5ba)
- **fix: record temp_path before json.dump in BaseJSONStore._save (fixes #5580) (#5582)** (a49978f)
- **fix: read session item counts as UTF-8 (#5586)** (867df48)
- **fix: security return type, AutoGen task_callback, Async state/knowledge ABCs (#5403)** (a7d664d)
- **fix: enforce session title character limits on fallback paths (#5520)** (aedf7e7)
- **fix: remove dead code in llm.py and agent.py (fixes #5394) (#5397)** (c8a1e1a)
- **fix: lazy gateway_host import in integration/__init__ (#5393)** (7cbc343)
- **fix: deprecate inert single_agent param in auto.py generators (#5373)** (815c4c2)
- **fix: Agent.chat(output_pydantic=Model) returns validated Pydantic instance (#5604)** (256ab6d)
- **fix: harden AgentOS auth, fix integration listing & agent_info 500 (#5592)** (c4276c7)
- **fix: cross-session memory recall for memory={"user_id": ...} (fixes #5595) (#5603)** (05493b7)
- **fix: guardrail block returns safe message instead of None (#5596) (#5605)** (a2b52f6)
- **fix: preserve resolved YAML path in guarded legacy run delegation** (e57b01a)
- **fix: prevent infinite recursion on CLI YAML run (fixes #5597)** (9009dba)
- **fix: handle invalid UTF-8 in FileBackend.load (fixes #5566)** (ab91468)
- **fix: sort legacy JSON filenames for deterministic migration order** (cf02bd4)
- **fix: skip invalid UTF-8 legacy files during SQLite transcript migration (fixes #5553)** (b68084f)
- **fix: harden SQLite thread-close and cover open-connection path (#5486)** (9d38a4e)
- **fix: preserve shared SQLite memory adapter on thread cleanup (fixes #5486)** (f5c6a42)
- **fix: clean up FileMemory atomic staging file on serialization error (fixes #5491)** (b9da2ff)
- **Merge pull request #5506 from MervinPraison/fix/compaction-wiring-unit-test** (64ffb56)
- **fix(test): size compaction overflow for tiktoken BPE** (e1373d1)
- **fix(observability): harden LangSmith adapter per review (#5438)** (07ac1d0)
- **fix: implement live LangSmith trace delivery (fixes #5433)** (c3f2676)
- **Merge pull request #5391 from MervinPraison/fix/pr-review-openai-key-skip** (fc04755)
- **fix(ci): skip PraisonAI PR review without OpenAI key** (e83f562)
- **fix: close quota-hold gaps in BotOS loop, HTTP-date resets, hold notice** (4d5e57c)
- **fix(scheduler): harden misfire policy — coerce grace, exempt first cron/at run** (60478a7)
- **fix: quarantine unrepairable SQLite DBs and harden guard against locks/backup-loss** (69d26ad)
- **fix: park scheduled jobs past provider rate-limit window (fixes #5386)** (df4fa6d)
- **fix: record missed recurring occurrences with a misfire grace window (fixes #5385)** (4b49b0c)
- **fix: detect, back up, and repair malformed SQLite stores on open (fixes #5387)** (8b8664d)
- **fix: harden session-address grammar (file-like keys + surplus segments)** (32b8471)
- **fix: add canonical session-address grammar and session.resolve method (fixes #5383)** (7bd3636)
- **fix: size in-run compaction trigger to model window not flat 8000 (fixes #5381)** (3c36def)
- **fix: guardrails fail closed + export_session async-store dispatch (fixes #5379)** (f948a7a)
- **Merge pull request #5378 from MervinPraison/fix/ollama-ci-version-prefix** (42b2b17)
- **fix(ci): use unprefixed OLLAMA_VERSION for install.sh** (8bdeb7b)
- **fix(async-bridge): hard timeout backstop + preserve sync-tool no-timeout** (c34da48)
- **fix: make sync→async bridge work in a running loop, preserve contextvars, enforce timeout (fixes #5376)** (e12e0a8)
- **fix(eval): surface per-criterion grader_results and preserve edge-case timeouts** (b2f6534)
- **fix: pop user-module sys.modules entry after exec to prevent accumulation (#5157)** (2b6beeb)
- **fix: namespace user-module sys.modules key per-load to prevent multi-tenant clobber (fixes #5157)** (c52fab8)
- **fix: make LLM agent attribution task-local to stop concurrent token misattribution (#5052, #3933)** (e1e38fb)
- **fix: make LLM agent-name attribution task-local via ContextVar (#5052)** (d3364e2)
- **fix: task-local LLM attribution + unbounded CLI coro + shell interrupt safety** (0f1a8fd)
- **fix: wrapper adapter-registry parity, CLI AsyncBridge routing, scheduler stats lock (fixes #5321)** (d078295)
- **fix: correct StartupWatchdog progress budget accounting and late-exit race** (a6af191)
- **fix: add startup-phase watchdog for gateway pre-loop window (fixes #5265)** (46e0872)
- **fix: address reviewer gaps — transient adapter recovery for find_spec negatives, URL-less backend overrides, safe store-URL scheme handling** (e261f19)
- **fix: wrapper gaps — store-aware DB detection, transient adapter-probe recovery, authoritative agents→roles promotion (fixes #5306)** (2d6ab9f)
- **fix: emit EvalPort spec-conformant Suite/ResultSet documents (fixes #5374)** (1013083)
- **Merge pull request #5370 from MervinPraison/fix/async-safe-yaml-post-5359** (e7455e5)
- **fix(agent): reentrant history lock and YAML reflection attrs** (8005635)
- **fix: harden outbox operator surface against live-state corruption** (297095f)
- **fix: honour explicit YAML watchdog/drain over GatewayConfig fields (#5362)** (90b59e2)
- **fix: add operator inspect/retry/purge surface for outbound queue (fixes #5366)** (8188b29)
- **fix: add drain/watchdog fields to GatewayConfig for CLI+YAML+Python parity (fixes #5362)** (eeb0dca)
- **fix: close activity-surface leaks and retain config in schema (#5314)** (49e77e0)
- **fix: add opt-in privacy-safe activity surface for bot long tool runs (fixes #5314)** (6c708aa)
- **fix: enforce IP cap post-insert, exit-safe compute release, retryable store close** (ed69eaa)
- **fix: bound voice rate-limiter, isolate persistence close(), unpin compute release (fixes #5347)** (25e6312)
- **fix: harden knowledge scope/filters, MCP empty-error, mongo protocol returns** (d8775b2)

### Backend
- **Release v4.7.12** (88e858a)
- **Merge pull request #5626 from MervinPraison/claude/issue-5617-20261002-1135** (1ead413)
- **Merge pull request #5636 from MervinPraison/claude/issue-5632-20261002-1333** (2432197)
- **Merge pull request #5630 from MervinPraison/claude/issue-5624-20261002-1138** (8257498)
- **Merge pull request #5438 from MervinPraison/claude/issue-5433-20261001-0955** (f7b2ff1)
- **Merge remote-tracking branch 'origin/main' into claude/issue-5617-20261002-1135** (0a7195d)
- **Merge pull request #5606 from MervinPraison/claude/issue-5597-20261002-0830** (a3e66c8)
- **Merge pull request #5568 from MervinPraison/claude/issue-5566-20261002-0224** (3733f2b)
- **Close SQLiteBackend connection on schema initialization failure (#5575)** (bb01adb)
- **Merge pull request #5555 from MervinPraison/claude/issue-5553-20261002-0136** (b1bfd53)
- **Merge pull request #5489 from MervinPraison/claude/issue-5486-20261001-1536** (0257054)
- **Merge pull request #5493 from MervinPraison/claude/issue-5491-20261001-1549** (617f555)
- **Merge pull request #5398 from Jonathan-Improving/aea-698-tag** (bb470c7)
- **Merge pull request #5313 from MervinPraison/claude/issue-5312-20260925-0915** (f46a727)
- **Merge origin/main; keep ingress attribution and server request channel imports.** (75c8ca1)
- **Merge pull request #5388 from MervinPraison/claude/issue-5385-20260930-0947** (a756ee8)
- **Merge origin/main into PR branch; keep misfire grace and quota hold.** (c3ec51e)
- **Merge pull request #5227 from MervinPraison/claude/issue-5059-20260923-1221** (65d1a24)
- **Merge pull request #5231 from MervinPraison/claude/issue-5070-20260923-1222** (05552f5)
- **Merge pull request #5235 from MervinPraison/claude/issue-5152-20260923-1224** (5fc01ff)
- **Merge pull request #5237 from MervinPraison/claude/issue-5153-20260923-1224** (1aae110)
- **Merge pull request #5239 from MervinPraison/claude/issue-5157-20260923-1226** (1ad7142)
- **Merge pull request #5249 from MervinPraison/claude/issue-5159-20260923-1246** (4044d5e)
- **Merge pull request #5266 from MervinPraison/claude/issue-5265-20260924-0951** (29387c5)
- **Merge pull request #5303 from georgeatparallel/george/parallel-search** (5dab44e)
- **Merge pull request #5307 from MervinPraison/claude/issue-5306-20260925-0830** (2542b64)
- **Merge pull request #5315 from MervinPraison/claude/issue-5314-20260925-0951** (a7b289e)
- **Merge pull request #5318 from MervinPraison/claude/issue-5317-20260925-1617** (226e4fe)
- **Merge pull request #5320 from MervinPraison/claude/issue-5319-20260926-0721** (0c300d5)
- **Merge pull request #5322 from MervinPraison/claude/issue-5321-20260926-0830** (093f631)
- **Merge pull request #5325 from MervinPraison/claude/issue-5323-20260926-0914** (6f6f841)
- **Merge pull request #5348 from MervinPraison/claude/issue-5347-20260928-0821** (936f1be)
- **Merge pull request #5367 from MervinPraison/claude/issue-5362-20260929-1001** (4a62a14)
- **Merge pull request #5369 from MervinPraison/claude/issue-5366-20260929-1024** (48bda9f)
- **Merge pull request #5375 from MervinPraison/claude/issue-5374-20260930-0003** (ae4b280)
- **Merge pull request #5377 from MervinPraison/claude/issue-5376-20260930-0717** (dd6df79)
- **Merge pull request #5380 from MervinPraison/claude/issue-5379-20260930-0821** (4a2df03)
- **Merge pull request #5382 from MervinPraison/claude/issue-5381-20260930-0901** (6ee10b4)
- **Merge pull request #5384 from MervinPraison/claude/issue-5383-20260930-0911** (5d8fb9b)
- **Merge pull request #5389 from MervinPraison/claude/issue-5387-20260930-0948** (7e93c07)
- **Merge pull request #5390 from MervinPraison/claude/issue-5386-20260930-0947** (3383e8a)

### Tests
- **test(plugins): cover uncreated-singleton fast path in has_registered_plugins** (92add1e)
- **test: assert warning emitted on invalid UTF-8 load (PR #5568 review)** (f025fec)
- **test(compute): wait for fire-and-forget finalizer before asserting reclaim** (ff33f17)
- **test(compute): wait for fire-and-forget finalizer before asserting reclaim** (5a0d4e8)
- **test(memory): cover FileMemory atomic staging cleanup on serialization error** (b422172)
- **test(persistence): cover create_valkey_client factory handshake** (bec5e5b)
- **test: cover sync+async compaction entry-point budget wiring (P2)** (9940c80)
- **test: add regression coverage for guardrail fail-closed + async-store session export** (96eb999)

### Docs
- **docs: auto-update documentation parity trackers [skip ci]** (f9ed8ff)
- **docs: auto-update documentation parity trackers [skip ci]** (698aef5)
- **docs: auto-update documentation parity trackers [skip ci]** (27206ed)
- **docs: auto-update documentation parity trackers [skip ci]** (ccd5849)
- **docs: auto-update feature parity trackers [skip ci]** (0d6a092)
- **docs: auto-update feature parity trackers [skip ci]** (0f48e1a)
- **docs: auto-update feature parity trackers [skip ci]** (f900d1f)
- **docs: auto-update documentation parity trackers [skip ci]** (54715e8)
- **docs: auto-update documentation parity trackers [skip ci]** (77a81bb)
- **docs: auto-update feature parity trackers [skip ci]** (afd2f71)
- **docs: sync extended-ollama CI recipe with unprefixed OLLAMA_VERSION** (654ae66)
- **docs: auto-update documentation parity trackers [skip ci]** (d9453cb)

### Chore
- **ci: re-trigger unit suite after flaky native segfault (no code change)** (6cf5751)
- **ci: extend optimised smoke job timeout to 16 minutes (#5634)** (4d604e7)

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