mirror of
https://github.com/headroomlabs-ai/headroom.git
synced 2026-08-27 14:17:10 -04:00
## Description Extracts the sticky CCR session tracker from `headroom.proxy.helpers` into a focused state module. `helpers.SessionCcrTracker` remains as an env-aware compatibility wrapper so existing CCR tool injection and singleton call sites keep the same API. Closes # ## Type of Change - [ ] 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 - [x] Code refactoring (no functional changes) ## Changes Made - Added `headroom.proxy.ccr_session_tracker.SessionCcrTracker` as the pure bounded LRU CCR state holder. - Replaced the in-helper CCR tracker implementation with a small env-aware wrapper. - Added direct tracker tests for unknown sessions, monotonic done state, first-write golden bytes, provider isolation, LRU eviction, reset, and input validation. ## Testing - [x] Unit tests pass (`pytest`) - [x] Linting passes (`ruff check .`) - [x] Type checking passes (`mypy headroom`) - [x] New tests added for new functionality - [ ] Manual testing performed ### Test Output ```text python -m pytest tests/test_ccr_session_tracker.py tests/test_ccr_tool_always_on.py tests/test_corrupt_golden_bytes_recovery.py tests/test_issue_728_empty_tools_injection.py 35 passed in 0.69s python -m ruff check . All checks passed! python -m ruff format --check . 1069 files already formatted python -m mypy headroom --ignore-missing-imports Success: no issues found in 410 source files gitleaks protect --staged --no-banner --redact no leaks found ``` ## Real Behavior Proof - Environment: Windows, Python 3.13.13 - Exact command / steps: Ran direct CCR tracker tests, CCR always-on tests, corrupt golden byte recovery tests, empty tools injection regression tests, full ruff, format check, mypy, and staged gitleaks scan. - Observed result: Existing sticky CCR tool behavior and recovery behavior remain green while the CCR session state domain is directly covered. - Not tested: Full repository pytest suite locally; CI covers the broader matrix. ## 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 ## Screenshots (if applicable) N/A ## Additional Notes Documentation and changelog updates are not applicable for this internal refactor. The default-branch Dependabot alerts reported during push are pre-existing and unrelated to this PR. |
||
|---|---|---|
| .. | ||
| handlers | ||
| interceptors | ||
| __init__.py | ||
| audit.py | ||
| auth_mode.py | ||
| auth_policy.py | ||
| background_compression.py | ||
| body_forwarding.py | ||
| cc_switch_reconciler.py | ||
| ccr_session_tracker.py | ||
| compression_decision.py | ||
| cost.py | ||
| debug_introspection.py | ||
| extensions.py | ||
| forwarded_headers.py | ||
| forwarded_policy.py | ||
| helpers.py | ||
| image_compression_decision.py | ||
| loopback_guard.py | ||
| memory_decision.py | ||
| memory_decision_policy.py | ||
| memory_handler.py | ||
| memory_injection.py | ||
| memory_query.py | ||
| memory_query_policy.py | ||
| memory_rank_policy.py | ||
| memory_ranker.py | ||
| memory_tool_adapter.py | ||
| models.py | ||
| modes.py | ||
| outcome.py | ||
| output_effort_policy.py | ||
| output_savings.py | ||
| output_savings_policy.py | ||
| output_shaper.py | ||
| output_steering.py | ||
| probe_recorder.py | ||
| project_context.py | ||
| project_policy.py | ||
| prometheus_metrics.py | ||
| proxy_mode_policy.py | ||
| python_forwarder_mode_policy.py | ||
| rate_limit_policy.py | ||
| rate_limiter.py | ||
| request_limit_policy.py | ||
| request_log_redaction_policy.py | ||
| request_logger.py | ||
| runtime_env.py | ||
| savings_tracker.py | ||
| semantic_cache.py | ||
| semantic_cache_key.py | ||
| server.py | ||
| ssl_context.py | ||
| stage_timer.py | ||
| tool_injection_config.py | ||
| tool_schema_savings_policy.py | ||
| turn_hooks.py | ||
| verbosity_controller.py | ||
| warmup.py | ||
| ws_session_registry.py | ||