User Tools

Site Tools


provenance:programming:stateful_stateless

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
provenance:programming:stateful_stateless [2026/08/19 11:48] – Add reviewer 4 (generic) findings and verdicts; correct the quote count from 29 to 37; record that the 'flattest field' superlative was uncomputed until reviewer 4 caught it and is now computed; record the consent_action_audit import side effect and its i karel.kubicek.claudeprovenance:programming:stateful_stateless [2026/08/19 12:02] (current) – Add the re-review pass (figures and citations re-run against the final text: 0 wrong), record the author's own independent checks of the two new tables and the published code, correct this log's own mischaracterisation of a GitHub reporter comment as a ma karel.kubicek.claude
Line 11: Line 11:
 | Corpus | ''data/extract/run1/extractions.jsonl'', 5,859 papers, 7 venues (CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P), 2010–2026 | | Corpus | ''data/extract/run1/extractions.jsonl'', 5,859 papers, 7 venues (CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P), 2010–2026 |
 | Page before | 4,479 bytes of notes (rev ''1742374572''): a two-bullet key message, a short reading list, a "Shallow vs Deep crawling" section, the unedited page template comment, and a todo box reading "This page only contains notes" | | Page before | 4,479 bytes of notes (rev ''1742374572''): a two-bullet key message, a short reading list, a "Shallow vs Deep crawling" section, the unedited page template comment, and a todo box reading "This page only contains notes" |
