Skip to content

Extract wire debug format policy - #1978

Merged
chopratejas merged 6 commits into
mainfrom
jd/architecture-slice-28
Jul 12, 2026
Merged

Extract wire debug format policy#1978
chopratejas merged 6 commits into
mainfrom
jd/architecture-slice-28

Conversation

@JerrettDavis

Copy link
Copy Markdown
Collaborator

Description

Extracts opt-in Codex wire-debug formatting from helpers.py into headroom.proxy.wire_debug_format_policy. The existing helper functions now delegate to the pure policy so filename-safe event names and proxy-log previews are directly testable.

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 wire_debug_format_policy.py for safe wire-debug name fragments and compact log previews.
  • Kept _safe_event_name and _wire_debug_preview in helpers.py as compatibility delegates.
  • Added direct tests for unsafe-name replacement, length capping, JSON preview compaction, byte decoding/truncation, and None handling.
  • 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_wire_debug_format_policy.py
5 passed in 0.19s

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-28.
  • Exact command / steps: ran focused wire-debug format policy tests, ruff, ruff format check, mypy, and staged gitleaks scan.
  • Observed result: formatting policy behavior is directly covered and local lint/type/security checks pass.
  • Not tested: live wire-debug capture writing; this slice preserves the existing helper entry points.

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-28 branch from 6c76c91 to 2a7905d Compare July 10, 2026 23:58
@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 12, 2026
@chopratejas
chopratejas merged commit 41ce14b into main Jul 12, 2026
11 checks passed
@chopratejas
chopratejas deleted the jd/architecture-slice-28 branch July 12, 2026 16:17
@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 12, 2026
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