From ea6f1db0ed08a7e1921d54ecefd6be0786ba1b35 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 00:20:06 +0000 Subject: [PATCH 1/5] site: add the 9 October 2026, 00:05 UTC reading cut (finite H0 lifetimes) What: a new dated reading cut, #reading-cut-20261009, inserted directly above the 7 October cut on research.html. It explains one landed source of the universality program line: the finite Gaussian H0 lifetime proof (main #326). The cut has one card (#finite-h0-lifetimes) with one pinned face link, two display formulas (density exponent -1/3, cumulative exponent 2/3, no C_loc value) and a three-row card-status list. It has one scope paragraph and a collapsed source disclosure with four pinned links, each with its SHA-256. The disclosure also restates the five notes added after earlier cuts, as plain text without links. Home, the Research hero (button, newest-cut time, first cut-list row) and both Library entry links now point to the new cut. #status-words gains two quoted-provenance rows: PASS, and conventional analytic source. Why: on 8 October six merges into main (#314, #319, #321, #323, #326, #329) landed the persistence universality program and ten PROOF.md sources. No dated cut covered them yet. The cut quotes its sources verbatim and promotes nothing. #329's three sources are named only by the suite guide's link texts. They are not linked, pinned, hashed or summarized. Scientific effect: NONE. No status, register, graph, catalogue or acceptance record changes. The cut quotes no ACCEPT_SCOPED, AMEND or PENDING, and the hero's "Words used on other pages" row is byte-unchanged. Identity readback at CUT_ISO 2026-10-09T00:05:00Z (origin/main = HEAD = 0be54aa227d7015b0abda00feb5e847a3fbdbcdb, main #329). All links are pinned at that commit. file 2c841707 bytes/sha256 0be54aa2 bytes/sha256 docs/PERSISTENCE_UNIVERSALITY_PROGRAM.md 23004 18fb926d...08ef9 same experiments/universality/README.md 10559 c44553c0...e5a7 12928 d592cba3...416e5d (#329) experiments/universality/finite_h0_lifetime/PROOF.md 27064 5ea91111...96d1 same (526 lines) experiments/universality/finite_h0_lifetime/REVIEW.md 10873 81f0067d...1c75 same git log --first-parent 2c841707..0be54aa2 -- experiments/universality docs/PERSISTENCE_UNIVERSALITY_PROGRAM.md lists exactly 0be54aa2. Tests: in tests/test_reader_links.py, the entry fragments and datetimes move to the new cut. OCTNEW_FACE_PINS (1) and OCTNEW_PINS (4) are added. The pinned total goes from 40 to 45 and p.latest-boundary from 3 to 4. A whole-section byte pin for the 7 October cut is added (ba7094b9...68eb8). The new class FiniteH0LifetimeReading checks: - placement and the cut's links; - that each quote appears verbatim in its pinned git object; - that forbidden and #329-detail strings are absent; - the two exponents, and that no coefficient digits appear; - one card, one face pin, three status rows and neutral classes only; - that each pinned
  • holds only its digest, and each digest equals the pinned bytes; - the restated notes and their "does not mean independent" qualifiers; - the #status-words rows; - that card-status dd is not monospace. In tools/public_shop_browser_check.py, check_latest_work_flow and check_reading_addendum_flow now enter at the new cut, then follow "7 October 18:37 UTC reading cut below" into the existing chain. home.css extends the .reading-glossary dt/dd selectors to .latest-card .card-status dt/dd. No new rule, colour or class is added. docs/site/README.md records the new cut, the four byte digests and "landed at Math or main". The release token was rewritten by tools/site_asset_release.py and is effcba13. Not touched: - every byte from
    to the end of research.html; - status.json, config.json, museum.json, dependency-source/*, observations.json, STATUS.md, PROOF_INDEX, claims/, experiments/universality/* and docs/PERSISTENCE_UNIVERSALITY_PROGRAM.md; - docs/RESEARCH_INDEX.md, the root README.md, NAVIGATION.json and LANDING_MANIFEST.json. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01S16677s1SGeAJmN3QMz4ip --- docs/site/README.md | 10 +- docs/site/app.js | 6 +- docs/site/brand.css | 2 +- docs/site/cite.html | 4 +- docs/site/cite.mjs | 2 +- docs/site/conditionals.mjs | 2 +- docs/site/curvature-export.mjs | 2 +- docs/site/dependencies.html | 10 +- docs/site/dependencies.mjs | 2 +- docs/site/explore-models.mjs | 2 +- docs/site/explore.html | 10 +- docs/site/explore.mjs | 12 +- docs/site/formal.html | 6 +- docs/site/home.css | 4 +- docs/site/index.html | 6 +- docs/site/measure.html | 10 +- docs/site/measure.mjs | 2 +- docs/site/museum.html | 6 +- docs/site/museum.mjs | 6 +- docs/site/palette-export.mjs | 4 +- docs/site/pin-export.mjs | 4 +- docs/site/reproduce.html | 4 +- docs/site/research.html | 59 +++++- docs/site/workspace.html | 10 +- tests/test_reader_links.py | 303 ++++++++++++++++++++++++++++- tools/public_shop_browser_check.py | 29 ++- 26 files changed, 443 insertions(+), 74 deletions(-) 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 `
    +
    +

    Landed 8 October · main #314–#326 · fixed finite Gaussian scope

    How common are short-lived bars in a fixed finite Gaussian field?

    Reading cut

    +

    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 persistence bars for fixed finite Gaussian fields; 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 N_bar 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-pair theorem. The review record says “The coefficient is positive and field-dependent”, and this page gives no value. The pointwise law concerns “the particular finite Borel representative constructed in Section 5”. “The selected density is not asserted continuous”, and “no O(1) near-term remainder is claimed”. 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. “Finite-family uniformity is not twenty empirical confirmations.” “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; main #329 added three more afterwards.
    +
    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”. These are the Gaussian contact inputs (main #319), the candidate-lifetime theorem (#321), contact genericity (#323) and elder transfer (#326), 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, and 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 cut

    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 6f8ca8734..c2a4baef0 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 @@

    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.

    03 / THE LIBRARY · EXISTING CATALOG

    Find the full argument.

    Reading guide ↗
    -

    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.

    Link to this search

    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 textCommitSHA-256
    diff --git a/tests/test_reader_links.py b/tests/test_reader_links.py index 253f0d024..c6cc06016 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') + 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'
  • \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) + + 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) + 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 names main #329 only as a count in its Landed? row, never its sources. + self.assertEqual(card.count('#329'),1);self.assertIn('; main #329 added three more afterwards.',card) + 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 N_bar 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) + 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) + + 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[^>]*>(.*?)',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('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)) + 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..9775ed89e 100644 --- a/tools/public_shop_browser_check.py +++ b/tools/public_shop_browser_check.py @@ -176,6 +176,14 @@ 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") + 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 +246,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, 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 +261,23 @@ 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_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)") + 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}") + 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 +427,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 and closed by keyboard, card-status rows not monospace; 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) From cd7a9fbc57c30723b212948f9cac0535b2a26ae8 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 01:08:47 +0000 Subject: [PATCH 2/5] site: fix round 1 for the 9 October 2026, 00:05 UTC reading cut What and why (verifier findings on ea6f1db0, each rechecked against the sources at main 0be54aa2): - The card-status "Landed?" row no longer counts the main #329 sources ("main #329 added three more afterwards" removed). The lead and the disclosure already cover #329; the row is true without the clause. The test now asserts the card does not contain "#329" at all. - The no-coefficient-value promise is tested page-wide: no decimal anywhere in the cut's prose (display formulas excluded, they are pinned exactly) and no digit in any sentence naming C_loc. - Lower-case forbidden phrases are also refused case-insensitively, so a sentence-initial "Independently reviewed" or "Universality class" fails. Upper-case tokens stay case-sensitive. - Attributions: the card now says which source each quote comes from (proof: Borel representative, O(1) remainder, sampler sentence; suite guide: density not asserted continuous; review record: twenty-cases sentence). - "candidate-pair theorem" becomes "candidate-lifetime theorem", the name the disclosure and the suite guide use for the same source. - The record's "Both actual-source mathematical verdicts and proof bytes are unchanged." is now introduced as said after the first correction (REVIEW.md L111-112), which is where it stands. - "the expected number N_bar" becomes "the expected number E N_bar((0, t])" (N_bar is the count, PROOF.md L113-115). - The lead says the proof counts actual finite H0 bars, not persistence bars in general. - The #status-words PASS row now says that in that record "nonauthor" does not mean independent and organizational-independence credit is zero. - home.css: card-status dd capped at the card text's 78ch measure; in print a card carrying card-status rows may break between blocks, while the status list and display formulas stay whole. - Browser check: card-status rows must use the card paragraphs' computed font family and must not be wider than them, instead of only rejecting the word "monospace". - Asset release token recomputed (site_asset_release.py and --check). Scope: NONE. No status, register, graph, catalogue or acceptance record changes. Pins, digests, CUT_ISO 2026-10-09T00:05:00Z and CUT_ID reading-cut-20261009 are unchanged; the 7 October section bytes are unchanged. Not done, with reasons: no NBSP in short code spans (the site uses none and earlier cuts wrap the same way); no fail-closed git-object reads in CI (navigation.yml runs every tests/test_*.py on a shallow checkout, where the pinned objects are absent); no print focus-ring or Home cut-note spacing change (pre-existing, not from this cut). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01S16677s1SGeAJmN3QMz4ip --- docs/site/app.js | 6 +++--- docs/site/brand.css | 2 +- docs/site/cite.html | 4 ++-- docs/site/cite.mjs | 2 +- docs/site/conditionals.mjs | 2 +- docs/site/curvature-export.mjs | 2 +- docs/site/dependencies.html | 10 +++++----- docs/site/dependencies.mjs | 2 +- docs/site/explore-models.mjs | 2 +- docs/site/explore.html | 10 +++++----- docs/site/explore.mjs | 12 ++++++------ docs/site/formal.html | 6 +++--- docs/site/home.css | 3 +++ docs/site/index.html | 4 ++-- docs/site/measure.html | 10 +++++----- docs/site/measure.mjs | 2 +- docs/site/museum.html | 6 +++--- docs/site/museum.mjs | 6 +++--- docs/site/palette-export.mjs | 4 ++-- docs/site/pin-export.mjs | 4 ++-- docs/site/reproduce.html | 4 ++-- docs/site/research.html | 16 ++++++++-------- docs/site/workspace.html | 6 +++--- tests/test_reader_links.py | 20 ++++++++++++++++---- tools/public_shop_browser_check.py | 5 +++++ 25 files changed, 85 insertions(+), 65 deletions(-) diff --git a/docs/site/app.js b/docs/site/app.js index 184b8e5b8..9f6b84d96 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import {connectCatalogQuery} from './catalog-query.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import {verifiedJSON, verifiedBytes, validateStatus, validateCoefficient, safeSourceURL, hex40, hex64} from './core.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import {connectCatalogQuery} from './catalog-query.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 226b00679..f4ab582e3 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f") center/contain no-repeat; } +.brand::before { content: ""; position: absolute; left: 0; top: 1px; width: 42px; height: 42px; background: url("brand/mark.svg?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa") 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 c5e33379f..6777f586e 100644 --- a/docs/site/cite.html +++ b/docs/site/cite.html @@ -4,8 +4,8 @@ Cite · Universal Law - - + +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/cite.mjs b/docs/site/cite.mjs index 4dfebb6bf..b07c13a1b 100644 --- a/docs/site/cite.mjs +++ b/docs/site/cite.mjs @@ -1,4 +1,4 @@ -import {wireReferenceForm} from './source-reference.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import {wireReferenceForm} from './source-reference.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 cff453968..ac961b7ca 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'); +const services=()=>import('./museum.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'); // 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 21fe336b5..f740cf402 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import { coneModel } from './explore-models.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 f050a6d0d..f66dfb199 100644 --- a/docs/site/dependencies.html +++ b/docs/site/dependencies.html @@ -7,11 +7,11 @@ Claim dependencies · Universal Law - - - - - + + + + + diff --git a/docs/site/dependencies.mjs b/docs/site/dependencies.mjs index ffff4e81a..6fa539354 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +} from './dependency-model.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; const byId = id => document.getElementById(id); diff --git a/docs/site/explore-models.mjs b/docs/site/explore-models.mjs index 4748e33de..20e17d850 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import { annulusModel, p15Model, remoteModel } from './geometry.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 9bb4ebc36..745ee3f91 100644 --- a/docs/site/explore.html +++ b/docs/site/explore.html @@ -7,11 +7,11 @@ Explore the mathematics · Universal Law - - - - - + + + + + diff --git a/docs/site/explore.mjs b/docs/site/explore.mjs index 0d161410c..391f0deca 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import { coneModel, pinModel, paletteModel, applyCurvaturePreset } from './explore-models.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 4405a2989..9035b3900 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 f46a01f61..e32b6d0c6 100644 --- a/docs/site/home.css +++ b/docs/site/home.css @@ -102,3 +102,6 @@ p.display-formula code { display: block; font-size: 15px; line-height: 1.6; padd .reading-glossary summary { color: var(--ul-link); cursor: pointer; padding: 10px 0; } .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 a4daafedf..6eab5eb9e 100644 --- a/docs/site/index.html +++ b/docs/site/index.html @@ -4,8 +4,8 @@ The shape of randomness · Universal Law - - + +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/measure.html b/docs/site/measure.html index 41e925557..1a94fe2b7 100644 --- a/docs/site/measure.html +++ b/docs/site/measure.html @@ -7,11 +7,11 @@ From counts to density · Universal Law - - - - - + + + + + diff --git a/docs/site/measure.mjs b/docs/site/measure.mjs index be7ed9b62..feb605ce5 100644 --- a/docs/site/measure.mjs +++ b/docs/site/measure.mjs @@ -1,4 +1,4 @@ -import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 e368ed396..f03524a00 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 8d81922a4..990ddf902 100644 --- a/docs/site/museum.mjs +++ b/docs/site/museum.mjs @@ -1,5 +1,5 @@ -import {renderSourceQuote} from './source-quote.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import {renderSourceQuote} from './source-quote.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'),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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'),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 ef981a980..48f8ab83b 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import { serializeTeachingSVG } from './teaching-export.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import { paletteModel } from './explore-models.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { serializeTeachingSVG } from './teaching-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 d6ae361f1..8a75f30d9 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=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; -import { serializeTeachingSVG } from './teaching-export.mjs?site-release=effcba13731d6ddb92359a15d63e418c9fa2b0cd4675f0bca59f80917759761f'; +import { pinModel } from './explore-models.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { serializeTeachingSVG } from './teaching-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; 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 f1d7e942a..90a732da7 100644 --- a/docs/site/reproduce.html +++ b/docs/site/reproduce.html @@ -4,9 +4,9 @@ Reproduce · Universal Law - + - +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/research.html b/docs/site/research.html index 6d663cc87..09dd20123 100644 --- a/docs/site/research.html +++ b/docs/site/research.html @@ -4,7 +4,7 @@ Research · Universal Law - +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    @@ -36,7 +36,7 @@
    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. 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.
    +
    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.
    @@ -44,20 +44,20 @@

    Landed 8 October · main #314–#326 · fixed finite Gaussian scope

    How common are short-lived bars in a fixed finite Gaussian field?

    Reading cut

    -

    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 persistence bars for fixed finite Gaussian fields; 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.

    +

    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 finite Gaussian fields; 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 N_bar of finite bars with lifetime at most t, per unit area (V = L² is the torus area):

    +

    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-pair theorem. The review record says “The coefficient is positive and field-dependent”, and this page gives no value. The pointwise law concerns “the particular finite Borel representative constructed in Section 5”. “The selected density is not asserted continuous”, and “no O(1) near-term remainder is claimed”. 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. “Finite-family uniformity is not twenty empirical confirmations.” “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.”

    +

    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; main #329 added three more afterwards.
    +
    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.”
    @@ -72,7 +72,7 @@
  • Proof bytes checked for this cut · SHA-256 5ea91111fa5f3d78d7c4188ebe84b3bc2c452b05dfdfc62c74b03123cb2696d1
  • Read the H0 lifetime review record, with both verdicts and the exclusions · SHA-256 81f0067dd3bd768c3db2c3c6e1a35d60b07a2ffe98fa6cafe6e48b5dc6021c75
  • -

    Its record states “H0 consumes C/CG/ET/FG”. These are the Gaussian contact inputs (main #319), the candidate-lifetime theorem (#321), contact genericity (#323) and elder transfer (#326), 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, and the record says “Both actual-source mathematical verdicts and proof bytes are unchanged.”

    +

    Its record states “H0 consumes C/CG/ET/FG”. These are the Gaussian contact inputs (main #319), the candidate-lifetime theorem (#321), contact genericity (#323) and elder transfer (#326), 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.

    diff --git a/docs/site/workspace.html b/docs/site/workspace.html index c2a4baef0..5ae15321d 100644 --- a/docs/site/workspace.html +++ b/docs/site/workspace.html @@ -5,9 +5,9 @@ Library and research workspace · Universal Law - - - + + + diff --git a/tests/test_reader_links.py b/tests/test_reader_links.py index c6cc06016..58d904ac4 100644 --- a/tests/test_reader_links.py +++ b/tests/test_reader_links.py @@ -1049,7 +1049,10 @@ def test_quoted_phrases_are_verbatim_in_their_pinned_sources(self): 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) + 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'): @@ -1060,8 +1063,8 @@ def test_forbidden_words_and_later_source_details_are_absent(self): lead=section.split('
    ',1)[1].split('
    ',1)[0] self.assertEqual(section.count('#324'),1);self.assertIn('#324',lead) card=self.card() - # The card names main #329 only as a count in its Landed? row, never its sources. - self.assertEqual(card.count('#329'),1);self.assertIn('; main #329 added three more afterwards.',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] @@ -1073,7 +1076,7 @@ def test_forbidden_words_and_later_source_details_are_absent(self): 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 N_bar of finite bars with lifetime at most t, 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']) @@ -1083,6 +1086,14 @@ def test_two_estimands_keep_their_exponents_and_no_coefficient_value(self): 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) def test_one_card_one_face_pin_three_status_rows_and_neutral_classes(self): section=self.section();tree=self.Tree(section) @@ -1160,6 +1171,7 @@ def test_status_words_quote_pass_and_the_source_label_without_rewording_other_ro 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): diff --git a/tools/public_shop_browser_check.py b/tools/public_shop_browser_check.py index 9775ed89e..f7d3160cf 100644 --- a/tools/public_shop_browser_check.py +++ b/tools/public_shop_browser_check.py @@ -274,7 +274,12 @@ def refuse_remote(route): 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}") 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") From 281b9347e5687470878452544e0e1a517f4fe2e5 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 01:52:47 +0000 Subject: [PATCH 3/5] site: fix round 2 for the 9 October 2026, 00:05 UTC reading cut MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What and why (verifier findings on cd7a9fbc, each rechecked locally): - Tests: a second statement of either exponent anywhere in the cut now fails (exact counts of "exponent", "cumulative", "−1/3" and "2/3", and no ASCII "-1/3"). The cut's prose numbers outside code, display formulas and the time are pinned in order, and the #status-words rows naming this cut must give no C_loc value. Each quote's attribution (proof, review record, suite guide, program) is asserted once, so a reverted or misattributed sentence fails. The card-status dd rule must keep font-size 15px; the 78ch cap, the print rule and the code overflow-wrap rule are asserted. - research.html: the three agent paths in "Who read it" are wrapped in , so the existing `.latest-card code { overflow-wrap: anywhere }` breaks them. Observed at 320 px with the WCAG 1.4.12 spacing override, default fonts and DejaVu: every path ends inside the paragraph box (right edge 276 of 277), no paragraph overflows, scrollWidth 320. No text is reworded; no CSS rule changes. - Browser check: card-status rows must also match the card paragraphs' computed font size, and no paragraph of the card may overflow its box. The steps string says what is checked. - Asset release token recomputed (site_asset_release.py and --check). Not changed, with reasons: - Pins stay at main 0be54aa227d7015b0abda00feb5e847a3fbdbcdb with the 12,928-byte suite guide d592cba3…: the authoritative revision for this increment supersedes the judged pin commit, because #329 changed experiments/universality/README.md after 2c841707. The page discloses the c44553c0…/10,559-byte guide the review record names. Program, PROOF and REVIEW bytes are identical at both commits. - No merge of origin/main here: main moved to d2a70a28 (#335), which changes only docs/site/geometry.mjs, tests/test_museum_geometry.mjs and ?site-release= keys (its research/index/workspace changes are key-only; nothing under experiments/universality or the program). Reconciling the base is left to the integration step: merge, rerun the release tool and --check, then the verify list and the browser harness. - Plan deviation carried from cd7a9fbc: two CSS rules were added in round 1 (card-status dd 78ch cap; print break rules for cards carrying card-status). No new colour or class. - Earlier notes are restated with deictic edits (here → there), not byte for byte; the six digests and both qualifiers are kept. - Reader wording nits (owner reading, Scope K ≥ 2, eyebrow range, the program's "first ... conditional" phrasing) are left as the revision's authoritative text; "owner reading" is the site's own term (index.html L22, research.html 7 October card). Scope NONE: no status, register, graph, catalogue or acceptance record changes. Every byte from
    Claude-Session: https://claude.ai/code/session_01S16677s1SGeAJmN3QMz4ip --- docs/site/app.js | 6 ++-- docs/site/brand.css | 2 +- docs/site/cite.html | 4 +-- docs/site/cite.mjs | 2 +- docs/site/conditionals.mjs | 2 +- docs/site/curvature-export.mjs | 2 +- docs/site/dependencies.html | 10 +++---- docs/site/dependencies.mjs | 2 +- docs/site/explore-models.mjs | 2 +- docs/site/explore.html | 10 +++---- docs/site/explore.mjs | 12 ++++---- docs/site/formal.html | 6 ++-- docs/site/index.html | 4 +-- docs/site/measure.html | 10 +++---- docs/site/measure.mjs | 2 +- docs/site/museum.html | 6 ++-- docs/site/museum.mjs | 6 ++-- docs/site/palette-export.mjs | 4 +-- docs/site/pin-export.mjs | 4 +-- docs/site/reproduce.html | 4 +-- docs/site/research.html | 4 +-- docs/site/workspace.html | 6 ++-- tests/test_reader_links.py | 45 +++++++++++++++++++++++++++++- tools/public_shop_browser_check.py | 7 ++++- 24 files changed, 105 insertions(+), 57 deletions(-) diff --git a/docs/site/app.js b/docs/site/app.js index 9f6b84d96..10837acb7 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import {connectCatalogQuery} from './catalog-query.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import {verifiedJSON, verifiedBytes, validateStatus, validateCoefficient, safeSourceURL, hex40, hex64} from './core.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import {connectCatalogQuery} from './catalog-query.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 f4ab582e3..b22225a05 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa") center/contain no-repeat; } +.brand::before { content: ""; position: absolute; left: 0; top: 1px; width: 42px; height: 42px; background: url("brand/mark.svg?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27") 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 6777f586e..c99a76e01 100644 --- a/docs/site/cite.html +++ b/docs/site/cite.html @@ -4,8 +4,8 @@ Cite · Universal Law - - + +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/cite.mjs b/docs/site/cite.mjs index b07c13a1b..13a82b2f9 100644 --- a/docs/site/cite.mjs +++ b/docs/site/cite.mjs @@ -1,4 +1,4 @@ -import {wireReferenceForm} from './source-reference.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import {wireReferenceForm} from './source-reference.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 ac961b7ca..afe39e1c2 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'); +const services=()=>import('./museum.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'); // 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 f740cf402..e65606d83 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { coneModel } from './explore-models.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 f66dfb199..f4187c338 100644 --- a/docs/site/dependencies.html +++ b/docs/site/dependencies.html @@ -7,11 +7,11 @@ Claim dependencies · Universal Law - - - - - + + + + + diff --git a/docs/site/dependencies.mjs b/docs/site/dependencies.mjs index 6fa539354..69c9c5f2e 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +} from './dependency-model.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; const byId = id => document.getElementById(id); diff --git a/docs/site/explore-models.mjs b/docs/site/explore-models.mjs index 20e17d850..ba246fa65 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { annulusModel, p15Model, remoteModel } from './geometry.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 745ee3f91..051e76e14 100644 --- a/docs/site/explore.html +++ b/docs/site/explore.html @@ -7,11 +7,11 @@ Explore the mathematics · Universal Law - - - - - + + + + + diff --git a/docs/site/explore.mjs b/docs/site/explore.mjs index 391f0deca..385d0941a 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { coneModel, pinModel, paletteModel, applyCurvaturePreset } from './explore-models.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 9035b3900..6902c9b6b 100644 --- a/docs/site/formal.html +++ b/docs/site/formal.html @@ -5,9 +5,9 @@ Formal verification · Universal Law - - - + + + diff --git a/docs/site/index.html b/docs/site/index.html index 6eab5eb9e..2e7d13b94 100644 --- a/docs/site/index.html +++ b/docs/site/index.html @@ -4,8 +4,8 @@ The shape of randomness · Universal Law - - + +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/measure.html b/docs/site/measure.html index 1a94fe2b7..6416e3976 100644 --- a/docs/site/measure.html +++ b/docs/site/measure.html @@ -7,11 +7,11 @@ From counts to density · Universal Law - - - - - + + + + + diff --git a/docs/site/measure.mjs b/docs/site/measure.mjs index feb605ce5..bc4e1c278 100644 --- a/docs/site/measure.mjs +++ b/docs/site/measure.mjs @@ -1,4 +1,4 @@ -import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 f03524a00..cba3dc834 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 990ddf902..b9c01b726 100644 --- a/docs/site/museum.mjs +++ b/docs/site/museum.mjs @@ -1,5 +1,5 @@ -import {renderSourceQuote} from './source-quote.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import {renderSourceQuote} from './source-quote.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'),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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'),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 48f8ab83b..4cbbe0fbe 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import { serializeTeachingSVG } from './teaching-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { paletteModel } from './explore-models.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { serializeTeachingSVG } from './teaching-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 8a75f30d9..6c238142a 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=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; -import { serializeTeachingSVG } from './teaching-export.mjs?site-release=3a8565360d253e1bce932bed981f8e04c3cfdeb02e40f4b60b1e6e1d548f5caa'; +import { pinModel } from './explore-models.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { serializeTeachingSVG } from './teaching-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; 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 90a732da7..047a6274b 100644 --- a/docs/site/reproduce.html +++ b/docs/site/reproduce.html @@ -4,9 +4,9 @@ Reproduce · Universal Law - + - +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/research.html b/docs/site/research.html index 09dd20123..58bd127bd 100644 --- a/docs/site/research.html +++ b/docs/site/research.html @@ -4,7 +4,7 @@ Research · Universal Law - +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    @@ -54,7 +54,7 @@

    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.”

    +

    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.
    diff --git a/docs/site/workspace.html b/docs/site/workspace.html index 5ae15321d..e729aadbf 100644 --- a/docs/site/workspace.html +++ b/docs/site/workspace.html @@ -5,9 +5,9 @@ Library and research workspace · Universal Law - - - + + + diff --git a/tests/test_reader_links.py b/tests/test_reader_links.py index 58d904ac4..cd33c69ce 100644 --- a/tests/test_reader_links.py +++ b/tests/test_reader_links.py @@ -969,6 +969,28 @@ class FiniteH0LifetimeReading(unittest.TestCase): '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 319 321 323 326 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 finite Gaussian fields; 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): @@ -1045,6 +1067,9 @@ def test_quoted_phrases_are_verbatim_in_their_pinned_sources(self): 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() @@ -1082,6 +1107,9 @@ def test_two_estimands_keep_their_exponents_and_no_coefficient_value(self): '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)) @@ -1094,6 +1122,15 @@ def test_two_estimands_keep_their_exponents_and_no_coefficient_value(self): 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) @@ -1182,7 +1219,13 @@ 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.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) diff --git a/tools/public_shop_browser_check.py b/tools/public_shop_browser_check.py index f7d3160cf..213e15d38 100644 --- a/tools/public_shop_browser_check.py +++ b/tools/public_shop_browser_check.py @@ -280,6 +280,11 @@ def refuse_remote(route): 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") @@ -432,7 +437,7 @@ def refuse_remote(route): require(fallback.evaluate("document.documentElement.scrollWidth <= innerWidth"),"JavaScript-off addendum overflow") finally: static.close() - result["steps"].append("9 October cut: focus, collapsed four-pin disclosure opened and closed by keyboard, card-status rows not monospace; 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") + result["steps"].append("9 October cut: focus, collapsed four-pin disclosure opened 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) From 6880ba18f9515414f6cf516d8b5dd418593aab40 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 02:24:05 +0000 Subject: [PATCH 4/5] site: scope wording and consumed-source order in the 9 October cut Three corrections from the last local verification round: - The lead now says the finite H0 lifetime proof counts bars "for fixed ideal finite Gaussian laws", as the card and the scope note do, instead of "fixed finite Gaussian fields". - The disclosure lists the consumed sources in the order of the record's "C/CG/ET/FG": the candidate-lifetime theorem, contact genericity, elder transfer, then the Gaussian contact inputs. - tests/test_reader_links.py also refuses "independent review", "independent read" and "independent check" in the cut. A mutation that called the two nonauthor reads "an independent review" had passed it. The release key is regenerated; every other docs/site change is the key. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01S16677s1SGeAJmN3QMz4ip --- docs/site/app.js | 6 +++--- docs/site/brand.css | 2 +- docs/site/cite.html | 4 ++-- docs/site/cite.mjs | 2 +- docs/site/conditionals.mjs | 2 +- docs/site/curvature-export.mjs | 2 +- docs/site/dependencies.html | 10 +++++----- docs/site/dependencies.mjs | 2 +- docs/site/explore-models.mjs | 2 +- docs/site/explore.html | 10 +++++----- docs/site/explore.mjs | 12 ++++++------ docs/site/formal.html | 6 +++--- docs/site/index.html | 4 ++-- docs/site/measure.html | 10 +++++----- docs/site/measure.mjs | 2 +- docs/site/museum.html | 6 +++--- docs/site/museum.mjs | 6 +++--- docs/site/palette-export.mjs | 4 ++-- docs/site/pin-export.mjs | 4 ++-- docs/site/reproduce.html | 4 ++-- docs/site/research.html | 6 +++--- docs/site/workspace.html | 6 +++--- tests/test_reader_links.py | 6 +++--- 23 files changed, 59 insertions(+), 59 deletions(-) diff --git a/docs/site/app.js b/docs/site/app.js index 10837acb7..e1e5c3711 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import {connectCatalogQuery} from './catalog-query.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import {verifiedJSON, verifiedBytes, validateStatus, validateCoefficient, safeSourceURL, hex40, hex64} from './core.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import {connectCatalogQuery} from './catalog-query.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import {prepareWorkspaceFragment} from './workspace-fragment.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 b22225a05..31b6c88f8 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27") center/contain no-repeat; } +.brand::before { content: ""; position: absolute; left: 0; top: 1px; width: 42px; height: 42px; background: url("brand/mark.svg?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8") 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 c99a76e01..f4accdad1 100644 --- a/docs/site/cite.html +++ b/docs/site/cite.html @@ -4,8 +4,8 @@ Cite · Universal Law - - + +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/cite.mjs b/docs/site/cite.mjs index 13a82b2f9..18138be9d 100644 --- a/docs/site/cite.mjs +++ b/docs/site/cite.mjs @@ -1,4 +1,4 @@ -import {wireReferenceForm} from './source-reference.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import {wireReferenceForm} from './source-reference.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 afe39e1c2..175d27719 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'); +const services=()=>import('./museum.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'); // 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 e65606d83..a59761d4b 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { coneModel } from './explore-models.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 f4187c338..3b8298c19 100644 --- a/docs/site/dependencies.html +++ b/docs/site/dependencies.html @@ -7,11 +7,11 @@ Claim dependencies · Universal Law - - - - - + + + + + diff --git a/docs/site/dependencies.mjs b/docs/site/dependencies.mjs index 69c9c5f2e..f2564f5cc 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +} from './dependency-model.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; const byId = id => document.getElementById(id); diff --git a/docs/site/explore-models.mjs b/docs/site/explore-models.mjs index ba246fa65..e369180b9 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { annulusModel, p15Model, remoteModel } from './geometry.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 051e76e14..d154b14c1 100644 --- a/docs/site/explore.html +++ b/docs/site/explore.html @@ -7,11 +7,11 @@ Explore the mathematics · Universal Law - - - - - + + + + + diff --git a/docs/site/explore.mjs b/docs/site/explore.mjs index 385d0941a..efa4dba8a 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { coneModel, pinModel, paletteModel, applyCurvaturePreset } from './explore-models.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import { readExploreState, exploreStateURL } from './explore-state.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; -import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { captureCurvatureDiagram, serializeCurvatureSVG, createCitationController } from './curvature-export.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import { captureTeachingDiagram, createFigureCitationController } from './teaching-export.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import { serializePinSVG, pinFigureCitation } from './pin-export.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import { serializePaletteSVG, paletteFigureCitation } from './palette-export.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 6902c9b6b..09688539a 100644 --- a/docs/site/formal.html +++ b/docs/site/formal.html @@ -5,9 +5,9 @@ Formal verification · Universal Law - - - + + + diff --git a/docs/site/index.html b/docs/site/index.html index 2e7d13b94..7685d049e 100644 --- a/docs/site/index.html +++ b/docs/site/index.html @@ -4,8 +4,8 @@ The shape of randomness · Universal Law - - + +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/measure.html b/docs/site/measure.html index 6416e3976..9729f6b7e 100644 --- a/docs/site/measure.html +++ b/docs/site/measure.html @@ -7,11 +7,11 @@ From counts to density · Universal Law - - - - - + + + + + diff --git a/docs/site/measure.mjs b/docs/site/measure.mjs index bc4e1c278..ce3a8ed77 100644 --- a/docs/site/measure.mjs +++ b/docs/site/measure.mjs @@ -1,4 +1,4 @@ -import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { measurementModel, parseMeasurementInputs } from './measurement-model.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 cba3dc834..bd7e4e437 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 b9c01b726..beaf438c5 100644 --- a/docs/site/museum.mjs +++ b/docs/site/museum.mjs @@ -1,5 +1,5 @@ -import {renderSourceQuote} from './source-quote.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import {renderSourceQuote} from './source-quote.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import {verifiedBytes, hex40, hex64} from './core.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'),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=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'),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 4cbbe0fbe..359202853 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import { serializeTeachingSVG } from './teaching-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { paletteModel } from './explore-models.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import { serializeTeachingSVG } from './teaching-export.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 6c238142a..c2197724a 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=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; -import { serializeTeachingSVG } from './teaching-export.mjs?site-release=6e2a4935db3f100d07cd01fa1b157b3643410d35c82522af793d322104dece27'; +import { pinModel } from './explore-models.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; +import { serializeTeachingSVG } from './teaching-export.mjs?site-release=c0c496b5b20814ab4bd64f90aec90ba10ff005432c8dbaff3a2e044d2cc229e8'; 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 047a6274b..2ec78c095 100644 --- a/docs/site/reproduce.html +++ b/docs/site/reproduce.html @@ -4,9 +4,9 @@ Reproduce · Universal Law - + - +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    diff --git a/docs/site/research.html b/docs/site/research.html index 58bd127bd..c14e98add 100644 --- a/docs/site/research.html +++ b/docs/site/research.html @@ -4,7 +4,7 @@ Research · Universal Law - +
    UNIVERSAL LAW MATHEMATICS IN THE OPEN
    @@ -44,7 +44,7 @@

    Landed 8 October · main #314–#326 · fixed finite Gaussian scope

    How common are short-lived bars in a fixed finite Gaussian field?

    Reading cut

    -

    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 finite Gaussian fields; 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.

    +

    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

    @@ -72,7 +72,7 @@
  • Proof bytes checked for this cut · SHA-256 5ea91111fa5f3d78d7c4188ebe84b3bc2c452b05dfdfc62c74b03123cb2696d1
  • Read the H0 lifetime review record, with both verdicts and the exclusions · SHA-256 81f0067dd3bd768c3db2c3c6e1a35d60b07a2ffe98fa6cafe6e48b5dc6021c75
  • -

    Its record states “H0 consumes C/CG/ET/FG”. These are the Gaussian contact inputs (main #319), the candidate-lifetime theorem (#321), contact genericity (#323) and elder transfer (#326), 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.”

    +

    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.

    diff --git a/docs/site/workspace.html b/docs/site/workspace.html index e729aadbf..05fa17197 100644 --- a/docs/site/workspace.html +++ b/docs/site/workspace.html @@ -5,9 +5,9 @@ Library and research workspace · Universal Law - - - + + + diff --git a/tests/test_reader_links.py b/tests/test_reader_links.py index cd33c69ce..f3b9f2aa9 100644 --- a/tests/test_reader_links.py +++ b/tests/test_reader_links.py @@ -919,7 +919,7 @@ class FiniteH0LifetimeReading(unittest.TestCase): # status or acceptance words this cut never uses 'ACCEPT','AMEND','PENDING','NOT_VERIFIED','PROVED_REVIEWED','AUTHOR_SIDE_CANDIDATE', 'universality class','universal law','proves universality','accepted','established','independently', - 'peer-review','validated','confirmed','admitted','kernel-checked','Lean-verified','machine-checked', + 'peer-review','independent review','independent read','independent check','validated','confirmed','admitted','kernel-checked','Lean-verified','machine-checked', 'almost sure','held-out test','ℓ^(1/3)','side24','SIDE24','continuous density','exponent 1/3', # stale counts and ordering from before main #329 'seven proof sources','all seven','five merges','last of those proofs','latest proof','newest proof', @@ -970,7 +970,7 @@ class FiniteH0LifetimeReading(unittest.TestCase): '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 319 321 323 326 321 323 329 3 18:00 ' + '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', @@ -990,7 +990,7 @@ class FiniteH0LifetimeReading(unittest.TestCase): '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 finite Gaussian fields; it is not a universality theorem.') + '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): From faef7f03362350522e5dd7aa573c87931412f4dd Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 03:17:29 +0000 Subject: [PATCH 5/5] browser check: screenshot the 9 October cut and its source disclosure Answers the Codex review of 9f9414d3 (P2, main#337 thread 4226282926). check_latest_work_flow followed the new cut's link to the 7 October cut before taking any screenshot, and its two screenshots are of #latest-work (3 October). check_reading_addendum_flow screenshots only the older cuts. So the hosted desktop/mobile light/dark artifacts held no image of the new card, and the site guide's "Inspect the screenshots before accepting visual quality" could not be met for it. Now, in each of the four cases: - check_latest_work_flow screenshots #reading-cut-20261009 as reached from Home, before following its link (-newest-cut.png); - check_reading_addendum_flow screenshots #reading-cut-20261009-details while open (-newest-cut-sources.png). Both are recorded in the report with their SHA-256, as the existing screenshots are, and the step texts say so. Only tools/public_shop_browser_check.py changes. No docs/site file, so the release key is unchanged. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01S16677s1SGeAJmN3QMz4ip --- tools/public_shop_browser_check.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/public_shop_browser_check.py b/tools/public_shop_browser_check.py index 213e15d38..3558dc6dd 100644 --- a/tools/public_shop_browser_check.py +++ b/tools/public_shop_browser_check.py @@ -182,6 +182,9 @@ def refuse_remote(route): 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() @@ -246,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 9 October cut, 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"]) + 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) @@ -271,6 +274,9 @@ def refuse_remote(route): 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)") @@ -437,7 +443,7 @@ def refuse_remote(route): require(fallback.evaluate("document.documentElement.scrollWidth <= innerWidth"),"JavaScript-off addendum overflow") finally: static.close() - result["steps"].append("9 October cut: focus, collapsed four-pin disclosure opened 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") + 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)