Skip to content

Preserve Repeater response bytes in Hex, downloads and saved projects - #28

Merged
Bikebrainz merged 2 commits into
Nullockfrom
fix/repeater-response-bytes
Sep 30, 2026
Merged

Bikebrainz merged 2 commits into
Nullockfrom
fix/repeater-response-bytes

Conversation

@Bikebrainz

@Bikebrainz Bikebrainz commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

What changes

Repeater previously converted response bodies into UTF-8 text before Hex could inspect them: bytes 00 ff 80 41 became replacement characters. It now retains the original wire response and inspection body separately through asynchronous completion, API snapshots, per-tab history and project persistence.

  • Request Hex honors UTF-8 or Latin-1. Response Hex selects body bytes or the full wire response.
  • Save bytes downloads the complete selected representation, including content beyond the 64 KiB preview.
  • Each tab's current response survives project switching and app restarts. The list of past sends remains session-only.
  • Valid empty gzip/deflate streams are recognized. Body/Preview/Render splitting accepts CRLF headers.
  • Clear, duplicate and encoding failures discard stale response bytes. Browser Clear resets download state immediately.
  • Update the website roadmap, changelog, docs and September build checklist alongside the implementation.

Validation

  • Windows Release build and all 102 native test suites passed.
  • 64 runtime checks with the native window, 26 workspace recovery checks and 20 control responsiveness checks passed.
  • CLI binary-input tests and draft synchronization regression passed.
  • New live API regression covers all 256 byte values, NUL, invalid UTF-8, large bodies, gzip, empty gzip, malformed compression, chunk framing, history, project switching, restart and clearing.
  • New Chromium regression verifies request encodings, exact response Hex and full binary downloads; the existing responsiveness/draft-preservation workflow also passed. Additional API and browser runs verified a 5,120,006-byte body, including gzip, full downloads, history, project switching and restart.
  • Website links and generated pages passed; changelog and roadmap rendered at 1280px and 390px without script errors or overflow.
  • Both new end-to-end regressions are included in CI. Merge remains gated on all eight jobs passing on the exact PR head.

Limits

Text views remain readable interpretations. The binary views/downloads preserve the selected bytes. Past-send history is session-only, and saving current response bytes increases project size. Brotli/zstd decoding and immediate socket cancellation remain separate work.

Owner: Bikebrainz.

All eight CI jobs passed on bb3c029: https://github.com/Bikebrainz/Nullock/actions/runs/36656946504

@Bikebrainz
Bikebrainz merged commit 0a9e957 into Nullock Sep 30, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant