Skip to content

Extract SSE byte buffer policy - #1979

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

Extract SSE byte buffer policy#1979
chopratejas merged 4 commits into
mainfrom
jd/architecture-slice-29

Conversation

@JerrettDavis

Copy link
Copy Markdown
Collaborator

Description

Extracts the pure SSE byte-buffer parser from helpers.py into headroom.proxy.sse_byte_buffer_policy. Existing helper imports remain as delegates, while the protocol parser now has its own module and direct tests.

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 sse_byte_buffer_policy.py for SSE terminator detection and complete-event parsing.
  • Kept helpers.parse_sse_events_from_byte_buffer and _find_sse_event_terminator delegating to the extracted policy.
  • Added direct policy tests for LF/CRLF terminators, buffer draining, split UTF-8 preservation, and invalid complete UTF-8 events.
  • Carried forward the LiteLLM callback compatibility shim needed for current mypy on main.

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_sse_byte_buffer_policy.py tests\test_sse_utf8_split.py
8 passed in 0.23s

python -m ruff check .
All checks passed!

python -m ruff format --check .
1095 files already formatted

python -m mypy headroom --ignore-missing-imports
Success: no issues found in 409 source files

gitleaks protect --staged --no-banner --redact
no leaks found

Real Behavior Proof

  • Environment: Windows, Python 3.13.13, branch jd/architecture-slice-29.
  • Exact command / steps: ran new SSE byte-buffer policy tests, existing SSE UTF-8 split tests, ruff, ruff format check, mypy, and staged gitleaks scan.
  • Observed result: SSE parser behavior remains covered and local lint/type/security checks pass.
  • Not tested: live streaming proxy runtime; existing helper imports remain intact.

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 N/A for this internal architecture-only refactor. The push reported existing default-branch Dependabot alerts; no staged secret leaks were found for 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-29 branch from 1ea2d01 to 1f96b97 Compare July 10, 2026 23:59
@chopratejas
chopratejas merged commit b910ce5 into main Jul 12, 2026
28 checks passed
@chopratejas
chopratejas deleted the jd/architecture-slice-29 branch July 12, 2026 15:46
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