litellm/.github
Yassin Kortam 75973b3f0c refactor(e2e): derive coverage denominator from product surface
The e2e coverage denominator was a hand-written set of per-prefix YAML rows,
one per behavior. That is self-fulfilling: the row and its covering test land
in the same PR, so a wanted-but-untested behavior never surfaces as a gap and
coverage becomes a number we grant ourselves. Each LLM row also restated its
own id, since subject_endpoint, route, capability, and streaming just re-split
the cell id that schema.py already validates.

The conversational core (chat_completions, messages, responses) is now generated
in product_surface.py from the typed vocabularies in schema.py crossed with the
supports_* capability metadata in model_prices_and_context_window.json, the same
file the proxy ships. A flagged capability is emitted for a route only when a
model on that route advertises the matching flag, so support added in that json
grows the denominator with no registry edit. The Anthropic-format messages
surface is the Claude Code compatibility matrix, so its capabilities are the CLI
feature set and are intentionally ungated.

The id-duplicating fields are gone from the schema. One Cell dataclass replaces
the discriminated union; its module is parsed from the id and the structural
facets are recovered on demand by parse_llm_id. The human fields (tier, source,
rationale, fail_before_fix, supported) move to a single overlay.yaml keyed by
cell id, owner-gated via CODEOWNERS, so ordinary test PRs only add a
@pytest.mark.covers marker. A generated cell with no overlay row defaults to P2,
so a newly grown surface shows up as an uncovered gap rather than vanishing.

The collector keeps its output contracts (text, JSON, Prometheus, Loki); the
only addition is a text-only route-table drift warning when the vocabulary
enumerates an LLM endpoint the live proxy no longer serves. Generation covers
the conversational core; the non-core LLM operations and the behavior modules
are carried by the overlay for now, and wiring their own product-surface sources
into generation is the documented follow-up.
2026-07-17 11:59:25 -07:00
..
actions fix(ci): retry setup-uv installs to survive transient manifest fetch failures 2026-07-14 14:41:36 -07:00
codeql [Infra] Improve CodeQL scanning coverage and schedule 2026-03-27 12:04:09 -07:00
ISSUE_TEMPLATE docs: document new github + gitlab ci scripts 2026-03-25 20:17:10 -07:00
observatory Add observatory test workflow for RC/stable releases 2026-03-01 15:30:09 -03:00
screenshots fix(team_endpoints): auto-add SSO team members to org on move (proxy admin only) (#26377) 2026-04-24 08:36:25 -07:00
scripts ci: harden cargo fetches during maturin builds (#31348) 2026-06-25 14:31:05 -07:00
workflows ci: run zizmor and proxy-db unit tests on PRs targeting litellm_ branches 2026-07-16 11:44:35 -07:00
CODEOWNERS refactor(e2e): derive coverage denominator from product surface 2026-07-17 11:59:25 -07:00
dependabot.yaml chore: fixes 2026-04-05 01:30:57 -07:00
deploy-on-aws.png feat: add LiteLLM Rust workspace with Mistral OCR bridge (#31033) 2026-06-23 13:16:47 -07:00
deploy-on-gcp.png feat: add LiteLLM Rust workspace with Mistral OCR bridge (#31033) 2026-06-23 13:16:47 -07:00
deploy-to-aws.png Add files via upload 2023-10-25 16:33:53 -07:00
FUNDING.yml Update FUNDING.yml 2023-09-22 09:51:35 -07:00
pull_request_template.md docs(github): add Final Attestation and per-test sanity-check step to QA runbook 2026-07-11 18:07:37 -07:00
template.yaml (chore) cleanup 2024-02-09 09:28:13 -08:00