[PR #3546] [MERGED] docs(browser): correct cache fingerprint completeness limits #5811

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

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3546
Author: @Xinglan233
Created: 10/14/2026
Status: ✅ Merged
Merged: 10/16/2026
Merged by: @N0zoM1z0

Base: main ← Head: docs/browser-cache-fingerprint-3423


📝 Commits (2)

  • 6e44be9 docs(browser): correct cache fingerprint completeness limits
  • a325cf0 Merge branch 'main' into docs/browser-cache-fingerprint-3423

📊 Changes

1 file changed (+1 additions, -1 deletions)

View changed files

📝 docs/browser-observation.md (+1 -1)

📄 Description

Summary

Prepared with assistance from Codex.

Addresses item 5 of #3423: correct the cache-body fingerprint completeness wording in docs/browser-observation.md.

Problem and expected behavior

The guide says cache bodies above 64 KiB make fingerprint coverage incomplete. The current CDP collector hashes all decoded response bytes; a valid 65,537-byte body has a complete fingerprint. The guide should describe that behavior while preserving the 64 MiB limit on each CDP message and the uncertainty from missing or undecodable bodies.

Change and scope

Replace the obsolete size-based claim with the current decoding/completeness rule and link the existing CDP message-limit section. Keep partial IndexedDB objects explicitly incomplete.

One documentation line changes. Item 4's event-budget documentation overlaps open #2961, so it is deferred here. Items 1–3 are outside this change. This does not resolve the whole issue.

Contribution scope: not applicable; this corrects existing documentation and adds no capability.

Contract and boundary impact

  • Semantic owner and earliest changed stage: storage guidance, checked against CdpCaptureStorageFingerprints.addCacheEntry and the CDP transport.
  • Contribution scope fit and linked maintainer decision: ordinary documentation correction; not applicable.
  • CLI and MCP/tool-catalog contract: unchanged.
  • Provider, bridge, target-format, or platform compatibility: unchanged.
  • Evidence, artifact, provenance, or reconstruction contract: unchanged; the text now describes existing completeness results.
  • Target selection, authority, upstream behavior, and cleanup details: unchanged.
  • Generated metadata, package, or installation impact: none.

Expected effects:

  • Documentation or usability only; no target interaction.

Evidence and regression coverage

  • No tests added: the existing cdpBrowserProvider.sensitive_data.test.ts already covers a cache body one byte above 64 KiB.
  • Executed a temporary probe using the production provider and the existing loopback HTTP/WebSocket fixture. Bodies of 65,535, 65,536, 65,537 and 131,072 bytes all produced complete fingerprints matching independent SHA-256 hashes; repeated storage comparisons were unchanged. Missing-body and malformed-base64 controls produced null value digests, incomplete fingerprints and unknown self-comparisons.
  • The 64 MiB message limit is source-derived from CdpConnection and WEB_RUNTIME_LIMITS; existing transport tests exercise limit enforcement with a smaller configured payload boundary. This is a message limit, not a decoded-body or process-memory guarantee.
  • No CLI/MCP output changes. No live Chromium run or full CI suite was performed; the probe establishes adapter/transport fixture behavior.

Validation performed

Verified commit 6e44be9a0191b12524a0cdca3b7aa6f27064aab7 on baseline ca1b2f8608c52ed721d3576ba5eeb1d66717b08c, Linux x64, Node 24.18.0 and npm 11.16.0, with locked dependencies. Before publication, upstream 1438422dfedf1de29368b595e09a04f1fc10750d was checked: the affected guide, fingerprint/transport code, toolchain and contribution requirements are unchanged.

  • Temporary cache boundary probe — 6 passed.
  • Existing focused event, network, cache/storage and CDP transport suites — 92 passed.
  • Existing scenario provider and comparison suites — 34 passed.
  • npm run check — passed; lint reported 0 errors and 1,386 warnings.
  • npm run docs:check — passed, including 5 README consistency tests.
  • git diff --check — passed.

Compatibility, safety, and release

  • Breaking changes or migration steps: none.
  • Real Hopper/Ghidra, browser, or OS coverage: Linux loopback fixture only; no live browser/provider qualification claimed.
  • Package or release metadata impact: none.
  • Security, privacy, process, or containment review: runtime behavior is unchanged; the correction retains the protocol limit and incomplete-coverage conditions.

Author readiness

Human owner: @Xinglan233

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 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/3546 **Author:** [@Xinglan233](https://github.com/Xinglan233) **Created:** 10/14/2026 **Status:** ✅ Merged **Merged:** 10/16/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `docs/browser-cache-fingerprint-3423` --- ### 📝 Commits (2) - [`6e44be9`](https://github.com/morluto/rea/commit/6e44be9a0191b12524a0cdca3b7aa6f27064aab7) docs(browser): correct cache fingerprint completeness limits - [`a325cf0`](https://github.com/morluto/rea/commit/a325cf0984e3fb81bc1f1c72c15cfc67b14ebac4) Merge branch 'main' into docs/browser-cache-fingerprint-3423 ### 📊 Changes **1 file changed** (+1 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `docs/browser-observation.md` (+1 -1) </details> ### 📄 Description ## Summary Prepared with assistance from Codex. Addresses item 5 of [#3423](https://github.com/morluto/rea/issues/3423): correct the cache-body fingerprint completeness wording in `docs/browser-observation.md`. ## Problem and expected behavior The guide says cache bodies above 64 KiB make fingerprint coverage incomplete. The current CDP collector hashes all decoded response bytes; a valid 65,537-byte body has a complete fingerprint. The guide should describe that behavior while preserving the 64 MiB limit on each CDP message and the uncertainty from missing or undecodable bodies. ## Change and scope Replace the obsolete size-based claim with the current decoding/completeness rule and link the existing CDP message-limit section. Keep partial IndexedDB objects explicitly incomplete. One documentation line changes. Item 4's event-budget documentation overlaps open [#2961](https://github.com/morluto/rea/pull/2961), so it is deferred here. Items 1–3 are outside this change. This does not resolve the whole issue. Contribution scope: not applicable; this corrects existing documentation and adds no capability. ## Contract and boundary impact - Semantic owner and earliest changed stage: storage guidance, checked against `CdpCaptureStorageFingerprints.addCacheEntry` and the CDP transport. - Contribution scope fit and linked maintainer decision: ordinary documentation correction; not applicable. - CLI and MCP/tool-catalog contract: unchanged. - Provider, bridge, target-format, or platform compatibility: unchanged. - Evidence, artifact, provenance, or reconstruction contract: unchanged; the text now describes existing completeness results. - Target selection, authority, upstream behavior, and cleanup details: unchanged. - Generated metadata, package, or installation impact: none. Expected effects: - [x] Documentation or usability only; no target interaction. ## Evidence and regression coverage - No tests added: the existing `cdpBrowserProvider.sensitive_data.test.ts` already covers a cache body one byte above 64 KiB. - Executed a temporary probe using the production provider and the existing loopback HTTP/WebSocket fixture. Bodies of 65,535, 65,536, 65,537 and 131,072 bytes all produced complete fingerprints matching independent SHA-256 hashes; repeated storage comparisons were `unchanged`. Missing-body and malformed-base64 controls produced null value digests, incomplete fingerprints and `unknown` self-comparisons. - The 64 MiB message limit is source-derived from `CdpConnection` and `WEB_RUNTIME_LIMITS`; existing transport tests exercise limit enforcement with a smaller configured payload boundary. This is a message limit, not a decoded-body or process-memory guarantee. - No CLI/MCP output changes. No live Chromium run or full CI suite was performed; the probe establishes adapter/transport fixture behavior. ## Validation performed Verified commit `6e44be9a0191b12524a0cdca3b7aa6f27064aab7` on baseline `ca1b2f8608c52ed721d3576ba5eeb1d66717b08c`, Linux x64, Node 24.18.0 and npm 11.16.0, with locked dependencies. Before publication, upstream `1438422dfedf1de29368b595e09a04f1fc10750d` was checked: the affected guide, fingerprint/transport code, toolchain and contribution requirements are unchanged. - Temporary cache boundary probe — 6 passed. - Existing focused event, network, cache/storage and CDP transport suites — 92 passed. - Existing scenario provider and comparison suites — 34 passed. - `npm run check` — passed; lint reported 0 errors and 1,386 warnings. - `npm run docs:check` — passed, including 5 README consistency tests. - `git diff --check` — passed. ## Compatibility, safety, and release - Breaking changes or migration steps: none. - Real Hopper/Ghidra, browser, or OS coverage: Linux loopback fixture only; no live browser/provider qualification claimed. - Package or release metadata impact: none. - Security, privacy, process, or containment review: runtime behavior is unchanged; the correction retains the protocol limit and incomplete-coverage conditions. ## Author readiness Human owner: @Xinglan233 - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. ## Before merge - [x] This PR addresses a concrete problem or an agreed enhancement. - [x] Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff. - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked, or the reason for not linking one is stated above. - [ ] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [ ] User-visible CLI/MCP changes include representative output. - [ ] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:09:37 +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#5811
No description provided.