[PR #3161] [CLOSED] fix(har): retain Playwright bracketed IPv6 address spelling #5649

Closed
opened 2026-10-31 01:08:16 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3161
Author: @wunianze666-netizen
Created: 10/14/2026
Status: ❌ Closed

Base: main ← Head: codex/har-playwright-ipv6


📝 Commits (2)

  • 708ac4f fix(har): retain Playwright bracketed IPv6 address spelling
  • 60c6295 fix(har): preserve unaffected Evidence identities

📊 Changes

6 files changed (+149 additions, -49 deletions)

View changed files

📝 .agents/skills/reverse-engineer-anything/references/evidence-workflows.md (+5 -0)
📝 docs/web-network-captures.md (+8 -0)
📝 src/browser/history/HarCapture.test.ts (+66 -0)
📝 src/browser/history/HarCapture.ts (+6 -1)
📝 src/browser/history/HarSchema.ts (+33 -47)
📝 tests/boundary/cli/analysisViewCli.test.ts (+31 -1)

📄 Description

Playwright 1.58.2 can copy Chromium's bracketed IPv6 remoteIPAddress into HAR serverIPAddress. The unchanged HAR schema expects an IP literal and rejects the entire archive. This reproduced with four public HARvest captures: GitHub, npm website (corpus filename npm-registry), Open-Meteo and Wikipedia (279 records total).

The HAR adapter now removes brackets only in its disposable validation projection, only for the exact observed Playwright 1.58.2 declaration and a valid enclosed IPv6 value. Original reported addresses, extensions, capture bytes and artifact digests stay intact. Invalid addresses, bracketed IPv4, ports, zone IDs and other producer/version declarations remain rejected. Producer metadata is still not authenticated.

The existing mitmproxy optional-null compatibility and the new Playwright representation share one producer-gated pass, removing the prior cloned producer/entry-array probe. The guide and packaged skill reference explain the observed profile. The new caveat is emitted only when bracketed IPv6 was actually adapted; unaffected captures preserve their existing Evidence identities.

Validation:

  • 57 HAR adapter tests passed, including preservation, redaction and invalid/profile-mismatch cases.
  • 12 compiled CLI tests, the historical MCP contract test, 16 analysis-view MCP tests and 5 documentation consistency tests passed. The published default API-surface example reproduces its original Evidence identity.
  • npm run check and npm run docs:check passed.
  • Actual production stdio MCP inspection of all four original archives: capture SHA-256, exact request groups, statuses, MIME inventories and coverage agreed with an independent HAR engine. Selected query-name pages were consumed across page boundaries. npm's oversized complete-record page was read through public retained-Evidence bundle export, without redecoding or replay.
  • Windows used the official native artifact from CI run 38512397927, with its archive and addon SHA-256 verified; native source is identical to this branch's base. No native binaries are committed.

Pinned original examples (producer authenticity is not independently attested):

Original archives remain local; the regression fixtures are source-owned synthetic inputs. No target traffic was replayed and no model API was called. Full agent token cost and process-family CPU/peak memory are unmeasured; no performance improvement is claimed.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/3161 **Author:** [@wunianze666-netizen](https://github.com/wunianze666-netizen) **Created:** 10/14/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `codex/har-playwright-ipv6` --- ### 📝 Commits (2) - [`708ac4f`](https://github.com/morluto/rea/commit/708ac4fceaced913148d7cddd9f780380303fb42) fix(har): retain Playwright bracketed IPv6 address spelling - [`60c6295`](https://github.com/morluto/rea/commit/60c6295dd67f34e38e36562130fc1119152760a8) fix(har): preserve unaffected Evidence identities ### 📊 Changes **6 files changed** (+149 additions, -49 deletions) <details> <summary>View changed files</summary> 📝 `.agents/skills/reverse-engineer-anything/references/evidence-workflows.md` (+5 -0) 📝 `docs/web-network-captures.md` (+8 -0) 📝 `src/browser/history/HarCapture.test.ts` (+66 -0) 📝 `src/browser/history/HarCapture.ts` (+6 -1) 📝 `src/browser/history/HarSchema.ts` (+33 -47) 📝 `tests/boundary/cli/analysisViewCli.test.ts` (+31 -1) </details> ### 📄 Description Playwright 1.58.2 can copy Chromium's bracketed IPv6 `remoteIPAddress` into HAR `serverIPAddress`. The unchanged HAR schema expects an IP literal and rejects the entire archive. This reproduced with four public HARvest captures: GitHub, npm website (corpus filename npm-registry), Open-Meteo and Wikipedia (279 records total). The HAR adapter now removes brackets only in its disposable validation projection, only for the exact observed Playwright 1.58.2 declaration and a valid enclosed IPv6 value. Original reported addresses, extensions, capture bytes and artifact digests stay intact. Invalid addresses, bracketed IPv4, ports, zone IDs and other producer/version declarations remain rejected. Producer metadata is still not authenticated. The existing mitmproxy optional-null compatibility and the new Playwright representation share one producer-gated pass, removing the prior cloned producer/entry-array probe. The guide and packaged skill reference explain the observed profile. The new caveat is emitted only when bracketed IPv6 was actually adapted; unaffected captures preserve their existing Evidence identities. Validation: - 57 HAR adapter tests passed, including preservation, redaction and invalid/profile-mismatch cases. - 12 compiled CLI tests, the historical MCP contract test, 16 analysis-view MCP tests and 5 documentation consistency tests passed. The published default API-surface example reproduces its original Evidence identity. - `npm run check` and `npm run docs:check` passed. - Actual production stdio MCP inspection of all four original archives: capture SHA-256, exact request groups, statuses, MIME inventories and coverage agreed with an independent HAR engine. Selected query-name pages were consumed across page boundaries. npm's oversized complete-record page was read through public retained-Evidence bundle export, without redecoding or replay. - Windows used the official native artifact from [CI run 38512397927](https://github.com/morluto/rea/actions/runs/38512397927), with its archive and addon SHA-256 verified; native source is identical to this branch's base. No native binaries are committed. Pinned original examples (producer authenticity is not independently attested): - [GitHub](https://github.com/suislanchez/HARvest/blob/d8107f21e7a9fecfd723740bdd3d886950bd5f95/test-fixtures/captured/github-trending.har): 156 records - [npm website (corpus filename npm-registry)](https://github.com/suislanchez/HARvest/blob/d8107f21e7a9fecfd723740bdd3d886950bd5f95/test-fixtures/captured/npm-registry.har): 19 records - [Open-Meteo](https://github.com/suislanchez/HARvest/blob/d8107f21e7a9fecfd723740bdd3d886950bd5f95/test-fixtures/captured/open-meteo-weather.har): 67 records - [Wikipedia](https://github.com/suislanchez/HARvest/blob/d8107f21e7a9fecfd723740bdd3d886950bd5f95/test-fixtures/captured/wikipedia.har): 37 records Original archives remain local; the regression fixtures are source-owned synthetic inputs. No target traffic was replayed and no model API was called. Full agent token cost and process-family CPU/peak memory are unmeasured; no performance improvement is claimed. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:08:16 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#5649
No description provided.