-| Page after | 60,478 bytes (rev ''1787140014''), after three rounds of review fixes |+| Page after | 60,763 bytes (rev ''1787140910''), after three rounds of review fixes plus a re-review pass |
 | Decision | **Extend, not create.** The title is already the right scope for the design question. The page was a stub; nothing was broadened or narrowed. Overlap with neighbours was deliberate and is recorded under [[#Judgement calls]]. | | Decision | **Extend, not create.** The title is already the right scope for the design question. The page was a stub; nothing was broadened or narrowed. Overlap with neighbours was deliberate and is recorded under [[#Judgement calls]]. |
 | Who | Claude (Opus 5) end to end, with four review sub-agents (see [[#Review]]) | | Who | Claude (Opus 5) end to end, with four review sub-agents (see [[#Review]]) |
Line 943: Line 943:
 | 4 | Everything else — Mozilla TCP, Chrome 115 storage partitioning, both Privacy Sandbox posts (no 2026 reversal), Incognito third-party blocking, CHIPS/FedCM, GPC now on the W3C Privacy WG track, Playwright 1.62.1 being the actual latest, Chromium 151.0.7922.34 being its pinned build, pypdf 6.16.1 current, OpenWPM actively maintained with ''b9dd4c3a'' being current HEAD and all three code claims byte-for-byte — verified correct. | — | Noted; no change needed. | | 4 | Everything else — Mozilla TCP, Chrome 115 storage partitioning, both Privacy Sandbox posts (no 2026 reversal), Incognito third-party blocking, CHIPS/FedCM, GPC now on the W3C Privacy WG track, Playwright 1.62.1 being the actual latest, Chromium 151.0.7922.34 being its pinned build, pypdf 6.16.1 current, OpenWPM actively maintained with ''b9dd4c3a'' being current HEAD and all three code claims byte-for-byte — verified correct. | — | Noted; no change needed. |
  
-**On finding 3, the reviewer was partly wrong and it was checked before publishing.** The GitHub API says issue 38455 was closed with ''state_reason: completed'', not "as infeasible", and the Chromium bug involved is ''crbug.com/468317746'', not the ''crbug.com/410491202'' the reviewer cited. Reading the actual thread gave a better and more on-topic story than the reviewer's summary: Playwright disables partitioning **because its own ''storageState'' API cannot represent partitioned storage** — "Without CDP support, it does not seem practical to replicate all the intricate details of storage partitioning outside of the browser, so disabling the feature is the only way to make things work for now" — and issue 38455 was closed after the Chromium-side request for bulk storage-key APIs was declined as "infeasible — too far outside of the product scope". The "flag will be removed" expectation is the //requester's// remark in that thread, not a cited Chromium roadmap, and the page now says so in those terms. This is the run's clearest illustration of the standing rule that a sub-agent's findings are leads, not facts.+**On finding 3, the reviewer was partly wrong and it was checked before publishing.** The GitHub API says issue 38455 was closed with ''state_reason: completed'', not "as infeasible", and the Chromium bug involved is ''crbug.com/468317746'', not the ''crbug.com/410491202'' the reviewer cited. Reading the actual thread gave a better and more on-topic story than the reviewer's summary: Playwright disables partitioning **because its own ''storageState'' API cannot represent partitioned storage** — "Without CDP support, it does not seem practical to replicate all the intricate details of storage partitioning outside of the browser, so disabling the feature is the only way to make things work for now" — and issue 38455 was closed after the Chromium-side request for bulk storage-key APIs was declined as "infeasible too far outside of the product scope". The "flag will be removed" expectation is the //requester's// remark in that thread, not a cited Chromium roadmap, and the page now says so in those terms. This is the run's clearest illustration of the standing rule that a sub-agent's findings are leads, not facts.
  
 ==== Reviewer 3 — citations and quotations (''model: sonnet'') ==== ==== Reviewer 3 — citations and quotations (''model: sonnet'') ====
Line 981: Line 981:
 | 8 | The "real, unedited output" of the report script **began with about a hundred lines of another page's audit**, because ''consent_action_audit.mjs'' prints at module top level and this report imports its ''VERDICTS''. | MEDIUM | **Accepted, and fixed in the code rather than papered over.** ''consent_action_audit.mjs'' now guards its printing behind an is-main check. Its own direct-run output was diffed before and after and is **byte-identical** to the committed ''scripts/consent_action_audit-output.txt'', so [[privacy:consent]]'s audit trail is unaffected. The report output embedded above was regenerated. | | 8 | The "real, unedited output" of the report script **began with about a hundred lines of another page's audit**, because ''consent_action_audit.mjs'' prints at module top level and this report imports its ''VERDICTS''. | MEDIUM | **Accepted, and fixed in the code rather than papered over.** ''consent_action_audit.mjs'' now guards its printing behind an is-main check. Its own direct-run output was diffed before and after and is **byte-identical** to the committed ''scripts/consent_action_audit-output.txt'', so [[privacy:consent]]'s audit trail is unaffected. The report output embedded above was regenerated. |
 | 9 | "accumulates an unpartitioned cross-site profile that resembles a default Chrome user's" overstates: Chrome has partitioned third-party //storage// since 115, so the resemblance is to the cookie jar only. | MEDIUM | **Accepted.** Split into cookie jar (resembles) and storage (does not). | | 9 | "accumulates an unpartitioned cross-site profile that resembles a default Chrome user's" overstates: Chrome has partitioned third-party //storage// since 115, so the resemblance is to the cookie jar only. | MEDIUM | **Accepted.** Split into cookie jar (resembles) and storage (does not). |
-| 10 | Five nits: "the 28 that survived that audit" (29 survived; 28 were //fully// supported); "43.8% to about 55–59%" when the last bucket is 52.8%; "as of January 2026 the maintainers had no replacement design" when the cited footnote dates stop at 2025-12-22; the Flash respawning figures not dated as historical; no Puppeteer recipe in "How to do it" despite Puppeteer having 76 corpus papers to Playwright's 34. | NIT | **All accepted.** The January 2026 claim was kept but re-evidenced: the thread does carry maintainer comments of 2026-01-06 and 2026-01-14, so the footnote now covers them. Flash is dated with its 2020 end of life and the modern successors. A Puppeteer ''userDataDir'' line is added, with the note that it has no ''storageState'' equivalent. |+| 10 | Five nits: "the 28 that survived that audit" (29 survived; 28 were //fully// supported); "43.8% to about 55–59%" when the last bucket is 52.8%; "as of January 2026 the maintainers had no replacement design" when the cited footnote dates stop at 2025-12-22; the Flash respawning figures not dated as historical; no Puppeteer recipe in "How to do it" despite Puppeteer having 76 corpus papers to Playwright's 34. | NIT | **All accepted.** The January 2026 claim was kept but re-evidenced: the thread carries a **maintainer** comment of 2026-01-06 asking the reporter for a design that keeps ''storageState'' working, and a **reporter** reply of 2026-01-14. (The re-review caught this sentence describing both as maintainer comments; corrected here.) The page says only that "as late as January 2026 the maintainers were still asking the reporter for a design"which the 6 January comment supports on its own. Flash is dated with its 2020 end of life and the modern successors. A Puppeteer ''userDataDir'' line is added, with the note that it has no ''storageState'' equivalent. |
 | 11 | "If you are writing for PETS, the reviewers are used to seeing it" turns a reporting rate into a claim about reviewer expectations. | NIT | **Accepted** — cut to "PETS is where this reporting norm is strongest", which is what the data says. | | 11 | "If you are writing for PETS, the reviewers are used to seeing it" turns a reporting rate into a claim about reviewer expectations. | NIT | **Accepted** — cut to "PETS is where this reporting norm is strongest", which is what the data says. |
 | 12 | ''programming:crawler:openwpm'' still carries an "OpenWPM 0.35.0 (Firefox 152)" example while current stable Firefox is 154. | NIT | **Rejected as out of scope, and recorded here instead.** That is a factual staleness on another page's own illustrative example, not a claim this page makes or relies on, and editing another page's examples is scope creep. Whoever next touches that page should fix it. (The stale "Programming:Stateful stateless — currently a notes stub" pointer on the same page //was// fixed, rev ''1787139249'', because it was a false statement about //this// page.) | | 12 | ''programming:crawler:openwpm'' still carries an "OpenWPM 0.35.0 (Firefox 152)" example while current stable Firefox is 154. | NIT | **Rejected as out of scope, and recorded here instead.** That is a factual staleness on another page's own illustrative example, not a claim this page makes or relies on, and editing another page's examples is scope creep. Whoever next touches that page should fix it. (The stale "Programming:Stateful stateless — currently a notes stub" pointer on the same page //was// fixed, rev ''1787139249'', because it was a false statement about //this// page.) |
Line 988: Line 988:
  
 **Was it worth its slot: yes, and it was the most valuable of the four.** Three of its high-severity findings are defects no checklist would have produced — a false claim in the first paragraph that the page's own evidence refutes, an uncomputed superlative, and a published script that cannot run under the names it is published with. Two of the three had been //introduced or preserved by the fixes for earlier reviewers//, which is the argument for running this pass last and for running it at all. **Was it worth its slot: yes, and it was the most valuable of the four.** Three of its high-severity findings are defects no checklist would have produced — a false claim in the first paragraph that the page's own evidence refutes, an uncomputed superlative, and a published script that cannot run under the names it is published with. Two of the three had been //introduced or preserved by the fixes for earlier reviewers//, which is the argument for running this pass last and for running it at all.
 +
 +==== Re-review, after all fixes ====
 +
 +Reviewers 1 and 3 were re-run against the final text, because their findings had been acted on and because the report script had gained two tables since they last saw it. Both were told to check figures and quotes **outside** the windows that were edited.
 +
 +^ Pass ^ Result ^
 +| Figures (''sonnet'') | Re-ran every script (byte-identical to the committed outputs), independently recomputed all six rows of the new per-field trend table from the raw JSONL, confirmed the 16-row comparison table is exactly the audit's 16 ''ok'' papers with no ''partial'' or ''wrong'' leakage, extracted the two published ''<file>'' blocks verbatim and ran them (all nine rows, matching the page), and verified the is-main guard: importing ''VERDICTS'' now emits nothing, and ''consent_action_audit.mjs'' run directly is still byte-identical to its committed output. **0 wrong**, 1 nit. |
 +| Citations (''sonnet'') | Confirmed the duplicate key is gone and the bibliography has 0 duplicate keys and one ''</bibtex>''; checked all 16 comparison-table row descriptions against the papers' own text; re-fetched every external footnote including the two GitHub issues via the API rather than a summary; independently re-verified about 20 of the 37 quotations by hand. **0 wrong**, 1 misleading, 3 nits. |
 +
 +Fixed from that pass: the em dash in the quoted Chromium closure reason (the comment uses a hyphen); the lower-cased "Removes cookies from context" in the quoted Playwright docs; "primed cache against unprimed" reworded for {[mirheidari2022_cache]}, whose cache control is per-URL hit-versus-miss inside one detection step rather than two population arms; and the ambiguous sentence about interaction depth "moving less", which was true of the //range// and false of the net change. The one MISLEADING finding was against **these notes**, not the page: they described GitHub comments of 2026-01-06 and 2026-01-14 as "maintainer comments" when only the first is — corrected above.
 +
 +The author also verified two things independently rather than taking a reviewer's word: the per-field table's six rows against the script's own fractions, cell by cell, and the 16-row table against the audit's ''ok'' list in order. Both matched. The published code was extracted under the page's own filenames into an empty directory and run: nine rows, matching the table.
 +
 +**Final state:** page rev ''1787140910'' at 60,763 bytes; this log at roughly 108 KB. Every figure on the page is reproducible from ''scripts/report_stateful_stateless.mjs'', ''statefulness_audit.mjs'' and ''statefulness_probe.mjs''; every quotation from ''state_quotecheck.mjs'' (37/37); every measured browser claim from ''scripts/state_probe/''.
  
 ===== Pre-review fixes the author caught ===== ===== Pre-review fixes the author caught =====
provenance/programming/stateful_stateless.txt · Last modified: by karel.kubicek.claude

Except where otherwise noted, content on this wiki is licensed under the following license: CC BY-NC-SA 4.0
CC BY-NC-SA 4.0 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki