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

_100 commits._

### Features
- **feat(workflows): cache step results by their inputs** (069957b)
- **feat(agent): export an Agent or team back to a config dict** (06cfec8)
- **feat(agentos): read endpoints for runs, sessions and approvals** (ddfd70d)
- **feat(runtime): move a durable run between processes** (8913170)

### Fixes
- **fix: remove orphaned handle_sandbox_command dead code (fixes #5086)** (1c5bdfa)
- **Merge pull request #4978 from MervinPraison/fix/eventbus-history-contradiction** (022f220)
- **fix: cover supervisor shutdown path + harden deadline watchdog (#5079)** (62c7205)
- **fix: reach production DB adapter + safe protocol/restore for tool turns (#5075)** (da89582)
- **fix: honour cancel_token across full streaming tool path (#5073)** (8153a4b)
- **fix: keep #5077 fix minimal — revert out-of-scope backend timeout** (7abc716)
- **fix: retry-safe MCP runner join on shutdown; timeout-aware stop()** (c70128b)
- **fix: add shutdown-phase deadline watchdog for wedged graceful drain (fixes #5079)** (3d1c3c8)
- **fix: persist and restore tool turns on DbAdapter session path (fixes #5075)** (dfa1e0f)
- **fix: forward cancel_token to tool batch executor (fixes #5073)** (ab5d6df)
- **fix: bound async middleware tool wait by tool timeout (fixes #5077)** (9ac7a5b)
- **fix: MCP.shutdown() joins runner thread and kills stdio subprocess (fixes #5074)** (141efe5)
- **fix: enforce capability contract on gateway path + harden verifier** (8b956e4)
- **fix: verify channel adapter capability contracts at build time (fixes #5071)** (0bd57e1)
- **Merge pull request #5057 from MervinPraison/fix/merge-gate-verdict-wait** (226c39d)
- **fix(ci): merge-only waits for Opus verdict on busy PRs** (6a48550)
- **fix: loop-independent per-agent concurrency + health-check backward compat** (2c5a727)
- **Merge pull request #4990 from MervinPraison/fix/runtime-unknown-id-importerror-and-silent-empty-turn** (341a1b4)
- **Merge pull request #4983 from MervinPraison/fix/session-tests-stale-after-two-extractions** (f9aad54)
- **Merge pull request #4999 from MervinPraison/fix/step-result-cache** (90c5aea)
- **Merge pull request #4997 from MervinPraison/fix/claw-help-emoji-breaks-cp1252** (8e43e07)
- **fix(knowledge): a partially-indexed file was reported as fully indexed** (0f70879)
- **Merge pull request #4979 from MervinPraison/fix/portable-run-state** (18cef4c)
- **Merge pull request #4995 from MervinPraison/fix/patch-targets-and-optional-jira** (8df1420)
- **Merge pull request #4992 from MervinPraison/fix/six-reds-across-five-subsystems** (4935658)
- **Merge pull request #4982 from MervinPraison/fix/repeat-accepts-a-list** (83f2231)
- **Merge pull request #4985 from MervinPraison/fix/agent-config-round-trip** (9c76100)
- **Merge pull request #4988 from MervinPraison/fix/knowledge-index-reports-success-with-zero-files** (b97d694)
- **Merge pull request #4980 from MervinPraison/fix/agentos-read-endpoints** (d2c49e8)
- **fix: migrate stale FTS index + align window scroll for archived recall (#5031)** (02ca62d)
- **fix: recall spans compacted history — index+scan archived_messages (fixes #5031)** (7a7137a)
- **fix: loop-neutral concurrency permit pool + health-check backward compat** (bf75be0)
- **Merge pull request #4972 from MervinPraison/fix/tests-read-the-developers-machine** (0f2b565)
- **fix(cli): race-safe sys.modules snapshot in shim to stop concurrent iteration crash** (4c8a416)
- **Merge pull request #4987 from MervinPraison/fix/config-exports-and-ungated-live-tests** (f4a25bf)
- **fix: cross-loop semaphore, uncapped backoff, HealthCheckProtocol mismatch (fixes #5025)** (252862e)
- **fix(runtime): faithful portable run import — lifecycle, overwrite, atomicity, lazy load** (c6c4a20)
- **fix(agentos): wire approvals endpoint, bound limits, harden session 404** (ee0ca96)
- **fix(workflows): propagate member stop and handle empty Repeat list** (308cb06)
- **fix(workflows): correct step-cache failure caching, variable replay, aliasing** (17095d9)
- **fix(runtime): preserve factory ValueErrors instead of relabeling them as unknown-runtime; make MongoDB-fallback test wrapper-independent** (37c04d8)
- **fix: report partial-index chunk loss; harden hook + plugin tests** (2965bf8)
- **fix(agent): export reasoning_effort and flag the team task-graph gap** (5540eb2)
- **fix: drop duplicate timeout breaker record after rebase onto main** (b7dfa3b)
- **fix: count tool timeouts against the async breaker; scrub user-config env; refresh stale root pins** (c901ad9)
- **fix: planning result collection, alias-safe string tools, async Ollama in-batch chaining** (0aa8d84)
- **fix: merge duplicated _durable_iteration_kwargs helper (fixes #5045)** (eed8644)
- **fix: correct output-ceiling lookup and thread resolved max-tokens through all run paths** (853cded)
- **fix: harden memory trust boundary (fail-closed labels, null-safe recall)** (8d360e9)
- **fix: resolve string tools on OpenAI path, honour planning in astart(), share Ollama chaining (fixes #5013)** (1205343)
- **fix: derive/clamp `run --max-tokens` from resolved model's output ceiling (fixes #5017)** (773e589)
- **fix: add memory provenance/trust boundary for untrusted input (fixes #5028)** (5f9af1a)
- **fix(cli): an emoji in claw's help crashes cp1252 consoles again** (9488a05)
- **fix(runtime): a typo'd runtime id raised ImportError; an empty turn reported no error** (018d7f2)
- **fix(knowledge): index() reported success after failing to index every file** (dcace36)
- **fix(config): seven config classes for public parameters were not importable** (04ea4c6)
- **fix(workflows): repeat() accepts a list of steps instead of stringifying it** (21114bd)

### Backend
- **Release v4.7.8** (1af23b3)
- **Merge pull request #5087 from MervinPraison/claude/issue-5086-20260914-1616** (40f992f)
- **Merge pull request #5084 from MervinPraison/claude/issue-5079-20260914-0948** (b31ce4c)
- **Merge pull request #5082 from MervinPraison/claude/issue-5075-20260914-0945** (c8cdb01)
- **Merge pull request #5081 from MervinPraison/claude/issue-5073-20260914-0945** (1884aef)
- **Merge pull request #5078 from MervinPraison/claude/issue-5074-20260914-0945** (daafe1b)
- **Merge pull request #5080 from MervinPraison/claude/issue-5077-20260914-0945** (8989cad)
- **Merge pull request #5072 from MervinPraison/claude/issue-5071-20260914-0916** (1b154c1)
- **Merge pull request #5046 from MervinPraison/claude/issue-5045-20260910-1728** (aef1910)
- **Merge pull request #5040 from MervinPraison/claude/issue-5025-20260910-1654** (3317ead)
- **Merge pull request #5044 from MervinPraison/claude/issue-5013-20260910-1655** (c5a4b14)
- **Merge pull request #5043 from MervinPraison/claude/issue-5017-20260910-1655** (a9e10df)
- **Merge pull request #5047 from MervinPraison/claude/issue-5031-20260910-1900** (14af437)
- **Merge pull request #5050 from MervinPraison/claude/issue-5025-20260910-1906** (f550b58)
- **Merge pull request #5042 from MervinPraison/claude/issue-5028-20260910-1654** (6a42a54)

### Tests
- **test(bus): the EventBus suite asserted a contract and its opposite** (72ee27a)
- **test(session): importorskip the top-level bot package, then import _session normally** (10ea486)
- **test(knowledge): gate agentic retry tests with live marker; keep deterministic index check running** (45a2814)
- **test(config): derive export-completeness guard from signatures, not a table** (0f384ea)
- **test(code): ten tests were reading the developer's machine, not the code** (268fd8d)
- **test: an optional extra failed instead of skipping; six patches aimed at the wrong module** (ed25dba)
- **test: six reds across hooks, memory, plugins, skills and streaming** (d232008)
- **test(session): twelve reds from a moved package and a cache removed for causing data loss** (d32b262)

### Docs
- **docs: auto-update documentation parity trackers [skip ci]** (b4409ca)
- **docs: auto-update documentation parity trackers [skip ci]** (54c360a)
- **docs: auto-update documentation parity trackers [skip ci]** (702474d)
- **docs: auto-update documentation parity trackers [skip ci]** (ed0050f)
- **docs: auto-update documentation parity trackers [skip ci]** (a6954af)
- **docs: auto-update feature parity trackers [skip ci]** (43a106d)
- **docs: auto-update api.md [skip ci]** (ce05db1)
- **docs: auto-update documentation parity trackers [skip ci]** (7658322)
- **docs: auto-update documentation parity trackers [skip ci]** (077d597)
- **docs: auto-update documentation parity trackers [skip ci]** (db83269)
- **docs: auto-update documentation parity trackers [skip ci]** (dca598e)
- **docs: auto-update documentation parity trackers [skip ci]** (269eb3d)
- **docs: auto-update api.md [skip ci]** (60c7936)
- **docs: auto-update documentation parity trackers [skip ci]** (7b7ab71)

### Chore
- **chore: drop accidentally committed knowledge.db test artifact** (ac2bd45)
- **ci: re-trigger checkout after transient upload-pack fetch error** (63603bd)

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