diff --git a/docs/site/README.md b/docs/site/README.md
index d6264b820..b19a9c3ac 100644
--- a/docs/site/README.md
+++ b/docs/site/README.md
@@ -50,15 +50,15 @@ The 18:00 UTC refresh ([PR248](https://github.com/d6g8k5htny-coder/main/pull/248
added the conditional actual-bar cards `#actual-bars` and `#strict-bar-coefficient`
to this cut. Later dated cuts were added above it: `#reading-addendum` (3 October 2026,
20:01 UTC), `#pair-endpoint-rate` (4 October, 00:18 UTC), `#shrinking-bin-sampling`
-(4 October, 06:20 UTC, [PR266](https://github.com/d6g8k5htny-coder/main/pull/266)) and
-`#reading-cut-20261007` (7 October, 18:37 UTC). Home, the Research hero and the Library
+(4 October, 06:20 UTC, [PR266](https://github.com/d6g8k5htny-coder/main/pull/266)),
+`#reading-cut-20261007` (7 October, 18:37 UTC) and `#reading-cut-20261009` (9 October, 00:05 UTC; the landed finite Gaussian H0 lifetime source and its program, read at main `0be54aa2`). Home, the Research hero and the Library
link the newest cut. `#latest-work` keeps its 18:00 UTC heading, wording and pins; its
later additions are a forward pointer to the 20:01 addendum and two labeled
reviewer-lineage notes beside its 3 October review links, which the 7 October cut
discloses. Two further labeled source-identity notes close the 20:01 and 00:18 cuts
with the SHA-256 identities their pinned links lacked, and one dated
`
` inside the 7 October cap card records that Math #193 was
-reopened eight minutes after that cut. The next dated cut restates all five, so none
+reopened eight minutes after that cut. The 9 October 2026 cut (`#reading-cut-20261009`) restates all five in its source disclosure, so none
is the only record.
Exact-commit citations preserve the reading cut. The **Check newer work** section
@@ -80,13 +80,13 @@ check, not something established by a screenshot or link.
Insert the new `` with its own `` immediately before the current newest cut. Never edit an earlier cut's text. In the same change:
1. Point Home's "Read the latest public work →", Research's hero "Latest public work" and the Library's latest-work links at the new id. Give the new cut one uniquely named link to the cut below it; exact link names must stay unique. Update the `` and visible date beside the Home and Library entry links to the new cut’s timestamp (`tests/test_reader_links.py` pins them). The Home About link line links Source records, Dependencies and Formal, and its disclosure links Measure; keep ‘dated’/‘synthetic’ in those labels. In the Research hero, add one row for the new cut at the top of the “Dated reading cuts” list (its question heading and the `` text of its source disclosure) and update the “Newest reading cut” ``; if the cut introduces a status token not listed under `#status-words`, add a quoted-provenance row for it (where it is quoted from, never a definition).
-2. In `tests/test_reader_links.py`, update the entry fragments, add the cut's pins to `EXPECTED_READING_URLS` and `EXPECTED_HASH_BINDINGS` (the parser joins the text of all `` elements in an `` into one string and binds that string to each pinned link in that ` `, so keep an item's `` text equal to its intended digest), update the pinned-link total and the `p.latest-boundary` count, and add a byte-identity pin for the cut that is no longer newest. Three digests pin the page below the newest cut: `#shrinking-bin-sampling` whole; the cuts digest from `#pair-endpoint-rate` up to `#lifetimes`, with lineage notes stripped; and the paths digest from `#lifetimes` up to `#further-reading`. A cut that stops being newest gets its own byte-identity pin, as the 06:20 cut has. Only the Further-reading section and the footer stay outside the pins.
+2. In `tests/test_reader_links.py`, update the entry fragments, add the cut's pins to `EXPECTED_READING_URLS` and `EXPECTED_HASH_BINDINGS` (the parser joins the text of all `` elements in an `` into one string and binds that string to each pinned link in that ` `, so keep an item's `` text equal to its intended digest), update the pinned-link total and the `p.latest-boundary` count, and add a byte-identity pin for the cut that is no longer newest. Four digests pin the page below the newest cut: the 7 October cut whole (cut-pointer included); `#shrinking-bin-sampling` whole; the cuts digest from `#pair-endpoint-rate` up to `#lifetimes`, with lineage notes stripped; and the paths digest from `#lifetimes` up to `#further-reading`. A cut that stops being newest gets its own byte-identity pin, as the 06:20 cut has. Only the Further-reading section and the footer stay outside the pins.
3. In `tools/public_shop_browser_check.py`, update `check_latest_work_flow` and `check_reading_addendum_flow`: entry focus, datetime, card and pinned-link counts.
4. Keep `research.html` script-free, its IDs unique and every local fragment resolvable.
5. Append the new cut, with its date and UTC time, to the list of later dated cuts earlier in this section, so this guide does not stop at an older cut.
6. Rerun the release tool and the public-shop steps above.
-Rules for future cards, not a retrofit of pinned cuts: each card carries one visible primary pinned proof link on its face, with digests, reviews and manifests in the disclosure, and the test’s EXPECTED lists enumerate card-face and disclosure links separately. Each card ends with a `` of up to three rows — “Landed?” (landed at Math `` / open proposal, quoting the PR state at the cut), “Read by” (provider · verdict token quoted from the linked review · scope) and “Scientific effect” (quoting the source’s own declaration) — reusing the 7 October labels “Who read it:” / “Still candidates:” / “Still informal:” verbatim where they apply. A display equation inside a future card is authored as `…
`, which `home.css` renders as a block; kickers and eyebrows are uppercased by CSS, so a future cut may author them in sentence case. Pinned cuts are not retrofitted.
+Rules for future cards, not a retrofit of pinned cuts: each card carries one visible primary pinned proof link on its face, with digests, reviews and manifests in the disclosure, and the test’s EXPECTED lists enumerate card-face and disclosure links separately. Each card ends with a `` of up to three rows — “Landed?” (landed at Math or main `` / open proposal, quoting the PR state at the cut), “Read by” (provider · verdict token quoted from the linked review · scope) and “Scientific effect” (quoting the source’s own declaration) — reusing the 7 October labels “Who read it:” / “Still candidates:” / “Still informal:” verbatim where they apply. A display equation inside a future card is authored as `…
`, which `home.css` renders as a block; kickers and eyebrows are uppercased by CSS, so a future cut may author them in sentence case. Pinned cuts are not retrofitted.
## Keep or share a Library search
diff --git a/docs/site/app.js b/docs/site/app.js
index f4002a75d..5e6cea4e8 100644
--- a/docs/site/app.js
+++ b/docs/site/app.js
@@ -1,6 +1,6 @@
-import {verifiedJSON, verifiedBytes, validateStatus, validateCoefficient, safeSourceURL, hex40, hex64} from './core.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import {connectCatalogQuery} from './catalog-query.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import {verifiedJSON, verifiedBytes, validateStatus, validateCoefficient, safeSourceURL, hex40, hex64} from './core.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import {connectCatalogQuery} from './catalog-query.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const finishFragment=prepareWorkspaceFragment();
const el=id=>document.getElementById(id);
const node=(tag,text,cls)=>{const n=document.createElement(tag);if(text!==undefined)n.textContent=text;if(cls)n.className=cls;return n;};
diff --git a/docs/site/brand.css b/docs/site/brand.css
index d58f23cc9..39ebe3c41 100644
--- a/docs/site/brand.css
+++ b/docs/site/brand.css
@@ -60,7 +60,7 @@ body > header {
color: var(--ul-text); font-weight: 750; letter-spacing: .13em;
position: relative; padding-left: 57px; min-height: 44px; line-height: 1.65;
}
-.brand::before { content: ""; position: absolute; left: 0; top: 1px; width: 42px; height: 42px; background: url("brand/mark.svg?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174") center/contain no-repeat; }
+.brand::before { content: ""; position: absolute; left: 0; top: 1px; width: 42px; height: 42px; background: url("brand/mark.svg?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238") center/contain no-repeat; }
.brand span { color: var(--ul-muted); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; }
nav { gap: 12px 24px; flex-wrap: wrap; }
nav a { color: var(--ul-text); min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; padding: 0 6px; margin: 0 -6px; }
diff --git a/docs/site/cite.html b/docs/site/cite.html
index 9ee71ff65..a4b5b7c20 100644
--- a/docs/site/cite.html
+++ b/docs/site/cite.html
@@ -4,8 +4,8 @@
Cite · Universal Law
-
-
+
+
Skip to content
Research tools Reproduce Cite
diff --git a/docs/site/cite.mjs b/docs/site/cite.mjs
index 5fe577d97..5bfd97ef0 100644
--- a/docs/site/cite.mjs
+++ b/docs/site/cite.mjs
@@ -1,4 +1,4 @@
-import {wireReferenceForm} from './source-reference.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import {wireReferenceForm} from './source-reference.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const byId = id => document.getElementById(id);
wireReferenceForm({form:byId('reference-form'), repository:byId('reference-repository'), commit:byId('reference-commit'), path:byId('reference-path'), sha256:byId('reference-sha256'), output:byId('reference-output'), json:byId('reference-json'), bibtex:byId('reference-bibtex'), link:byId('reference-link'), status:byId('reference-status'), actions:byId('reference-actions'), copyText:byId('reference-copy'), copyJSON:byId('reference-copy-json'), copyBibTeX:byId('reference-copy-bibtex'), share:byId('reference-share'), clipboard:globalThis.navigator?.clipboard, location:globalThis.location, history:globalThis.history, events:globalThis.window});
byId('reference-builder').hidden = false;
diff --git a/docs/site/conditionals.mjs b/docs/site/conditionals.mjs
index 1abce111f..47744d1f5 100644
--- a/docs/site/conditionals.mjs
+++ b/docs/site/conditionals.mjs
@@ -93,7 +93,7 @@ export function renderProjection(document,host,data,source){
el(document,'p','Generated from verified source bytes. This graph is not formal verification, a proof review, or a scientific-status register.'));
host.replaceChildren(article);
}
-const services=()=>import('./museum.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174');
+const services=()=>import('./museum.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238');
// The museum module already verifies config → manifest → index/status once per
// page fetch and caches every pinned byte request. This route consumes that same
// verified startup, so it adds only the audited-descriptor check and projection.
diff --git a/docs/site/curvature-export.mjs b/docs/site/curvature-export.mjs
index d0d78e82a..c12ee9f21 100644
--- a/docs/site/curvature-export.mjs
+++ b/docs/site/curvature-export.mjs
@@ -1,6 +1,6 @@
// Bounded, local export of the Peaks and saddles teaching diagram. No source fetch
// or proof verification occurs here; the identity below is recorded provenance.
-import { coneModel } from './explore-models.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import { coneModel } from './explore-models.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const SVG_NS = 'http://www.w3.org/2000/svg';
const PUBLIC_EXPLORE = 'https://d6g8k5htny-coder.github.io/main/site/explore.html';
diff --git a/docs/site/dependencies.html b/docs/site/dependencies.html
index 78d92c3d2..bfdfb4a77 100644
--- a/docs/site/dependencies.html
+++ b/docs/site/dependencies.html
@@ -7,11 +7,11 @@
Claim dependencies · Universal Law
-
-
-
-
-
+
+
+
+
+
Skip to content
diff --git a/docs/site/dependencies.mjs b/docs/site/dependencies.mjs
index 09a81c7f7..1a5201d93 100644
--- a/docs/site/dependencies.mjs
+++ b/docs/site/dependencies.mjs
@@ -12,7 +12,7 @@ import {
recordedContextRows,
recordedReviewText,
unresolvedTargets,
-} from './dependency-model.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+} from './dependency-model.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const byId = id => document.getElementById(id);
diff --git a/docs/site/explore-models.mjs b/docs/site/explore-models.mjs
index 25ae934bb..edb0709b8 100644
--- a/docs/site/explore-models.mjs
+++ b/docs/site/explore-models.mjs
@@ -1,6 +1,6 @@
// NON-CERTIFYING educational arithmetic. These functions illustrate source
// definitions; they do not simulate a field or estimate a theorem's constants.
-import { annulusModel, p15Model, remoteModel } from './geometry.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import { annulusModel, p15Model, remoteModel } from './geometry.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
function finite(value, name) {
if (!Number.isFinite(value)) throw new RangeError(`${name} must be finite`);
diff --git a/docs/site/explore.html b/docs/site/explore.html
index 0d71d198b..221562cd8 100644
--- a/docs/site/explore.html
+++ b/docs/site/explore.html
@@ -7,11 +7,11 @@
Explore the mathematics · Universal Law
-
-
-
-
-
+
+
+
+
+
Skip to content
diff --git a/docs/site/explore.mjs b/docs/site/explore.mjs
index 345b13050..31c4d7e52 100644
--- a/docs/site/explore.mjs
+++ b/docs/site/explore.mjs
@@ -1,10 +1,10 @@
-import { coneModel, pinModel, paletteModel, applyCurvaturePreset } from './explore-models.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import { coneModel, pinModel, paletteModel, applyCurvaturePreset } from './explore-models.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
-import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const ns = 'http://www.w3.org/2000/svg';
const byId = id => document.getElementById(id);
diff --git a/docs/site/formal.html b/docs/site/formal.html
index 86e9656fe..894738524 100644
--- a/docs/site/formal.html
+++ b/docs/site/formal.html
@@ -5,9 +5,9 @@
Formal verification · Universal Law
-
-
-
+
+
+
diff --git a/docs/site/home.css b/docs/site/home.css
index 859f07d9d..e32b6d0c6 100644
--- a/docs/site/home.css
+++ b/docs/site/home.css
@@ -100,5 +100,8 @@ p.display-formula code { display: block; font-size: 15px; line-height: 1.6; padd
.hero-cut { max-width: 78ch; font-size: 15px; margin: 22px 0 0; }
.reading-glossary { margin-top: 26px; border-top: 1px solid var(--ul-border); padding-top: 12px; max-width: 78ch; }
.reading-glossary summary { color: var(--ul-link); cursor: pointer; padding: 10px 0; }
-.reading-glossary dt { font-weight: 650; margin-top: 12px; }
-.reading-glossary dd { margin: 2px 0 0; font-family: inherit; font-size: 15px; color: var(--ul-muted); }
+.reading-glossary dt, .latest-card .card-status dt { font-weight: 650; margin-top: 12px; }
+.reading-glossary dd, .latest-card .card-status dd { margin: 2px 0 0; font-family: inherit; font-size: 15px; color: var(--ul-muted); }
+/* Card-status rows keep the card paragraphs’ 78ch measure; in print a card that carries them may break between its blocks. */
+.latest-card .card-status dd { max-width: 78ch; }
+@media print { .latest-card:has(> .card-status) { break-inside: auto; } .latest-card .card-status, p.display-formula { break-inside: avoid; } }
diff --git a/docs/site/index.html b/docs/site/index.html
index 419e3b5b6..08f0174b9 100644
--- a/docs/site/index.html
+++ b/docs/site/index.html
@@ -4,14 +4,14 @@
The shape of randomness · Universal Law
-
-
+
+
Skip to content
Research tools Reproduce Cite
-RANDOM LANDSCAPES. LASTING STRUCTURE.
The shape of randomness. A landscape has peaks, valleys, and connections. Change the height you look at, and its shape changes. Which features survive—and what can we prove about them?
An open research program in Gaussian random fields and persistent topology, for readers who want to understand first and then inspect: arguments, calculations and recorded reviews are linked with their stated scope.
Bookmarks to the status board, exact coefficients, the library and contribution steps now live in the research workspace .
Read the latest public work → reading cut of 7 October 2026, 18:37 UTC · Dated status snapshot →
+RANDOM LANDSCAPES. LASTING STRUCTURE.
The shape of randomness. A landscape has peaks, valleys, and connections. Change the height you look at, and its shape changes. Which features survive—and what can we prove about them?
An open research program in Gaussian random fields and persistent topology, for readers who want to understand first and then inspect: arguments, calculations and recorded reviews are linked with their stated scope.
Bookmarks to the status board, exact coefficients, the library and contribution steps now live in the research workspace .
Read the latest public work → reading cut of 9 October 2026, 00:05 UTC · Dated status snapshot →
Contours of an imagined landscape Nested contour lines form two neighboring peaks. This decorative drawing introduces the idea of studying shape at different heights; it is not research data. a peak a neighbor An imagined landscape · a visual introduction
THE IDEA, IN A MINUTE
From a changing landscape to a precise question. 01 A field gives every point a height. A random field assigns spatially related values. Nearby heights can vary together. In a Gaussian field, every finite collection of values has a joint Gaussian (bell-curve) distribution.
02 A threshold reveals its shape. Imagine lowering a horizontal waterline. Peaks emerge as islands. As the level falls, islands grow and join. Critical points mark changes in the landscape.
03 Persistence measures what lasts. A feature has a birth and an end as the threshold changes. The research asks how its lifetime and the geometry of nearby critical points can be bounded mathematically.
CHOOSE YOUR WAY IN
A few good places to start. New here? Start with the first card. Go as deep as you like.
diff --git a/docs/site/measure.html b/docs/site/measure.html
index b171baa87..fb547aa7a 100644
--- a/docs/site/measure.html
+++ b/docs/site/measure.html
@@ -7,11 +7,11 @@
From counts to density · Universal Law
-
-
-
-
-
+
+
+
+
+
Skip to content
diff --git a/docs/site/measure.mjs b/docs/site/measure.mjs
index 7d989d6a9..149f46a23 100644
--- a/docs/site/measure.mjs
+++ b/docs/site/measure.mjs
@@ -1,4 +1,4 @@
-import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const byId = id => document.getElementById(id);
const fields = Object.fromEntries(['count', 'realizations', 'lower', 'upper'].map(name => [name, byId(`measure-${name}`)]));
diff --git a/docs/site/museum.html b/docs/site/museum.html
index ef37c320b..b0c2495af 100644
--- a/docs/site/museum.html
+++ b/docs/site/museum.html
@@ -5,11 +5,11 @@
Source records & exhibits · Universal Law
-
+
-
-
+
+
diff --git a/docs/site/museum.mjs b/docs/site/museum.mjs
index b041cf9ff..14a58ec2a 100644
--- a/docs/site/museum.mjs
+++ b/docs/site/museum.mjs
@@ -1,5 +1,5 @@
-import {renderSourceQuote} from './source-quote.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import {renderSourceQuote} from './source-quote.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
export const DISCLAIMER='This canvas explains the pinned source. It is not a proof and does not change status.';
const REVIEWED_IDS=['d2-lifetime-remainder','d3-side24-coefficient','d4-fixed-remote-rn','d5-all-height-annulus','d5-height-window-annulus','d5-two-scale','d5-inner-belt-density','d5-fixed-transverse','cumulative-transfer-correction','p15-demand-one-counterexample','d6-p15-full-price'];
@@ -264,7 +264,7 @@ function prepareClaimFragment(document,window,currentHash) {
return true;
};
}
-export async function startMuseum({document=globalThis.document,window=globalThis.window,fetcher=globalThis.fetch,search=globalThis.location?.search||'',geometryLoader=()=>import('./geometry.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174'),currentHash=()=>globalThis.location?.hash||''}={}){
+export async function startMuseum({document=globalThis.document,window=globalThis.window,fetcher=globalThis.fetch,search=globalThis.location?.search||'',geometryLoader=()=>import('./geometry.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238'),currentHash=()=>globalThis.location?.hash||''}={}){
const ids=['museum-state','claim-cards','lifetime-fixture','packet-cards','active-exhibit'];
const containers=Object.fromEntries(ids.map(id=>{const node=document.getElementById(id);if(!node)throw Error(`Missing museum container: ${id}`);return [id,node];}));
const finishFragment=prepareClaimFragment(document,window,currentHash);
diff --git a/docs/site/palette-export.mjs b/docs/site/palette-export.mjs
index 291a80278..30e002757 100644
--- a/docs/site/palette-export.mjs
+++ b/docs/site/palette-export.mjs
@@ -1,7 +1,7 @@
// Bounded teaching export of Explore's current finite P15 diagram. Source
// custody is provenance; this module performs no mathematical verification.
-import { paletteModel } from './explore-models.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import { serializeTeachingSVG } from './teaching-export.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import { paletteModel } from './explore-models.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import { serializeTeachingSVG } from './teaching-export.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const PUBLIC_EXPLORE = 'https://d6g8k5htny-coder.github.io/main/site/explore.html';
const SOURCE = Object.freeze({
diff --git a/docs/site/pin-export.mjs b/docs/site/pin-export.mjs
index b3692d53a..63387c29e 100644
--- a/docs/site/pin-export.mjs
+++ b/docs/site/pin-export.mjs
@@ -1,7 +1,7 @@
// Bounded export of the CURRENT displayed Approach-points teaching diagram.
// Pinned source identities are provenance, not proof acceptance or verification.
-import { pinModel } from './explore-models.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
-import { serializeTeachingSVG } from './teaching-export.mjs?site-release=350a06d94c011d71db39930e9df63991077101c561c921594d51c0d45f437174';
+import { pinModel } from './explore-models.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
+import { serializeTeachingSVG } from './teaching-export.mjs?site-release=05e781a3ffc6330db3d2460bb7eb11e90e9fa8f9ee06a1364997e6b209299238';
const PUBLIC_EXPLORE='https://d6g8k5htny-coder.github.io/main/site/explore.html';
const COMMIT='d6628da09384728992dcbe6e921cc28ba85aebb0';
diff --git a/docs/site/reproduce.html b/docs/site/reproduce.html
index 513b9e30a..8c7ac2b5b 100644
--- a/docs/site/reproduce.html
+++ b/docs/site/reproduce.html
@@ -4,9 +4,9 @@
Reproduce · Universal Law
-
+
-
+
Skip to content
Research tools Reproduce Cite
diff --git a/docs/site/research.html b/docs/site/research.html
index 5ff06829b..632908da0 100644
--- a/docs/site/research.html
+++ b/docs/site/research.html
@@ -4,16 +4,17 @@
Research · Universal Law
-
+
Skip to content
Research tools Reproduce Cite
-A READING PATH
What can the shape of a landscape tell us? The program connects probability, geometry, and topology. Start with one of the four reading paths, which lead from an intuitive example to the precise argument and its recorded review, or jump to the newest dated reading cut.
-Newest reading cut: 7 October 2026, 18:37 UTC . A reading cut is a dated, unchanging selection of public work, checked at the time shown. Each item keeps the label its cut gives it (landed, open proposal, or an issue-comment source that is not a landed packet), and the cut is not a status register. Newer cuts sit above older ones, and older cuts keep their original wording, including the 3 October section still headed “Latest public work”.
+A READING PATH
What can the shape of a landscape tell us? The program connects probability, geometry, and topology. Start with one of the four reading paths, which lead from an intuitive example to the precise argument and its recorded review, or jump to the newest dated reading cut.
+Newest reading cut: 9 October 2026, 00:05 UTC . A reading cut is a dated, unchanging selection of public work, checked at the time shown. Each item keeps the label its cut gives it (landed, open proposal, or an issue-comment source that is not a landed packet), and the cut is not a status register. Newer cuts sit above older ones, and older cuts keep their original wording, including the 3 October section still headed “Latest public work”.
01 How long does a feature last?02 What does a peak look like up close?03 Close together is a different problem.04 A small example can test a big idea.
Reading paths 01–04 cite the proof-index snapshot at Math d6628da (26 September 2026) and its recorded reviews; later results are in the dated cuts.
Dated reading cuts, newest first
+Reading cut · 9 October 2026, 00:05 UTC — How common are short-lived bars in a fixed finite Gaussian field? Full sources: open “Exact sources, review record and the program”.
Reading cut · 7 October 2026, 18:37 UTC — What else landed by 7 October? Full sources: open “Exact sources, reads and other landed work”.
Reading cut · 4 October 2026, 06:20 UTC — Can a grid recover the shortest bars? Full proofs: open “Exact conditions, complete proofs and scoped reviews”.
Reading cut · 4 October 2026, 00:18 UTC — How accurately can we predict the wrong saddle? Full proof: open “Precise measure, full proof, reviews and source identities”.
@@ -31,14 +32,64 @@
Kernel-checked A Lean build compiled the statement at the named commit. A kernel build or merge is not an alignment review (7 October cut), and kernel-checking a formal statement is not scientific acceptance (the same cut’s scope paragraph).
Scientific effect: NONE The source’s own declaration that it changes no scientific status.
-Status words on this page and where each is quoted from (as read 8 October 2026)
+Status words on this page and where each is quoted from (as read 9 October 2026)
PASS_TECHNICAL_SCOPED · scoped technical pass Quoted from the nonauthor reviews linked in the 06:20 cut (“Both report PASS_TECHNICAL_SCOPED”) and the 00:18 cut (“a scoped technical pass with no required amendment”). This site records no definition of the token; each linked review states its own scope and retained hypotheses.
PASS_TECHNICAL · ALIGNED_SCOPED Quoted from the 18:00 cut: the cap card’s alignment review (“PASS_TECHNICAL / ALIGNED_SCOPED”) and the #233 review and landing record, whose PASS_TECHNICAL is “conditional on the retained interfaces”. The 7 October cut’s sentence applies: a kernel build or merge is not an alignment review.
aligned · kernel-checked · read · slice read · readback Quoted from the 7 October cut: slices (a)–(c) of the v2.6 cap rows “aligned, with no amendment”; “152 kernel-checked Lean declarations”; and the Math #390 packet guide’s words for one nonauthor review of one named slice and its successor check.
+PASS Quoted from the finite H0 lifetime review record linked in the 9 October 2026 cut (“Fresh full exact-file nonauthor reviews of the incorporated proof: PASS.”), beside its readers’ names. In that record “nonauthor” does not mean independent: organizational-independence credit is zero. It is that record’s own word, not PASS_TECHNICAL. This site records no definition of the token; the record states its own scope, imports and exclusions.
+conventional analytic source Quoted from the title of the proof linked in the 9 October 2026 cut: the label that source gives itself, not a status this site assigns. Its review record calls it “a conventional analytic theorem with explicit imports”.
NOT READY A historical xAI disposition quoted in the 20:01 cut beside the occurrence integration receipt; the card says what that receipt does and does not change.
Words used on other pages ACCEPT and AMEND / open are the proof index’s and STATUS.md’s wording at their pinned snapshots, shown on Source records and the Library board . PROVED_REVIEWED, AUTHOR_SIDE_CANDIDATE and the other gate classifications are the downstream gate’s states, shown on the dated claim-dependency snapshot . Each page quotes its own source; none of ACCEPT, AMEND, PROVED_REVIEWED or AUTHOR_SIDE_CANDIDATE appears in this page’s cuts.
Reviewers and credit Reviewer models and providers are quoted from the records. Organizational-independence credit is zero wherever a card says so. Naming a review is not acceptance.
+
+Landed 8 October · main #314–#326 · fixed finite Gaussian scope
How common are short-lived bars in a fixed finite Gaussian field? Reading cut9 October 2026 · 00:05 UTC
+On 8 October six merges into main landed a research program and ten proof sources in its suite. The program describes itself as “a research design and execution route, not a new scientific-status register or an acceptance vote”. Its target is “a reusable theorem connecting a local singularity, the probability law transverse to its discriminant, and the intensity of actual persistence bars”. Its first statement of that target is conditional: “a precisely stated transfer target” that “does not verify those five hypotheses for any new field”. The program document landed before all ten proof sources, and no later merge changed it. This cut explains one of them, the finite H0 lifetime proof from main #326, which counts actual finite H0 bars for fixed ideal finite Gaussian laws; it is not a universality theorem. Main #329, merged at 23:58 UTC, landed three later sources, which the suite guide calls the regular-fold structural theorem, the exact periodized Gaussian H0 adapter and the marked short-bar process theorem. The suite guide linked below links them. This cut does not summarize them, and the H0 proof and its review record kept the same bytes through that merge. This curated cut covers only this line. Other main work that landed after the 7 October cut, including the pinned graph exporter (main #318) and its source-isolation guard (main #324), is not summarized here.
+
+
+Landed conventional analytic source · main #326
Every finite H0 bar counted once, for fixed finite Gaussian laws
+The proof fixes one ideal real Gaussian field on a flat square two-dimensional torus of side L. The field is a finite Fourier sum with independent standard Gaussian coefficients and strictly positive, symmetric weights on every frequency in the square grid {−K,…,K}², for an integer cutoff K ≥ 2. A finite superlevel H0 bar is born at a local maximum and dies at the saddle where its component merges into an older one; its lifetime ℓ is the height difference. The one essential class is excluded.
+In the suite guide’s words, the proof “constructs a Borel selector and counts every actual finite superlevel H0 bar exactly once”. For each such fixed law it proves two statements. The first is for a specified density ν_bar of the expected bar-lifetime measure per unit area. The second is for the expected number E N_bar((0, t]) of finite bars with lifetime at most t, per unit area (V = L² is the torus area):
+ν_bar(ℓ) ~ C_loc ℓ^(−1/3), as ℓ decreases to zero
+E N_bar((0, t]) / V ~ (3/2) C_loc t^(2/3), as t decreases to zero
+The density exponent is −1/3; the cumulative exponent is 2/3. C_loc is the same local coefficient as in this line’s candidate-lifetime theorem. The review record says “The coefficient is positive and field-dependent”, and this page gives no value. The proof says its pointwise law concerns “the particular finite Borel representative constructed in Section 5”, and “no O(1) near-term remainder is claimed”. In the suite guide’s words, “The selected density is not asserted continuous”. Missed near pairs contribute only o(ℓ^(−1/3)), and the far contribution is bounded.
+The ten catalogue spectra with ideal Gaussian coefficients, at L = 24 and K = 2 or 3, give twenty fixed cases of this kind. The review record says “Finite-family uniformity is not twenty empirical confirmations.” The proof says “No finite-word or quantized sampler is identified with the continuous ideal Gaussian coefficient law.” In the review record’s words, “Positivity-boundary spectra, K1, non-Gaussian coefficients, infinite-field laws, numerical coupling, quantitative usable windows, higher homology, factorial moments, process limits, formal source alignment, blind fifty-law validation and external uptake remain outside the result.”
+Who read it: the record says “All contributors/readers are source and route exposed OpenAI/Codex.” The proof’s mathematical author is /root/universality_review. Two agents that did not write it, /root/benchmark_formal_audit and /root/final_contract_review, each freshly read all 526 lines of the landed proof and returned PASS without a mathematical must-fix. The first of them wrote the elder-transfer proof that this one consumes. Organizational-independence credit is zero, so “nonauthor” here does not mean independent, and none is an owner reading. “No human, blind reconstruction or provider-distinct acceptance is claimed.”
+Read the finite H0 lifetime proof
+
+Landed? Landed at main 2c841707 (main #326, merged 8 October 2026, 22:42 UTC). The program landed in main #314. The six other proof sources that landed with it or before it came in main #319, #321, #323 and #326.
+Read by OpenAI/Codex · “PASS”, quoted from the linked review record · the landed proof’s exact 27,064 bytes; organizational-independence credit zero.
+Scientific effect The proof’s own declaration: “No human, blind or provider-distinct acceptance, formal Lean proof, sampler execution, seed consumption or scientific promotion is claimed.”
+
+
+
+Scope: this cut presents landed sources only. The review record calls the proof “a conventional analytic theorem with explicit imports”. It concerns fixed ideal finite Gaussian laws on a flat square two-dimensional torus and is not a universality theorem for a wider class of fields. The program says to “Keep the full objective open until its explicit proof, computation, publication and uptake requirements have their actual evidence.” In the suite guide’s words, “The sampler and catalogue admissibility labels retain their original meaning.” A merge, a passing check or a named review is not scientific acceptance, and no status, register, graph, catalogue or acceptance record changes here. The Library, Source records and claim-dependency snapshots keep their own dates and do not list this work.
+Exact sources, review record and the program
+These links use main commit 0be54aa227d7015b0abda00feb5e847a3fbdbcdb (main #329, merged 8 October 23:58 UTC), where this cut was checked. The program, the H0 proof and its review record have the same bytes there as at main 2c84170712c59d9de580c172815bd30bac5d93cd (main #326, 8 October 22:42 UTC), where the proof and record landed. The program document has not changed since main #314. The suite guide was changed again in main #329. The version pinned here also links that merge’s three sources, which this cut does not summarize. The review record names the earlier 10,559-byte suite guide its readers read (SHA-256 c44553c00c86fad5045ac8c9e6c90f70b1e347173d2bad6f59804b35c888e5a7); that is the version at main #326, not the one pinned here.
+
+Its record states “H0 consumes C/CG/ET/FG”. In that order, these are the candidate-lifetime theorem (main #321), contact genericity (#323), elder transfer (#326) and the Gaussian contact inputs (#319), and the record lists their exact identities. The fold-chart (#321) and weighted fold-window (#323) proofs of the same line are not among them, and the three main #329 sources landed after it. The record also describes two later reads of its own metadata; each requested an amendment to one sentence about which sources were consumed. Both sentences are corrected. After the first correction the record says “Both actual-source mathematical verdicts and proof bytes are unchanged.”
+In the suite guide’s words, its exploratory runner “generates explicitly exploratory fields” and “does not estimate a slope or compare against reference coefficient digits”, and “No held-out seeds have been consumed by this suite.”
+Notes added after earlier cuts, restated here so that none is the only record; nothing in those cuts changes.
+3 October 18:00 UTC cut, “Count each actual bar once”: an OpenAI/Codex agent that wrote none of the candidate files reconstructed the argument after reading its exact source interfaces. Its PASS_TECHNICAL is conditional on the retained interfaces. The authors use the same provider, and the author published the report. It recorded Dylan’s personal reading as pending and gives zero organizational-independence credit, so “nonauthor” there does not mean independent.
+Same cut, “Two candidates can describe one bar”: an OpenAI/Codex agent that did not write this comparison passed it with no required findings. It discloses substantial prior exposure, including authorship of C107 and coauthorship of a successor witness checker. The author uses the same provider. It records no human review and zero organizational-independence credit, so “nonauthor” there does not mean independent.
+3 October 20:01 UTC cut, source identities recomputed 8 October 2026: the replacement-bar occurrence PROOF.md at Math c2836c2a has SHA-256 b49f2ea5975dc05270f51fea4a3574093f726258cdab94888742507c2caa275f. At Math e0bed3ed, the planar soft-layer chain packet has:
+
+C99 PROOF.md: 55eb6c33105190da4194e63d90ceeb40f3434b14b92803700ab840df67e9295e
+C99 REVIEW.md: 3f1d0e1f1af51a20aa49681d0255d09d728e5d62c5f00cbca90e0671798265ed
+C103 PROOF.md: 652e66f8645eb1a34c28a85900b05405d424bb0e282b86a7d5597f10b8f9c8e3
+C103 REVIEW.md: 52dc91e3bc68b8f023f11e9ec37b1423853d721dc9188046246e96b4131e205f
+
+4 October 00:18 UTC cut, source identity recomputed 8 October 2026: the packet SOURCES.json at Math bbe85e27 has SHA-256 a6fb3d0397e622d8a1061ff6e83d05f66e99d53fbc2dd35c1b8ee82d076a4458.
+7 October 18:37 UTC cut, cap card (pointer read 8 October 2026, 00:58 UTC): GitHub reopened Math #193 at 18:45 UTC on 7 October, eight minutes after that cut. The first comment after the reopening, at 18:46 UTC, is headed “Tracking correction verified — issue reopened; scientific records unchanged”. The 4 October closure is historical, and an issue state is still not a proof status.
+The source identities above were checked for this dated reading cut. This page does not fetch, execute or verify those sources in your browser. The earlier cuts keep their original wording.
+
+Continue to the 7 October 18:37 UTC reading cut below , or follow current branches and discussions through the mutable upstream routes.
+
LANDED 4–7 OCTOBER · SCOPED SOURCES
What else landed by 7 October? Reading cut7 October 2026 · 18:37 UTC
Three landed additions are explained below: one more term for short lifetimes, a cap formalization that now reaches the torus, and a protocol for showing how far a result has been checked. Each keeps the hypotheses, reviewer lineage and limits of its own sources. This curated cut is not a complete list of what landed.
diff --git a/docs/site/workspace.html b/docs/site/workspace.html
index 4e4e31d70..7c6788e5a 100644
--- a/docs/site/workspace.html
+++ b/docs/site/workspace.html
@@ -5,9 +5,9 @@
Library and research workspace · Universal Law
-
-
-
+
+
+
@@ -16,7 +16,7 @@
Research tools Reproduce Cite
SOURCES · METHODS · REPRODUCTION
Look beneath the surface. This is the Library: read the proof texts, inspect exact values, or follow a result back to its sources. It is the technical companion to the interactive introduction .
Start, reference, records, deeper
-The existing 2,138-file inventory includes proofs, partial arguments, reviews, and historical reading copies. It counts files, not accepted theorems. For packets landed up to the 7 October 2026, 18:37 UTC reading cut, use Latest public work ; for current source routes, use Check newer work . This inventory retains its 2026-09-26 source cut.
+The existing 2,138-file inventory includes proofs, partial arguments, reviews, and historical reading copies. It counts files, not accepted theorems. For packets landed up to the 9 October 2026, 00:05 UTC reading cut, use Latest public work ; for current source routes, use Check newer work . This inventory retains its 2026-09-26 source cut.
JavaScript is off. The 2,138-record catalog is verified by script, so search is not shown and its controls stay disabled. The shards are readable at docs/public-math at main f2e432e .
Search by path, repository, commit, or SHA-256 Search links become available after catalog verification.
The original inventory and its shards are verified by script before search opens.
Hash-verified source inventory (filtered rows shown) Repository / full text Commit SHA-256
Show 50 more
diff --git a/tests/test_reader_links.py b/tests/test_reader_links.py
index 253f0d024..f3b9f2aa9 100644
--- a/tests/test_reader_links.py
+++ b/tests/test_reader_links.py
@@ -476,12 +476,12 @@ def section(self):
return text.split('id="latest-work"',1)[1].split('Latest public work',text)
+ self.assertIn('href="#reading-cut-20261009">Latest public work',text)
self.assertIn('href="#shrinking-bin-sampling">06:20 UTC grid-sampling reading cut below',text)
self.assertIn('tabindex="-1" aria-labelledby="sampling-heading"',section)
self.assertIn('datetime="2026-10-04T06:20:32Z"',section)
@@ -768,6 +782,10 @@ def test_limits_and_full_sources_remain_available_without_status_promotion(self)
def test_preceding_reading_cuts_remain_byte_identical(self):
text=(SITE/'research.html').read_text()
+ # The 7 October cut stopped being newest on 9 October; it is pinned whole, its cut-pointer included.
+ october=text[text.index('=2','d≥2','iid','independent copies',
+ 'expanding-domain','cluster avoidance','counterexample','r dr',
+ 'fold_structural_universality','periodized_gaussian_h0','iid_short_bar_process',
+ 'Regular cubic folds and the structural H0 lifetime exponent',
+ 'Actual H0 lifetime intensity for the exact periodized Gaussian law',
+ 'Marked iid-copy Poisson limit for actual short H0 bars',
+ 'blob/main','tree/main',
+ )
+ QUOTES = {
+ 'program': ('a reusable theorem connecting a local singularity, the probability law transverse to its discriminant, and the intensity of actual persistence bars',
+ 'a research design and execution route, not a new scientific-status register or an acceptance vote',
+ 'a precisely stated transfer target','does not verify those five hypotheses for any new field',
+ 'Keep the full objective open until its explicit proof, computation, publication and uptake requirements have their actual evidence.'),
+ 'readme': ('constructs a Borel selector and counts every actual finite superlevel H0 bar exactly once',
+ 'The selected density is not asserted continuous',
+ 'The sampler and catalogue admissibility labels retain their original meaning.',
+ 'generates explicitly exploratory fields',
+ 'does not estimate a slope or compare against reference coefficient digits',
+ 'No held-out seeds have been consumed by this suite.',
+ 'regular-fold structural theorem','exact periodized Gaussian H0 adapter','marked short-bar process theorem'),
+ 'proof': ('No human, blind or provider-distinct acceptance, formal Lean proof, sampler execution, seed consumption or scientific promotion is claimed.',
+ 'the particular finite Borel representative constructed in Section 5',
+ 'no O(1) near-term remainder is claimed',
+ 'No finite-word or quantized sampler is identified with the continuous ideal Gaussian coefficient law.',
+ 'conventional analytic source'),
+ 'review': ('a conventional analytic theorem with explicit imports',
+ 'All contributors/readers are source and route exposed OpenAI/Codex.',
+ 'No human, blind reconstruction or provider-distinct acceptance is claimed.',
+ 'Fresh full exact-file nonauthor reviews of the incorporated proof: PASS.',
+ 'H0 consumes C/CG/ET/FG',
+ 'Both actual-source mathematical verdicts and proof bytes are unchanged.',
+ 'The coefficient is positive and field-dependent',
+ 'Finite-family uniformity is not twenty empirical confirmations.',
+ 'Positivity-boundary spectra, K1, non-Gaussian coefficients, infinite-field laws, numerical coupling, quantitative usable windows, higher homology, factorial moments, process limits, formal source alignment, blind fifty-law validation and external uptake remain outside the result.'),
+ }
+ SOURCE_PATHS = {'program':'docs/PERSISTENCE_UNIVERSALITY_PROGRAM.md','readme':'experiments/universality/README.md',
+ 'proof':'experiments/universality/finite_h0_lifetime/PROOF.md','review':'experiments/universality/finite_h0_lifetime/REVIEW.md'}
+ EARLIER_NOTE_DIGESTS = ('b49f2ea5975dc05270f51fea4a3574093f726258cdab94888742507c2caa275f',
+ '55eb6c33105190da4194e63d90ceeb40f3434b14b92803700ab840df67e9295e',
+ '3f1d0e1f1af51a20aa49681d0255d09d728e5d62c5f00cbca90e0671798265ed',
+ '652e66f8645eb1a34c28a85900b05405d424bb0e282b86a7d5597f10b8f9c8e3',
+ '52dc91e3bc68b8f023f11e9ec37b1423853d721dc9188046246e96b4131e205f',
+ 'a6fb3d0397e622d8a1061ff6e83d05f66e99d53fbc2dd35c1b8ee82d076a4458')
+ PROSE_NUMBERS = ('8 314 326 8 0 326 0 329 23:58 0 0 7 318 324 326 0 0 0 1/3 2/3 5 1 1 526 0 326 8 2026 22:42 314 319 321 323 326 '
+ '27,064 329 8 23:58 0 326 8 22:42 314 329 10,559 256 326 256 256 256 0 256 0 321 323 326 319 321 323 329 3 18:00 '
+ '107 3 20:01 8 2026 256 99 99 103 103 4 00:18 8 2026 256 7 18:37 8 2026 00:58 193 18:45 7 18:46 4 7 18:37')
+ # Each quote keeps the source the page names for it.
+ ATTRIBUTIONS = ('In the suite guide’s words, the proof “constructs a Borel selector',
+ 'The review record says “The coefficient is positive and field-dependent”',
+ 'The proof says its pointwise law concerns “the particular finite Borel representative',
+ 'and “no O(1) near-term remainder is claimed”',
+ 'In the suite guide’s words, “The selected density is not asserted continuous”',
+ 'The review record says “Finite-family uniformity is not twenty empirical confirmations.”',
+ 'The proof says “No finite-word or quantized sampler',
+ 'In the review record’s words, “Positivity-boundary spectra',
+ 'the record says “All contributors/readers are source and route exposed OpenAI/Codex.”',
+ 'The proof’s own declaration: “No human, blind or provider-distinct acceptance',
+ 'The review record calls the proof “a conventional analytic theorem with explicit imports”',
+ 'The program says to “Keep the full objective open',
+ 'In the suite guide’s words, “The sampler and catalogue admissibility labels',
+ 'Its record states “H0 consumes C/CG/ET/FG”',
+ 'After the first correction the record says “Both actual-source mathematical verdicts',
+ 'In the suite guide’s words, its exploratory runner “generates explicitly exploratory fields”',
+ 'The program describes itself as “a research design and execution route',
+ 'which counts actual finite H0 bars for fixed ideal finite Gaussian laws; it is not a universality theorem.')
+ OTHER_PAGES_ROW = ('Words used on other pages ACCEPT and AMEND / open are the proof index’s and STATUS.md’s wording at their pinned snapshots, shown on Source records and the Library board . PROVED_REVIEWED, AUTHOR_SIDE_CANDIDATE and the other gate classifications are the downstream gate’s states, shown on the dated claim-dependency snapshot . Each page quotes its own source; none of ACCEPT, AMEND, PROVED_REVIEWED or AUTHOR_SIDE_CANDIDATE appears in this page’s cuts. ')
+
+ class Tree(HTMLParser):
+ """Elements of one section with class, attributes, direct text and inner text."""
+ VOID = {'br','img','meta','link','hr','input'}
+ def __init__(self, text):
+ super().__init__();self.elements=[];self.stack=[];self.feed(text)
+ def handle_starttag(self, tag, attrs):
+ node={'tag':tag,'attrs':dict(attrs),'classes':set((dict(attrs).get('class') or '').split()),'text':[],'parents':[n['tag'] for n in self.stack],'parent_classes':set().union(*[n['classes'] for n in self.stack]) if self.stack else set()}
+ self.elements.append(node)
+ if tag not in self.VOID: self.stack.append(node)
+ def handle_endtag(self, tag):
+ while self.stack:
+ node=self.stack.pop()
+ if node['tag']==tag: break
+ def handle_data(self, data):
+ for node in self.stack: node['text'].append(data)
+ def find(self, tag=None, cls=None):
+ return [n for n in self.elements if (tag is None or n['tag']==tag) and (cls is None or cls in n['classes'])]
+
+ @staticmethod
+ def text_of(node): return ''.join(node['text'])
+
+ def page(self): return (SITE/'research.html').read_text()
+
+ def section(self):
+ text=self.page()
+ start=text.index(f'')+len('')]
+
+ def source_bytes(self, ref, path):
+ # Pinned sources are read from git objects (CI checks out with full history); a tree without them cannot check identities.
+ import subprocess
+ try:
+ return subprocess.run(['git','cat-file','blob',f'{ref}:{path}'],cwd=ROOT,check=True,capture_output=True).stdout
+ except (OSError,subprocess.CalledProcessError):
+ self.skipTest(f'git object {ref[:8]}:{path} unavailable in this checkout')
+
+ def test_cut_is_newest_entry_and_links_to_the_7_october_cut_and_upstream(self):
+ text=self.page();section=self.section()
+ self.assertTrue(section.endswith(' \n'),'the new cut sits immediately above the 7 October cut')
+ self.assertLess(text.index('id="status-words"'),text.index(f'',section)
+ self.assertIn('How common are short-lived bars in a fixed finite Gaussian field? ',section)
+ self.assertEqual(re.findall(r'',section),[self.CUT_ISO])
+ self.assertIn(f'9 October 2026 · 00:05 UTC ',section)
+ self.assertIn('7 October 18:37 UTC reading cut below ',section)
+ self.assertIn('current branches and discussions ',section)
+ self.assertIn(f'Latest public work ',text)
+ self.assertIn(f'Newest reading cut: 9 October 2026, 00:05 UTC .',text)
+ first_row=text.split('',2)[1]
+ self.assertEqual(first_row,f'Reading cut · 9 October 2026, 00:05 UTC — How common are short-lived bars in a fixed finite Gaussian field? Full sources: open “Exact sources, review record and the program”. \n')
+ self.assertIn(f'Exact sources, review record and the program ',section)
+ names=[name for name in re.findall(r']*>(.*?) ',text,re.S)]
+ for name in ('7 October 18:37 UTC reading cut below','current branches and discussions','Read the finite H0 lifetime proof',
+ 'Proof bytes checked for this cut','Read the persistence universality program',
+ 'Read the suite guide, which links all ten proof sources and their reviews',
+ 'Read the H0 lifetime review record, with both verdicts and the exclusions'):
+ with self.subTest(name=name):self.assertEqual(names.count(name),1)
+
+ def test_quoted_phrases_are_verbatim_in_their_pinned_sources(self):
+ # The PASS line is quoted in the #status-words row that names this cut; every other quote sits in the cut.
+ words=self.page().split('',1)[0]
+ section=self.section()+words
+ for key,quotes in self.QUOTES.items():
+ source=self.source_bytes(OCTNEW_REF,self.SOURCE_PATHS[key]).decode()
+ flat=' '.join(source.replace('`','').replace('**','').split())
+ for quote in quotes:
+ with self.subTest(source=key,quote=quote):
+ self.assertIn(quote,section)
+ self.assertIn(quote,flat)
+ for attribution in self.ATTRIBUTIONS:
+ with self.subTest(attribution=attribution):self.assertEqual(section.count(attribution),1)
+ self.assertNotIn(', and the record says “Both actual-source',section)
+
+ def test_forbidden_words_and_later_source_details_are_absent(self):
+ section=self.section()
+ for word in self.FORBIDDEN:
+ with self.subTest(word=word):
+ self.assertNotIn(word,section)
+ # lower-case phrases are also refused at a sentence start or in any other case
+ if word==word.lower():self.assertNotIn(word,section.lower())
+ self.assertEqual(section.count('periodized'),1)
+ self.assertEqual(section.count('exact periodized Gaussian H0 adapter'),1)
+ for phrase in ('not a universality theorem.','not a universality theorem for a wider class of fields'):
+ self.assertIn(phrase,section)
+ self.assertNotIn('universality',section.split('',1)[0])
+ for link,name in re.findall(r']*href="([^"]+)"[^>]*>(.*?) ',section):
+ if 'universality' in name: self.assertEqual(name,'Read the persistence universality program')
+ lead=section.split(' ',1)[1].split('',1)[0]
+ self.assertEqual(section.count('#324'),1);self.assertIn('#324',lead)
+ card=self.card()
+ # The card, its status rows included, does not name main #329 or its sources; the lead and the disclosure do.
+ self.assertEqual(card.count('#329'),0)
+ for token in ('#324','regular-fold','short-bar process','periodized','structural theorem','adapter'):
+ with self.subTest(card=token):self.assertNotIn(token,card)
+ eyebrow=section.split('
',1)[1].split('
',1)[0]
+ self.assertEqual(eyebrow,'Landed 8 October · main #314–#326 · fixed finite Gaussian scope')
+ hero=self.page().split('
',1)[1]
+ for token in ('#329','#324','regular-fold','short-bar','periodized','universality'):
+ with self.subTest(hero=token):self.assertNotIn(token,hero)
+
+ def test_two_estimands_keep_their_exponents_and_no_coefficient_value(self):
+ section=self.section();card=self.card()
+ self.assertIn('The first is for a specified density ν_bar of the expected bar-lifetime measure per unit area.',card)
+ self.assertIn('The second is for the expected number E N_bar((0, t]) of finite bars with lifetime at most t, per unit area',card)
+ formulas=re.findall(r'(.*?)
',section)
+ self.assertEqual(formulas,['ν_bar(ℓ) ~ C_loc ℓ^(−1/3), as ℓ decreases to zero',
+ 'E N_bar((0, t]) / V ~ (3/2) C_loc t^(2/3), as t decreases to zero'])
+ self.assertIn('The density exponent is −1/3; the cumulative exponent is 2/3.',card)
+ self.assertNotIn('t^(−1/3)',section);self.assertNotIn('ℓ^(2/3)',section)
+ # no second statement of either exponent anywhere in the cut, in either minus sign
+ self.assertEqual((section.count('exponent'),section.count('cumulative'),section.count('−1/3'),section.count('2/3')),(2,1,3,2))
+ self.assertNotIn('-1/3',section)
+ plain=re.sub(r'<[^>]+>','',card)
+ self.assertIsNone(re.search(r'\d[.,]\d{1,2}(?!\d)|\d\.\d',plain),'no coefficient digits on the card')
+ self.assertIsNone(re.search(r'C_loc\s*(?:[=≈≃<>]|\(?\d)',plain))
+ self.assertIn('this page gives no value',card)
+ # the promise is page-wide: no decimal anywhere in the cut's prose, and no digit in any sentence naming C_loc
+ prose=re.sub(r'<[^>]+>','',re.sub(r'.*?
','',section))
+ self.assertIsNone(re.search(r'\d[.,]\d{1,2}(?!\d)|\d\.\d',prose))
+ for sentence in re.split(r'(?<=[.;:])\s+',prose):
+ if 'C_loc' in sentence:
+ with self.subTest(sentence=sentence[:60]):self.assertNotRegex(sentence,r'\d')
+ self.assertIn('the same local coefficient as in this line’s candidate-lifetime theorem.',card)
+ self.assertNotIn('candidate-pair',section)
+ # The cut does not change once it lands: its prose numbers (outside code, display formulas and the time) are pinned in order.
+ numbers=re.sub(r']*>.*? ','',re.sub(r'.*?','',re.sub(r'.*?
','',section)))
+ self.assertEqual(' '.join(re.findall(r'\d[\d,.:–−/]*\d|\d',re.sub(r'<[^>]+>','',numbers))),self.PROSE_NUMBERS)
+ # The #status-words rows that name this cut give no coefficient value either.
+ words=self.page().split('',1)[0]
+ for row in re.findall(r'(.*?) ',words,re.S):
+ if '9 October 2026 cut' not in row: continue
+ with self.subTest(row=row[:60]):
+ self.assertNotIn('C_loc',row);self.assertIsNone(re.search(r'\d[.,]\d|[=≈≃]',re.sub(r'<[^>]+>','',row)))
+
+ def test_one_card_one_face_pin_three_status_rows_and_neutral_classes(self):
+ section=self.section();tree=self.Tree(section)
+ cards=tree.find(cls='latest-card')
+ self.assertEqual([c['attrs'].get('id') for c in cards],['finite-h0-lifetimes'])
+ self.assertEqual(len(tree.find('p','display-formula')),2)
+ self.assertEqual(len(tree.find('p','latest-boundary')),1)
+ statuses=tree.find('dl','card-status');self.assertEqual(len(statuses),1)
+ self.assertEqual([self.text_of(n) for n in tree.find('dt')],['Landed?','Read by','Scientific effect'])
+ self.assertEqual(len(tree.find('dd')),3)
+ self.assertTrue(all('card-status' in n['parent_classes'] and 'latest-card' in n['parent_classes'] for n in tree.find('dt')+tree.find('dd')))
+ rows=dict(zip([self.text_of(n) for n in tree.find('dt')],[self.text_of(n) for n in tree.find('dd')]))
+ self.assertTrue(rows['Landed?'].startswith('Landed at main 2c841707 (main #326, merged 8 October 2026, 22:42 UTC).'))
+ self.assertEqual(rows['Read by'],'OpenAI/Codex · “PASS”, quoted from the linked review record · the landed proof’s exact 27,064 bytes; organizational-independence credit zero.')
+ self.assertEqual(rows['Scientific effect'],'The proof’s own declaration: “No human, blind or provider-distinct acceptance, formal Lean proof, sampler execution, seed consumption or scientific promotion is claimed.”')
+ used=set().union(*[n['classes'] for n in tree.elements])
+ self.assertLessEqual(used,self.ALLOWED_CLASSES,used-self.ALLOWED_CLASSES)
+ for bad in ('accept','amend','gold','latest-chain','lineage-note','cut-pointer'):
+ self.assertNotIn(bad,used)
+ card=PinnedReadingLinks('Who read it:',self.card())
+
+ def test_pinned_items_carry_only_their_digest_and_the_digests_match_the_pinned_bytes(self):
+ section=self.section()
+ parsed=PinnedReadingLinks('(.*?)',section,re.S):
+ if 'data-source-kind="pinned"' not in item: continue
+ codes=re.findall(r'(.*?)',item)
+ with self.subTest(item=item[:80]):
+ self.assertEqual(len(codes),1);self.assertRegex(codes[0],r'\A[0-9a-f]{64}\Z')
+ for href in re.findall(r'href="(https://[^"]+)"',section):
+ with self.subTest(href=href):
+ self.assertTrue(href.startswith(OCTNEW_PREFIX));self.assertEqual(urlsplit(href).query+urlsplit(href).fragment,'')
+ self.assertNotIn(self.LANDED_REF+'/',section)
+ self.assertEqual(section.count(self.LANDED_REF),1)
+ for url,digest in OCTNEW_PINS.items():
+ data=self.source_bytes(OCTNEW_REF,url[len(OCTNEW_PREFIX):])
+ with self.subTest(url=url):self.assertEqual(sha256(data).hexdigest(),digest)
+ if not url.endswith('/README.md'):
+ self.assertEqual(sha256(self.source_bytes(self.LANDED_REF,url[len(OCTNEW_PREFIX):])).hexdigest(),digest,'same bytes where the proof landed')
+ proof=self.source_bytes(OCTNEW_REF,'experiments/universality/finite_h0_lifetime/PROOF.md')
+ self.assertEqual((len(proof),proof.count(b'\n')),(27064,526))
+ self.assertIn('27,064 bytes',section);self.assertIn('all 526 lines',section)
+ landed_readme=self.source_bytes(self.LANDED_REF,'experiments/universality/README.md')
+ self.assertEqual((sha256(landed_readme).hexdigest(),len(landed_readme)),self.LANDED_README)
+ self.assertIn(f'earlier 10,559-byte suite guide its readers read (SHA-256 {self.LANDED_README[0]})',section)
+
+ def test_earlier_notes_are_restated_with_their_qualifiers_and_without_links(self):
+ text=self.page();section=self.section()
+ notes=section.split('Notes added after earlier cuts',1)[1].split('
The source identities above were checked',1)[0]
+ self.assertNotIn('',1)[0])[0]
+ body=original.split(' ',1)[1][:-len('
')].replace('“nonauthor” here','“nonauthor” there')
+ with self.subTest(card=card):self.assertIn(body,notes)
+ self.assertIn('PASS_TECHNICAL',notes)
+ self.assertIn('The first comment after the reopening, at 18:46 UTC, is headed “Tracking correction verified — issue reopened; scientific records unchanged”.',notes)
+ for paragraph in re.findall(r'<(?:p|dd)\b[^>]*>(.*?)(?:p|dd)>',section,re.S):
+ if 'nonauthor' in paragraph:
+ with self.subTest(paragraph=paragraph[:60]):self.assertIn('does not mean independent',paragraph)
+ self.assertEqual(section.count('does not mean independent'),3)
+ self.assertIn('Organizational-independence credit is zero',self.card())
+
+ def test_status_words_quote_pass_and_the_source_label_without_rewording_other_rows(self):
+ text=self.page()
+ words=text.split('',1)[1].split(' ',1)[0]
+ self.assertIn('Status words on this page and where each is quoted from (as read 9 October 2026) ',words)
+ terms=re.findall(r'(.*?) ',words)
+ self.assertEqual(terms[2:5],['aligned · kernel-checked · read · slice read · readback','PASS','conventional analytic source'])
+ self.assertEqual(terms[5],'NOT READY')
+ self.assertIn('linked in the 9 October 2026 cut (“Fresh full exact-file nonauthor reviews of the incorporated proof: PASS.”)',words)
+ self.assertIn('It is that record’s own word, not PASS_TECHNICAL.',words)
+ self.assertIn('In that record “nonauthor” does not mean independent: organizational-independence credit is zero.',words)
+ self.assertIn('Its review record calls it “a conventional analytic theorem with explicit imports”.',words)
+ self.assertIn(self.OTHER_PAGES_ROW,words)
+ for section in re.findall(r'',text,re.S):
+ for token in ('ACCEPT','AMEND','PROVED_REVIEWED','AUTHOR_SIDE_CANDIDATE'):
+ with self.subTest(section=section[:40],token=token):self.assertNotIn(token,section)
+
+ def test_card_status_rows_use_the_glossary_type_not_monospace(self):
+ css=(SITE/'home.css').read_text()
+ self.assertIn('.reading-glossary dt, .latest-card .card-status dt { font-weight: 650; margin-top: 12px; }',css)
+ rule=re.search(r'\.reading-glossary dd, \.latest-card \.card-status dd \{([^}]*)\}',css)
+ self.assertIsNotNone(rule);self.assertIn('font-family: inherit',rule.group(1));self.assertIn('font-size: 15px',rule.group(1))
+ self.assertIn('.latest-card .card-status dd { max-width: 78ch; }',css)
+ self.assertIn('@media print { .latest-card:has(> .card-status) { break-inside: auto; } .latest-card .card-status, p.display-formula { break-inside: avoid; } }',css)
+ self.assertIn('.latest-identities code, .latest-card code { overflow-wrap: anywhere; }',css)
+ # agent paths in the card are breakable code, so they cannot push past the card at 320 px with WCAG 1.4.12 spacing
+ for name in ('/root/universality_review','/root/benchmark_formal_audit','/root/final_contract_review'):
+ with self.subTest(name=name):self.assertIn(f'{name}',self.card())
+ for sheet in ('home.css','brand.css'):
+ for selector,body in re.findall(r'([^{}]*card-status[^{}]*)\{([^}]*)\}',(SITE/sheet).read_text()):
+ with self.subTest(sheet=sheet,selector=selector.strip()):self.assertNotIn('monospace',body)
+
+ def test_browser_flows_cover_the_new_cut(self):
+ harness=(ROOT/'tools/public_shop_browser_check.py').read_text()
+ for token in (f'#{self.CUT_ID}',f'#{self.CUT_ID}-details',self.CUT_ISO,'7 October 18:37 UTC reading cut below',
+ '#finite-h0-lifetimes .card-status dd','Organizational-independence credit is zero'):
+ with self.subTest(token=token):self.assertIn(token,harness)
+
+
if __name__=='__main__': unittest.main()
diff --git a/tools/public_shop_browser_check.py b/tools/public_shop_browser_check.py
index d4e9926bc..3558dc6dd 100644
--- a/tools/public_shop_browser_check.py
+++ b/tools/public_shop_browser_check.py
@@ -176,6 +176,17 @@ def refuse_remote(route):
page.goto(origin+"index.html")
entry=page.get_by_role("link",name="Read the latest public work →",exact=True)
entry.focus();page.keyboard.press("Enter")
+ expect(page.locator("#reading-cut-20261009")).to_be_focused()
+ expect(page.locator("#reading-cut-20261009 time")).to_have_attribute("datetime","2026-10-09T00:05:00Z")
+ expect(page.locator("#reading-cut-20261009 .latest-card")).to_have_count(1)
+ expect(page.locator("#reading-cut-20261009 .card-status dt")).to_have_count(3)
+ expect(page.locator("#finite-h0-lifetimes")).to_contain_text("Organizational-independence credit is zero")
+ require(page.evaluate("document.documentElement.scrollWidth <= innerWidth"),"9 October cut entry overflow")
+ newest_shot=output/f'{result["case"]}-newest-cut.png'
+ page.locator("#reading-cut-20261009").screenshot(path=str(newest_shot))
+ result["newest_cut_screenshot"]={"path":newest_shot.name,"sha256":sha256(newest_shot.read_bytes()).hexdigest()}
+ october_entry=page.get_by_role("link",name="7 October 18:37 UTC reading cut below",exact=True)
+ october_entry.focus();page.keyboard.press("Enter")
expect(page.locator("#reading-cut-20261007")).to_be_focused()
expect(page.locator("#reading-cut-20261007 time")).to_have_attribute("datetime","2026-10-07T18:37:14Z")
expect(page.locator("#reading-cut-20261007 .latest-card")).to_have_count(3)
@@ -238,7 +249,7 @@ def fragment_focus_indicator(selector):
require(urlsplit(page.url).fragment=="newer-work","Forward lost upstream anchor")
require(not remote_requests,"Static latest-work reading route unexpectedly fetched a remote source")
result["latest-source-requests"]=remote_requests
- result["steps"].extend(["Home keyboard route reaches the 7 October cut, then C131/C132, then C124 and both dated historical reading anchors with focus", "landed source packets and issue-only scopes remain visible", "source identities repeatedly open/close without overflow", "upstream navigation and Back/Forward preserve anchors", "static reading path remains usable with remote source requests refused"])
+ result["steps"].extend(["Home keyboard route reaches the 9 October cut (screenshotted), then the 7 October cut, then C131/C132, then C124 and both dated historical reading anchors with focus", "landed source packets and issue-only scopes remain visible", "source identities repeatedly open/close without overflow", "upstream navigation and Back/Forward preserve anchors", "static reading path remains usable with remote source requests refused"])
finally:
page.unroute("https://raw.githubusercontent.com/**",refuse_remote)
@@ -253,6 +264,36 @@ def refuse_remote(route):
page.goto(origin+"research.html")
jump=page.get_by_role("link",name="Latest public work",exact=True)
jump.focus();page.keyboard.press("Enter")
+ newest=page.locator("#reading-cut-20261009")
+ expect(newest).to_be_focused()
+ require(newest.evaluate('el => parseFloat(getComputedStyle(el).outlineWidth)>=3 && getComputedStyle(el).outlineStyle!=="none"'),"9 October fragment lacks visible focus")
+ newest_details=page.locator("#reading-cut-20261009-details");newest_summary=newest_details.locator("summary")
+ require(newest_details.get_attribute("open") is None,"9 October detail must start collapsed")
+ newest_summary.focus();page.keyboard.press("Enter")
+ expect(newest_details).to_have_attribute("open","")
+ expect(newest_details.locator("a[data-source-kind=pinned]")).to_have_count(4)
+ expect(newest_details.locator("a[data-source-kind=pinned]").first).to_be_visible()
+ require(page.evaluate("document.documentElement.scrollWidth <= innerWidth"),"Expanded 9 October reading overflow")
+ newest_sources=output/f'{result["case"]}-newest-cut-sources.png'
+ newest_details.screenshot(path=str(newest_sources))
+ result["newest_cut_sources_screenshot"]={"path":newest_sources.name,"sha256":sha256(newest_sources.read_bytes()).hexdigest()}
+ newest_summary.focus();page.keyboard.press("Enter")
+ require(newest_details.get_attribute("open") is None,"9 October detail did not close")
+ status_fonts=page.locator("#finite-h0-lifetimes .card-status dd").evaluate_all("els => els.map(el => getComputedStyle(el).fontFamily)")
+ card_text_font=page.locator("#finite-h0-lifetimes > p:not(.card-kicker)").first.evaluate("el => getComputedStyle(el).fontFamily")
+ require(len(status_fonts)==3 and not any("monospace" in font for font in status_fonts),f"Card-status rows must not be monospace: {status_fonts}")
+ require(all(font==card_text_font for font in status_fonts),f"Card-status rows must use the card text face {card_text_font!r}: {status_fonts}")
+ status_widths=page.locator("#finite-h0-lifetimes .card-status dd").evaluate_all("els => els.map(el => el.getBoundingClientRect().width)")
+ text_width=page.locator("#finite-h0-lifetimes > p:not(.card-kicker)").first.evaluate("el => el.getBoundingClientRect().width")
+ require(all(width<=text_width+1 for width in status_widths),f"Card-status rows exceed the card text measure {text_width}: {status_widths}")
+ status_sizes=page.locator("#finite-h0-lifetimes .card-status dd").evaluate_all("els => els.map(el => getComputedStyle(el).fontSize)")
+ card_text_size=page.locator("#finite-h0-lifetimes > p:not(.card-kicker)").first.evaluate("el => getComputedStyle(el).fontSize")
+ require(all(size==card_text_size for size in status_sizes),f"Card-status rows must use the card text size {card_text_size!r}: {status_sizes}")
+ overflowing=page.locator("#finite-h0-lifetimes p").evaluate_all("els => els.filter(el => el.scrollWidth > el.clientWidth + 1).map(el => el.textContent.slice(0, 40))")
+ require(not overflowing,f"9 October card paragraphs overflow their box: {overflowing}")
+ result["card_status_font_family"]=status_fonts
+ october_entry=page.get_by_role("link",name="7 October 18:37 UTC reading cut below",exact=True)
+ october_entry.focus();page.keyboard.press("Enter")
october=page.locator("#reading-cut-20261007")
expect(october).to_be_focused()
require(october.evaluate('el => parseFloat(getComputedStyle(el).outlineWidth)>=3 && getComputedStyle(el).outlineStyle!=="none"'),"7 October fragment lacks visible focus")
@@ -402,7 +443,7 @@ def refuse_remote(route):
require(fallback.evaluate("document.documentElement.scrollWidth <= innerWidth"),"JavaScript-off addendum overflow")
finally:
static.close()
- result["steps"].append("C131/C132 sampling scope, expectation/error/count conditions, three exact sources/bound hashes, keyboard disclosure and JavaScript-off access checked; C124 and both historical cuts preserved")
+ result["steps"].append("9 October cut: focus, collapsed four-pin disclosure opened (screenshotted) and closed by keyboard, card-status rows in the card text face, size and measure, card paragraphs without overflow; 7 October cut reached by its link; C131/C132 sampling scope, expectation/error/count conditions, three exact sources/bound hashes, keyboard disclosure and JavaScript-off access checked; C124 and both historical cuts preserved")
finally:
page.unroute("https://**/*",refuse_remote)