Skip to content

Reliability fixes, merged upstream

The clearest proof that we read agent frameworks closely is the fixes we have landed in them. 4 merged pull requests below fix concrete AI/framework defects. Each links to the public PR. The full record also includes maintenance, typing, documentation, and workflow integrations.

Upstream contributionsVerified 2026-09-09 UTC4 AI/framework fixes46 merged code and documentation contributions

LangChain · 144k ★

Fixed thinking + tools crash in ChatAnthropic.bind_tools()

Anthropic’s API rejects forced tool_choice when extended thinking is enabled. LangChain’s bind_tools() could forward a forced tool choice while thinking was enabled, producing a 400 response. Ported the guard the structured-output path already had.

Pull requestlangchain/pull/35544StatusMergedReleasedlangchain-anthropic 1.3.5
Microsoft Semantic Kernel · 28k ★

Fixed ChatHistoryTruncationReducer silently deleting system prompts

The truncation reducer was calling extract_range, a summarization helper that filters out system and developer messages. System prompts were being dropped with no warning. Ported Microsoft’s own .NET fix to the Python SDK.

Pull requestsemantic-kernel/pull/13610StatusMergedReleasedpython-1.41.1
microsoft/semantic-kernel

.Net: fix: prevent duplicate "null" in JSON Schema type arrays for nullable parameters

Use value equality to avoid duplicate null entries in strict JSON Schema type arrays, with three regression tests.

Read the case study →

PR #13635Merged2026-06-16
Merge evidence
stanfordnlp/dspy

fix(evaluate): raise descriptive ValueError on empty devset instead of ZeroDivisionError

Reject an empty Evaluate devset with a descriptive ValueError before metric-summary division, with a regression test.

Read the case study →

PR #9978Merged2026-08-26
Merge evidence

46 merged upstream code and documentation contributions total. Beyond the 4 fixes above, 42 more across PyTorch Ignite, Optuna, React Router (56k ★), Nuxt (60k ★), MobX (28k ★), Cloudflare Workers SDK (4.4k ★), Sentry, ngrx, TSDoc, and others (maintenance and typing modernization). The count excludes 5 community-list submissions from 51 external merged pull requests returned by Browse merged pull requests by roli-lpci on GitHub.

Griptape · report resolved by maintainer

Reported incorrect namespace matching in LocalVectorStoreDriver

Roli Bosch reported that vector queries could return entries from another namespace sharing a hyphenated prefix. A Griptape maintainer fixed the matching logic and added a regression test, explicitly citing the report. The maintainer's fix merged on 13 July 2026. Hermes contributed the report; the maintainer authored the merged fix.

Maintainer fixgriptape/pull/2244

How these fixes get made: the case studies explain the defect, regression evidence, attribution and exact upstream outcome.

The complete external contribution record

One row per authored PR, verified against the upstream PR endpoint and changed files. Roli Bosch contributes under roli-lpci; the Hermes Labs attribution identifies our founder and credits earlier reporters and maintainers where relevant. Own-account and Hermes organization PRs are excluded.

Download the canonical structured ledger (JSON). The 46 merged engineering/documentation PRs comprise 41 code, workflow, typing or maintenance changes and 5 documentation-only changes. They include the 4 framework fixes and the accepted Rule Audit integration; these subsets must not be added again.

PR classes and upstream outcomes
ClassMergedOpenClosed, unmerged
AI/framework fixes4148
Other bug fixes593
Maintenance and compatibility272525
Typing200
Documentation5103
External integrations272
Documentation/ecosystem listings5145
Research/index submissions041
Features120

The earlier 33 total was a dated engineering/documentation subtotal. DSPy #9978 (26 August 2026) and mcs-agent-analyser #31 (3 September 2026) bring it to 35. The raw GitHub merged total also includes four community listings. Neither listings nor research-index entries count as merged code. Dates below are merge, closure or submission dates according to status.

AI/framework fixes · 26 PRs
closed-unmerged

567-labs/instructor #2122

Add retry token budgeting, separate validator data in prompts, and repair allow_override behavior; tests accompany the proposal. No general injection-prevention claim.

closed-unmerged

mem0ai/mem0 #5250

Convert Redis cosine distance to similarity (1 - distance); regression asserts distances 0.1/0.4 yield scores 0.9/0.6. Closed without merge; maintainer acknowledged the conversion in a broader sweep.

closed-unmerged

BerriAI/litellm #32203

Guard choices-less chunks during stream assembly and respect Model Armor fail_on_error during assembly failures; the original commit includes six regression cases. Closed without merge.

closed-unmerged

griptape-ai/griptape #2243

Use exact namespace matching to prevent vector results from leaking across hyphen-prefixed namespaces. The author closed this PR after the behavior was fixed upstream.

Other bug fixes · 17 PRs
closed-unmerged

langchain-ai/langchain #35899

Allocate independent metadata dictionaries as a defensive change; the PR does not establish an active runtime mutation path.

Latent aliasing hazard: the PR explicitly reports no current CallbackManager mutation path. Preserved as a defensive patch, excluded from the substantive runtime-fix count.

merged

travisennis/cake #509

Require Cake's Bash LLM judge to parse the complete response as strict JSON, allowing only one optional plain or json Markdown fence, so trailing or malformed content fails closed while tool-argument repair remains separate.

merged

travisennis/cake #511

Report invocation wall time separately from cumulative, potentially overlapping tool work and scheduled retry delays; remove unsupported exclusive-remainder and wall-share columns while retaining measurable activity from incomplete invocations.

merged

travisennis/cake #517

