Skip to content

refactor(proxy): extract ccr marker policy#2004

Merged
chopratejas merged 4 commits into
mainfrom
jd/architecture-slice-42
Jul 12, 2026
Merged

refactor(proxy): extract ccr marker policy#2004
chopratejas merged 4 commits into
mainfrom
jd/architecture-slice-42

Conversation

@JerrettDavis

Copy link
Copy Markdown
Collaborator

Description

Extracts CCR marker freshness and retrieval-tool injection decision policy from headroom.proxy.helpers into a focused pure module. Existing helper functions remain as compatibility wrappers for current Anthropic/OpenAI handler imports.

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
  • Code refactoring (no functional changes)

Changes Made

  • Added headroom.proxy.ccr_marker_policy for new-marker detection and frozen-prefix tool injection decisions.
  • Kept helpers.has_new_ccr_markers() and helpers.should_inject_ccr_tool() as compatibility wrappers.
  • Added direct policy tests for replayed markers, genuinely new markers, missing prior forwards, empty current hashes, and frozen-prefix override behavior.

Testing

  • Unit tests pass (pytest)
  • Linting passes (ruff check .)
  • Type checking passes (mypy headroom)
  • New tests added for new functionality
  • Manual testing performed

Test Output

python -m pytest tests/test_ccr_marker_policy.py tests/test_proxy/test_ccr_frozen_prefix_coupling.py tests/test_proxy_handler_helpers.py::TestHasNewCcrMarkers
16 passed in 0.91s

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 marker policy tests, frozen-prefix coupling tests, existing helper marker freshness tests, full ruff, format check, mypy, and staged gitleaks scan.
  • Observed result: Existing frozen-prefix CCR behavior remains green while the marker freshness and injection decision policy is directly covered.
  • Not tested: Full repository pytest suite locally; CI covers the broader matrix.

Review Readiness

  • I have performed a self-review
  • This PR is ready for human review

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • 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.

@github-actions

Copy link
Copy Markdown
Contributor

PR governance

This PR follows the template and is marked ready for human review.

@github-actions github-actions Bot added the status: ready for review Pull request body is complete and the author marked it ready for human review label Jul 10, 2026
@JerrettDavis JerrettDavis force-pushed the jd/architecture-slice-42 branch from 1beb1e3 to a74c223 Compare July 10, 2026 23:55
@github-actions github-actions Bot added status: ci failing Required or reported CI checks are failing and removed status: ready for review Pull request body is complete and the author marked it ready for human review labels Jul 11, 2026
…-slice-42

# Conflicts:
#	headroom/proxy/helpers.py
@github-actions github-actions Bot added status: ready for review Pull request body is complete and the author marked it ready for human review and removed status: ci failing Required or reported CI checks are failing labels Jul 11, 2026
# Conflicts:
#	headroom/proxy/helpers.py
@chopratejas chopratejas force-pushed the jd/architecture-slice-42 branch from 2481e67 to cc0001f Compare July 12, 2026 16:16
@chopratejas chopratejas merged commit ec3c3cd into main Jul 12, 2026
11 checks passed
@chopratejas chopratejas deleted the jd/architecture-slice-42 branch July 12, 2026 16:16
@chopratejas chopratejas mentioned this pull request Jul 12, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: ready for review Pull request body is complete and the author marked it ready for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants