Joshua Valluru
6e85c562a9
ci(mcp): correct conformance test and coverage reporting
2026-10-01 18:43:35 -07:00
Joshua Valluru
d1a045f4f4
test(mcp): avoid coverage import overhead in conformance peers
2026-10-01 18:43:35 -07:00
Joshua Valluru
e342a62a1a
test(mcp): preserve stdio environment during coverage
2026-10-01 18:43:35 -07:00
Joshua Valluru
7e68b248f8
test(mcp): carry conformance coverage into stdio peers
2026-10-01 18:43:35 -07:00
Joshua Valluru
4003899c53
test(mcp): make selected-file checks independently runnable
2026-10-01 18:43:35 -07:00
Joshua Valluru
08de7765e1
test(mcp): isolate matrix helper import setup
2026-10-01 18:43:35 -07:00
Joshua Valluru
5713ad03cb
fix(mcp): preserve request-only peer log consumers
2026-10-01 18:43:35 -07:00
Joshua Valluru
2c05e8bad8
fix(mcp): preserve the peer log schema for negotiation records
2026-10-01 18:43:35 -07:00
Joshua Valluru
d099c0f66f
fix(mcp): retain complete requirements for full group runs
2026-10-01 18:43:35 -07:00
Joshua Valluru
072053dc47
fix(mcp): scope conformance requirements to selected files
2026-10-01 18:43:35 -07:00
Joshua Valluru
6422498897
test(mcp): require only emitted raw transport conformance checks
2026-10-01 18:43:35 -07:00
Joshua Valluru
fc2010de06
test(mcp): enforce complete revision and transport conformance
2026-10-01 18:43:35 -07:00
Joshua Valluru
1df0f738b0
chore(mcp): align regression paths and lint with current main
LiteLLM Rust / rust-lint (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
Terraform Provider / gofmt, vet, build, test (push) Has been cancelled
Terraform Provider / Provider endpoints vs proxy OpenAPI schema (push) Has been cancelled
2026-10-01 18:43:14 -07:00
Joshua Valluru
42970ca1cf
chore(mcp): document required session state mutability
2026-10-01 18:43:14 -07:00
Joshua Valluru
37b8f0dce3
test(mcp): isolate reload cooldown from shared discovery
2026-10-01 18:43:14 -07:00
Joshua Valluru
9906303fb4
fix(mcp): bound client terminated session retention
2026-10-01 18:43:14 -07:00
Joshua Valluru
e7b15b8bb6
ci(mcp): include mapped protocol regression tests in the existing shard
2026-10-01 18:43:14 -07:00
Joshua Valluru
fbb2a9cd5d
fix(mcp): finish streamed responses before releasing session handlers
2026-10-01 18:43:14 -07:00
Joshua Valluru
def57abac8
fix(mcp): reject replay of explicitly terminated sessions
2026-10-01 18:43:14 -07:00
Joshua Valluru
05ee360a79
fix(mcp): route progress to the originating request stream
2026-10-01 18:43:14 -07:00
Joshua Valluru
84e15a90f0
test(mcp): verify omitted arguments through admitted and denied callers
2026-10-01 18:43:14 -07:00
Joshua Valluru
8b95189ee5
fix(mcp): accept omitted arguments on protocol tool calls
2026-10-01 18:43:14 -07:00
Joshua Valluru
a886e014bb
test(mcp): cite pinned reference payload fixtures
LiteLLM Rust / rust-lint (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
Terraform Provider / gofmt, vet, build, test (push) Has been cancelled
Terraform Provider / Provider endpoints vs proxy OpenAPI schema (push) Has been cancelled
2026-10-01 18:43:09 -07:00
Joshua Valluru
0db12da43e
test(mcp): support standalone conformance helper execution
2026-10-01 18:29:35 -07:00
Joshua Valluru
ddf88dfdc8
fix(mcp): isolate helper coverage from test proxy startup
2026-10-01 18:29:35 -07:00
Joshua Valluru
0b9a1e1b4a
test(mcp): call the advertised conformance tool name
2026-10-01 18:29:35 -07:00
Joshua Valluru
1b3627588f
test(mcp): require complete reports payloads and process cleanup
2026-10-01 18:29:35 -07:00
Joshua Valluru
0b4f465921
test(mcp): verify forced cleanup of a stalled reference
2026-10-01 18:29:35 -07:00
Joshua Valluru
61e683f693
ci(mcp): publish conformance helper coverage
2026-10-01 18:29:35 -07:00
Joshua Valluru
056c6d927a
test(mcp): verify conformance bridge fidelity and runner failure
2026-10-01 18:29:35 -07:00
Joshua Valluru
e50465654a
test(mcp): use advertised fixture names without warming discovery
2026-10-01 18:29:35 -07:00
Joshua Valluru
4e05d745ea
test(mcp): add pinned official conformance smoke checks
2026-10-01 18:29:35 -07:00
devin-ai-integration[bot]
123237c8a8
fix(proxy-extras): bound the lock waits of the partitioned SpendLogs index build ( #44109 )
...
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 18:28:50 -07:00
devin-ai-integration[bot]
3f39fef52f
perf(traces): recalculate ClickHouse TTL info only on retention changes ( #44117 )
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-02 01:22:37 +00:00
yujonglee
ae6b762190
refactor(tracing): normalize agent spans in Rust ( #44071 )
...
* refactor(tracing): normalize agent spans in Rust
* refactor(tracing): generate dashboard trace types from API
* test(tracing): use complete trace response fixtures
* fix(ui): expose generated span error response type
* fix(tracing): retain full tool call payloads
* fix(tracing): preserve decoded attribute tuple shape
* fix(tracing): type consumed attributes as tuple
2026-10-01 18:01:20 -07:00
devin-ai-integration[bot]
e3c15c9d22
feat(rust): embed migration folders with a shared migrate! macro ( #44104 )
...
* feat(rust): embed migration folders with a shared migrate! macro
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(rust): enable syn proc-macro feature for litellm-migrate-macros
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(rust): reject signed versions and symlinks in migrate!
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
---------
Co-authored-by: Yujong Lee <yujong@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 17:52:54 -07:00
shrey-berri
1e75147856
fix(providers): keep thinking display updates beta ( #43969 )
2026-10-01 17:42:02 -07:00
berriai-litellm-provider-info-sync[bot]
6a8e0a270a
chore(cost-map): sync openrouter prices from the models API ( #44105 )
...
Price-Sync: litellm-providers
Co-authored-by: berriai-litellm-provider-info-sync[bot] <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com>
2026-10-01 17:24:51 -07:00
moe-berri
cc42a352cb
feat(lens): simplify setup and investigation workflow ( #44089 )
...
* feat(lens): simplify investigation setup and results
* fix(lens): pin worker with actionable failure diagnostics
* fix(lens): focus worker success on starting an investigation
* feat(lens): simplify investigation setup and worker defaults
* fix(lens): remove setup repetition and label billing access
* fix(lens): finish agent selection and setup readiness
* fix(lens): handle unavailable setup dependencies and restore UI build
2026-10-01 17:21:41 -07:00
berriai-litellm-provider-info-sync[bot]
0737e26463
fix(cost-map): restore later azure Models API retirement dates and date gpt-6.1-sol ( #44072 )
...
Price-Sync: litellm-providers
Co-authored-by: berriai-litellm-provider-info-sync[bot] <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com>
Co-authored-by: kerry-berri <kerry@berri.ai>
2026-10-01 17:16:03 -07:00
devin-ai-integration[bot]
9351463755
fix(proxy): persist SSO display name as user_alias on login ( #44065 )
...
* fix(proxy): persist SSO display name as user_alias on login
Generic/Microsoft SSO already parsed the IdP display_name, first_name and last_name into the SSO result, but the user upsert only wrote user_email and user_role, so the Users table never showed a name. Store the display name (first + last as fallback) as user_alias on first login and on later logins of users whose alias is still empty; never overwrite an alias already set. Whitespace-only names are treated as missing.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(proxy): keep stored user_email when SSO login carries no email claim
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* revert: keep stored user_email change, login writes the IdP email as before
Reverts 47c65cecff . A stored email staying eligible for email-based account linking after the IdP stops sending it is not wanted; the PR goes back to the user_alias fix only
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
---------
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 17:14:31 -07:00
yuneng-jiang
3a91029328
build(docker): drop the no-op PROXY_EXTRAS_SOURCE switch from the non-root image ( #44097 )
...
uv sync --frozen ignores --no-sources-package, so the "published" branch
already installed litellm-proxy-extras from the workspace (the shipped
main-stable non-root image records file:///app/litellm-proxy-extras in its
direct_url.json). Both branches ran the same install. Keep the single
uv sync that the main and database images use.
2026-10-01 17:06:08 -07:00
devin-ai-integration[bot]
ee3eff26cb
feat(ui): usage pages consume bounded daily activity routes ( #43409 )
...
Resolves LIT-8899
Usage, cost optimization, user and team pages read the aggregate, paginated key, search, model top key, cache leakage and export routes added by the lower layers instead of downloading every key's daily rows into the browser. Key detail, model top key and search failures render explicit errors with retry controls, Overall Usage shows a loader while the aggregate is in flight, Retry on a failed first key page shows the loading state while it refetches, a short query keeps the loader or first page error visible instead of No keys match, key paging advances by the server offset so a page of already loaded keys moves on and only an empty page ends paging, and search results are stored as rows so a new teams array from the parent does not restart an in-flight search, and the global Cost tab shows a loader instead of zero totals while the aggregate reloads.
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 17:03:09 -07:00
devin-ai-integration[bot]
54a51c80df
feat(proxy): bounded daily activity routes for all usage entities ( #43408 )
...
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 16:57:23 -07:00
shrey-berri
339f5b6a4d
fix(bedrock): add beta for mid-conversation tool changes ( #43833 )
2026-10-01 16:42:46 -07:00
devin-ai-integration[bot]
aa601ce4e8
refactor(repositories): daily activity repository with centralized bounded usage queries ( #43398 )
...
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 16:02:01 -07:00
yuneng-jiang
4b1d9bf148
test(e2e): keep 1ms-timeout deployments off the provider cache ( #44082 )
...
The timeout reliability tests rely on a 1ms deadline the real backend always
misses. With E2E_PROVIDER_CACHE on, the deployment pointed at the cache edge,
and its healthy sibling in the same test had already recorded a response for
the same canonical request, so the edge answered from Redis inside the 1ms read
window. Build 342 of litellm-e2e saw test_timeout_trips_cooldown_then_recovers
get a 200 from the timing-out deployment itself, with a recording made about
12 hours earlier. Both timeout helpers now register on the live provider path,
which PROVIDER_CACHE.md reserves for tests that need real provider timing
2026-10-01 15:54:02 -07:00
devin-ai-integration[bot]
03743ae020
feat(proxy): add LITELLM_DISABLE_LAZY_ROUTES to register optional routers at startup ( #43911 )
...
* feat(proxy): add LITELLM_DISABLE_LAZY_ROUTES to register optional routers at startup
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(proxy): register eager lazy routes at startup so late eager routes keep precedence
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* refactor(proxy): share one optional-feature install path between lazy and eager registration
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* docs(proxy): say eager lazy routes register at worker startup
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* refactor(proxy): name the import callable passed to _install
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* test(integration): prove a startup hook can drop eager lazy routes for good
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* test(integration): strip the lazy-routes flag from the lazy-mode control proxies
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* test(proxy): cover the lazy warmup route registering a feature
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* ci(unit): run tests/unit/proxy/test__lazy_features.py in the proxy-server-core shard
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* test(integration): audit cells for LITELLM_DISABLE_LAZY_ROUTES
Flag spellings, /openapi.json at boot, the warm-up route in both modes, /mcp/proxy ahead of the /mcp mount,
route table and OpenAPI parity with a fully warmed lazy proxy, a broken optional import in both modes, every
client SDK against the completion endpoints, a boot burst with a killed worker, and a restart
* fix(proxy): keep config pass-through routes ahead of eagerly registered features
With LITELLM_DISABLE_LAZY_ROUTES set, features registered before the proxy lifespan
added config pass-through endpoints, so a pass-through overlapping a feature path
(e.g. a self-hosted /langfuse) lost to the built-in route. Restore lazy mode's
registry order once startup finishes, without bringing back routes a startup hook removed
---------
Co-authored-by: ryan <ryan@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 22:50:41 +00:00
ishaan-berri
46196339d2
feat(ui): add test trace, tracing key and otel endpoints to tracing setup ( #44090 )
...
* feat(ui): add a call that posts an OTLP export to the proxy
* feat(ui): build a sample agent run as an OTLP export
* feat(ui): add a pulsing dot for active tracing
* feat(ui): render a crisp sample run preview from real trace components
* chore(ui): remove the pixelated agent traces preview image
* feat(ui): add test trace, tracing key, otel endpoints and more frameworks to tracing setup
* test(ui): cover tracing setup test trace, key masking, endpoints and frameworks
* feat(ui): open the received test trace and mark tracing as active
* test(ui): mock the new tracing setup network calls
* fix(ui): let tracing setup use the full page width
* fix(ui): send OTLP/JSON sample trace ids as hex per the spec
* test(ui): cover the sample trace export shape and hex ids
2026-10-01 22:45:31 +00:00
ishaan-berri
0f6a06a6b9
feat: add litellm.agent() to run claude code, codex, opencode and deep agents through the ai gateway ( #43885 )
...
* feat(harness): add litellm/__init__.py
* feat(harness): add litellm/constants.py
* feat(harness): add litellm/harness/__init__.py
* feat(harness): add litellm/harness/adapters/__init__.py
* feat(harness): add litellm/harness/adapters/base.py
* feat(harness): add litellm/harness/adapters/claude_code.py
* feat(harness): add litellm/harness/adapters/codex.py
* feat(harness): add litellm/harness/adapters/opencode.py
* feat(harness): add litellm/harness/endpoint.py
* feat(harness): add litellm/harness/errors.py
* feat(harness): add litellm/harness/options.py
* feat(harness): add litellm/harness/runtime.py
* feat(harness): add litellm/harness/sandbox/__init__.py
* feat(harness): add litellm/harness/sandbox/base.py
* feat(harness): add litellm/harness/sandbox/docker.py
* feat(harness): add litellm/harness/sandbox/local.py
* feat(harness): add litellm/harness/sandbox/snapshot.py
* feat(harness): add litellm/harness/sync.py
* feat(harness): add litellm/harness/types.py
* feat(harness): add litellm/sandbox/__init__.py
* feat(harness): add README.md
* feat(harness): add tests/harness_e2e/__init__.py
* feat(harness): add tests/harness_e2e/conftest.py
* feat(harness): add tests/harness_e2e/test_harness_e2e.py
* feat(harness): add tests/test_litellm/harness/__init__.py
* feat(harness): add tests/test_litellm/harness/adapters/__init__.py
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/claude_code/api_error.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/claude_code/max_turns.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/claude_code/resume_turn.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/claude_code/structured_output.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/claude_code/success_tools.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/codex/reasoning.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/codex/structured_output.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/codex/turn_failed.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/codex/turn1_bash.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/codex/turn2_resume_apply_patch.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/opencode/api_error.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/opencode/endpoint_requests.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/opencode/readonly_denied_bash.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/opencode/turn1_write_read.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/fixtures/opencode/turn2_session_skill.jsonl
* feat(harness): add tests/test_litellm/harness/adapters/test_claude_code.py
* feat(harness): add tests/test_litellm/harness/adapters/test_codex.py
* feat(harness): add tests/test_litellm/harness/adapters/test_opencode.py
* feat(harness): add tests/test_litellm/harness/core_fakes.py
* feat(harness): add tests/test_litellm/harness/sandbox/__init__.py
* feat(harness): add tests/test_litellm/harness/sandbox/test_docker.py
* feat(harness): add tests/test_litellm/harness/sandbox/test_local.py
* feat(harness): add tests/test_litellm/harness/sandbox/test_snapshot.py
* feat(harness): add tests/test_litellm/harness/test_endpoint.py
* feat(harness): add tests/test_litellm/harness/test_init.py
* feat(harness): add tests/test_litellm/harness/test_runtime.py
* feat(harness): add tests/test_litellm/harness/test_sync.py
* feat(harness): add tests/test_litellm/harness/test_types.py
* test(harness): use word recall in stream e2e test
* refactor(harness): update litellm/__init__.py
* refactor(harness): update litellm/constants.py
* refactor(harness): update litellm/harness/__init__.py
* refactor(harness): remove litellm/harness/adapters/__init__.py
* refactor(harness): update litellm/harness/context.py
* refactor(harness): update litellm/harness/endpoint.py
* refactor(harness): update litellm/harness/handlers/__init__.py
* refactor(harness): update litellm/harness/handlers/base.py
* refactor(harness): update litellm/harness/handlers/cli_handler.py
* refactor(harness): update litellm/harness/handlers/deepagents_handler.py
* refactor(harness): update litellm/harness/runtime.py
* refactor(harness): update litellm/harness/sandbox/docker.py
* refactor(harness): update litellm/harness/sandbox/local.py
* refactor(harness): update litellm/harness/sync.py
* refactor(harness): update litellm/harness/types.py
* refactor(harness): update litellm/llms/base_llm/harness/__init__.py
* refactor(harness): update litellm/llms/base_llm/harness/transformation.py
* refactor(harness): update litellm/llms/base_llm/harness/utils.py
* refactor(harness): update litellm/llms/claude_code/__init__.py
* refactor(harness): update litellm/llms/claude_code/harness/__init__.py
* refactor(harness): update litellm/llms/claude_code/harness/transformation.py
* refactor(harness): update litellm/llms/codex/__init__.py
* refactor(harness): update litellm/llms/codex/harness/__init__.py
* refactor(harness): update litellm/llms/codex/harness/transformation.py
* refactor(harness): update litellm/llms/deepagents/__init__.py
* refactor(harness): update litellm/llms/deepagents/harness/__init__.py
* refactor(harness): update litellm/llms/deepagents/harness/sandbox_backend.py
* refactor(harness): update litellm/llms/deepagents/harness/transformation.py
* refactor(harness): update litellm/llms/opencode/__init__.py
* refactor(harness): update litellm/llms/opencode/harness/__init__.py
* refactor(harness): update litellm/llms/opencode/harness/transformation.py
* refactor(harness): update litellm/utils.py
* refactor(harness): update README.md
* refactor(harness): update tests/harness_e2e/conftest.py
* refactor(harness): update tests/harness_e2e/test_harness_e2e.py
* refactor(harness): remove tests/test_litellm/harness/__init__.py
* refactor(harness): remove tests/test_litellm/harness/adapters/__init__.py
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/claude_code/api_error.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/claude_code/max_turns.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/claude_code/resume_turn.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/claude_code/structured_output.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/claude_code/success_tools.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/codex/reasoning.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/codex/structured_output.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/codex/turn_failed.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/codex/turn1_bash.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/codex/turn2_resume_apply_patch.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/opencode/api_error.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/opencode/endpoint_requests.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/opencode/readonly_denied_bash.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/opencode/turn1_write_read.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/fixtures/opencode/turn2_session_skill.jsonl
* refactor(harness): remove tests/test_litellm/harness/adapters/test_claude_code.py
* refactor(harness): remove tests/test_litellm/harness/adapters/test_codex.py
* refactor(harness): remove tests/test_litellm/harness/adapters/test_opencode.py
* refactor(harness): remove tests/test_litellm/harness/core_fakes.py
* refactor(harness): remove tests/test_litellm/harness/sandbox/__init__.py
* refactor(harness): remove tests/test_litellm/harness/sandbox/test_docker.py
* refactor(harness): remove tests/test_litellm/harness/sandbox/test_local.py
* refactor(harness): remove tests/test_litellm/harness/sandbox/test_snapshot.py
* refactor(harness): remove tests/test_litellm/harness/test_endpoint.py
* refactor(harness): remove tests/test_litellm/harness/test_init.py
* refactor(harness): remove tests/test_litellm/harness/test_runtime.py
* refactor(harness): remove tests/test_litellm/harness/test_sync.py
* refactor(harness): remove tests/test_litellm/harness/test_types.py
* refactor(harness): update tests/unit/harness/__init__.py
* refactor(harness): update tests/unit/harness/core_fakes.py
* refactor(harness): update tests/unit/harness/handlers/__init__.py
* refactor(harness): update tests/unit/harness/handlers/test_deepagents_handler.py
* refactor(harness): update tests/unit/harness/sandbox/__init__.py
* refactor(harness): update tests/unit/harness/sandbox/test_docker.py
* refactor(harness): update tests/unit/harness/sandbox/test_local.py
* refactor(harness): update tests/unit/harness/sandbox/test_snapshot.py
* refactor(harness): update tests/unit/harness/test_endpoint.py
* refactor(harness): update tests/unit/harness/test_init.py
* refactor(harness): update tests/unit/harness/test_runtime.py
* refactor(harness): update tests/unit/harness/test_sync.py
* refactor(harness): update tests/unit/harness/test_types.py
* refactor(harness): update tests/unit/llms/claude_code/__init__.py
* refactor(harness): update tests/unit/llms/claude_code/harness/__init__.py
* refactor(harness): update tests/unit/llms/claude_code/harness/fixtures/api_error.jsonl
* refactor(harness): update tests/unit/llms/claude_code/harness/fixtures/max_turns.jsonl
* refactor(harness): update tests/unit/llms/claude_code/harness/fixtures/resume_turn.jsonl
* refactor(harness): update tests/unit/llms/claude_code/harness/fixtures/structured_output.jsonl
* refactor(harness): update tests/unit/llms/claude_code/harness/fixtures/success_tools.jsonl
* refactor(harness): update tests/unit/llms/claude_code/harness/test_transformation.py
* refactor(harness): update tests/unit/llms/codex/__init__.py
* refactor(harness): update tests/unit/llms/codex/harness/__init__.py
* refactor(harness): update tests/unit/llms/codex/harness/fixtures/reasoning.jsonl
* refactor(harness): update tests/unit/llms/codex/harness/fixtures/structured_output.jsonl
* refactor(harness): update tests/unit/llms/codex/harness/fixtures/turn1_bash.jsonl
* refactor(harness): update tests/unit/llms/codex/harness/fixtures/turn2_resume_apply_patch.jsonl
* refactor(harness): update tests/unit/llms/codex/harness/fixtures/turn_failed.jsonl
* refactor(harness): update tests/unit/llms/codex/harness/test_transformation.py
* refactor(harness): update tests/unit/llms/deepagents/__init__.py
* refactor(harness): update tests/unit/llms/deepagents/harness/__init__.py
* refactor(harness): update tests/unit/llms/deepagents/harness/test_transformation.py
* refactor(harness): update tests/unit/llms/opencode/__init__.py
* refactor(harness): update tests/unit/llms/opencode/harness/__init__.py
* refactor(harness): update tests/unit/llms/opencode/harness/fixtures/api_error.jsonl
* refactor(harness): update tests/unit/llms/opencode/harness/fixtures/endpoint_requests.jsonl
* refactor(harness): update tests/unit/llms/opencode/harness/fixtures/readonly_denied_bash.jsonl
* refactor(harness): update tests/unit/llms/opencode/harness/fixtures/turn1_write_read.jsonl
* refactor(harness): update tests/unit/llms/opencode/harness/fixtures/turn2_session_skill.jsonl
* refactor(harness): update tests/unit/llms/opencode/harness/test_transformation.py
* ci: allowlist tests/harness_e2e, which needs live runtimes and a gateway
* fix(harness): bound the turn event queue
* fix(harness): bound the turn event queue with backpressure
* style: sort imports in utils
* ci: exclude agent-harness config folders from provider docs check
* refactor(harness): update tests/harness_e2e/conftest.py
* refactor(harness): update tests/harness_e2e/test_harness_e2e.py
* refactor(harness): update tests/unit/harness/core_fakes.py
* refactor(harness): update tests/unit/harness/handlers/test_deepagents_handler.py
* refactor(harness): update tests/unit/harness/test_runtime.py
* refactor(harness): update tests/unit/harness/test_sync.py
* refactor(harness): update tests/unit/llms/deepagents/harness/test_transformation.py
* refactor(harness): update tests/unit/llms/opencode/harness/test_transformation.py
* refactor(harness): update litellm/harness/endpoint.py
* refactor(harness): update litellm/harness/handlers/deepagents_handler.py
* refactor(harness): update litellm/harness/options.py
* refactor(harness): update litellm/harness/runtime.py
* refactor(harness): update litellm/harness/sandbox/snapshot.py
* refactor(harness): update litellm/llms/base_llm/harness/transformation.py
* refactor(harness): update litellm/llms/base_llm/harness/utils.py
* refactor(harness): update litellm/llms/claude_code/harness/transformation.py
* refactor(harness): update litellm/llms/codex/harness/transformation.py
* refactor(harness): update litellm/llms/deepagents/harness/sandbox_backend.py
* refactor(harness): update litellm/llms/deepagents/harness/transformation.py
* refactor(harness): update litellm/llms/opencode/harness/transformation.py
* refactor(harness): update litellm/sandbox/__init__.py
* refactor(harness): update tests/unit/llms/claude_code/harness/test_transformation.py
* refactor(harness): update tests/unit/llms/deepagents/harness/test_sandbox_backend_symlinks.py
* refactor(harness): update tests/unit/llms/opencode/harness/test_transformation.py
* refactor(harness): update litellm/llms/base_llm/harness/utils.py
* refactor(harness): update litellm/llms/codex/harness/transformation.py
* refactor(harness): update tests/code_coverage_tests/recursive_detector.py
* refactor(harness): update tests/unit/llms/base_llm/harness/__init__.py
* refactor(harness): update tests/unit/llms/claude_code/harness/fixtures/__init__.py
* refactor(harness): update tests/unit/llms/codex/harness/fixtures/__init__.py
* refactor(harness): update tests/unit/llms/opencode/harness/fixtures/__init__.py
* refactor(harness): update litellm/harness/__init__.py
* refactor(harness): update litellm/harness/context.py
* refactor(harness): update litellm/harness/endpoint.py
* refactor(harness): update litellm/harness/handlers/__init__.py
* refactor(harness): update litellm/harness/handlers/base.py
* refactor(harness): update litellm/harness/handlers/cli_handler.py
* refactor(harness): update litellm/harness/handlers/deepagents_handler.py
* refactor(harness): update litellm/harness/runtime.py
* refactor(harness): update litellm/harness/sandbox/__init__.py
* refactor(harness): update litellm/harness/sandbox/base.py
* refactor(harness): update litellm/harness/sandbox/docker.py
* refactor(harness): update litellm/harness/sandbox/local.py
* refactor(harness): update litellm/harness/sandbox/snapshot.py
* refactor(harness): update litellm/harness/sync.py
* refactor(harness): update litellm/harness/types.py
* refactor(harness): update litellm/llms/base_llm/harness/transformation.py
* refactor(harness): update litellm/llms/base_llm/harness/utils.py
* refactor(harness): update litellm/llms/claude_code/harness/transformation.py
* refactor(harness): update litellm/llms/codex/harness/transformation.py
* refactor(harness): update litellm/llms/deepagents/harness/sandbox_backend.py
* refactor(harness): update litellm/llms/deepagents/harness/transformation.py
* refactor(harness): update litellm/llms/opencode/harness/transformation.py
* refactor(harness): update litellm/types/llms/custom_http.py
* refactor(harness): update tests/unit/harness/test_endpoint.py
* refactor(harness): update litellm/harness/runtime.py
* refactor(harness): update litellm/llms/deepagents/harness/sandbox_backend.py
* refactor(harness): update tests/unit/harness/test_init.py
* refactor(harness): update tests/unit/harness/test_runtime.py
* refactor(harness): update tests/unit/llms/deepagents/harness/test_sandbox_backend_symlinks.py
2026-10-01 22:27:49 +00:00