Reject lossy tool-argument JSON repair that could discard extra objects, doubled braces, or provider markup after a valid prefix, while preserving complete valid JSON and raw-control-character escaping.

open

apify/apify-cli #1394

Restore retry and backoff options when recursively removing files after the earlier rimraf-to-fs.rm migration, preserving force behavior and error propagation.

open

rivet-dev/agentos #1964

Merge caller-provided TypeScript permission scopes over AgentOS's secure baseline while preserving explicit overrides and the registered-binding auto-grant.

merged

nolabs-ai/nono #1816

Show path and network remediation guidance only when supervised diagnostics contain corresponding path or network-denial evidence, without changing sandbox enforcement.

merged

NovaCode37/claude-security-skills #47

Make all reported findings return exit code 1 across four previously inconsistent security-skill engines, with a shared minimum-severity filter governing both reports and exit decisions.

Maintenance and compatibility · 77 PRs
closed-unmerged

openclaw/openclaw #30424

fix: reorder system prompt sections to maximize Anthropic prefix caching

Prompt-ordering/cache optimization proposal. No measured cache improvement established by this audit; excluded from substantive defect totals.

merged

travisennis/cake #510

Run the existing offline evaluation-harness and session-metrics fixture suites in CI and the full local fixture aggregate for code-affecting changes.

Typing · 2 PRs
Documentation · 18 PRs
closed-unmerged

python-trio/trio #3505

Document that Trio subprocess APIs call subprocess.Popen from a worker thread and therefore inherit applicable per-thread operating-system state from that worker.

closed-unmerged

pastas/pastas #1342

Add a worked groundwater-observation sampling example that preserves measured values and original timestamps rather than interpolating to a regular index.

merged

watchlight-ai-beacon/watchlight-de #164

Document that an explicit same-named deepagents `subagents` entry with `tools: []` stops inheritance of the parent's custom tools, while framework middleware tools (e.g. deepagents filesystem tools) remain and need separate confinement.

merged

nolabs-ai/nono-packs #29

Require Nono provenance evidence - output naming Nono, or a successful `nono why --self` result with status DENIED - before pack guidance recommends sandbox permission remediation, route unconfirmed permission errors to a non-sandbox diagnosis, and stop inferring active profiles, across twelve harness packs.

External integrations · 11 PRs
closed-unmerged

NixOS/nixpkgs #552130

hermeneutic: init at 0.1.8

Closed-unmerged packaging proposal. GitHub reports contradictory/capped changed-file data, so technical acceptance and code contribution are intentionally uncounted.

open

samvitgersappa/Orbit #1

Repair the Little Canary adapter to use SecurityPipeline, preserve advisory behavior, and distinguish completed, degraded, unavailable, and failed screening.

open

packetcraft/llm-sec-workbench #2

Map degraded Little Canary results to ERROR instead of PASS while preserving fail-open behavior, structural-block precedence, raw status fields, and compatibility with older verdict objects.

Documentation/ecosystem listings · 24 PRs
Research/index submissions · 5 PRs
Features · 3 PRs
open

openai/openai-python #2925

fix: extend output_text to include code_interpreter and shell output

Proposed extension of output_text beyond message output; the existing message-only API behavior is explicit. Counted as a feature proposal, not a verified framework defect.

merged

travisennis/cake #504

Add cake debug skills to report selected skill-catalog XML size, approximate token count, and description lengths with advisory thresholds, without changing prompt rendering or skill filtering.

Substantive fixes submitted without merge

34 source-backed fixes remain open or closed without merge. Their patches and regression artifacts preserve the technical contribution; upstream adoption is stated separately. This audit inspects published evidence and does not claim a fresh execution of every historical test.

closed-unmerged

agno-agi/agno #6811

Allocate independent streaming tool-call dictionaries and prevent empty streaming names from overwriting the function name.

closed-unmerged

567-labs/instructor #2122

Add retry token budgeting, separate validator data in prompts, and repair allow_override behavior; tests accompany the proposal. No general injection-prevention claim.

closed-unmerged

mem0ai/mem0 #5250

Convert Redis cosine distance to similarity (1 - distance); regression asserts distances 0.1/0.4 yield scores 0.9/0.6. Closed without merge; maintainer acknowledged the conversion in a broader sweep.

closed-unmerged

BerriAI/litellm #32203

Guard choices-less chunks during stream assembly and respect Model Armor fail_on_error during assembly failures; the original commit includes six regression cases. Closed without merge.

closed-unmerged

griptape-ai/griptape #2243

Use exact namespace matching to prevent vector results from leaking across hyphen-prefixed namespaces. The author closed this PR after the behavior was fixed upstream.

open

samvitgersappa/Orbit #1

Repair the Little Canary adapter to use SecurityPipeline, preserve advisory behavior, and distinguish completed, degraded, unavailable, and failed screening.

open

apify/apify-cli #1394

Restore retry and backoff options when recursively removing files after the earlier rimraf-to-fs.rm migration, preserving force behavior and error propagation.

open

packetcraft/llm-sec-workbench #2

Map degraded Little Canary results to ERROR instead of PASS while preserving fail-open behavior, structural-block precedence, raw status fields, and compatibility with older verdict objects.

open

rivet-dev/agentos #1964

Merge caller-provided TypeScript permission scopes over AgentOS's secure baseline while preserving explicit overrides and the registered-binding auto-grant.

Mem0 #5250 closed without merge. Its maintainer acknowledged the conversion in #5391; the case study preserves the earlier community work and the original patch’s missing clamp. Griptape #2243 likewise remains unmerged; the maintainer authored the accepted fix #2244.

Back to the open-source catalog.