headroom/tests
Rod Boev 26b43f64d6
fix(proxy): keep anthropic ccr compression active across deferred injection (#2291) (#2297)
## Description

Large native Claude Code requests on the Anthropic path can still
forward with zero request compression after CCR tool injection is
deferred on a frozen prefix. The stale skip branch treats deferred
injection as a reason to bypass request compression entirely, even
though the later sticky CCR path already knows when new markers actually
require the tool. This removes that stale bypass so compression still
runs while the reversible CCR path stays intact. Closes #2291.

## Type of Change

- [x] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Code refactoring (no functional changes)

## Changes Made

- Remove the stale `should_skip_ccr_request_compression` branch from
`headroom/proxy/handlers/anthropic.py`, so deferred CCR tool injection
no longer bypasses request compression in token, non-cache, or cache
mode.
- Keep the existing sticky CCR injection path as the only place that
decides whether historical markers need the retrieval tool reintroduced.
- Update `tests/test_proxy/test_anthropic_ccr_deferred_injection.py` to
cover the two broken zero-compression cases and preserve the
already-reversible frozen-prefix path.

## Testing

- [x] Unit tests pass (`uv run pytest
tests/test_proxy/test_anthropic_ccr_deferred_injection.py::test_cache_mode_compresses_delta_but_replays_cached_prefix_when_markers_are_historical
tests/test_proxy/test_anthropic_ccr_deferred_injection.py::test_non_token_non_cache_mode_keeps_compression_and_injects_tool_for_new_markers
tests/test_proxy/test_anthropic_ccr_deferred_injection.py::test_existing_retrieve_tool_keeps_reversible_ccr_path_when_prefix_is_frozen
tests/test_openai_tool_search_deferral.py
tests/test_openai_responses_compression_units.py -q`)
- [x] Linting passes (`uv run ruff check .`)
- [ ] Type checking passes (`uv run mypy headroom`)
- [x] New tests added for new functionality when applicable
- [ ] Manual testing performed

### Test Output

```text
======================= 53 passed, 1 warning in 12.71s ========================
All checks passed!
1310 files already formatted
```

## Real Behavior Proof

- Environment: synced branch and base worktrees on a local Windows proxy
test host
- Exact command / steps: run the updated Anthropic deferred-injection
regressions directly against the base package tree and the branch
package tree, then run the focused branch pytest suite above
- Observed result: the base package tree fails the two updated
zero-compression regressions (`FAIL
test_cache_mode_compresses_delta_but_replays_cached_prefix_when_markers_are_historical`,
`FAIL
test_non_token_non_cache_mode_keeps_compression_and_injects_tool_for_new_markers`)
while preserving the already-reversible path; the branch package tree
prints three `PASS` lines for the same trio and keeps the neighboring
OpenAI suites green in the 53-test focused run
- Not tested: a live upstream Claude Code request with the reporter's
exact provider/model credentials

## Review Readiness

- [x] I have performed a self-review
- [x] This PR is ready for human review

## Checklist

- [x] My code follows the project's style guidelines
- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] I have updated the CHANGELOG.md if applicable

## Additional Notes

`CHANGELOG.md` is not applicable here because Headroom's release
pipeline derives it from conventional commits.

Scope is limited to the Anthropic CCR request-compression seam that
current #2291 evidence exercises. OpenAI tool-search deferral is
untouched because the current live issue is a native Claude Code path
and the concrete stale skip branch on `origin/main` is in
`anthropic.py`.

Co-authored-by: Tejas Chopra <chopratejas@gmail.com>
2026-07-16 09:32:27 -07:00
..
cli Add Click-based CLI with memory management commands 2026-01-29 21:30:21 -08:00
fixtures fix(codex): rerun memory lookup on every response.create WS frame (#2113) 2026-07-13 14:42:27 -04:00
integrations/test_strands feat: Add AWS Strands Agents SDK integration 2026-01-31 00:31:37 -08:00
parity feat(text-crusher): CJK-aware segmentation + relevance via ICU (#1504) 2026-07-15 19:58:48 +00:00
test_backends fix(bedrock): fail fast when session-token auth lacks botocore (#1553) 2026-07-01 21:02:15 -05:00
test_cache fix(cache): stable session identity and per-conversation prefix trackers under agentic clients (#2193) 2026-07-15 18:42:20 +00:00
test_cli feat(wrap): add headroom wrap kimi for Kimi CLI (#1426) 2026-07-15 21:40:58 +00:00
test_compression fix(code): parse-probe tree-sitter availability in code_handler (#1231) (#1300) 2026-07-09 14:06:29 -05:00
test_dashboard test(dashboard): fix playwright importorskip placement 2026-04-21 00:10:05 -05:00
test_evals Remove LLMLingua: Kompress is the sole text compressor 2026-03-26 11:11:00 -07:00
test_install feat(deploy): Add turnkey deploy command (#1404) 2026-07-15 18:37:20 +00:00
test_integrations feat: add CrewAI and AutoGen tool compression integrations (#1384) 2026-07-15 19:58:54 +00:00
test_learn fix(learn): don't shadow TIMEOUT/CONNECTION with the generic RUNTIME_ERROR (#2099) 2026-07-13 10:50:54 -04:00
test_live feat(read-maturation): activity-based hold-back Read maturation (Mechanism B) (#1068) 2026-06-22 22:52:42 -05:00
test_mcp_registry feat(grok-build): add Grok Build wrap command and MCP integration (#1629) 2026-07-15 20:51:52 +00:00
test_memory fix(memory): filter inactive graph-expanded results (#2210) 2026-07-15 19:58:13 +00:00
test_providers fix: add DeepSeek V4/V3.2/R1 tokenizer mappings and context limits (#912) 2026-07-15 09:24:44 -05:00
test_proxy fix(proxy): keep anthropic ccr compression active across deferred injection (#2291) (#2297) 2026-07-16 09:32:27 -07:00
test_scripts fix(ci): restore repro harness test in dev installs 2026-04-20 22:12:01 +07:00
test_storage fix: B1 — retire ICM, RollingWindow, scoring, relevance + dependents 2026-05-02 12:23:17 -07:00
test_tokenizers fix(tokenizers): bound tiktoken vocab load so a stalled download cannot hang requests (#956) (#994) 2026-06-19 11:27:09 -05:00
test_transforms fix(code): pin tree-sitter-language-pack <1.0.0 in [code] extra (#1219) 2026-07-15 20:54:25 +00:00
__init__.py Initial commit: Headroom SDK - LLM context optimization toolkit 2026-01-06 23:16:58 -08:00
_dotenv.py fix(tests): stop module-level dotenv loaders from polluting os.environ during pytest collection 2026-04-26 09:15:37 -07:00
_mcp_stub.py fix(codex): stop pinning Codex memory MCP to one project db (#1269) 2026-06-23 07:49:07 -05:00
_skip_helpers.py fix(ccr): skip Anthropic marker emission when tool injection is deferred (#1273) 2026-06-23 12:48:05 -05:00
conftest.py fix(proxy): repair main lint (ruff-format drift + mypy host_header) (#2268) 2026-07-15 23:18:50 -07:00
e2e_cortex_latency.py fix(cortex-code): migrate to current Cortex REST API endpoints + add e2e benchmarks (#1474) 2026-06-30 14:14:36 -05:00
e2e_cortex_mcp.py fix(cortex-code): migrate to current Cortex REST API endpoints + add e2e benchmarks (#1474) 2026-06-30 14:14:36 -05:00
e2e_cortex_proxy.py fix(cortex-code): migrate to current Cortex REST API endpoints + add e2e benchmarks (#1474) 2026-06-30 14:14:36 -05:00
e2e_cortex_proxy_mcp.py fix(cortex-code): migrate to current Cortex REST API endpoints + add e2e benchmarks (#1474) 2026-06-30 14:14:36 -05:00
e2e_cortex_quality.py fix(cortex-code): migrate to current Cortex REST API endpoints + add e2e benchmarks (#1474) 2026-06-30 14:14:36 -05:00
e2e_cortex_savings.py fix(cortex-code): migrate to current Cortex REST API endpoints + add e2e benchmarks (#1474) 2026-06-30 14:14:36 -05:00
e2e_real_compression.py fix: complete /v1/responses compression telemetry, multi-frame WS, frozen-count cap 2026-05-07 14:50:03 -07:00
e2e_ws_codex_usage_headers.py fix(proxy): restore Codex usage headers on WS and streaming SSE transports (#577) (#794) 2026-06-09 15:55:53 -05:00
e2e_ws_responses_compression.py fix: complete /v1/responses compression telemetry, multi-frame WS, frozen-count cap 2026-05-07 14:50:03 -07:00
repro_unsendable_panic.py fix(ci): restore green lint gate on main 2026-06-04 14:15:49 -07:00
test_5xx_accounting_all_providers.py fix(proxy): count exhausted upstream 5xx as failed across all providers (#1571) 2026-07-09 17:07:08 -05:00
test_acceptance.py fix: B1 — retire ICM, RollingWindow, scoring, relevance + dependents 2026-05-02 12:23:17 -07:00
test_adapter_hooks.py feat: compression extraction — Rust knob exposure, CCR hardening, traffic audits (#818) 2026-06-16 20:21:13 -07:00
test_adaptive_sizer.py fix(adaptive-sizer): char bigrams for spaceless CJK items (#1748) 2026-07-09 17:01:29 -05:00
test_adversarial_grid.py feat(evals): adversarial-input robustness grid for compressors (#918) 2026-06-13 10:47:54 -05:00
test_agent_savings.py fix(savings): coding profile compresses the recent delta (protect_recent 2->0, min_tokens 25->10) (#2145) 2026-07-14 04:07:25 -04:00
test_anthropic_beta_session_sticky.py fix: A6 — anthropic-beta and openai-beta deterministic merge + session-sticky 2026-05-02 09:53:37 -07:00
test_anthropic_ccr_workspace_unbound.py fix(proxy): hoist ccr_workspace_key default so /v1/messages survives CCR-inject off (#1096) 2026-07-09 17:29:40 -05:00
test_anthropic_compaction_transforms.py fix(tests): repair three main-branch test failures (#2306) 2026-07-16 09:21:41 -07:00
test_anthropic_pre_upstream_backpressure.py fix(cache): stable session identity and per-conversation prefix trackers under agentic clients (#2193) 2026-07-15 18:42:20 +00:00
test_anthropic_stage_timings.py fix(cache): stable session identity and per-conversation prefix trackers under agentic clients (#2193) 2026-07-15 18:42:20 +00:00
test_audit_codex.py [codex] Simulate Codex read maturation risk (#1395) 2026-07-15 20:36:34 +00:00
test_audit_reads.py feat: compression extraction — Rust knob exposure, CCR hardening, traffic audits (#818) 2026-06-16 20:21:13 -07:00
test_auth_mode.py fix(proxy/auth): match real Anthropic OAuth token prefix (sk-ant-oat) (#1672) 2026-07-02 14:26:19 -07:00
test_auth_policy.py feat(grok-build): add Grok Build wrap command and MCP integration (#1629) 2026-07-15 20:51:52 +00:00
test_azure_foundry_claude_compression.py feat(azure-foundry): derive upstream URL from ANTHROPIC_FOUNDRY_RESOURCE (#1138) 2026-06-22 15:49:14 -05:00
test_backend_anyllm.py fix(anyllm): forward openai api_base/api_key to the any-llm backend (#942) (#954) 2026-06-15 11:07:43 -05:00
test_backend_bugs.py fix(backends/litellm): drop oversized tool names before Bedrock Converse (#2129) 2026-07-13 19:53:49 -04:00
test_backend_nonstreaming_cache_metrics.py fix(proxy): record cache metrics for non-streaming backend paths (#1271) 2026-07-09 14:06:05 -05:00
test_backend_streaming_cache_metrics.py fix(proxy): record cache reads/writes on backend-routed streaming (#327) 2026-05-14 11:01:57 -07:00
test_banner_upstream_targets.py feat: add Vertex AI proxy routing (#793) 2026-06-09 23:05:30 -07:00
test_bash_search_lossless_fold.py feat(cache): provider-agnostic cache-mode delta + cc-agnostic prefix comparison (#1868) 2026-07-08 13:29:35 -07:00
test_bedrock_prefix_tracker_wiring.py fix(proxy/bedrock): wire PrefixCacheTracker updates into Bedrock backend paths (#2196) 2026-07-15 18:18:20 +00:00
test_bedrock_region.py fix(bedrock): resolve global.* inference profiles + pin per-user app-profile ARNs (#1795) 2026-07-09 16:56:23 -05:00
test_bedrock_streaming_input_tokens.py fix(proxy): report real input tokens on streaming message_start (#1132) (#1305) 2026-06-23 12:53:15 -05:00
test_bedrock_tool_result_cache_and_streaming_stats.py fix(backend/bedrock): preserve system-prompt cache_control breakpoint (list form) (#2225) 2026-07-15 19:58:06 +00:00
test_beta_header_merge.py refactor(proxy): extract beta header merge policy (#1993) 2026-07-12 21:34:25 -07:00
test_beta_header_policy.py refactor(proxy): extract beta header policy (#1992) 2026-07-12 12:18:53 -04:00
test_binaries.py fix: docker install fails with PermissionError in readonly cache dir 2026-04-20 17:36:44 -07:00
test_bundled_tools_savings.py fix(tests): stop module-level dotenv loaders from polluting os.environ during pytest collection 2026-04-26 09:15:37 -07:00
test_cache_aligner_detector_only.py fix(tests): update CacheAligner detector-only tests for F2.2 5-field CompressionPolicy 2026-05-06 14:39:39 -07:00
test_cache_aligner_prefix_stability.py fix(cache-aligner): hash the frozen conversation prefix so Claude Code cache invalidation is detected (#2085) (#2161) 2026-07-14 11:59:52 -04:00
test_cache_control_move_bust.py fix(proxy): keep cache_control bounded + stable so the freeze overlay stops busting (#1852) 2026-07-06 17:05:34 -07:00
test_cache_mode_delta_marker.py feat(cache): provider-agnostic cache-mode delta + cc-agnostic prefix comparison (#1868) 2026-07-08 13:29:35 -07:00
test_cache_prefix_overlay.py feat(cache): provider-agnostic cache-mode delta + cc-agnostic prefix comparison (#1868) 2026-07-08 13:29:35 -07:00
test_canonical_pipeline.py fix(transforms): gate tool string output from lossy compression (#1307) (#1387) 2026-06-25 13:43:53 -05:00
test_ccr.py fix(ccr): make headroom_retrieve a hash-only full-content lookup (#1532) 2026-06-28 10:32:43 -07:00
test_ccr_batch_processor.py Harden Anthropic prefix cache stability across proxy and batch paths 2026-04-04 13:45:37 -05:00
test_ccr_batch_store.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_ccr_context_tracker.py fix(ccr): skip compact summaries for proactive expansion (#2242) 2026-07-15 19:57:46 +00:00
test_ccr_feedback.py fix(cache/ccr): don't count a successful eviction as a retrieval (#2106) 2026-07-13 10:53:55 -04:00
test_ccr_golden_policy.py refactor(proxy): extract ccr golden replay policy (#2006) 2026-07-12 11:49:12 -04:00
test_ccr_marker_policy.py refactor(proxy): extract ccr marker policy (#2004) 2026-07-12 12:16:48 -04:00
test_ccr_mcp_http.py feat(mcp): add streamable HTTP MCP transport (#1773) 2026-07-14 13:25:45 -04:00
test_ccr_mcp_server.py fix(mcp): reap orphaned mcp serve on client death (#2226) 2026-07-15 18:57:32 +00:00
test_ccr_response_handler.py fix(ccr): make headroom_retrieve a hash-only full-content lookup (#1532) 2026-06-28 10:32:43 -07:00
test_ccr_response_handler_extra.py fix(ccr): preserve Anthropic re-stream shape (#1854) 2026-07-08 19:17:05 -07:00
test_ccr_response_handler_openai_responses.py feat(ccr): wire retrieve-tool interception into OpenAI Responses handler (#1898) 2026-07-09 09:41:06 -04:00
test_ccr_row_drop_store_bridge.py fix(proxy): gate CCR retrieve/compress endpoints to loopback (#1338) 2026-06-24 09:45:20 -05:00
test_ccr_rust_marker_hash_bridge.py fix(ccr): key Rust search/diff/log markers with explicit_hash (#852) 2026-06-11 13:08:05 -05:00
test_ccr_session_tracker.py refactor(proxy): extract ccr session tracker (#2003) 2026-07-11 10:17:53 -05:00
test_ccr_sqlite_backend.py fix(ccr): honor workspace dir for sqlite store (#1564) 2026-07-01 20:25:14 -05:00
test_ccr_tag_placeholder_regression.py fix(ccr): store pre-protection original, not tag placeholder, in CCR (#1208) 2026-07-14 16:07:08 -04:00
test_ccr_tool_always_on.py fix(ccr): make headroom_retrieve a hash-only full-content lookup (#1532) 2026-06-28 10:32:43 -07:00
test_ccr_tool_calls.py refactor(ccr): isolate tool call classification (#1937) 2026-07-10 17:36:24 -05:00
test_ccr_tool_injection.py fix(ccr): lowercase a retrieved hash so an uppercase echo still hits the store (#2236) 2026-07-15 19:57:58 +00:00
test_claude_session_branch_compare.py Harden anthropic cache-mode replay stability 2026-04-05 16:11:39 -05:00
test_claude_session_mode_benchmark.py Harden cache validation reporting and TTL analysis 2026-04-06 20:11:21 -05:00
test_cli_dashboard.py feat(cli): add headroom dashboard and surface the dashboard URL (#1277) (#1292) 2026-06-22 19:05:38 -05:00
test_cli_doctor.py fix(wrap): surface Claude Remote Control base-URL gate accurately (#1… (#1883) 2026-07-13 14:01:37 -04:00
test_cli_inspect.py feat(cli): add headroom inspect to view original vs compressed content (#1595) 2026-07-15 19:58:38 +00:00
test_cli_learn.py fix(learn): aggregate verbosity baselines across projects instead of overwriting (#1288) 2026-06-30 08:37:37 -05:00
test_cli_perf_format.py perf: surface optimization overhead diagnostics (#1212) 2026-07-15 21:04:21 +00:00
test_cli_proxy_embedding_server.py fix(cli): fall back gracefully when embedding-server sidecar is absent (#1206) 2026-06-23 07:47:51 -05:00
test_cli_proxy_env.py fix(proxy): dedupe Codex WS request logging for accurate mixed-provider dashboards (#2189) 2026-07-15 18:18:34 +00:00
test_cli_proxy_improvements.py docs(proxy): document HEADROOM_SAVINGS_PROFILE and correct --mode default (#2031) (#2040) 2026-07-14 14:10:28 -04:00
test_cli_tools.py test: apply linux ruff formatting 2026-04-23 08:49:50 -05:00
test_cli_update.py fix(update): let Windows self-update replace headroom.exe (#2016) 2026-07-14 11:52:47 -04:00
test_code_aware_brace_comment_regressions.py fix(code): stop TS export duplication + comment displacement (#1906) 2026-07-09 12:51:32 -05:00
test_code_aware_regressions.py fix: correct Go AST compression bugs and CODE_AWARE token accounting (#1668) 2026-07-07 11:36:49 -05:00
test_code_compressor_language_alias.py fix(transforms/code): coerce language aliases instead of raising (#1975) 2026-07-10 23:57:33 -05:00
test_code_compressor_thread_safety.py test(code_compressor): add unsendable-panic repro and thread-local parser tests 2026-06-03 17:02:07 -05:00
test_codex_client_stamp.py fix(proxy): stamp X-Client: codex on Responses endpoint for unidentified callers (#1036) 2026-06-17 11:45:20 -05:00
test_codex_openai_contract_parity.py fix(proxy): restore Codex usage headers on WS and streaming SSE transports (#577) (#794) 2026-06-09 15:55:53 -05:00
test_codex_rate_limits.py fix(codex): poll /wham/usage for subscription limits (handshake no longer sends x-codex-* headers) (#924) 2026-06-12 17:03:14 -05:00
test_codex_responses_passthrough_bytes.py Wire OpenAI Responses output shaping (#1438) 2026-07-05 13:59:21 -07:00
test_codex_responses_waste_signals.py fix(codex): compute waste signals on the OpenAI Responses path (#898) 2026-06-12 17:10:29 -05:00
test_codex_ws_compression_scheduler.py refactor(transforms): isolate mixed content parsing (#1939) 2026-07-10 19:28:21 -05:00
test_codex_ws_per_frame_memory.py fix(codex): rerun memory lookup on every response.create WS frame (#2113) 2026-07-13 14:42:27 -04:00
test_cold_start_fast_pass.py fix(cache): stable session identity and per-conversation prefix trackers under agentic clients (#2193) 2026-07-15 18:42:20 +00:00
test_compaction_markdown_kv.py feat: gated Markdown-KV compaction formatter (serialization-aware output) (#859) 2026-06-11 13:03:50 -05:00
test_compress_api.py feat(compress): expose frozen_message_count in library-mode compress() (#2178) 2026-07-14 16:07:21 -04:00
test_compress_failure.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_compress_passthrough.py feat(proxy): opt-in compression for catch-all passthrough routes (#1699) 2026-07-15 19:58:34 +00:00
test_compression_batches.py fix(proxy): batch small Codex Responses tool outputs (#2239) 2026-07-15 19:57:50 +00:00
test_compression_cache.py refactor: DRY cache logic, add thread safety, fix Bash exclusion (#704) 2026-06-16 14:50:04 -05:00
test_compression_decision.py fix(proxy): surface CompressionDecision.passthrough_reason in tags 2026-05-15 14:40:00 -07:00
test_compression_determinism.py Compress Codex Responses payloads 2026-05-10 17:27:47 -07:00
test_compression_fidelity_regression.py test(evals): add offline fidelity regression gate (recall-based, zero-model) (#1187) 2026-06-22 22:53:59 -05:00
test_compression_observability.py chore(telemetry): remove Supabase anonymous beacon; fix contact domain to headroomlabs.ai (#1526) 2026-06-27 22:48:26 -07:00
test_compression_policy.py fix(policy): correct warm-cache penalty in net_mutation_gain to (S + dT) (#903) 2026-06-12 17:14:30 -05:00
test_compression_policy_toin_gate.py fix(transforms): F2.2 c2/3 — wire toin_read_only gate + extend policy_selected log 2026-05-06 14:37:33 -07:00
test_compression_safety_rails.py feat: compression safety rails — error-output protection, pipeline circuit breaker, library inflation guard (#851) 2026-06-11 12:55:13 -05:00
test_compression_store.py fix(cache/ccr): don't evict a live entry on a duplicate store at capacity (#2082) 2026-07-13 09:46:24 -04:00
test_compression_strategy_outcomes.py refactor(cache): isolate compression strategy outcomes (#1938) 2026-07-10 19:21:47 -05:00
test_compression_summary.py Add compression summaries, multi-provider headers, Dockerfile fix 2026-02-18 16:54:20 -08:00
test_compression_summary_eval.py Add compression summaries, multi-provider headers, Dockerfile fix 2026-02-18 16:54:20 -08:00
test_compression_summary_hard_eval.py fix(tests): stop module-level dotenv loaders from polluting os.environ during pytest collection 2026-04-26 09:15:37 -07:00
test_compression_summary_integration.py fix(tests): stop module-level dotenv loaders from polluting os.environ during pytest collection 2026-04-26 09:15:37 -07:00
test_compression_summary_tool_eval.py fix(tests): stop module-level dotenv loaders from polluting os.environ during pytest collection 2026-04-26 09:15:37 -07:00
test_compression_units.py fix(proxy): batch small Codex Responses tool outputs (#2239) 2026-07-15 19:57:50 +00:00
test_compressor_config_exposure.py feat: compression extraction — Rust knob exposure, CCR hardening, traffic audits (#818) 2026-06-16 20:21:13 -07:00
test_config.py feat: attribute reread waste to over-compression via marker check (#901) 2026-06-13 10:43:35 -05:00
test_content_router_compact_json.py fix(router): compact JSON evades compression via whitespace token counting (#1857) 2026-07-14 06:54:01 -04:00
test_content_router_exclude_tools.py fix(content-router): protect_tool_results must not be weakened by profile-derived read_protection_window (#2105) 2026-07-13 14:01:18 -04:00
test_content_router_single_item_deadline.py fix(kompress): fail-open wall-clock guard on single-cache-miss compression (#2114) 2026-07-13 23:50:49 -04:00
test_content_router_tool_role_reversibility.py fix(transforms): gate tool string output from lossy compression (#1307) (#1387) 2026-06-25 13:43:53 -05:00
test_content_router_user_blocks.py fix(proxy): compress Anthropic user text blocks when enabled (#1875) 2026-07-08 14:24:15 -07:00
test_copilot_auth.py fix(proxy): dedupe Codex WS request logging for accurate mixed-provider dashboards (#2189) 2026-07-15 18:18:34 +00:00
test_copilot_linux_secret.py fix(copilot): support subscription auth through Headroom 2026-06-02 21:24:47 -07:00
test_copilot_macos_keychain.py fix(copilot): support subscription auth through Headroom 2026-06-02 21:24:47 -07:00
test_copilot_quota.py fix(subscription/copilot): preserve remaining=0 for exhausted quota (#1997) 2026-07-12 18:48:22 -04:00
test_copilot_subscription_smoke.py fix: support Copilot Business subscription auth (#641) 2026-06-12 20:46:38 -05:00
test_corrupt_golden_bytes_recovery.py fix(proxy): fail-open on corrupt golden bytes instead of RuntimeError (#603) 2026-06-04 18:19:06 -07:00
test_cortex_code_compression.py feat(providers): add Cortex Code (Snowflake CoCo) as a supported agent (#1190) 2026-06-21 22:18:47 -07:00
test_cost_tracker_counterfactual.py fix(proxy): keep OpenAI tool observations mutable in cache mode (#1884) 2026-07-09 07:51:01 -07:00
test_critical_fixes.py fix: B5 — TOIN observation-only refactor + per-tenant aggregation key 2026-05-02 16:24:03 -07:00
test_critical_gaps.py fix(ccr): make headroom_retrieve a hash-only full-content lookup (#1532) 2026-06-28 10:32:43 -07:00
test_cross_turn_cache_safety.py fix(proxy): freeze must forward cached (compressed) prefix byte-identical — stop token-mode cache busting (#1850) 2026-07-06 14:54:39 -07:00
test_cross_turn_dedup.py fix(dedup): shorter fold pointer + MIN_LINES=3, dedup Anthropic list-… (#1932) 2026-07-10 11:38:08 -04:00
test_custom_base_passthrough_telemetry.py fix(codex): OpenCode Zen telemetry attribution (#1648) 2026-07-07 11:35:21 -05:00
test_dashboard_agent_usage.py feat: add dashboard agent usage stats (#814) 2026-06-12 14:12:22 -05:00
test_dashboard_cache_lifetime_playwright.py fix(proxy): persist lifetime cache-read savings across restarts (#1665) 2026-07-07 11:36:07 -05:00
test_dashboard_cache_net_playwright.py feat(dashboard): surface compression-vs-cache net impact in Prefix Cache panel (#913) 2026-06-12 23:43:49 -05:00
test_dashboard_cache_ttl_playwright.py fix(proxy): subtract cache write premiums from net savings (#1800) 2026-07-07 23:24:41 -05:00
test_dashboard_context_tool_availability_playwright.py fix(dashboard): distinguish unavailable RTK from zero stats in Docker (#1901) 2026-07-09 09:39:16 -04:00
test_dashboard_token_savings.py fix(dashboard): align token savings headline denominator (#1653) 2026-07-01 23:31:32 -05:00
test_dataset_recall_runner.py feat(evals): weekly HotpotQA answer-recall report on the prose path (#1188) 2026-07-15 21:40:55 +00:00
test_debug_dump_gating.py feat(security): pilot hardening — stateless guarantee, model pinning, CI security gate (#1515) 2026-06-27 17:44:10 -07:00
test_diagnostic_decode_policy.py Extract diagnostic decode policy (#1981) 2026-07-12 12:17:39 -04:00
test_docker_compose_persistence.py fix(docker): report source build version (#1862) 2026-07-08 13:32:04 -05:00
test_error_detection.py fix(router): stop protecting passing build/test output as error traces (#1740) 2026-07-14 13:25:49 -04:00
test_evals_cjk_tokenization.py fix(evals): CJK-aware F1 tokenization + token estimation (#1527) 2026-06-30 14:27:25 -05:00
test_evals_datasets.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_evals_metrics.py feat(evals): add zero-cost tool schema compaction integrity eval (#817) 2026-06-10 16:03:42 -05:00
test_evals_multilingual.py feat(evals): register multilingual multi-wiki-qa (zh/ja/ko) dataset (#1530) 2026-07-14 13:25:10 -04:00
test_exceptions.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_force_kompress_all.py feat(proxy): add --force-kompress-all to route all content through kompress-v2-base (#1613) 2026-06-30 15:30:22 -07:00
test_forwarded_headers.py feat(dashboard): persist lifetime proxy metrics (#2198) 2026-07-15 18:18:13 +00:00
test_forwarded_policy.py refactor(proxy): isolate forwarded header policy (#1942) 2026-07-10 17:41:38 -05:00
test_fsutil.py fix(io): use UTF-8 with locale fallback and preserve line endings on config/text I/O (#1498) 2026-06-28 13:18:47 -07:00
test_gemini_compression_offload.py fix(gemini): offload compression to the executor (#1382) 2026-06-26 12:25:15 -05:00
test_gemini_function_response_waste.py fix(gemini): surface functionResponse payloads to waste-signal detection (#897) 2026-06-12 17:09:20 -05:00
test_gemini_nonjson_status.py fix(proxy/gemini): forward a non-JSON upstream body with its real status (#2174) 2026-07-14 12:20:11 -04:00
test_google_multimodal.py fix(proxy/gemini): preserve non-text content across the compression round-trip (#2079) 2026-07-13 09:46:35 -04:00
test_google_multimodal_e2e.py Add E2E tests for Google multimodal content preservation 2026-01-24 21:01:25 -08:00
test_graph.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_graph_tokensave.py feat(wrap): make tokensave the primary coding-task compressor, Serena the backup (#1230) 2026-06-25 16:55:37 -05:00
test_h2_stream_reset_retry.py fix(proxy): retry HTTP/2 stream resets instead of 502ing (#1645) 2026-07-07 11:31:06 -05:00
test_handler_outcome_tag_invariant.py refactor(proxy): MemoryRanker + ImageCompressionDecision + branch-aware version-sync 2026-05-19 12:13:09 -05:00
test_header_isolation.py fix(proxy): dedupe Codex WS request logging for accurate mixed-provider dashboards (#2189) 2026-07-15 18:18:34 +00:00
test_hermes_passthrough_compression.py fix(proxy): compress Hermes scoped coding-agent passthrough (#1815) 2026-07-13 17:22:46 -05:00
test_hf_revision_pinning.py feat(security): pilot hardening — stateless guarantee, model pinning, CI security gate (#1515) 2026-06-27 17:44:10 -07:00
test_hnsw_only.py Add bounded memory support to HNSWVectorIndex with LRU eviction 2026-02-01 21:12:06 -08:00
test_hooks.py Add Compression Hooks — extension points for SaaS and advanced customization 2026-02-19 08:17:30 -08:00
test_huggingface_tokenizer_timeout.py fix(proxy): accept Codex websocket before upstream retries (#2203) 2026-07-15 18:18:06 +00:00
test_image_compression.py Skip image tests when Pillow not installed (CI fix) 2026-04-09 16:24:15 -07:00
test_image_compression_decision.py refactor(proxy): MemoryRanker + ImageCompressionDecision + branch-aware version-sync 2026-05-19 12:13:09 -05:00
test_image_compression_isolation.py fix(proxy): isolate image compression in a subprocess so a native SIGSEGV can't take down the proxy (#2107) (#2162) 2026-07-14 11:52:20 -04:00
test_image_compression_offload.py fix(proxy): isolate image compression in a subprocess so a native SIGSEGV can't take down the proxy (#2107) (#2162) 2026-07-14 11:52:20 -04:00
test_image_compression_policy.py refactor(proxy): isolate image compression policy (#1958) 2026-07-11 10:25:15 -05:00
test_image_compressor.py fix: release image router models after compression 2026-04-29 01:45:27 -04:00
test_image_log_redaction.py fix(observability): G3 remediation — bound cardinality + wire dead metrics 2026-05-24 10:41:56 -07:00
test_image_ocr_api_compat.py fix: PR #372 — restore [image] extra on Python 3.13 via rapidocr 3.x adapter 2026-05-04 08:20:01 -07:00
test_internal_header_policy.py refactor(proxy): extract internal header policy (#1990) 2026-07-11 21:55:50 -05:00
test_issue_728_empty_tools_injection.py fix(proxy): keep PRE_SEND from reintroducing empty tool arrays (#2015) 2026-07-10 22:38:27 -05:00
test_issue_746_tool_search.py Tejas/tool search deferral (#1885) 2026-07-08 14:03:45 -07:00
test_issue_1601_remote_control_gate.py fix(wrap): surface Claude Remote Control base-URL gate accurately (#1… (#1883) 2026-07-13 14:01:37 -04:00
test_issue_1779_remote_control_gate.py fix(claude): treat non-zero claude --version exit as version-unknown … (#2233) 2026-07-15 18:14:58 +00:00
test_kompress_failsafe.py fix(windows): unwedge compression on degraded ONNX runtimes (every request timing out at 30s, 0% savings) (#822) 2026-07-15 09:23:44 -05:00
test_kompress_must_keep.py fix(kompress): hard override keeps must-keep tokens regardless of model score (#1400) 2026-06-26 14:15:37 -05:00
test_kompress_preload_deferral.py fix(proxy): keep Kompress warmup off the startup path (#2001) 2026-07-13 10:09:45 -04:00
test_kompress_request_nonblocking.py fix(proxy): fail open when kompress saturation would exhaust pre-upstream budget (#1430) 2026-06-30 13:41:22 -05:00
test_lean_ctx_installer.py feat: add lean-ctx context tool support 2026-05-11 17:54:17 -04:00
test_learn_grok_plugin.py feat(wrap): add first-class Grok CLI support (#1823) 2026-07-15 18:51:38 +00:00
test_litellm_callback.py test(litellm): remove unused pytest import 2026-07-09 20:59:12 -05:00
test_litellm_nonstream_cache_usage.py fix(litellm): surface Bedrock cache token usage in non-streaming responses (#1848) 2026-07-09 12:44:36 -05:00
test_litellm_openai_passthrough.py fix(litellm): forward chat_template_kwargs and other vendor top-level fields to OpenAI-compatible backends via extra_body (#2128) (#2163) 2026-07-14 12:00:19 -04:00
test_litellm_optional.py fix(deps): make litellm optional on Python 3.14 (#956) (#993) 2026-06-16 21:11:12 -05:00
test_local_backend_init_race.py fix(memory): singleflight LocalBackend init to stop cold-start races (#1691) 2026-07-02 16:00:55 -07:00
test_log_compressor.py fix: improve error handling and add comprehensive test coverage 2026-01-27 16:08:36 -08:00
test_loop_callback_failure_policy.py Extract loop callback failure policy (#1977) 2026-07-11 10:27:00 -05:00
test_lossless_diff_fold_guard.py fix(transforms): guard the lossless diff fold to diff-shaped content only (#2140) 2026-07-13 23:39:33 -04:00
test_lossless_excluded_compaction.py feat(content-router): lossless-excluded compaction (grep/log/json) + enable in coding/general personas (#1762) 2026-07-03 12:09:05 -07:00
test_lossless_first_dispatch.py feat(content-router): lossless-first dispatch, cross-turn dedup, and A7 lossy-after-fold (#1818) 2026-07-06 08:32:06 -07:00
test_lossless_mode.py fix(content-router): token-measure lossless folds at the acceptance gate (#1772) 2026-07-03 15:04:07 -07:00
test_lossless_then_lossy.py fix(router): compact JSON evades compression via whitespace token counting (#1857) 2026-07-14 06:54:01 -04:00
test_mcp_registry_grok.py feat(wrap): add first-class Grok CLI support (#1823) 2026-07-15 18:51:38 +00:00
test_mcp_registry_opencode.py fix(opencode): use type=local + environment field for MCP config (#1380) (#1388) 2026-07-15 20:36:14 +00:00
test_mcp_stub.py fix(codex): stop pinning Codex memory MCP to one project db (#1269) 2026-06-23 07:49:07 -05:00
test_memory_auto_tail.py fix(memory): READ-ONLY framing + fail-closed unresolved-project fallback 2026-05-26 14:32:08 -07:00
test_memory_bridge.py fix(ccr): skip Anthropic marker emission when tool injection is deferred (#1273) 2026-06-23 12:48:05 -05:00
test_memory_decision.py fix(proxy): MemoryDecision contract + 3 bypass bugs + drop 500-char query cap 2026-05-19 11:13:52 -05:00
test_memory_decision_policy.py refactor(memory): isolate injection decision policy (#1952) 2026-07-10 23:45:44 -05:00
test_memory_eval.py fix(evals): default unparseable judge scores below pass threshold (#1892) 2026-07-08 19:31:25 -07:00
test_memory_golden_policy.py refactor(proxy): extract memory golden replay policy (#2007) 2026-07-12 12:19:46 -04:00
test_memory_handler_concurrent_init.py fix(ccr): skip Anthropic marker emission when tool injection is deferred (#1273) 2026-06-23 12:48:05 -05:00
test_memory_handler_native_ops.py fix(memory): audit passive context injection (#2212) 2026-07-15 18:17:31 +00:00
test_memory_handler_project_isolation.py fix(memory): READ-ONLY framing + fail-closed unresolved-project fallback 2026-05-26 14:32:08 -07:00
test_memory_injection_budget.py fix(proxy): MemoryDecision contract + 3 bypass bugs + drop 500-char query cap 2026-05-19 11:13:52 -05:00
test_memory_injection_logging.py fix(memory): audit passive context injection (#2212) 2026-07-15 18:17:31 +00:00
test_memory_injection_mode_policy.py Extract memory injection mode policy (#1986) 2026-07-12 12:18:23 -04:00
test_memory_integration.py Add centralized ML model configuration 2026-02-01 23:47:42 -08:00
test_memory_invariants.py fix(proxy): MemoryDecision contract + 3 bypass bugs + drop 500-char query cap 2026-05-19 11:13:52 -05:00
test_memory_query.py fix(proxy): MemoryDecision contract + 3 bypass bugs + drop 500-char query cap 2026-05-19 11:13:52 -05:00
test_memory_query_policy.py fix(proxy/memory): capture user text blocks for the retrieval query (#2064) 2026-07-13 09:46:56 -04:00
test_memory_rank_policy.py refactor(proxy): isolate memory rank policy (#1960) 2026-07-10 23:51:51 -05:00
test_memory_ranker.py refactor(proxy): isolate memory rank policy (#1960) 2026-07-10 23:51:51 -05:00
test_memory_storage_router.py fix(memory): resolve Trae cwd metadata from user reminders (#1737) (#1887) 2026-07-08 15:49:21 -07:00
test_memory_sync.py fix(memory/sync): don't clobber memories sharing a first line (#1976) 2026-07-10 11:47:31 -04:00
test_memory_system.py Fix CI: guard starlette imports, asyncio.run(), deprecate datetime.utcnow() 2026-02-19 11:03:24 -08:00
test_memory_tool_mode.py fix: integrate B6+B7 — fix cross-test contamination + injector mock parity 2026-05-02 17:05:58 -07:00
test_memory_tool_session_sticky.py fix: A7 — memory tool injection session-sticky for both Anthropic and OpenAI 2026-05-02 10:11:27 -07:00
test_memory_tracker.py Add memory observability system (Phase 1) 2026-02-01 19:49:53 -08:00
test_memory_tracker_integration.py Add wrap commands for Codex/Cursor/Aider with rtk instructions, fix savings metrics 2026-03-13 22:02:47 -07:00
test_memory_usage_integration.py fix(tests): stop module-level dotenv loaders from polluting os.environ during pytest collection 2026-04-26 09:15:37 -07:00
test_memory_wrapper.py test: apply linux ruff formatting 2026-04-23 08:49:50 -05:00
test_mid_turn_steering.py fix(proxy): only queue mid-turn messages for opt-in clients with explicit session header (#1951) 2026-07-13 00:52:41 -04:00
test_mixed_content_sections.py refactor(transforms): isolate mixed content parsing (#1939) 2026-07-10 19:28:21 -05:00
test_ml_model_registry_lifecycle.py feat: headroom wrap opencode / unwrap opencode CLI (#1105) 2026-06-22 11:07:12 -05:00
test_models.py fix(models): version-boundary longest-prefix match in ModelRegistry.get (#1658) 2026-07-10 23:07:31 -05:00
test_netcost_gate.py feat(policy): decay P_alive from idle time near cache TTL (#856 P3b) (#1028) 2026-06-18 11:15:40 -05:00
test_network_diff_capture.py feat: add differential network capture harness (#761) 2026-06-08 22:18:31 -07:00
test_no_ccr_lossy.py feat(content-router): lossless-first dispatch, cross-turn dedup, and A7 lossy-after-fold (#1818) 2026-07-06 08:32:06 -07:00
test_oauth_bearer_routing.py style: fix ruff lint/format and mypy errors for CI 3.12 pass 2026-04-20 13:23:20 -05:00
test_observability_metrics.py fix(proxy): keep OpenAI tool observations mutable in cache mode (#1884) 2026-07-09 07:51:01 -07:00
test_observability_tracing.py feat(observability): add gen_ai.request.model to the compression span (#1667) 2026-07-11 11:04:54 -05:00
test_observed_wire_shapes.py feat(cache): provider-agnostic cache-mode delta + cc-agnostic prefix comparison (#1868) 2026-07-08 13:29:35 -07:00
test_onnx_runtime.py fix(windows): unwedge compression on degraded ONNX runtimes (every request timing out at 30s, 0% savings) (#822) 2026-07-15 09:23:44 -05:00
test_openai_beta_session_sticky.py fix: A6 — anthropic-beta and openai-beta deterministic merge + session-sticky 2026-05-02 09:53:37 -07:00
test_openai_chat_turn_hooks.py Tejas/turn hooks extension (#1903) 2026-07-09 07:49:06 -07:00
test_openai_codex_routing.py fix(proxy): skip Responses memory tools for ChatGPT auth (#1579) 2026-07-15 20:52:01 +00:00
test_openai_codex_ws_lifecycle.py fix(proxy): skip Responses memory tools for ChatGPT auth (#1579) 2026-07-15 20:52:01 +00:00
test_openai_codex_ws_timings.py fix(proxy): skip Responses memory tools for ChatGPT auth (#1579) 2026-07-15 20:52:01 +00:00
test_openai_max_completion_tokens.py fix(proxy/openai): translate max_tokens -> max_completion_tokens on chat path (#1774) 2026-07-07 23:08:11 -05:00
test_openai_responses_compression_units.py fix(proxy): batch small Codex Responses tool outputs (#2239) 2026-07-15 19:57:50 +00:00
test_openai_responses_context_compaction.py fix(memory): honor explicit store=false on Responses requests (#2017) 2026-07-13 09:47:07 -04:00
test_openai_responses_output_shaper.py Wire OpenAI Responses output shaping (#1438) 2026-07-05 13:59:21 -07:00
test_openai_responses_t3_replay_regression.py Rename tool output compression parallelism env 2026-06-04 14:54:21 +10:00
test_openai_responses_traffic_learner.py fix(learn): ingest OpenAI Responses HTTP traffic (#2167) 2026-07-14 11:52:54 -04:00
test_openai_streaming_backend.py Commit message: 2026-03-13 16:49:18 -07:00
test_openai_tool_search_deferral.py fix(proxy): preserve terminal tool on Codex Responses (#2000) 2026-07-10 16:17:25 -07:00
test_optional_dependencies.py fix(install): add orjson to [proxy] extra for LiteLLM provider backends (#2074) 2026-07-13 09:37:28 -04:00
test_outcome_records_5xx_as_failed.py fix(proxy): count exhausted upstream 5xx as failed across all providers (#1571) 2026-07-09 17:07:08 -05:00
test_output_effort_policy.py refactor(proxy): isolate output effort policy (#1961) 2026-07-10 23:53:00 -05:00
test_output_only_request_blocks.py fix: strip output-only fallback blocks from request messages (#1870) 2026-07-13 14:01:48 -04:00
test_output_savings.py Wire OpenAI Responses output shaping (#1438) 2026-07-05 13:59:21 -07:00
test_output_savings_cli.py feat: output-token reduction — verbosity shaper, per-user learning, counterfactual savings (#965) 2026-06-16 21:06:43 -07:00
test_output_savings_policy.py refactor(output): isolate savings policy (#1947) 2026-07-10 23:42:11 -05:00
test_output_shaper.py fix(opencode): use local MCP config (#1383) 2026-07-06 06:22:15 -07:00
test_output_shaper_responses.py fix: replace computer_call_output with apply_patch_call_output in output_shaper (#2250) 2026-07-15 21:33:25 +00:00
test_output_shaping_rollup.py feat(stats): per-bucket output-shaping savings in /stats-history (#1819) 2026-07-15 19:58:24 +00:00
test_output_steering.py refactor(output): isolate verbosity steering (#1940) 2026-07-10 17:39:39 -05:00
test_output_turn_policy.py refactor(proxy): isolate output turn policy (#1962) 2026-07-11 21:33:48 -05:00
test_output_verbosity_policy.py refactor(proxy): isolate output verbosity policy (#1963) 2026-07-12 21:35:09 -07:00
test_owned_asset_encoding.py fix: decode/encode owned config, state and template assets as UTF-8 2026-06-03 03:25:42 +08:00
test_package_init_lazy.py fix(version): mark source-checkout builds as -dev (#2072) 2026-07-13 09:38:17 -04:00
test_parser.py fix(agno): tolerate streaming tool-call SDK objects in parser (#1312) (#1336) 2026-06-24 09:52:15 -05:00
test_paths.py fix(paths): reject '.', '..', and NUL as plugin names (#2132) 2026-07-13 19:56:19 -04:00
test_paths_backward_compat.py fix(wrap): track shared proxy clients with markers (#877) 2026-06-11 19:42:43 -05:00
test_perf_cli_filtering.py fix(perf): surface RTK/CLI context-tool savings in perf and the session card (#1433) 2026-06-25 21:13:36 -07:00
test_perl_scanner_safety.py fix(code): quarantine Perl parser from code-aware compression (#2204) 2026-07-14 20:18:51 -07:00
test_persistent_metrics.py feat(dashboard): persist lifetime proxy metrics (#2198) 2026-07-15 18:18:13 +00:00
test_persistent_metrics_integration.py feat(dashboard): persist lifetime proxy metrics (#2198) 2026-07-15 18:18:13 +00:00
test_persistent_metrics_persistence.py fix(proxy): repair main lint (ruff-format drift + mypy host_header) (#2268) 2026-07-15 23:18:50 -07:00
test_pid_alive.py fix(install): use Windows-safe PID liveness probe in runtime_status (#1544) (#1560) 2026-07-01 17:13:11 -05:00
test_pipeline.py test: apply linux ruff formatting 2026-04-23 08:49:50 -05:00
test_platform_feature_matrix.py fix: harden persistent install startup (#1851) 2026-07-10 00:40:34 -04:00
test_platform_stabilization_functional.py fix: harden persistent install startup (#1851) 2026-07-10 00:40:34 -04:00
test_plugin_manifests.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_plugins_hermes_retrieve.py fix(ccr): make headroom_retrieve a hash-only full-content lookup (#1532) 2026-06-28 10:32:43 -07:00
test_pr208_changes.py fix(proxy): defer file logging install to create_app() 2026-04-28 15:28:33 -07:00
test_pricing.py feat(pricing): add DeepSeek V4 model pricing (deepseek-v4-flash, deepseek-v4-pro) (#1168) 2026-06-24 09:44:27 -05:00
test_pricing_litellm.py fix(pricing): resolve MiniMax-M3 (provider prefix + pre-registration) (#1186) 2026-06-30 08:36:36 -05:00
test_pricing_litellm_model_resolution.py fix(pricing): alias retired claude-3-sonnet to Sonnet-tier price, not Haiku (#2095) 2026-07-13 10:50:33 -04:00
test_probe_recorder.py feat: probe-based retention scoring of recorded compression events (#862) 2026-06-11 13:02:36 -05:00
test_project_name_policy.py Extract project name policy (#1974) 2026-07-11 10:26:20 -05:00
test_project_policy.py refactor(proxy): isolate project attribution policy (#1957) 2026-07-10 23:50:27 -05:00
test_prometheus_obs_counters.py feat(metrics): export compression-failed and kompress size-gate counters (#1569) 2026-07-14 13:25:24 -04:00
test_prometheus_stage_timing_concurrency.py perf(proxy): reduce lock contention on stage-timing metrics 2026-04-20 22:08:09 +07:00
test_provider_aider.py feat(proxy): per-project savings breakdown on the dashboard (claude, codex, aider, copilot, cursor) (#803) 2026-06-10 21:04:45 -05:00
test_provider_claude.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_provider_cloudcode_runtime.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_codex_endpoints.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_codex_headers.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_codex_images.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_codex_install.py fix(codex): poll /wham/usage for subscription limits (handshake no longer sends x-codex-* headers) (#924) 2026-06-12 17:03:14 -05:00
test_provider_codex_model_metadata.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_codex_responses.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_codex_runtime.py fix(ci): update tests to assert absence of requires_openai_auth (bug 3, #406) 2026-05-06 12:18:47 -05:00
test_provider_codex_threads.py fix(codex): discover updated Codex state stores (#1889) 2026-07-08 15:21:21 -07:00
test_provider_copilot_wrap.py fix: respect COPILOT_PROVIDER_TYPE env var when provider_type is auto (#549) 2026-06-26 12:04:09 -05:00
test_provider_cortex_code.py feat(providers): add Cortex Code (Snowflake CoCo) as a supported agent (#1190) 2026-06-21 22:18:47 -07:00
test_provider_cursor.py feat(proxy): per-project savings breakdown on the dashboard (claude, codex, aider, copilot, cursor) (#803) 2026-06-10 21:04:45 -05:00
test_provider_display_classification.py feat(proxy): show real upstream provider on dashboard for OpenAI-compatible endpoints (#1594) 2026-07-15 19:09:56 +00:00
test_provider_grok.py feat(wrap): add first-class Grok CLI support (#1823) 2026-07-15 18:51:38 +00:00
test_provider_grok_build.py feat(grok-build): add Grok Build wrap command and MCP integration (#1629) 2026-07-15 20:51:52 +00:00
test_provider_model_fallback.py feat(anthropic): add Claude 5 family pricing & align current rates (#1767) 2026-07-03 12:09:35 -07:00
test_provider_model_metadata.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_openai_images.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_openai_responses.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_openclaw_wrap.py fix(cli): proxy/perf/wrap UX cleanup + perf --hours correctness 2026-05-07 16:43:35 -07:00
test_provider_package_init.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_provider_proxy_routes.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_proxy_targets.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_registry.py fix(proxy): dedupe Codex WS request logging for accurate mixed-provider dashboards (#2189) 2026-07-15 18:18:34 +00:00
test_provider_registry_extended.py fix(bedrock): route ARNs via converse, named AWS profiles, and au. re… (#1456) 2026-07-02 22:51:05 -05:00
test_provider_route_specs.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_provider_vertex_runtime.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_providers_opencode_config.py fix(opencode): expose headroom/* models in injected provider config (#1716) 2026-07-03 15:20:14 -07:00
test_providers_opencode_install.py fix(opencode): write local MCP config (#1381) 2026-06-26 12:23:54 -05:00
test_proxy_anthropic_cache_stability.py feat(cache): provider-agnostic cache-mode delta + cc-agnostic prefix comparison (#1868) 2026-07-08 13:29:35 -07:00
test_proxy_anthropic_compression_diagnostics.py fix: A3 — byte-faithful Python forwarders; serialize canonical only when mutated 2026-05-02 09:02:10 -07:00
test_proxy_anthropic_model_sanitization.py fix(proxy): strip 1m model suffix before upstream forwarding (#1840) 2026-07-06 08:33:45 -07:00
test_proxy_batch_integration.py Add multi-provider batch API support with CCR post-processing 2026-01-24 11:41:18 -08:00
test_proxy_byte_faithful_forwarding.py feat(proxy): add opt-in cost-aware model router (#1706) (#2205) 2026-07-15 19:58:17 +00:00
test_proxy_cache_ttl_metrics.py fix(proxy/cost): price cache savings by most-used model, not first-seen (#2023) 2026-07-13 09:37:58 -04:00
test_proxy_ccr.py fix(ccr): make headroom_retrieve a hash-only full-content lookup (#1532) 2026-06-28 10:32:43 -07:00
test_proxy_codex_route_aliases.py fix(proxy): stamp X-Client: codex on Responses endpoint for unidentified callers (#1036) 2026-06-17 11:45:20 -05:00
test_proxy_compress_endpoint.py fix(proxy): record Prometheus metrics for POST /v1/compress (#2247) 2026-07-15 21:27:59 +00:00
test_proxy_compression_executor.py perf(proxy): cap compression workers to CPU count (#1803) 2026-07-05 14:01:23 -07:00
test_proxy_compression_headers.py fix(proxy): strip inbound Content-Encoding on messages/chat forward (#1970) 2026-07-10 11:45:58 -04:00
test_proxy_config_qdrant_port.py fix(proxy): fail soft on a bad HEADROOM_QDRANT_PORT during config construction (#2141) 2026-07-14 01:42:15 -04:00
test_proxy_config_rate_limit.py fix(proxy): reject rate_limit_requests_per_minute=0 when limiting is enabled (#2142) 2026-07-14 12:14:06 -04:00
test_proxy_copilot_auth_hooks.py fix(copilot): route mixed-model requests per model (#1785) 2026-07-08 09:42:37 -05:00
test_proxy_cors.py fix(proxy): scope CORS to loopback + gate operator/content endpoints (#1226) 2026-06-21 00:50:55 -07:00
test_proxy_count_tokens_integration.py Add multi-provider batch API support with CCR post-processing 2026-01-24 11:41:18 -08:00
test_proxy_dashboard_stats_cache.py fix(tests): repair three main-branch test failures (#2306) 2026-07-16 09:21:41 -07:00
test_proxy_debug_endpoints.py fix(security): block DNS-rebinding on /debug/* and /stats/reset via Host-header allowlist (#605) 2026-06-11 12:58:33 -05:00
test_proxy_disable_kompress.py feat: add --disable-kompress-fallback to restore legacy PASSTHROUGH fallback (#1185) 2026-06-22 22:51:55 -05:00
test_proxy_eager_preload_bind.py fix(proxy): bind before eager preload so a hung compressor load can't block startup (#1500) 2026-06-28 13:15:50 -07:00
test_proxy_extensions.py fix(proxy): one bad extension no longer aborts proxy startup (#2215) 2026-07-14 22:50:03 -07:00
test_proxy_favicon_route.py fix(proxy): serve /favicon.ico locally instead of tunneling upstream (#1787) (#1847) 2026-07-07 23:36:10 -05:00
test_proxy_gemini_integration.py Add multi-provider batch API support with CCR post-processing 2026-01-24 11:41:18 -08:00
test_proxy_gemini_native_integration.py Add multi-provider batch API support with CCR post-processing 2026-01-24 11:41:18 -08:00
test_proxy_google_cloudcode_route_aliases.py chore: format proxy route tests with ruff 2026-04-21 19:38:32 +00:00
test_proxy_handler_helpers.py fix(proxy): compress Hermes scoped coding-agent passthrough (#1815) 2026-07-13 17:22:46 -05:00
test_proxy_handlers_batch.py fix(proxy/batch): preserve sibling tool configs on Google batch requests (#2177) 2026-07-14 12:22:21 -04:00
test_proxy_hardening.py feat(proxy): pilot hardening — inbound auth, security headers, audit log, air-gap switch (#1537) 2026-06-28 12:09:00 -07:00
test_proxy_health.py fix(health): exclude kompress from aggregate readiness + adversarial PBT (#2066) 2026-07-13 09:37:07 -04:00
test_proxy_healthchecks.py fix(docker): report source build version (#1862) 2026-07-08 13:32:04 -05:00
test_proxy_hooks_regression.py test(proxy): align hooks regression test with Bug 3 recount semantics 2026-04-30 13:26:53 -07:00
test_proxy_loop_exception_health.py fix(proxy): surface codex websocket loop failures in livez (#1727) 2026-07-03 13:33:55 -07:00
test_proxy_loopback_gating.py fix(proxy): repair main lint (ruff-format drift + mypy host_header) (#2268) 2026-07-15 23:18:50 -07:00
test_proxy_memory_integration.py test(memory): live tests for delete-via-[id] + dedup-hint mechanism 2026-05-19 22:18:15 -05:00
test_proxy_mode_benchmark.py Rebrand proxy modes to token/cache and harden cache-mode stability 2026-04-04 14:32:07 -05:00
test_proxy_mode_policy.py refactor(proxy): isolate proxy mode policy (#1965) 2026-07-11 00:00:03 -05:00
test_proxy_modes.py Harden cache-mode immutability for OpenAI and fix stats mode reporting 2026-04-04 14:36:29 -05:00
test_proxy_openai_cache_key_integration.py fix(proxy): include system/tools/sampling in cache key (#1473) 2026-06-30 16:29:20 -05:00
test_proxy_openai_cache_stability.py fix(proxy): compress OpenCode tool schemas and embedded JSON (#1535) 2026-07-15 19:58:42 +00:00
test_proxy_openai_responses_bypass.py fix: per-project memory storage so projects can no longer bleed memories (GH #462) 2026-05-13 15:27:41 -07:00
test_proxy_openai_responses_integration.py fix: stabilize codex compression, stats, and proxy lifecycle 2026-05-09 13:47:53 -07:00
test_proxy_openai_responses_stream_ccr.py fix(proxy): preserve chatgpt responses streaming (#2012) 2026-07-11 00:10:02 -05:00
test_proxy_package_init.py fix(proxy): lazy-import server to avoid fastapi crash (#442) 2026-06-10 12:44:23 -05:00
test_proxy_passthrough.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_proxy_passthrough_integration.py fix(proxy): allow HEAD method on catch-all passthrough route (#2035) 2026-07-12 13:54:58 -04:00
test_proxy_passthrough_transient_retry.py fix(proxy): retry passthrough on transient upstream connection close (#1513) 2026-07-06 18:35:39 -05:00
test_proxy_per_provider_kompress.py feat(proxy): per-provider Kompress enable/disable (#1119) 2026-06-22 15:07:10 -05:00
test_proxy_pipeline_lifecycle.py fix(proxy): cancel retry backoff on shutdown (#1834) 2026-07-06 06:24:47 -07:00
test_proxy_project_savings.py test: align savings schema assertions 2026-07-15 15:15:24 -05:00
test_proxy_request_scope.py refactor(providers): split proxy route adapters (#1934) 2026-07-12 16:27:45 -05:00
test_proxy_retry_429.py fix(proxy): cancel retry backoff on shutdown (#1834) 2026-07-06 06:24:47 -07:00
test_proxy_savings_history.py test: align savings schema assertions 2026-07-15 15:15:24 -05:00
test_proxy_scalability.py fix(proxy): support Windows selector loop on uvicorn < 0.36 (#1655) 2026-07-14 01:42:25 -04:00
test_proxy_semantic_cache_key.py fix(proxy): include system/tools/sampling in cache key (#1473) 2026-06-30 16:29:20 -05:00
test_proxy_semantic_cache_key_integration.py fix(proxy): include system/tools/sampling in cache key (#1473) 2026-06-30 16:29:20 -05:00
test_proxy_semantic_cache_key_policy.py refactor(cache): isolate semantic key policy (#1953) 2026-07-10 23:49:27 -05:00
test_proxy_settings_endpoints.py fix(proxy): dedupe Codex WS request logging for accurate mixed-provider dashboards (#2189) 2026-07-15 18:18:34 +00:00
test_proxy_stats_recent_requests.py feat(dashboard): persist lifetime proxy metrics (#2198) 2026-07-15 18:18:13 +00:00
test_proxy_streaming_ratelimit_headers.py fix(proxy): forward request-id headers on the streaming path (#1100) (#1258) 2026-06-23 07:48:34 -05:00
test_proxy_streaming_request_logger.py fix(stats): tag streamed output token source (#2214) 2026-07-15 18:17:24 +00:00
test_proxy_streaming_resilience.py style: fix linting and formatting issues 2026-06-03 20:08:26 +05:30
test_proxy_system_prompt_immutable.py fix: A3 — byte-faithful Python forwarders; serialize canonical only when mutated 2026-05-02 09:02:10 -07:00
test_proxy_telemetry_env.py chore(telemetry): remove Supabase anonymous beacon; fix contact domain to headroomlabs.ai (#1526) 2026-06-27 22:48:26 -07:00
test_proxy_warmup.py fix: align docs and prune dead compatibility surfaces 2026-05-09 14:07:59 -07:00
test_python_forwarder_mode_policy.py Extract Python forwarder mode policy (#1987) 2026-07-11 00:06:37 -05:00
test_quality_retention.py feat(rust): SmartCrusher PR4 — lossless-first default + CCR-Dropped restoration 2026-04-27 16:30:22 -07:00
test_query_log_policy.py Extract query log policy (#1984) 2026-07-12 12:18:01 -04:00
test_quota_registry.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_rate_limit_policy.py refactor(proxy): isolate rate limit policy (#1954) 2026-07-10 23:47:33 -05:00
test_read_maturation.py feat(read-maturation): activity-based hold-back Read maturation (Mechanism B) (#1068) 2026-06-22 22:52:42 -05:00
test_read_maturation_handler_nobust.py feat(read-maturation): activity-based hold-back Read maturation (Mechanism B) (#1068) 2026-06-22 22:52:42 -05:00
test_realignment_live_multi_turn.py fix(security): allowlist GitGuardian-flagged test fixtures 2026-05-02 18:33:22 -07:00
test_release_version.py fix(windows): pin UTF-8 encoding on text-mode subprocess calls (#1311) 2026-06-23 12:52:49 -05:00
test_release_workflows.py chore(release): harden local artifact smokes (#1824) 2026-07-14 16:07:34 -04:00
test_relevance.py feat(relevance): weight BM25 score_batch by corpus IDF (#646) 2026-06-05 14:15:44 -08:00
test_relevance_extra.py feat(rust): retire python smart_crusher, ship rust-only via pyo3 2026-04-27 00:52:21 -07:00
test_relevance_split.py feat(content-router): lossless-first dispatch, cross-turn dedup, and A7 lossy-after-fold (#1818) 2026-07-06 08:32:06 -07:00
test_reporting.py feat: detect re-served tool results as over-compression waste signal (#854) 2026-06-11 13:07:04 -05:00
test_request_limit_policy.py Extract request limit policy (#1982) 2026-07-10 23:55:11 -05:00
test_request_log_redaction_policy.py Extract request log redaction policy (#1968) 2026-07-10 06:43:04 -07:00
test_request_outcome.py fix(proxy): make budget enforcement actually work (#885) 2026-06-15 10:22:27 -05:00
test_reread_attribution.py feat: attribute reread waste to over-compression via marker check (#901) 2026-06-13 10:43:35 -05:00
test_responses_cross_turn_dedup.py fix(proxy): protect WebSearch/WebFetch tool results from lossy compression (#2115) 2026-07-14 11:52:26 -04:00
test_responses_pyo3_compression.py fix: align docs and prune dead compatibility surfaces 2026-05-09 14:07:59 -07:00
test_responses_ws_pyo3_compression.py fix: align docs and prune dead compatibility surfaces 2026-05-09 14:07:59 -07:00
test_retry_preserve_upstream_status.py fix(proxy): preserve upstream 5xx status on retry exhaustion (#1570) 2026-07-09 17:07:26 -05:00
test_rtk_docker_availability.py fix(dashboard): distinguish unavailable RTK from zero stats in Docker (#1900) 2026-07-08 19:13:23 -07:00
test_rtk_installer.py fix: use rtk native Cursor hook instead of injecting .cursorrules (#756) (#1846) 2026-07-07 23:31:54 -05:00
test_rtk_session_savings.py fix(proxy): stop rtk stat failures from corrupting session baseline (#1693) 2026-07-07 12:21:33 -05:00
test_runtime_env.py feat(proxy): hot-reload live env knobs so a reused proxy picks them up without a restart (#1090) 2026-06-18 09:50:50 -07:00
test_rust_core_smoke.py fix: A0 — fail-loud rust core deployment smoke test 2026-05-02 17:52:37 -07:00
test_savings_ledger.py fix(savings): don't bill free models at the $3/M fallback in the ledger (#2147) 2026-07-14 12:19:30 -04:00
test_savings_ledger_before_forwarded.py test: align savings schema assertions 2026-07-15 15:15:24 -05:00
test_savings_tracker_zero_price.py fix(proxy/savings): don't bill fallback rate for free (0-priced) models (#2024) 2026-07-13 09:47:17 -04:00
test_search_compressor.py fix: improve error handling and add comprehensive test coverage 2026-01-27 16:08:36 -08:00
test_search_compressor_cjk.py fix(search-compressor): CJK-aware relevance + harden Rust/Python parity (#1749) 2026-07-09 17:00:30 -05:00
test_security_validations.py Fix security vulnerabilities in memory and CCR systems 2026-02-04 12:05:50 -08:00
test_semantic_cache_key_policy.py refactor(proxy): isolate semantic cache key policy (#1964) 2026-07-11 21:35:52 -05:00
test_semantic_canonicalize.py feat(cache): provider-agnostic cache-mode delta + cc-agnostic prefix comparison (#1868) 2026-07-08 13:29:35 -07:00
test_session_probes.py feat: probe-based retention scoring of recorded compression events (#862) 2026-06-11 13:02:36 -05:00
test_shared_context.py fix(shared_context): don't evict an unrelated entry on an update at capacity (#2136) 2026-07-13 19:57:32 -04:00
test_signals_keyword_parity.py chore(transforms): retire dead text_compressor module (Phase 3e.3) 2026-04-29 21:14:36 -07:00
test_smart_crusher_toin_attachment.py fix(smart-crusher): honor enable_ccr_marker on the opaque-blob path (#1130) 2026-06-22 11:11:46 -05:00
test_sqlite_graph_store.py Add SQLiteGraphStore for bounded, persistent graph storage 2026-02-01 20:48:57 -08:00
test_sqlite_vector_index.py fix(memory): batch onnx embeddings and sqlite-vec ops 2026-04-24 09:49:28 +00:00
test_sse_byte_buffer_policy.py Extract SSE byte buffer policy (#1979) 2026-07-12 11:46:36 -04:00
test_sse_thinking_blocks.py fix: emit unknown Anthropic content blocks verbatim in buffered-to-SSE conversion (#1825) 2026-07-09 21:45:40 -05:00
test_sse_utf8_split.py [codex] fix(proxy): parse CRLF SSE event terminators (#649) 2026-06-10 21:16:00 -05:00
test_ssl_context.py fix(tls): add HEADROOM_TLS_STRICT=0 toggle for corporate SSL inspection (#1308) (#1341) 2026-06-24 09:51:30 -05:00
test_stage_timer.py feat(proxy): add per-stage timings for Codex WS and Anthropic HTTP paths 2026-04-20 22:01:41 +07:00
test_startup_log_noise.py fix: suppress LiteLLM provider banner before import (#874) 2026-06-11 15:10:20 -05:00
test_stateless_toin.py feat(security): pilot hardening — stateless guarantee, model pinning, CI security gate (#1515) 2026-06-27 17:44:10 -07:00
test_stateless_writers.py feat(security): pilot hardening — stateless guarantee, model pinning, CI security gate (#1515) 2026-06-27 17:44:10 -07:00
test_stats_new_input_savings_rate.py feat(proxy): report new-content-relative input savings rate in /stats (#2058) 2026-07-12 18:48:19 -04:00
test_storage_backends.py test: apply linux ruff formatting 2026-04-23 08:49:50 -05:00
test_strands_tokenizer.py Count Strands reasoningContent, image, document, video tokens (#111 follow-up) 2026-04-08 17:31:00 -07:00
test_streaming_usage_parser.py fix(content-router,proxy): cache-safe text-block compression and online streaming usage 2026-05-08 15:20:54 -07:00
test_subprocess_encoding.py fix(windows): unwedge compression on degraded ONNX runtimes (every request timing out at 30s, 0% savings) (#822) 2026-07-15 09:23:44 -05:00
test_subscription_base.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_subscription_client.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_subscription_contribution.py fix(subscription): keep efficiency_pct from exceeding 100% (#2121) 2026-07-14 11:53:13 -04:00
test_subscription_tracker.py fix(subscription): only reset 5h contribution on real rollover, not API jitter (#1255) 2026-06-26 14:13:44 -05:00
test_subscription_tracker_rtk_wired.py fix(proxy): stop rtk stat failures from corrupting session baseline (#1693) 2026-07-07 12:21:33 -05:00
test_subscription_window_render.py fix: PR #281 — synthesize 5h subscription window after Anthropic reset 2026-05-04 08:17:25 -07:00
test_system_compaction.py feat: 3-layer context compression pipeline (L1+L2+L3) (#1405) 2026-07-15 19:58:51 +00:00
test_tag_protection_integration.py Fix API integration test: use tool output not user message for tags 2026-03-26 11:46:55 -07:00
test_tag_protector_invariant.py fix: A9 — tag protector discards wrap on placeholder loss 2026-05-02 18:01:24 -07:00
test_telemetry.py chore(telemetry): remove Supabase anonymous beacon; fix contact domain to headroomlabs.ai (#1526) 2026-06-27 22:48:26 -07:00
test_telemetry_context.py refactor(telemetry): centralize stack slug validation + cardinality cap 2026-04-17 18:42:41 +02:00
test_telemetry_warning.py chore(telemetry): remove Supabase anonymous beacon; fix contact domain to headroomlabs.ai (#1526) 2026-06-27 22:48:26 -07:00
test_text_compressors.py chore(transforms): retire dead text_compressor module (Phase 3e.3) 2026-04-29 21:14:36 -07:00
test_toin.py fix: align docs and prune dead compatibility surfaces 2026-05-09 14:07:59 -07:00
test_toin_feedback.py fix(ccr): make headroom_retrieve a hash-only full-content lookup (#1532) 2026-06-28 10:32:43 -07:00
test_toin_fixes.py fix: B5 — TOIN observation-only refactor + per-tenant aggregation key 2026-05-02 16:24:03 -07:00
test_toin_full_integration.py fix: B5 — TOIN observation-only refactor + per-tenant aggregation key 2026-05-02 16:24:03 -07:00
test_toin_integration.py feat(rust): retire python smart_crusher, ship rust-only via pyo3 2026-04-27 00:52:21 -07:00
test_toin_observation_only.py fix: align docs and prune dead compatibility surfaces 2026-05-09 14:07:59 -07:00
test_toin_publish.py fix(toin): publish skip compression recommendations (#1782) 2026-07-07 23:14:54 -05:00
test_token_headroom_mode.py fix(cache): extract tool_result content from list-of-blocks format (#2092) 2026-07-13 23:51:01 -04:00
test_tokenizer.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_tokenizer_count_offload.py fix(proxy): bound HF tokenizer load and offload token counting off event loop (#1738) 2026-07-07 12:46:26 -05:00
test_tokenizers.py fix(tokenizers): use o200k_base for gpt-4.1/gpt-4.5/o4 families (#2108) 2026-07-13 10:54:05 -04:00
test_tool_definition_serialization.py refactor(proxy): extract tool definition serialization (#1998) 2026-07-15 18:36:52 +00:00
test_tool_injection_config.py refactor(proxy): extract tool injection config (#2010) 2026-07-11 00:03:15 -05:00
test_tool_injection_logging.py refactor(proxy): extract tool injection logging (#2009) 2026-07-12 12:11:28 -04:00
test_tool_injection_policy.py refactor(proxy): extract tool injection policy (#1995) 2026-07-12 12:09:07 -04:00
test_tool_injection_tracker.py refactor(proxy): extract tool injection tracker (#2002) 2026-07-12 11:48:33 -04:00
test_tool_name_policy.py refactor(proxy): extract tool name policy (#2008) 2026-07-12 11:54:09 -04:00
test_tool_result_interceptors.py fix(proxy): register interceptor in explicit transforms list when HEADROOM_INTERCEPT_ENABLED (#1376) 2026-06-24 20:58:02 -05:00
test_tool_schema_compaction.py feat: 3-layer context compression pipeline (L1+L2+L3) (#1405) 2026-07-15 19:58:51 +00:00
test_tool_schema_savings_policy.py Extract tool schema savings policy (#1971) 2026-07-11 10:10:21 -05:00
test_transforms_config_compressor.py feat(config): fold TOML array-of-tables to csv-schema via SmartCrusher (#1799) 2026-07-15 19:58:27 +00:00
test_transforms_content_detection.py feat(cache): provider-agnostic cache-mode delta + cc-agnostic prefix comparison (#1868) 2026-07-08 13:29:35 -07:00
test_transforms_content_router.py fix(tests): repair three main-branch test failures (#2306) 2026-07-16 09:21:41 -07:00
test_transforms_log_compressor.py feat(rust): port log_compressor to Rust + bug fixes (Phase 3e.5) 2026-04-29 20:47:49 -07:00
test_transforms_package.py chore: renormalize line endings to LF 2026-04-24 15:33:30 +02:00
test_transforms_search_compressor.py fix(ccr): key Rust search/diff/log markers with explicit_hash (#852) 2026-06-11 13:08:05 -05:00
test_transforms_stack_traces.py feat(transforms): language-aware stack-trace collapse for Go/Rust/.NET/Java/Node (#1791) 2026-07-15 19:58:30 +00:00
test_transforms_tabular.py fix(transforms): pass through ragged tables instead of misaligning columns (#1713) 2026-07-07 12:45:46 -05:00
test_turn_hooks.py feat(proxy): add turn-hook extension point for buffered model turns (#1891) 2026-07-08 17:38:45 -07:00
test_update_check.py feat(cli): add headroom update command and release banner (#1088) 2026-06-18 11:22:20 -05:00
test_update_helpers.py fix(update): let Windows self-update replace headroom.exe (#2016) 2026-07-14 11:52:47 -04:00
test_usage_reporter_snapshot.py fix(telemetry): only advance usage-report baseline after a 200 (#2149) 2026-07-14 12:19:43 -04:00
test_utils.py test: add missing type hints to FakeProvider in test_utils (#631) 2026-06-10 21:15:16 -05:00
test_verbosity_controller.py feat: output-token reduction — verbosity shaper, per-user learning, counterfactual savings (#965) 2026-06-16 21:06:43 -07:00
test_verbosity_learn.py fix(learn): don't desync verbosity pairing on empty assistant turns (#2123) 2026-07-14 12:04:32 -04:00
test_vertex_claude_compression.py fix(proxy/vertex): route google-publisher requests to the request region (#2069) 2026-07-13 00:46:25 -04:00
test_websearch_tool_result_protection.py fix(proxy): protect WebSearch/WebFetch tool results from lossy compression (#2115) 2026-07-14 11:52:26 -04:00
test_wire_debug_format_policy.py Extract wire debug format policy (#1978) 2026-07-12 12:17:18 -04:00
test_wire_debug_redaction_policy.py Extract wire debug redaction policy (#1972) 2026-07-11 21:36:46 -05:00
test_ws_http_fallback.py fix(proxy): skip Responses memory tools for ChatGPT auth (#1579) 2026-07-15 20:52:01 +00:00
test_ws_memory_relay.py Fix CI lint errors and test failures 2026-04-14 18:23:06 -07:00
test_ws_session_registry.py feat(proxy): track Codex WS sessions and cancel relay tasks deterministically 2026-04-20 22:01:41 +07:00