diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 237a0fe40..f2a412eb4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,16 +12,16 @@ participants and may be improved by them. only points there. 2. Read the [research guide](docs/RESEARCH_INDEX.md) for source-linked research context and each result's stated scope. For current work, consult - [main #275](https://github.com/d6g8k5htny-coder/main/issues/275) for - architecture decisions and bounded-task discussion, the + [main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)) for + architecture decisions, the [active coordination board #619](https://github.com/d6g8k5htny-coder/main/issues/619) (continued from [#539](https://github.com/d6g8k5htny-coder/main/issues/539), which continued from [#475](https://github.com/d6g8k5htny-coder/main/issues/475) and [#419](https://github.com/d6g8k5htny-coder/main/issues/419)) - for current coordination, and the relevant task-local issue or PR for its + for current coordination and bounded-task discussion, and the relevant task-local issue or PR for its latest claim, disposition and evidence. 3. **Declare the work before you begin it.** Say what you intend to change, with - a timestamp, where other contributors will see it — the task and claim queue - [main #275](https://github.com/d6g8k5htny-coder/main/issues/275), or a comment on + a timestamp, where other contributors will see it — the task and claim queue on the + [active coordination board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619), or a comment on the relevant issue or pull request (general coordination: [active coordination board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619); see the [prior #539 board](https://github.com/d6g8k5htny-coder/main/issues/539), the @@ -37,7 +37,7 @@ participants and may be improved by them. Use [public tasks](https://github.com/d6g8k5htny-coder/main/issues?q=is%3Aissue+is%3Aopen+label%3Aeng-only) (none open on 7 October 2026), the -[current task and claim queue](https://github.com/d6g8k5htny-coder/main/issues/275) +[current task and claim queue, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) or [propose a bounded task](https://github.com/d6g8k5htny-coder/main/issues/new?template=task.yml). The starter types are `replay`, `chart`, `review-comment`, `catalog-stub`, and `docs`. Cite the existing key, public path, full commit and digest from @@ -167,7 +167,7 @@ back regardless of how good the result looks. Read the [formal-verification guide](docs/FORMAL_VERIFICATION.md) first and claim work in the relevant formal pull request; use -[main #275](https://github.com/d6g8k5htny-coder/main/issues/275) to find current +[active coordination board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) to find current tasks and link that claim when coordination requires it. [#95](https://github.com/d6g8k5htny-coder/main/issues/95) is closed formal-rollout history. The diff --git a/README.md b/README.md index 9a770bbe7..13374d2b7 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ The [research workspace](https://d6g8k5htny-coder.github.io/main/site/workspace. | [query-](https://github.com/d6g8k5htny-coder/query-) | Read-only exact-source lookup | | [Universal-Law-Workspace](https://github.com/d6g8k5htny-coder/Universal-Law-Workspace) | Repository map | -[Reproduction guide](docs/REPRODUCE.md) · [Agent entry](AGENTS.md) · [Current workflow](governance/OP-WORKFLOW-20260930.md) · [Active coordination board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) · [Prior board #539 (history)](https://github.com/d6g8k5htny-coder/main/issues/539) · [Prior board #475 (history)](https://github.com/d6g8k5htny-coder/main/issues/475) · [Prior board #419 (history)](https://github.com/d6g8k5htny-coder/main/issues/419) · [Prior board #307 (history)](https://github.com/d6g8k5htny-coder/main/issues/307) · [Historical #229 working guidance](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6038554880) · [Tasks and claims, main #275](https://github.com/d6g8k5htny-coder/main/issues/275) +[Reproduction guide](docs/REPRODUCE.md) · [Agent entry](AGENTS.md) · [Current workflow](governance/OP-WORKFLOW-20260930.md) · [Active coordination board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) · [Prior board #539 (history)](https://github.com/d6g8k5htny-coder/main/issues/539) · [Prior board #475 (history)](https://github.com/d6g8k5htny-coder/main/issues/475) · [Prior board #419 (history)](https://github.com/d6g8k5htny-coder/main/issues/419) · [Prior board #307 (history)](https://github.com/d6g8k5htny-coder/main/issues/307) · [Historical #229 working guidance](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6038554880) · [Architecture discussion, main #666](https://github.com/d6g8k5htny-coder/main/issues/666) · [Closure-evidence decision record, main #275](https://github.com/d6g8k5htny-coder/main/issues/275) diff --git a/docs/FORMAL_VERIFICATION.md b/docs/FORMAL_VERIFICATION.md index 528856670..638db13e3 100644 --- a/docs/FORMAL_VERIFICATION.md +++ b/docs/FORMAL_VERIFICATION.md @@ -6,7 +6,7 @@ Owner directive: Dylan Roy, 27 September 2026. Scientific effect: **NONE**. This dated note is contributor routing only. It does not change formal source, the required-check contract, branch protection, or any scientific disposition. A merge or green check is not theorem acceptance. -New formal work is claimed in the relevant current formal pull request or work discussion, not on closed [main#95](https://github.com/d6g8k5htny-coder/main/issues/95). Work without a pull request uses the relevant work discussion. Use [main#275](https://github.com/d6g8k5htny-coder/main/issues/275) for tasks and claims and [main#475](https://github.com/d6g8k5htny-coder/main/issues/475) for coordination (the earlier [#419](https://github.com/d6g8k5htny-coder/main/issues/419) and [#307](https://github.com/d6g8k5htny-coder/main/issues/307) are readable history). Read the [current workflow](../governance/OP-WORKFLOW-20260930.md) before writing, and reconcile exact-path ownership with any open documentation lane. +New formal work is claimed in the relevant current formal pull request or work discussion, not on closed [main#95](https://github.com/d6g8k5htny-coder/main/issues/95). Work without a pull request uses the relevant work discussion. Use [main#619](https://github.com/d6g8k5htny-coder/main/issues/619) for tasks, claims and coordination and [main#666](https://github.com/d6g8k5htny-coder/main/issues/666) for architecture discussion (the earlier boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419) and [#307](https://github.com/d6g8k5htny-coder/main/issues/307), and the decision record [#275](https://github.com/d6g8k5htny-coder/main/issues/275), are readable history). Read the [current workflow](../governance/OP-WORKFLOW-20260930.md) before writing, and reconcile exact-path ownership with any open documentation lane. Examples of later formal companions, kept distinct from the September scalar pilot: @@ -53,7 +53,7 @@ The controls include false fold and power inequalities, a `sorry` proof, an indi ## Historical standing instructions (September 2026 pilot) -The following offer table is retained as the September pilot record. It is not the current claim route. Current claim route: the relevant current formal pull request or work discussion, with tasks and claims on main#275 and coordination on main#419 (successor to main#307). Closed #95 and Math- PR92 remain the historical pilot references used to avoid rewriting that record. +The following offer table is retained as the September pilot record. It is not the current claim route. Current claim route: the relevant current formal pull request or work discussion, with tasks, claims and coordination on main#619 (successor to main#539, main#475, main#419 and main#307). Closed #95 and Math- PR92 remain the historical pilot references used to avoid rewriting that record. Use #95 and PR92 to claim work and avoid duplicate writers. The OpenAI implementation author does not supply independent review credit. Read the exact head before reviewing; changed source, scope or dependencies invalidate the prior alignment record. diff --git a/docs/PUBLIC_MATHEMATICS.md b/docs/PUBLIC_MATHEMATICS.md index f361a3c03..dc85ff2b3 100644 --- a/docs/PUBLIC_MATHEMATICS.md +++ b/docs/PUBLIC_MATHEMATICS.md @@ -72,7 +72,7 @@ Coverage is explicit: all `.md`, `.txt`, `.tex`, `.pdf`, `.ipynb`, and `.lean` f - Fixed-remote and moving-cutoff witness pairs: the [fixed-remote collision source](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/remote_collision_20260928/PROOF.md) and [off-pin second-moment review](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/d5_offpin_second_moment_20260928/REVIEW.md) supply the scoped `O(r^5)` window factorial estimate. The [planar moving-cutoff successor](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/moving_remote_collision_20261003/README.md) gives the source-conditional `C r^5 rho^(-98) |E|` bound with both witnesses outside the pin ball, fixed torus, compact positive gaps, all frames and the between-pin window. Mixed inner/outer pairs, elder or barcode identification, small-gap uniformity and higher dimensions are outside that successor's scope. - Shrinking witness collisions and register execution: **reviewed source results are available; register reconciliation and execution remain separate**. The [count-level discharge](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/c6_witness_collision_reconciliation_20260929/RECONCILIATION.md) ([merged Math #160](https://github.com/d6g8k5htny-coder/Math-/pull/160)) and [leading-mass localization record](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/reviews/c6_residual_closure_20260930/RECONCILIATION.md) ([merged Math #173](https://github.com/d6g8k5htny-coder/Math-/pull/173)) retain their source-conditional fixed-dimension, fixed-torus, compact-mark window scopes and review exposure. Their declarative records do not execute the register transitions: `math.rn-region.witness-collision` is still `OPEN_ACTIVE` in the [checked graph](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/downstream_gate_20260925/GRAPH.json). No register node is closed by this reading route. -Use [current coordination, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) (successor to [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419) and [#307](https://github.com/d6g8k5htny-coder/main/issues/307)), and [tasks and claims, main #275](https://github.com/d6g8k5htny-coder/main/issues/275), for work assignments. The [closed downstream discussion, main #86](https://github.com/d6g8k5htny-coder/main/issues/86), remains an evidence trail. +Use [current coordination, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) (successor to [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419) and [#307](https://github.com/d6g8k5htny-coder/main/issues/307)), for tasks, claims and work assignments, and [architecture discussion, main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)). The [closed downstream discussion, main #86](https://github.com/d6g8k5htny-coder/main/issues/86), remains an evidence trail. New work appears first on public branches and pull requests: [main proposals](https://github.com/d6g8k5htny-coder/main/pulls) and [Math proposals](https://github.com/d6g8k5htny-coder/Math-/pulls). The frozen inventory does not imply that these newer sources are absent. Future integrations should add full-text links and preserve superseded proofs, errata, and reviews. diff --git a/docs/RESEARCH_INDEX.md b/docs/RESEARCH_INDEX.md index a6876a281..4420e1447 100644 --- a/docs/RESEARCH_INDEX.md +++ b/docs/RESEARCH_INDEX.md @@ -30,7 +30,7 @@ The [public-text catalog](PUBLIC_MATHEMATICS.md) counts 2,138 files at its decla |---|---| | Read or extend mathematics | The topic sections below and [Math-](https://github.com/d6g8k5htny-coder/Math-) | | Run a calculation | [Reproduction guide](REPRODUCE.md) | -| Review or claim work | The [active Agent Message Board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) for new claims and coordination; [task and architecture discussion, main #275](https://github.com/d6g8k5htny-coder/main/issues/275) and the relevant issue or PR for task context; historical boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) for earlier records. [Open work](#open-work) gives each front's current records and remaining obligations | +| Review or claim work | The [active Agent Message Board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) for new claims, tasks and coordination; [architecture discussion, main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)) and the relevant issue or PR for task context; historical boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) for earlier records. [Open work](#open-work) gives each front's current records and remaining obligations | | Locate exact source bytes | [Catalog](https://github.com/d6g8k5htny-coder/meta-framework/blob/main/registry.json) and [query tool](https://github.com/d6g8k5htny-coder/query-) | | Work on the larger numerical tree | [Hardening branch](https://github.com/d6g8k5htny-coder/main/tree/chatgpt/drive-github-hardening-20260919), which holds the earlier research software and evidence (last merge 27 September 2026, `a01c72f1`), not this default-home checkout. Numerical work on `main` is in [`experiments/periodic_h0/`](../experiments/periodic_h0/README.md) and [`experiments/universality/`](../experiments/universality/README.md) | | Explore zeta zeros, de Bruijn–Newman folds and a CUE short-bar control | [Zeta fold exploration packet](../experiments/zeta_fold_exploration/README.md): exploratory, scientific effect NONE, no claim of progress toward the Riemann Hypothesis | @@ -118,7 +118,7 @@ Still open: arbitrary downsets and the unrestricted prize; overlap patterns outs ## Open work -Each row gives a front's current label and what remains open; the topic sections hold scopes and review details. Discuss tasks and architecture on [main #275](https://github.com/d6g8k5htny-coder/main/issues/275); post new claims, reviews, handoffs and releases on the [active Agent Message Board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619), linking the relevant issue or PR; the earlier boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) remain readable history, with #229 retaining its [working guidance](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6038554880). The review discussions #63, #65, #67, #74 and #76, the downstream-first queue [#86](https://github.com/d6g8k5htny-coder/main/issues/86) and formal work item [#95](https://github.com/d6g8k5htny-coder/main/issues/95) are closed records, not open assignments; a closed issue does not by itself complete its mathematics. A review record does not by itself change the Math- [register](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/downstream_gate_20260925/GRAPH.json), which is executed separately and may still show an earlier classification. +Each row gives a front's current label and what remains open; the topic sections hold scopes and review details. Discuss architecture on [main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)); discuss tasks and post new claims, reviews, handoffs and releases on the [active Agent Message Board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619), linking the relevant issue or PR; the earlier boards [#539](https://github.com/d6g8k5htny-coder/main/issues/539), [#475](https://github.com/d6g8k5htny-coder/main/issues/475), [#419](https://github.com/d6g8k5htny-coder/main/issues/419), [#307](https://github.com/d6g8k5htny-coder/main/issues/307) and [#229](https://github.com/d6g8k5htny-coder/main/issues/229) remain readable history, with #229 retaining its [working guidance](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6038554880). The review discussions #63, #65, #67, #74 and #76, the downstream-first queue [#86](https://github.com/d6g8k5htny-coder/main/issues/86) and formal work item [#95](https://github.com/d6g8k5htny-coder/main/issues/95) are closed records, not open assignments; a closed issue does not by itself complete its mathematics. A review record does not by itself change the Math- [register](https://github.com/d6g8k5htny-coder/Math-/blob/79cb314d5b9f6b8b410bfd0df200414314f6b8c7/frontiers/downstream_gate_20260925/GRAPH.json), which is executed separately and may still show an earlier classification. | Front | Current state and remaining work | Records | |---|---|---| diff --git a/docs/WORKSPACE.md b/docs/WORKSPACE.md index 15271e972..29ca4cd4f 100644 --- a/docs/WORKSPACE.md +++ b/docs/WORKSPACE.md @@ -68,9 +68,10 @@ New general questions, obstacles and handoffs go on the boards; start with the [working guidance](https://github.com/d6g8k5htny-coder/main/issues/229#issuecomment-6038554880). GitHub stopped accepting comments on #229 at 2,500. Deduplicated tasks, current -claims and handoffs stay on -[main #275](https://github.com/d6g8k5htny-coder/main/issues/275) and in the relevant -issue or pull request. Most proof review happens in +claims and handoffs go to the +[active coordination board, main #619](https://github.com/d6g8k5htny-coder/main/issues/619) and the relevant +issue or pull request; architecture discussion continues on +[main #666](https://github.com/d6g8k5htny-coder/main/issues/666) (continued from [#275](https://github.com/d6g8k5htny-coder/main/issues/275)). Most proof review happens in [Math- pull requests](https://github.com/d6g8k5htny-coder/Math-/pulls). Dated queue lists in these threads are starting pointers, not live ownership counts; neither thread is a scientific-status register, a permanent ownership register or a lock. diff --git a/docs/reports/source-list-continuity-20261026/ENGINEERING_REVIEW.md b/docs/reports/source-list-continuity-20261026/ENGINEERING_REVIEW.md new file mode 100644 index 000000000..18b3b28ab --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/ENGINEERING_REVIEW.md @@ -0,0 +1,66 @@ +# Source-list continuity — separate engineering review + +Reviewed exact range `336b6f8927f37e2a8d727c6bea845f874c52d8f5` → `9fdfa18296b3386abffe4ce0bb100e3477a5d781` in `/workspace/universal-law/source-list-continuity-20261026`, 26 October 2026. All 22 changed paths reviewed. The checkout, index, HEAD and refs were not modified; report/probe artifacts are outside the repository. No subagents, external posts, Drive operations or broad test campaign were used. + +Reviewer: OpenAI Codex `/root/source_continuity_review`, GPT-6 family; separate from the author, same model family, source-exposed and nonblind. Author/test evidence is also attributed to OpenAI/GPT-6. This is permitted separate engineering review under `governance/OWNER_DECISION_20261025_REVIEW_FAMILIES.md`. Organizational-independence credit **0**; scientific effect **NONE**. This report neither provides scientific review nor certifies publication, source authenticity or accessibility. + +Read the stored review package, specification, plan, implementation ledger, root/site AGENTS, owner mandate, standing delegation, and 25 October family decision. Applied the `superpowers:requesting-code-review` reviewer template. The implementation is judged by actual reader effects, including reasonable cases beyond the explicit examples. + +## Strengths + +- The product change is confined to the existing renderer/More closure (`docs/site/current.mjs:35`). Tracking the last rendered query and count is enough for the immutable observation; no framework, dependency, storage, schema or shared API is added. +- On unchanged queries, slicing from the rendered count and appending retains row, acquisition disclosure and save-button objects. Existing research-desk attachment is idempotent and observes added result children; it does not replace retained controls. New query input/history paths still replace and reset. +- The query comparison occurs before slicing (`current.mjs:37`), so a silent value assignment followed by More cannot carry a prior query's prefix or expanded limit into the replacement population. +- Focus ownership is captured before rendering (`current.mjs:45`). The new first source link receives focus only when More owned it, including when rendering hides More. The no-link fallback is present. Other focused controls in retained rows or outside the list survive unchanged-query expansion. +- All 17 other changed product files were independently compared at the exact two commits after replacing only `site-release=` 64-hex values: they are byte-identical under that normalization. The release-key checker passes. The current model, payload, metadata, library enhancer, historical/mathematical records and classifications have no changes in this range. +- The new browser driver uses real admitted payload bytes and native controls. Its independent Python URL/filter oracle checks exact ordered windows and duplicates; direct object references check DOM continuity. The RED failures are behavioral, including lost disclosure/control objects, focus left on More/BODY, and a silent-query reset returning 150 rather than 50 rows. The HTTP refusal case also preserves disabled/unavailable controls. + +## Review focus — verdicts + +| Requirement | Assessment | +| --- | --- | +| New query after expansion replaces the old prefix and resets the window. | Satisfied by input/popstate replacement paths and browser input/Clear/back/forward cases. | +| Programmatic query changes before More cannot mix two query populations. | Satisfied by query guard; browser case checks exact replacement and old-row disconnection. | +| A final partial batch focuses its first newly revealed named source. | Satisfied: exact source URL at index 200 receives visible focus for 200→224; name rendering is unchanged. | +| A programmatic click while another control owns focus does not steal focus. | Satisfied by ownership guard and unrelated-summary browser case. | +| Retained acquisition details and save controls stay the same DOM objects. | Satisfied by append path and object-identity/open/saved-state assertions across four viewport/theme cases. | + +I also examined empty populations, recovery from a silent zero-match query, repeated synthetic clicks after the last batch, raw query-string changes, shared-module consumers, and MutationObserver interaction. A narrow reviewer-run Chromium probe on `cite.html`, `index.html`, and `dependencies.html` passed row retention, first-new-link focus, empty-query recovery and terminal deduplication, with zero page errors. Raw query changes conservatively reset even when normalized filters would match; this preserves the specified reset behavior. + +## Issues + +### Critical + +None found. + +### Important + +None found. + +### Minor + +**M1 — Published-origin reports ambiguously label local code identity.** `tools/source_list_continuity_browser_check.py:294`–`300` selects a published-origin mode but always populates `source_sha256` and `checked_commit` from local `ROOT`. With `--origin`, the actual fetched `current.json` is correctly checked and captured in each case, but those top-level code hashes and commit do not identify served HTML/JS. A downstream reader could mistake them for the code tested remotely. This does not invalidate the exact-head local GREEN, nor independently recorded served-byte proofs. Rename/label these fields as local checkout metadata (as the existing desk driver does), and qualify served code separately if a remote-code identity claim is needed. Do not relabel the preserved RED/GREEN artifacts retroactively. + +## Evidence checked + +- Stored RED `qa-red-programmatic-query/report.json`: unchanged `c1678a5`, 3 passing / 6 behavioral failures, no page errors. Stored initial GREEN: 9/9, no page errors. Both use harness SHA-256 `c4625d96870026b59d8ad5fede25af940c5e4ba43817b4d31b2acf68b8625dce`. +- Exact-head `qa-final/report.json`: 9/9, no page errors, Chromium 154.0.8037.57 with sandbox; 320/390/1440 CSS-pixel widths, light/dark cases as individually recorded. I independently matched all recorded local file hashes and harness hash to the reviewed HEAD. Admitted payload: 962639 bytes, SHA-256 `560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f`, 3178 indexed sources, 224 `proof` matches. +- Stored Library report: 16/16 with zero page errors. Stored desk continuity report: 49 cases, overall pass, zero page errors; exact reviewed HEAD; timing wrapper exit 0. +- Stored site summary: all 12 required commands exit 0. Related Node log: 154 tests pass, zero failures/skips. These are inspected executor receipts, not reviewer reruns. +- Reviewer ran `git diff --check BASE HEAD` and `python -B tools/site_asset_release.py --check`; both exit 0. Canonical release result `e6501f8126b8db53a77e2d188410a672394558ce8e923290ee85bb494b87188a`. +- Reviewer additional probe is recorded in `reviewer-narrow-browser.json` (3/3 pages). An initial probe mistakenly assumed `research.html` contains a source-search input; it failed setup before testing continuity. Actual markup showed only its observation summary. This failed attempt is recorded separately in `reviewer-initial-probe-setup-failure.txt`; it is not a product failure or passing evidence. +- The earlier full Python baseline was recorded as 1435 tests, 5 failures / 2 errors / 22 skips associated with the Atlas formal-manifest guard. The fresh base includes the separately owned #670 repair. The composed full discovery was still running when inspected; its partial progress is **not** a full-suite pass. Root must retain the terminal result and ordinary required hosted-check evidence before integration. + +## Declined to judge + +- Mathematical correctness, statement/source alignment, hypotheses, applicability and acceptance: outside this engineering change and this same-family review's qualification; scientific effect NONE. +- Independent source authentication, acquisition truth or historical proof regeneration: unchanged source/admission contracts; local digest/DOM checks cannot establish those predicates. +- Live deployment, offline packaged bytes and remote HTML/JS identity: not supplied as completed exact-head delivery evidence for this review; M1 explains why local metadata cannot substitute. +- Spoken assistive-technology, Safari/Firefox and physical touch-device behavior: not exercised by the available Chromium evidence; no certification claim is made. +- The separately owned Atlas formal-test repair and scientific fixture validity: already in BASE, outside this 22-path delta; pending composed-suite success must be recorded independently. +- Mutation of the admitted snapshot by a future consumer: the current consumers examined read it; the architecture/spec uses a single immutable observation. A mutable-observation API or global renderer redesign is not part of this repair. +- Synchronizing the address bar after a silent programmatic input-value assignment: the existing URL contract is the input event/popstate path. This change guards More's population/window, and introduces no programmatic query-setter API. + +## Assessment + +**Ready to merge within the engineering boundary: Yes**, with M1 as a nonblocking report-labeling improvement. No Critical or Important defect was found in the reviewed change. The implementation satisfies the five focus conditions with direct behavioral evidence and a minimal architecture. This is an engineering readiness verdict for the exact reviewed delta, not confirmation that the still-running full suite, hosted checks, integration or delivery have completed. Root owns the disposition of M1 and every declined scope, fixes, adoption and integration; this review ends here and creates no future review seat. diff --git a/docs/reports/source-list-continuity-20261026/README.md b/docs/reports/source-list-continuity-20261026/README.md new file mode 100644 index 000000000..c412e4f67 --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/README.md @@ -0,0 +1,67 @@ +# Current-source result continuity — 26 October 2026 + +The Library now keeps existing rows, expanded acquisition identities and source-save +controls while Show more files appends the next50 matches. Keyboard activation +focuses the first new source, including the terminal partial batch. Query input, +Clear search and history restoration replace/reset the window. A programmatic +click preserves another control's focus; a programmatic query change cannot +reuse the old query's larger window. + +## Evidence and source boundaries + +Original Main c1678a556ab487954abbdc2456686bb64ddc7114: browser baseline3PASS, +6behaviorFAIL, zero page/setup errors. The unchanged included observation has224 +`proof` matches. Existing disclosures/rows/save controls were replaced on50→100; +the final200→224 expansion left focus on BODY. The same test on the repaired +renderer passes9/9. Independent final Library and reading-desk checks add16+49 +passes, totaling74 browser cases with zero page errors. Chromium154.0.8037.57, +sandbox enabled, Linux;390light/dark,1440light and320light are included. The final +partial batch visibly focuses its first new exact pinned source link. + +Product commit1d6547255c1b6999af7222e8e51d3d07503f14c8 was composed with actual +Main336b6f8927f37e2a8d727c6bea845f874c52d8f5 as +9fdfa18296b3386abffe4ce0bb100e3477a5d781. Only current.mjs result rendering and +More focus handling are substantive product code. Seventeen other product files +contain only canonical release-URL keys; README explains operation. Current +model, current payload/metadata, Library enhancer, mathematical records and +historical evidence are unchanged. Original current.mjs4816B/SHA256 +0cf73485540df3674ff2eb4458614d51dac7fdb7941f64db6215680fbb7a8a76 is preserved +in its pinned Git revision and the prior private Drive source snapshot. + +Twelve prescribed site/landing commands and154related JavaScript tests pass. +The original full Python baseline ran1435tests in303.735s with5failures,2errors +and22skips: all seven FormalConnectionAssembly cases stopped at the historical +`formal manifest changed` guard. Those failures are preserved, not reclassified. +The separately owned #670 repair landed in Main336b6f89 and is included without +editing its six tests/fixture files. Composed discovery passes1436tests with22skips and no failures/errors. The fresh +separate engineering review is Ready with no Critical/Important findings. Its one +report-labeling suggestion is fixed and checked through a real served-origin +9-case run; original evidence is retained. See qualification.json and +REVIEW_BOUNDARIES.md for exact source scopes and Root dispositions. + +## Reproduce + +```sh +python3 -B tools/site_asset_release.py --check +python3 -B tools/source_list_continuity_browser_check.py --browser /path/to/chromium --output /tmp/source-list-check +python3 -B tools/library_source_search_browser_check.py --output /tmp/library-check +python3 -B tools/research_desk_continuity_browser_check.py --output /tmp/desk-check +python3 -B -m unittest discover -s tests +``` + +The browser replay needs existing pinned optional Playwright/Chromium tooling; +none is added to production. The current-source check blocks external HTTPS in +local mode and binds its exact admitted payload. Other existing drivers retain +their own documented fixtures and network behavior. Reports' checkout hashes +identify the local harness/source checkout; separately served/public HTML and +JavaScript need their own publication-byte binding. Browser state checks do not +establish source authentication, mathematical applicability, spoken assistive +technology, Safari, physical-device or full accessibility qualification. + +Actual author/test authors/executors and separate reviewer are OpenAI/GPT-6, +source-exposed, organizational-independence credit0. Same-family engineering +review is allowed by the25October owner decision. Scientific effect NONE; +no source link, structural/browser test or merge promotes theorem status. +Public/native/offline qualification and additive Drive delivery have separate +final receipts. No permanent watcher, Drive deletion/sharing change or cleanup +is part of this change. diff --git a/docs/reports/source-list-continuity-20261026/REVIEW_BOUNDARIES.md b/docs/reports/source-list-continuity-20261026/REVIEW_BOUNDARIES.md new file mode 100644 index 000000000..386c43a31 --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/REVIEW_BOUNDARIES.md @@ -0,0 +1,40 @@ +# Root review disposition and scope boundaries + +The actual separate engineering review is retained unmodified. Root accepts its +product readiness and independently rules on every scope it declined to judge. +These are recorded limits, not fabricated review credit or completed evidence. + +1. Mathematical correctness/alignment/acceptance: no mathematical data, statement, + hypothesis or status changes are authorized by this UI repair. Preserve their + bytes; scientific effect NONE. Cost if wrong: unnoticed semantic edits would + need a different-family scientific review and cannot inherit this verdict. +2. Source authentication/historical proof generation: existing admission remains + unchanged; hash/DOM tests authenticate no external source or theorem. Cost if + wrong: missing source custody remains an explicit open obligation. +3. Public/native/offline code identity: Root must qualify actual served/package + bytes separately before claiming delivery. Cost if wrong: a local test could + otherwise be misrepresented as deployed verification. Final receipts bind it. +4. Spoken AT/Safari/Firefox/physical touch: not exercised here; record Chromium + emulation scope and no full accessibility claim. Cost if wrong: untested + platform-specific behavior requires a separately evidenced follow-up. +5. Atlas fixture repair: adopt the already-landed #670 six-file repair as BASE, + preserving its attribution and source; the complete composed suite passes + 1436 tests. Cost if wrong: test success is engineering, not scientific fixture + validity or theorem acceptance. Do not credit this UI with #670's repair. +6. Future mutable observations: keep the current single immutable load contract; + no general renderer redesign. Cost if wrong: a future mutable consumer needs + explicit invalidation/reinitialization and cannot assume this closure tracks it. +7. Silent input assignment/address bar: preserve the existing input-event and + popstate URL contract, while guarding More against mixed/reset populations. + Cost if wrong: future programmatic query setters must dispatch input or supply + their own explicit URL contract. No new setter API is advertised. + +M1 was graded Minor for the reviewed local UI. Root treats the provenance label +as important for the next served-origin delivery step: actual remote-code +attribution would be unsafe if a reader treated local hashes as served hashes. +Fix: add explicit local-checkout and separately-qualified served-code boundaries +without changing the renderer, test assertions or filter/URL oracle. The actual +old-report assertion failed, then the amended driver passed all9 cases through a +real served origin and its metadata check passed. Original evidence remains +unchanged. Cost of this conservative ruling: one bounded additional browser run +and a report-only source amendment. No minor finding remains deferred. diff --git a/docs/reports/source-list-continuity-20261026/browser-green.json b/docs/reports/source-list-continuity-20261026/browser-green.json new file mode 100644 index 000000000..0a41b687a --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/browser-green.json @@ -0,0 +1,292 @@ +{ + "started_utc": "2026-10-26T20:16:10.120681+00:00", + "cases": [ + { + "case": "retained-rows-disclosure-control-390-light", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-390-light-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-390-light.png" + }, + { + "case": "retained-rows-disclosure-control-390-dark", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "dark", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-390-dark-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-390-dark.png" + }, + { + "case": "retained-rows-disclosure-control-1440-light", + "viewport": { + "width": 1440, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-1440-light-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-1440-light.png" + }, + { + "case": "retained-rows-disclosure-control-320-light", + "viewport": { + "width": 320, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-320-light-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-320-light.png" + }, + { + "case": "keyboard-batches-ordered-new-source-focus", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "matches": 224, + "batches": [ + { + "from": 50, + "to": 100, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/elder_dimension_lift_20260928/PROOF.md", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/elder_dimension_lift_20260928/PROOF.md", + "visible": true + }, + "more_hidden": false + }, + { + "from": 100, + "to": 150, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/planar_soft_layer_chain_20261003/C96/PROOF.md", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/planar_soft_layer_chain_20261003/C96/PROOF.md", + "visible": true + }, + "more_hidden": false + }, + { + "from": 150, + "to": 200, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/unrestricted_selection_difference_20260929/PROOF.md", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/unrestricted_selection_difference_20260929/PROOF.md", + "visible": true + }, + "more_hidden": false + }, + { + "from": 200, + "to": 224, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/specifications/lean_statement_proofs_20261011/SpecificationProofs/Side24Images.lean", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/specifications/lean_statement_proofs_20261011/SpecificationProofs/Side24Images.lean", + "visible": true + }, + "more_hidden": true + } + ], + "passed": true, + "screenshot": "keyboard-batches-ordered-new-source-focus.png" + }, + { + "case": "programmatic-more-preserves-newer-outside-focus", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "dark", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "active_element": "Reading list 0 saved items", + "passed": true, + "screenshot": "programmatic-more-preserves-newer-outside-focus.png" + }, + { + "case": "query-clear-history-replace-and-reset-window", + "viewport": { + "width": 320, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "resets": [ + { + "stage": "input", + "rows": 50, + "query": "main", + "url": "http://127.0.0.1:42697/site/workspace.html?keep=literal%23note&source-q=main#library-current" + }, + { + "stage": "clear", + "rows": 50, + "query": "", + "url": "http://127.0.0.1:42697/site/workspace.html?keep=literal%23note#library-current" + }, + { + "stage": "back", + "rows": 50, + "query": "proof", + "url": "http://127.0.0.1:42697/site/workspace.html?keep=literal%23note&source-q=proof#library-current" + }, + { + "stage": "forward", + "rows": 50, + "query": "main", + "url": "http://127.0.0.1:42697/site/workspace.html?keep=literal%23note&source-q=main#reading-list" + } + ], + "passed": true, + "screenshot": "query-clear-history-replace-and-reset-window.png" + }, + { + "case": "programmatic-query-change-replaces-resets-before-more", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "programmatic_query": { + "query": "main", + "rows_before": 100, + "rows_after": 50, + "expected_rows": 50, + "exact_reset_window": true, + "old_row_disconnected": true, + "outside_focus_preserved": true + }, + "passed": true, + "screenshot": "programmatic-query-change-replaces-resets-before-more.png" + }, + { + "case": "refused-source-keeps-controls-disabled", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "message": "Unavailable: Current source snapshot unavailable. No current result inferred.", + "passed": true, + "screenshot": "refused-source-keeps-controls-disabled.png" + } + ], + "page_errors": [], + "invocation": [ + "/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py", + "--browser", + "/usr/bin/chromium", + "--output", + "/workspace/research/experience-next-20261026/qa-final" + ], + "scope": "Local Chromium DOM/state/focus and exact admitted source identities; engineering only. No source authentication, mathematical, spoken-AT, Safari or physical-device claim.", + "actor": { + "provider": "OpenAI", + "family": "GPT-6", + "role": "engineering test author", + "organizational_independence_credit": 0, + "scientific_effect": "NONE" + }, + "mode": "local unchanged snapshot", + "chromium_sandbox": true, + "source_sha256": { + "workspace.html": "72f6b88aa072709e2d5de9660d34bf3100f48dd06f5d29453289d94a497e1954", + "current.mjs": "2a15f780f3a21803215de02baffd08e3d3f336e02839c0d4586c3c9ede283bbd", + "current-model.mjs": "c9247ea9acec23172893caa03028041be784bf83f08b0209c077167a3de0f4cb", + "research-desk.mjs": "5832e85c0c233147bbf42b4f55b04526d4db0db3103ad92ec1c38a83ae32fc49", + "library-source-search.mjs": "14f991580777003531619052771843d916a0bd8bd7d548a3863614df46290228", + "current.json": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f" + }, + "harness_sha256": "c4625d96870026b59d8ad5fede25af940c5e4ba43817b4d31b2acf68b8625dce", + "checked_commit": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "origin": "http://127.0.0.1:42697/site/", + "browser": "154.0.8037.57", + "passed": 9, + "failed": 0, + "finished_utc": "2026-10-26T20:16:37.934348+00:00" +} diff --git a/docs/reports/source-list-continuity-20261026/browser-red.json b/docs/reports/source-list-continuity-20261026/browser-red.json new file mode 100644 index 000000000..f4463be3b --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/browser-red.json @@ -0,0 +1,298 @@ +{ + "started_utc": "2026-10-26T20:08:04.262537+00:00", + "cases": [ + { + "case": "retained-rows-disclosure-control-390-light", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-390-light-before.png", + "retained": { + "firstRow": false, + "saveControl": false, + "savedState": false, + "disclosure": false, + "disclosureOpen": false + }, + "passed": false, + "error": "Traceback (most recent call last):\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 97, in case\n operation(page, context, row)\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 139, in retain_rows\n assert all(row[\"retained\"].values()), row[\"retained\"]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: {'firstRow': False, 'saveControl': False, 'savedState': False, 'disclosure': False, 'disclosureOpen': False}\n", + "screenshot": "retained-rows-disclosure-control-390-light.png" + }, + { + "case": "retained-rows-disclosure-control-390-dark", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "dark", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-390-dark-before.png", + "retained": { + "firstRow": false, + "saveControl": false, + "savedState": false, + "disclosure": false, + "disclosureOpen": false + }, + "passed": false, + "error": "Traceback (most recent call last):\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 97, in case\n operation(page, context, row)\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 139, in retain_rows\n assert all(row[\"retained\"].values()), row[\"retained\"]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: {'firstRow': False, 'saveControl': False, 'savedState': False, 'disclosure': False, 'disclosureOpen': False}\n", + "screenshot": "retained-rows-disclosure-control-390-dark.png" + }, + { + "case": "retained-rows-disclosure-control-1440-light", + "viewport": { + "width": 1440, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-1440-light-before.png", + "retained": { + "firstRow": false, + "saveControl": false, + "savedState": false, + "disclosure": false, + "disclosureOpen": false + }, + "passed": false, + "error": "Traceback (most recent call last):\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 97, in case\n operation(page, context, row)\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 139, in retain_rows\n assert all(row[\"retained\"].values()), row[\"retained\"]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: {'firstRow': False, 'saveControl': False, 'savedState': False, 'disclosure': False, 'disclosureOpen': False}\n", + "screenshot": "retained-rows-disclosure-control-1440-light.png" + }, + { + "case": "retained-rows-disclosure-control-320-light", + "viewport": { + "width": 320, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-320-light-before.png", + "retained": { + "firstRow": false, + "saveControl": false, + "savedState": false, + "disclosure": false, + "disclosureOpen": false + }, + "passed": false, + "error": "Traceback (most recent call last):\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 97, in case\n operation(page, context, row)\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 139, in retain_rows\n assert all(row[\"retained\"].values()), row[\"retained\"]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: {'firstRow': False, 'saveControl': False, 'savedState': False, 'disclosure': False, 'disclosureOpen': False}\n", + "screenshot": "retained-rows-disclosure-control-320-light.png" + }, + { + "case": "keyboard-batches-ordered-new-source-focus", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "matches": 224, + "batches": [ + { + "from": 50, + "to": 100, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/elder_dimension_lift_20260928/PROOF.md", + "focus": { + "tag": "BUTTON", + "href": null, + "visible": true + }, + "more_hidden": false + }, + { + "from": 100, + "to": 150, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/planar_soft_layer_chain_20261003/C96/PROOF.md", + "focus": { + "tag": "BUTTON", + "href": null, + "visible": true + }, + "more_hidden": false + }, + { + "from": 150, + "to": 200, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/unrestricted_selection_difference_20260929/PROOF.md", + "focus": { + "tag": "BUTTON", + "href": null, + "visible": true + }, + "more_hidden": false + }, + { + "from": 200, + "to": 224, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/specifications/lean_statement_proofs_20261011/SpecificationProofs/Side24Images.lean", + "focus": { + "tag": "BODY", + "href": null, + "visible": false + }, + "more_hidden": true + } + ], + "passed": false, + "error": "Traceback (most recent call last):\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 97, in case\n operation(page, context, row)\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 177, in keyboard_batches\n assert not failures, \"; \".join(failures)\n ^^^^^^^^^^^^\nAssertionError: 50\u2192100: first newly revealed source link is not visibly focused; 100\u2192150: first newly revealed source link is not visibly focused; 150\u2192200: first newly revealed source link is not visibly focused; 200\u2192224: first newly revealed source link is not visibly focused; Final batch abandoned keyboard focus to BODY\n", + "screenshot": "keyboard-batches-ordered-new-source-focus.png" + }, + { + "case": "programmatic-more-preserves-newer-outside-focus", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "dark", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "active_element": "Reading list 0 saved items", + "passed": true, + "screenshot": "programmatic-more-preserves-newer-outside-focus.png" + }, + { + "case": "query-clear-history-replace-and-reset-window", + "viewport": { + "width": 320, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "resets": [ + { + "stage": "input", + "rows": 50, + "query": "main", + "url": "http://127.0.0.1:45689/site/workspace.html?keep=literal%23note&source-q=main#library-current" + }, + { + "stage": "clear", + "rows": 50, + "query": "", + "url": "http://127.0.0.1:45689/site/workspace.html?keep=literal%23note#library-current" + }, + { + "stage": "back", + "rows": 50, + "query": "proof", + "url": "http://127.0.0.1:45689/site/workspace.html?keep=literal%23note&source-q=proof#library-current" + }, + { + "stage": "forward", + "rows": 50, + "query": "main", + "url": "http://127.0.0.1:45689/site/workspace.html?keep=literal%23note&source-q=main#reading-list" + } + ], + "passed": true, + "screenshot": "query-clear-history-replace-and-reset-window.png" + }, + { + "case": "programmatic-query-change-replaces-resets-before-more", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "programmatic_query": { + "query": "main", + "rows_before": 100, + "rows_after": 150, + "expected_rows": 50, + "exact_reset_window": false, + "old_row_disconnected": true, + "outside_focus_preserved": true + }, + "passed": false, + "error": "Traceback (most recent call last):\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 97, in case\n operation(page, context, row)\n File \"/workspace/universal-law/source-list-continuity-20261026/tools/source_list_continuity_browser_check.py\", line 259, in programmatic_query\n assert row[\"programmatic_query\"][\"exact_reset_window\"], row[\"programmatic_query\"]\n ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: {'query': 'main', 'rows_before': 100, 'rows_after': 150, 'expected_rows': 50, 'exact_reset_window': False, 'old_row_disconnected': True, 'outside_focus_preserved': True}\n", + "screenshot": "programmatic-query-change-replaces-resets-before-more.png" + }, + { + "case": "refused-source-keeps-controls-disabled", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "message": "Unavailable: Current source snapshot unavailable. No current result inferred.", + "passed": true, + "screenshot": "refused-source-keeps-controls-disabled.png" + } + ], + "page_errors": [], + "invocation": [ + "tools/source_list_continuity_browser_check.py", + "--browser", + "/usr/bin/chromium", + "--output", + "/workspace/research/experience-next-20261026/qa-red-programmatic-query" + ], + "scope": "Local Chromium DOM/state/focus and exact admitted source identities; engineering only. No source authentication, mathematical, spoken-AT, Safari or physical-device claim.", + "actor": { + "provider": "OpenAI", + "family": "GPT-6", + "role": "engineering test author", + "organizational_independence_credit": 0, + "scientific_effect": "NONE" + }, + "mode": "local unchanged snapshot", + "chromium_sandbox": true, + "source_sha256": { + "workspace.html": "360193a92faa12dec1ce84dc702529b4e2d8d78fbf988877cbdc23733bc98c86", + "current.mjs": "0cf73485540df3674ff2eb4458614d51dac7fdb7941f64db6215680fbb7a8a76", + "current-model.mjs": "c9247ea9acec23172893caa03028041be784bf83f08b0209c077167a3de0f4cb", + "research-desk.mjs": "7f25981461881554a67c421d4cddb6ad348667f2ca5efe777a7e27987f76b36a", + "library-source-search.mjs": "14f991580777003531619052771843d916a0bd8bd7d548a3863614df46290228", + "current.json": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f" + }, + "harness_sha256": "c4625d96870026b59d8ad5fede25af940c5e4ba43817b4d31b2acf68b8625dce", + "checked_commit": "c1678a556ab487954abbdc2456686bb64ddc7114", + "origin": "http://127.0.0.1:45689/site/", + "browser": "154.0.8037.57", + "passed": 3, + "failed": 6, + "finished_utc": "2026-10-26T20:08:17.894313+00:00" +} diff --git a/docs/reports/source-list-continuity-20261026/full-python-qualification.json b/docs/reports/source-list-continuity-20261026/full-python-qualification.json new file mode 100644 index 000000000..2acff5b35 --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/full-python-qualification.json @@ -0,0 +1,44 @@ +{ + "agent": "/root/source_baseline_checks", + "argv": [ + "python", + "-B", + "-m", + "unittest", + "discover", + "-s", + "tests" + ], + "baseline_comparison": "Original c1678a5 baseline ran1435 with5 failures+2 errors in Atlas formal-evidence build tests; this composed9fdfa18 run1436, zero failures/errors. It includes the #670-owned six-file test/fixture repair, so suite improvement is composition evidence rather than an effect attributable solely to the source-list UI change.", + "captured_source_hash_changes": {}, + "captured_source_hash_count": 474, + "command": "python -B -m unittest discover -s tests", + "cwd": "/workspace/universal-law/source-list-continuity-20261026", + "errors": 0, + "exit_code": 0, + "expected_head": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "failed_tests": [], + "failures": 0, + "family": "GPT-6", + "head_after": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "head_before": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "limitations": "Engineering suite execution only. Tests and hashes do not provide scientific review, acceptance or organizational independence.", + "network": "Inherited managed proxy/network policy unchanged", + "organizational_independence_credit": 0, + "outcome": "OK (skipped=22)", + "passed_derived": 1414, + "pid": 278225, + "provider": "OpenAI", + "scientific_effect": "NONE", + "scope": "Engineering composition full-suite execution only", + "skipped": 22, + "source_hash_scope": "All tracked tests/, tools/, docs/site/ plus root AGENTS and owner mandate/delegation/review-family sources", + "started_at_utc": "2026-10-26T20:16:49.681044+00:00", + "status_delta": "Five expected untracked docs/reports/source-list-continuity-20261026 metadata files added by root during execution; no tracked source changes", + "stopped_at_utc": "2026-10-26T20:22:13.585186+00:00", + "tests_run": 1436, + "timed_out": false, + "timeout_seconds": 600, + "tracked_head_unchanged": true, + "unittest_elapsed_seconds": 322.76 +} diff --git a/docs/reports/source-list-continuity-20261026/full-python.stderr.log b/docs/reports/source-list-continuity-20261026/full-python.stderr.log new file mode 100644 index 000000000..f38ae7477 --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/full-python.stderr.log @@ -0,0 +1,6 @@ +.............................................................................................................................................................................................................................................................................................................................................sssss....................................................................................................................................................................................................................................................................................................................................................................................................s......FORMAL_GATE_FAIL: alignment table differs from the manifest rendering; regenerate with --write-alignment +......................................................s................................................................ssss.s.......................................................................................................................................................................................................................................................................................................ssssssssss................................................................................................................................................................................................................................................................................. +---------------------------------------------------------------------- +Ran 1436 tests in 322.760s + +OK (skipped=22) diff --git a/docs/reports/source-list-continuity-20261026/local-browser-qualification.json b/docs/reports/source-list-continuity-20261026/local-browser-qualification.json new file mode 100644 index 000000000..ec240d11d --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/local-browser-qualification.json @@ -0,0 +1,86 @@ +{ + "passed": true, + "classification": "LOCAL engineering execution only; no public/offline qualification, scientific review or integration role", + "performer": { + "provider": "OpenAI", + "family": "GPT-6", + "agent": "/root/worker_interface_path", + "role": "bounded read-only QA executor", + "exposure": "Root driver/spec/initial-green outcome exposed; not blind", + "organizational_independence_credit": 0, + "scientific_effect": "NONE" + }, + "head_before": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "head_after": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "head_change_note": "Initial inspection saw c167 with Root working edits. Root committed/composed the frozen product before the pre-run binding capture. Actual pre-run and post-run HEAD are both9fdfa182; all255site and consumed harness/governance hashes remained identical.", + "working_status_before": "", + "working_status_after": "", + "cases": { + "source_list": 9, + "library_source_search": 16, + "research_desk": 49, + "total": 74, + "page_errors": 0 + }, + "exact_once": true, + "timing_ms": { + "qa-final": 27870, + "qa-library": 47194, + "qa-desk": 117736 + }, + "browser": { + "version": "154.0.8037.57", + "sandbox": true, + "proxy": "Inherited managed HTTPS_PROXY/NO_PROXY unchanged; loopback bypass retained; values withheld", + "requested_tmpdir": "/tmp/ul-slc-qa", + "source_list_driver_builtin_tmpdir": "/tmp/ulslc; unmodified driver overrides inherited TMPDIR to this shorter path" + }, + "site_before_after": { + "files": 255, + "equal": true, + "inventory_sha256": "8f6515e92f392700e90876fbe1835b51f258067b413ca440c405e935c624e4d7" + }, + "harness_and_governance_before_after_equal": true, + "admitted_snapshot": { + "bytes": 962639, + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "sources": 3178, + "observed_at": "2026-10-13T14:56:55Z", + "computed_proof_matches": 224 + }, + "keyboard_final_batch": { + "from": 200, + "to": 224, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/specifications/lean_statement_proofs_20261011/SpecificationProofs/Side24Images.lean", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/specifications/lean_statement_proofs_20261011/SpecificationProofs/Side24Images.lean", + "visible": true + }, + "more_hidden": true + }, + "visual_inspection": { + "screenshots": [ + "qa-final/retained-rows-disclosure-control-390-light.png", + "qa-final/retained-rows-disclosure-control-390-dark.png", + "qa-final/retained-rows-disclosure-control-1440-light.png", + "qa-final/retained-rows-disclosure-control-320-light.png", + "qa-final/keyboard-batches-ordered-new-source-focus.png" + ], + "notes": "Saved state and readable wrapped source labels retained at requested widths; final newly revealed source link has visible keyboard ring and More is hidden; no additional finding within inspected cases." + }, + "evidence": { + "raw_logs": "qa-executor/*.stdout.log and *.stderr.log", + "timings": "timing-qa-final.json, timing-qa-library.json, timing-qa-desk.json", + "reports": "qa-final/report.json, qa-library/report.json, qa-desk/report.json", + "original_red": "qa-red-programmatic-query retained unchanged by this unit; supplied historical3PASS/6behaviorFAIL not rerun" + }, + "limits": [ + "Headless Linux Chromium/emulated widths, no physical touch/Safari/spoken AT/full accessibility claim", + "Current admitted snapshot was real and independently matched to displayed digest/size; existing regression drivers retain their documented local dated-catalog fixtures", + "Peer HTTPS globs were not edited; existing driver transport used inherited managed proxy, no protected retrieval or policy bypass", + "No source/ref/post/Drive/Main/R17/settings action; no permanent QA server or monitor" + ], + "finished_utc": "2026-10-26T20:19:38.427664+00:00", + "initial_inspection_head": "c1678a556ab487954abbdc2456686bb64ddc7114" +} diff --git a/docs/reports/source-list-continuity-20261026/product-boundary.json b/docs/reports/source-list-continuity-20261026/product-boundary.json new file mode 100644 index 000000000..d03246292 --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/product-boundary.json @@ -0,0 +1,46 @@ +{ + "baseline": "c1678a556ab487954abbdc2456686bb64ddc7114", + "renderer_only": "docs/site/current.mjs", + "keys_only": [ + "docs/site/atlas-claim-summary.mjs", + "docs/site/atlas-formal-evidence.mjs", + "docs/site/atlas-shell.mjs", + "docs/site/atlas-spatial-shell.mjs", + "docs/site/atlas.mjs", + "docs/site/cite.html", + "docs/site/compare-source-panel.mjs", + "docs/site/compare.html", + "docs/site/dependencies.html", + "docs/site/explore.html", + "docs/site/index.html", + "docs/site/measure.html", + "docs/site/museum.html", + "docs/site/reproduce.html", + "docs/site/research-desk.mjs", + "docs/site/research.html", + "docs/site/workspace.html" + ], + "prior_administrative_attempt": "Wrong guessed current.meta.json path; audit stopped, no mutation or passing receipt. Corrected from tracked file inventory to current-meta.json.", + "unchanged": [ + { + "path": "docs/site/current-model.mjs", + "sha256": "c9247ea9acec23172893caa03028041be784bf83f08b0209c077167a3de0f4cb", + "bytes": 26458 + }, + { + "path": "docs/site/current.json", + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639 + }, + { + "path": "docs/site/library-source-search.mjs", + "sha256": "14f991580777003531619052771843d916a0bd8bd7d548a3863614df46290228", + "bytes": 2809 + }, + { + "path": "docs/site/current-meta.json", + "sha256": "8a33e435685b3862f334006d6626bd05279664c25d88bed8b41f0493bc50b049", + "bytes": 321 + } + ] +} diff --git a/docs/reports/source-list-continuity-20261026/provenance-browser.json b/docs/reports/source-list-continuity-20261026/provenance-browser.json new file mode 100644 index 000000000..2159ba464 --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/provenance-browser.json @@ -0,0 +1,296 @@ +{ + "started_utc": "2026-10-26T20:23:03.170958+00:00", + "cases": [ + { + "case": "retained-rows-disclosure-control-390-light", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-390-light-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-390-light.png" + }, + { + "case": "retained-rows-disclosure-control-390-dark", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "dark", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-390-dark-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-390-dark.png" + }, + { + "case": "retained-rows-disclosure-control-1440-light", + "viewport": { + "width": 1440, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-1440-light-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-1440-light.png" + }, + { + "case": "retained-rows-disclosure-control-320-light", + "viewport": { + "width": 320, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "before_screenshot": "retained-rows-disclosure-control-320-light-before.png", + "retained": { + "firstRow": true, + "saveControl": true, + "savedState": true, + "disclosure": true, + "disclosureOpen": true + }, + "passed": true, + "screenshot": "retained-rows-disclosure-control-320-light.png" + }, + { + "case": "keyboard-batches-ordered-new-source-focus", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "matches": 224, + "batches": [ + { + "from": 50, + "to": 100, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/elder_dimension_lift_20260928/PROOF.md", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/elder_dimension_lift_20260928/PROOF.md", + "visible": true + }, + "more_hidden": false + }, + { + "from": 100, + "to": 150, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/planar_soft_layer_chain_20261003/C96/PROOF.md", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/planar_soft_layer_chain_20261003/C96/PROOF.md", + "visible": true + }, + "more_hidden": false + }, + { + "from": 150, + "to": 200, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/unrestricted_selection_difference_20260929/PROOF.md", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/frontiers/unrestricted_selection_difference_20260929/PROOF.md", + "visible": true + }, + "more_hidden": false + }, + { + "from": 200, + "to": 224, + "expected_focus": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/specifications/lean_statement_proofs_20261011/SpecificationProofs/Side24Images.lean", + "focus": { + "tag": "A", + "href": "https://github.com/d6g8k5htny-coder/Math-/blob/dbe6c0a1b1a22c7404b0fd173ee0043b98a08cde/specifications/lean_statement_proofs_20261011/SpecificationProofs/Side24Images.lean", + "visible": true + }, + "more_hidden": true + } + ], + "passed": true, + "screenshot": "keyboard-batches-ordered-new-source-focus.png" + }, + { + "case": "programmatic-more-preserves-newer-outside-focus", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "dark", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "active_element": "Reading list 0 saved items", + "passed": true, + "screenshot": "programmatic-more-preserves-newer-outside-focus.png" + }, + { + "case": "query-clear-history-replace-and-reset-window", + "viewport": { + "width": 320, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "resets": [ + { + "stage": "input", + "rows": 50, + "query": "main", + "url": "http://127.0.0.1:45093/site/workspace.html?keep=literal%23note&source-q=main#library-current" + }, + { + "stage": "clear", + "rows": 50, + "query": "", + "url": "http://127.0.0.1:45093/site/workspace.html?keep=literal%23note#library-current" + }, + { + "stage": "back", + "rows": 50, + "query": "proof", + "url": "http://127.0.0.1:45093/site/workspace.html?keep=literal%23note&source-q=proof#library-current" + }, + { + "stage": "forward", + "rows": 50, + "query": "main", + "url": "http://127.0.0.1:45093/site/workspace.html?keep=literal%23note&source-q=main#reading-list" + } + ], + "passed": true, + "screenshot": "query-clear-history-replace-and-reset-window.png" + }, + { + "case": "programmatic-query-change-replaces-resets-before-more", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "observation": { + "sha256": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f", + "bytes": 962639, + "observed_at": "2026-10-13T14:56:55Z", + "sources": 3178 + }, + "programmatic_query": { + "query": "main", + "rows_before": 100, + "rows_after": 50, + "expected_rows": 50, + "exact_reset_window": true, + "old_row_disconnected": true, + "outside_focus_preserved": true + }, + "passed": true, + "screenshot": "programmatic-query-change-replaces-resets-before-more.png" + }, + { + "case": "refused-source-keeps-controls-disabled", + "viewport": { + "width": 390, + "height": 900 + }, + "color_scheme": "light", + "message": "Unavailable: Current source snapshot unavailable. No current result inferred.", + "passed": true, + "screenshot": "refused-source-keeps-controls-disabled.png" + } + ], + "page_errors": [], + "invocation": [ + "tools/source_list_continuity_browser_check.py", + "--browser", + "/usr/bin/chromium", + "--origin", + "http://127.0.0.1:45093/site/", + "--output", + "/workspace/research/experience-next-20261026/qa-provenance/browser" + ], + "scope": "Local Chromium DOM/state/focus and exact admitted source identities; engineering only. No source authentication, mathematical, spoken-AT, Safari or physical-device claim.", + "actor": { + "provider": "OpenAI", + "family": "GPT-6", + "role": "engineering test author", + "organizational_independence_credit": 0, + "scientific_effect": "NONE" + }, + "mode": "served origin", + "checkout_identity_scope": "Local checkout only, including with --origin; checked_commit and source_sha256 do not identify served HTML or JavaScript.", + "served_code_identity": "Not acquired by this driver; bind served HTML and modules independently.", + "chromium_sandbox": true, + "source_sha256": { + "workspace.html": "72f6b88aa072709e2d5de9660d34bf3100f48dd06f5d29453289d94a497e1954", + "current.mjs": "2a15f780f3a21803215de02baffd08e3d3f336e02839c0d4586c3c9ede283bbd", + "current-model.mjs": "c9247ea9acec23172893caa03028041be784bf83f08b0209c077167a3de0f4cb", + "research-desk.mjs": "5832e85c0c233147bbf42b4f55b04526d4db0db3103ad92ec1c38a83ae32fc49", + "library-source-search.mjs": "14f991580777003531619052771843d916a0bd8bd7d548a3863614df46290228", + "current.json": "560d3d4e77369835c832dbb4fd0d12f4988744045b9cbc4c7978beddb6e9d20f" + }, + "harness_sha256": "54cc653827ffdb48b1779b6f846046c1944c7c89678b6c06a3fcdb823cb4b0ea", + "checked_commit": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "origin": "http://127.0.0.1:45093/site/", + "browser": "154.0.8037.57", + "passed": 9, + "failed": 0, + "finished_utc": "2026-10-26T20:23:15.395512+00:00" +} diff --git a/docs/reports/source-list-continuity-20261026/qualification.json b/docs/reports/source-list-continuity-20261026/qualification.json new file mode 100644 index 000000000..d1a2c126a --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/qualification.json @@ -0,0 +1,60 @@ +{ + "product_commit": "1d6547255c1b6999af7222e8e51d3d07503f14c8", + "composed_tested_head": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "base_with_existing_atlas_repair": "336b6f8927f37e2a8d727c6bea845f874c52d8f5", + "local_full_python": { + "tests": 1436, + "failures": 0, + "errors": 0, + "skipped": 22, + "exit": 0, + "elapsed_seconds": 322.76, + "pre_post_hashes": 474, + "unchanged": true + }, + "local_browser": { + "new_continuity": 9, + "existing_library": 16, + "existing_desk": 49, + "total": 74, + "page_errors": 0, + "site_hashes_unchanged": 255 + }, + "related_node": { + "tests": 154, + "failures": 0, + "skipped": 0 + }, + "prescribed_site_commands": 12, + "all_exit_zero": true, + "review": { + "actual_reviewer": "OpenAI Codex /root/source_continuity_review", + "actual_family": "GPT-6", + "source_exposed": true, + "reviewed_head": "9fdfa18296b3386abffe4ce0bb100e3477a5d781", + "critical": 0, + "important": 0, + "minor": [ + "M1" + ], + "readiness": "Ready within engineering boundary", + "sha256": "5ec8b2f84183210855ae9914f5d74c41f44a9bea6536f0b0f0203d40a867ce40" + }, + "review_amendment": { + "id": "M1", + "root_disposition": "Fixed before using served-origin delivery evidence; labels explicitly distinguish local checkout hashes from separately bound served code. Original review and RED/GREEN reports remain unchanged.", + "delta": "Only driver report metadata, mode wording and --origin help; behavioral run/oracle ASTs unchanged. No product file changed.", + "provenance_assertion_red": "Old actual report lacked explicit checkout/served-code boundaries; assertion failed for intended reason.", + "served_origin_green": { + "browser_cases": 9, + "failed": 0, + "page_errors": 0, + "metadata_boundary_check": "PASS" + }, + "final_harness_sha256": "54cc653827ffdb48b1779b6f846046c1944c7c89678b6c06a3fcdb823cb4b0ea", + "prior_harness_sha256": "c4625d96870026b59d8ad5fede25af940c5e4ba43817b4d31b2acf68b8625dce" + }, + "limits": "Local engineering qualification. Final hosted/public/native/offline receipt remains separate; no remote-code identity from local driver metadata.", + "scientific_effect": "NONE", + "organizational_independence_credit": 0 +} diff --git a/docs/reports/source-list-continuity-20261026/site-checks.json b/docs/reports/source-list-continuity-20261026/site-checks.json new file mode 100644 index 000000000..ac9e19b55 --- /dev/null +++ b/docs/reports/source-list-continuity-20261026/site-checks.json @@ -0,0 +1,98 @@ +[ + { + "name": "public-data", + "command": "python -B -m unittest discover -s tests -p test_public_shop_data.py", + "start": "2026-10-26T20:13:19.876917+00:00", + "stop": "2026-10-26T20:13:20.146103+00:00", + "seconds": 0.269, + "exit": 0 + }, + { + "name": "asset-release-tests", + "command": "python -B -m unittest tests.test_site_asset_release", + "start": "2026-10-26T20:13:19.877413+00:00", + "stop": "2026-10-26T20:13:40.434253+00:00", + "seconds": 20.557, + "exit": 0 + }, + { + "name": "current-source-producer", + "command": "python -B -S -m unittest tests.test_current_site_data tests.test_current_site_build", + "start": "2026-10-26T20:13:19.877711+00:00", + "stop": "2026-10-26T20:13:37.496764+00:00", + "seconds": 17.619, + "exit": 0 + }, + { + "name": "frontend", + "command": "node --test tests/test_public_shop_frontend.mjs tests/test_explore_models.mjs tests/test_curvature_export.mjs tests/test_teaching_export.mjs tests/test_pin_export.mjs tests/test_palette_export.mjs tests/test_figure_png.mjs tests/test_reading_list_citation.mjs tests/test_reader_navigation.mjs tests/test_source_reference.mjs tests/test_measurement_model.mjs tests/test_dependency_viewer.mjs tests/test_museum_frontend.mjs tests/test_workspace_navigation.mjs", + "start": "2026-10-26T20:13:20.146532+00:00", + "stop": "2026-10-26T20:13:27.551860+00:00", + "seconds": 7.405, + "exit": 0 + }, + { + "name": "reader-links", + "command": "python -B -S -m unittest discover -s tests -p test_reader_links.py -v", + "start": "2026-10-26T20:13:27.554105+00:00", + "stop": "2026-10-26T20:13:32.448470+00:00", + "seconds": 4.894, + "exit": 0 + }, + { + "name": "museum-data", + "command": "python -B -m unittest discover -s tests -p test_museum_data.py", + "start": "2026-10-26T20:13:32.448816+00:00", + "stop": "2026-10-26T20:13:32.742379+00:00", + "seconds": 0.294, + "exit": 0 + }, + { + "name": "museum-check", + "command": "python -B tools/museum_check.py", + "start": "2026-10-26T20:13:32.743046+00:00", + "stop": "2026-10-26T20:13:34.692750+00:00", + "seconds": 1.95, + "exit": 0 + }, + { + "name": "museum-geometry", + "command": "node --test tests/test_museum_geometry.mjs", + "start": "2026-10-26T20:13:34.693288+00:00", + "stop": "2026-10-26T20:13:34.858402+00:00", + "seconds": 0.165, + "exit": 0 + }, + { + "name": "public-identity-normal", + "command": "python -B -E -S tests/test_public_shop_check_identity_control.py -v", + "start": "2026-10-26T20:13:34.859100+00:00", + "stop": "2026-10-26T20:13:35.108388+00:00", + "seconds": 0.249, + "exit": 0 + }, + { + "name": "public-identity-optimized", + "command": "python -B -E -O -S tests/test_public_shop_check_identity_control.py -v", + "start": "2026-10-26T20:13:35.108904+00:00", + "stop": "2026-10-26T20:13:35.844030+00:00", + "seconds": 0.735, + "exit": 0 + }, + { + "name": "public-shop", + "command": "python -B tools/public_shop_check.py", + "start": "2026-10-26T20:13:35.845599+00:00", + "stop": "2026-10-26T20:13:37.244481+00:00", + "seconds": 1.399, + "exit": 0 + }, + { + "name": "landing", + "command": "python -B tools/workspace_landing_check.py", + "start": "2026-10-26T20:13:37.245063+00:00", + "stop": "2026-10-26T20:13:37.323823+00:00", + "seconds": 0.079, + "exit": 0 + } +] diff --git a/docs/site/README.md b/docs/site/README.md index 126eba492..f8aa04052 100644 --- a/docs/site/README.md +++ b/docs/site/README.md @@ -126,6 +126,16 @@ so its results are not frozen. The dated catalog remains a separate collection. These tools appear only after the current snapshot verifies and add no source acquisition, mathematical review or storage schema. +**Show more files** retains the current source rows, open acquisition identities +and source-save controls while appending the next 50 matches. Keyboard activation +focuses the first newly revealed source, including the final partial batch; +programmatic loading does not steal focus from another control. Changing or +restoring a query resets the result window. Focused regression: +`python3 -B tools/source_list_continuity_browser_check.py --output +browser-evidence/source-list-continuity`. This uses the real included admitted +observation, or `--origin URL` for a separately recorded served observation; +browser DOM checks do not establish source authentication or spoken accessibility. + Focused checks: `node --test tests/test_library_source_search.mjs` and `python3 -B tools/library_source_search_browser_check.py --output browser-evidence/library-source-search` (optional installed Playwright/Chromium; diff --git a/docs/site/atlas-claim-summary.mjs b/docs/site/atlas-claim-summary.mjs index a5142e7ba..1201db802 100644 --- a/docs/site/atlas-claim-summary.mjs +++ b/docs/site/atlas-claim-summary.mjs @@ -1,7 +1,7 @@ -import {element,anchor} from './current.mjs?site-release=fc7e8a98c1e23f476962c4c83e95ed3ce817490007987112d9b2cf6d3d90b142'; +import {element,anchor} from './current.mjs?site-release=27f990a4758c48ff2f4aa58b47a842bf61eebc3e0f7449f0dc68f63bc3c502f5'; import {sourceForNode,sourceURL} from './current-model.mjs?site-release=a30d68465e3acda48eedce64854afebc7af5c84903a4e6b0c649e08007b08999'; -import {createFormalEvidence} from './atlas-formal-evidence.mjs?site-release=fd282a960cfe2944617c2227b25ef1455bc6b142dced7b33ad1af99bc0d56f87'; +import {createFormalEvidence} from './atlas-formal-evidence.mjs?site-release=51c7393f9036135ef2c813820cf8157dcc5025a2877f001b79f6d82f68894a84'; // Presentation over the controller's admitted record. No acquisition, source // adoption, proof coverage inference, or scientific-status authority lives here. diff --git a/docs/site/atlas-formal-evidence.mjs b/docs/site/atlas-formal-evidence.mjs index 2f841a40e..a77437d78 100644 --- a/docs/site/atlas-formal-evidence.mjs +++ b/docs/site/atlas-formal-evidence.mjs @@ -1,4 +1,4 @@ -import {element,anchor} from './current.mjs?site-release=fc7e8a98c1e23f476962c4c83e95ed3ce817490007987112d9b2cf6d3d90b142'; +import {element,anchor} from './current.mjs?site-release=27f990a4758c48ff2f4aa58b47a842bf61eebc3e0f7449f0dc68f63bc3c502f5'; import {sourceURL} from './current-model.mjs?site-release=a30d68465e3acda48eedce64854afebc7af5c84903a4e6b0c649e08007b08999'; import {formalConnection} from './atlas-formal-evidence-model.mjs?site-release=36dbb1f470e2c49e660275ff8090f74e56489b4cda5d0ccfd7b25b67e276f348'; diff --git a/docs/site/atlas-shell.mjs b/docs/site/atlas-shell.mjs index 1e3a28615..d64c93c82 100644 --- a/docs/site/atlas-shell.mjs +++ b/docs/site/atlas-shell.mjs @@ -1,4 +1,4 @@ -import {installSpatialAtlas} from './atlas-spatial-shell.mjs?site-release=dbd841649f10dfbc4d2446521bba88396c532ed7a9b9df36866709af32d4ee2f'; +import {installSpatialAtlas} from './atlas-spatial-shell.mjs?site-release=07e971632041b39f800c21c8f4e5ec02a51065ad0857e6ba91ec889a43faac05'; // Presentation only: this module never fetches, admits or classifies source data. export function viewForViewport(search,parsedView,narrow){ const requested=new URLSearchParams(search).get('atlas-view'); diff --git a/docs/site/atlas-spatial-shell.mjs b/docs/site/atlas-spatial-shell.mjs index 34bb4438c..816b2af40 100644 --- a/docs/site/atlas-spatial-shell.mjs +++ b/docs/site/atlas-spatial-shell.mjs @@ -44,7 +44,7 @@ export function installSpatialAtlas({root,onChange}) { } function schedule(){if(!frame&&!disposed)frame=requestAnimationFrame(sync);} async function activate(){failureMessage='';active=true;const ticket=++generation;lastSignature='';status.textContent='Loading optional 3D renderer…';display(); - try{const [{currentSnapshot},{createSpatialRenderer}]=await Promise.all([import('./current.mjs?site-release=fc7e8a98c1e23f476962c4c83e95ed3ce817490007987112d9b2cf6d3d90b142'),import('./atlas-spatial.mjs?site-release=51162684675faa743673966321e285a5b533743b5e7b84005f0b4055dbdd5761')]);const snapshot=await currentSnapshot;if(ticket!==generation||disposed)return;if(!snapshot||refused())throw Error('source snapshot or bookmark did not verify');data=snapshot;renderer=createSpatialRenderer({host,onPick:pick,onFailure:fail});sync();} + try{const [{currentSnapshot},{createSpatialRenderer}]=await Promise.all([import('./current.mjs?site-release=27f990a4758c48ff2f4aa58b47a842bf61eebc3e0f7449f0dc68f63bc3c502f5'),import('./atlas-spatial.mjs?site-release=51162684675faa743673966321e285a5b533743b5e7b84005f0b4055dbdd5761')]);const snapshot=await currentSnapshot;if(ticket!==generation||disposed)return;if(!snapshot||refused())throw Error('source snapshot or bookmark did not verify');data=snapshot;renderer=createSpatialRenderer({host,onPick:pick,onFailure:fail});sync();} catch(error){if(ticket===generation&&!disposed)fail(`3D unavailable: ${error.message}.`);} } function deactivate(){generation++;active=false;renderer?.dispose();renderer=null;delete host.dataset.ready;delete host.dataset.frames;lastSignature='';display();status.textContent='3D paused. Graph and List retain the selected claim and source snapshot.';} @@ -59,7 +59,7 @@ export function installSpatialAtlas({root,onChange}) { listen(window,'pagehide',()=>{deactivate();});listen(window,'pageshow',()=>restore(location.href)); function restore(url){const params=new URL(url,location.href).searchParams;focused=params.get('atlas-space-focus')==='dependencies';const wants=params.get('atlas-space')==='3d';if(wants&&!active)activate();else if(!wants&&active)deactivate();else schedule();} function decorateURL(url){if(active)url.searchParams.set('atlas-space','3d');else url.searchParams.delete('atlas-space');if(active&&focused)url.searchParams.set('atlas-space-focus','dependencies');else url.searchParams.delete('atlas-space-focus');return url;} - import('./current.mjs?site-release=fc7e8a98c1e23f476962c4c83e95ed3ce817490007987112d9b2cf6d3d90b142').then(m=>m.currentSnapshot).then(snapshot=>{if(!disposed){data=snapshot;schedule();}}); + import('./current.mjs?site-release=27f990a4758c48ff2f4aa58b47a842bf61eebc3e0f7449f0dc68f63bc3c502f5').then(m=>m.currentSnapshot).then(snapshot=>{if(!disposed){data=snapshot;schedule();}}); display();restore(location.href); return {restore,decorateURL,dispose(){disposed=true;deactivate();cancelAnimationFrame(frame);observer.disconnect();visibility.disconnect();cleanup.forEach(fn=>fn());}}; } diff --git a/docs/site/atlas.mjs b/docs/site/atlas.mjs index 5b1bd25e6..ea383e322 100644 --- a/docs/site/atlas.mjs +++ b/docs/site/atlas.mjs @@ -1,7 +1,7 @@ -import {currentSnapshot,element,anchor} from './current.mjs?site-release=fc7e8a98c1e23f476962c4c83e95ed3ce817490007987112d9b2cf6d3d90b142'; +import {currentSnapshot,element,anchor} from './current.mjs?site-release=27f990a4758c48ff2f4aa58b47a842bf61eebc3e0f7449f0dc68f63bc3c502f5'; import {hasNode,readState,neighborhood,searchGraph,downstreamReach,requiredDependencyPaths,REQUIRED_ROUTE_SEMANTICS,evidenceAxes,sourceURL,sourceForNode,staticNodeLinks,resumeProjection,RESUME_NOT_RECORDED,resumeFieldHref} from './current-model.mjs?site-release=a30d68465e3acda48eedce64854afebc7af5c84903a4e6b0c649e08007b08999'; -import {createAtlasShell,viewForViewport} from './atlas-shell.mjs?site-release=a6f50fd2faed951b2fb1c7864eda331d2910ec69d2cd5c3cb7b0fe67303c85bc'; -import {createClaimSummary} from './atlas-claim-summary.mjs?site-release=c3282397f25caaf0882d47f4433279c88bab7471df6eaf5b123f1e357da30c94'; +import {createAtlasShell,viewForViewport} from './atlas-shell.mjs?site-release=718671ee61565b7eb38bfef88ba31bd6ce27fe6065c7fc8d8eb6f39e8462f518'; +import {createClaimSummary} from './atlas-claim-summary.mjs?site-release=3d0b09c4805f56b549237e1dec93b51d28bff408d92334bcee01fb75426db0e9'; import {createRelationshipSections} from './atlas-relationships.mjs?site-release=a45607775d5c82c86420d6a93b1af9142a2e26ce385e14f298ce873e58d4d835'; import {enableAtlasView,reconcileEquationOptions,createEquationAnnouncement} from './atlas-controls.mjs?site-release=58e7dd9a4fcfc326effc240080bbfac0cadd584908f84047b480fd9dcba522c7'; const byId=id=>document.getElementById(id); diff --git a/docs/site/cite.html b/docs/site/cite.html index 5d47e29dc..7b01fd3e4 100644 --- a/docs/site/cite.html +++ b/docs/site/cite.html @@ -7,7 +7,7 @@ - + diff --git a/docs/site/compare-source-panel.mjs b/docs/site/compare-source-panel.mjs index 9a2efca31..580a8bc0e 100644 --- a/docs/site/compare-source-panel.mjs +++ b/docs/site/compare-source-panel.mjs @@ -26,7 +26,7 @@ export function installCompareSourcePanel(document, window) { panel.setAttribute('aria-busy', 'true'); note.textContent = 'Verifying the separate current-source inventory…'; try { - const module = await import('./current.mjs?site-release=fc7e8a98c1e23f476962c4c83e95ed3ce817490007987112d9b2cf6d3d90b142'); + const module = await import('./current.mjs?site-release=27f990a4758c48ff2f4aa58b47a842bf61eebc3e0f7449f0dc68f63bc3c502f5'); const data = await module.currentSnapshot; if (!data) throw new Error('Source inventory verification did not complete.'); setState('ready'); diff --git a/docs/site/compare.html b/docs/site/compare.html index 882e3eec7..ae86fa82b 100644 --- a/docs/site/compare.html +++ b/docs/site/compare.html @@ -11,7 +11,7 @@ - + diff --git a/docs/site/current.mjs b/docs/site/current.mjs index 86d1b7b23..02fdad153 100644 --- a/docs/site/current.mjs +++ b/docs/site/current.mjs @@ -32,12 +32,19 @@ async function load() { const updateFreshness=()=>{const state=freshness(data.observed_at);status.textContent=`Verified source observation: ${data.observed_at} · ${state}. ${state==='stale'?'This observation is more than two hours old; check upstream sources.':''}`;status.dataset.freshness=state;}; updateFreshness();const freshnessTimer=setInterval(updateFreshness,60000);window.addEventListener('pagehide',()=>clearInterval(freshnessTimer),{once:true});window.addEventListener('pageshow',updateFreshness);document.addEventListener('visibilitychange',updateFreshness); const input=section.querySelector('.current-search'),list=section.querySelector('.current-results'),more=section.querySelector('.current-more'); - if(input&&list){let limit=50;input.disabled=false;input.value=new URLSearchParams(location.search).get('source-q')||''; - const render=()=>{const matches=filterSources(data.sources,input.value);list.replaceChildren(...matches.slice(0,limit).map(s=>renderCurrentSource(s,annotations.get(s)))); - section.querySelector('.current-count').textContent=`${Math.min(limit,matches.length)} of ${matches.length} matching files · ${data.sources.length} indexed public files. Excluded historical/recovery/operational paths are outside this discovery population.`;more.hidden=matches.length<=limit;}; + if(input&&list){let limit=50,renderedQuery=null,renderedCount=0;input.disabled=false;input.value=new URLSearchParams(location.search).get('source-q')||''; + const render=(append=false)=>{const query=input.value; + if(append&&query!==renderedQuery){append=false;limit=50;} + const matches=filterSources(data.sources,query),count=Math.min(limit,matches.length); + const rows=matches.slice(append?renderedCount:0,count).map(s=>renderCurrentSource(s,annotations.get(s))); + if(append)list.append(...rows);else list.replaceChildren(...rows); + renderedQuery=query;renderedCount=count; + section.querySelector('.current-count').textContent=`${count} of ${matches.length} matching files · ${data.sources.length} indexed public files. Excluded historical/recovery/operational paths are outside this discovery population.`;more.hidden=matches.length<=limit;return rows[0];}; input.addEventListener('input',()=>{limit=50;render();const url=new URL(location.href);if(input.value)url.searchParams.set('source-q',input.value);else url.searchParams.delete('source-q');try{history.replaceState(null,'',url);}catch{}}); window.addEventListener('popstate',()=>{input.value=new URLSearchParams(location.search).get('source-q')||'';limit=50;render();}); - more.addEventListener('click',()=>{limit+=50;render();});render(); + more.addEventListener('click',()=>{const ownedFocus=document.activeElement===more;limit+=50;const first=render(true); + if(ownedFocus&&first){const link=first.querySelector(':scope > a');if(link)link.focus();else{first.tabIndex=-1;first.focus();}} + });render(); } return data; }catch(e){if(status)status.textContent=`Unavailable: ${e.message} No current result inferred.`;return null;} diff --git a/docs/site/dependencies.html b/docs/site/dependencies.html index 8340cfe9f..86ddcfa6e 100644 --- a/docs/site/dependencies.html +++ b/docs/site/dependencies.html @@ -15,8 +15,8 @@ - - + + diff --git a/docs/site/explore.html b/docs/site/explore.html index ef2f3472d..c7b7175ab 100644 --- a/docs/site/explore.html +++ b/docs/site/explore.html @@ -14,7 +14,7 @@ - + diff --git a/docs/site/index.html b/docs/site/index.html index 8ac93a910..c7c38c12a 100644 --- a/docs/site/index.html +++ b/docs/site/index.html @@ -8,7 +8,7 @@ - + diff --git a/docs/site/measure.html b/docs/site/measure.html index d9b56c7f6..bce9c3483 100644 --- a/docs/site/measure.html +++ b/docs/site/measure.html @@ -13,7 +13,7 @@ - + diff --git a/docs/site/museum.html b/docs/site/museum.html index cdc14046c..6b56f369a 100644 --- a/docs/site/museum.html +++ b/docs/site/museum.html @@ -12,7 +12,7 @@ - + diff --git a/docs/site/reproduce.html b/docs/site/reproduce.html index d10bef04c..0b3217326 100644 --- a/docs/site/reproduce.html +++ b/docs/site/reproduce.html @@ -8,7 +8,7 @@ - + diff --git a/docs/site/research-desk.mjs b/docs/site/research-desk.mjs index a2abc3517..00ec43b23 100644 --- a/docs/site/research-desk.mjs +++ b/docs/site/research-desk.mjs @@ -1,5 +1,5 @@ // Reader-owned navigation notes. Never a source, proof or status authority. -import {currentSnapshot} from './current.mjs?site-release=fc7e8a98c1e23f476962c4c83e95ed3ce817490007987112d9b2cf6d3d90b142'; +import {currentSnapshot} from './current.mjs?site-release=27f990a4758c48ff2f4aa58b47a842bf61eebc3e0f7449f0dc68f63bc3c502f5'; import {SCHEMA,MAX_FILE_BYTES,validateEntry,entryKey,parseReadingList,mergeEntries,sourceHref,searchHref,readingListJSON} from './research-desk-store.mjs?site-release=547418ff3547b671266d1e46bf8d33f1f3eedf83571f6a0bb69ca9d7786ffaf3'; import {readingListCitationHref} from './reading-list-citation.mjs?site-release=02153e8e3acb70abca98685f5b274c0472eea6450ed2e9c3fc3125a7b0196968'; import {startLibrarySourceSearch} from './library-source-search.mjs?site-release=0f7fa4196362a427e070fc49f58f8a2935840e9d797358cb9d325e5db44ee612'; diff --git a/docs/site/research.html b/docs/site/research.html index 6871f039b..c7fccb2ec 100644 --- a/docs/site/research.html +++ b/docs/site/research.html @@ -39,7 +39,7 @@

Source observation

Metadata only: discoverable identity without included document content. Parsed graph: source read and verified during generation; parsed data included. Reference identity: source read and verified during generation; identity retained, document text omitted. Included excerpts: exact text spans, not the complete document. Unavailable: no qualified association. Mathematical review: unknown in this inventory. Applicability: unknown in this inventory. Acceptance: unknown in this inventory. Unknown does not mean unreviewed, rejected or inapplicable.

History capacity: 2 of 512 mathematical archives; 26330173 of 805306368 conservative retained bytes (including registry and release-key allowances). Publication refuses additional versions at capacity; no history is pruned.

- +
Reading map and terminologyAll seven dated cuts, four introductory paths, and the words used in their records @@ -368,7 +368,7 @@

Source observation

FINITE NUMERICAL EVIDENCE

Follow the computation, too

The public numerical work retains exact finite-field certificates, H0 endpoints, refinement results and adverse controls. Those finite calculations do not confirm the infinite-field coefficient or the asymptotic remainder.

Read the numerical study at this cut · Browse its code and results

Read the broader research guide

THE RETAINED RECORD

Keep the historical views in view

The 2,138-file Library preserves its 2026-09-26 inventory. The source exhibits and status board have their own fixed source dates. They are not silently refreshed by this reading cut.

The existing exact-source catalog at this cut supplies curated identities. The query tool at this cut looks them up and verifies local bytes. Neither decides acceptance or claims a complete inventory.

- +

01 / PERSISTENCE

How long does a feature last?

As a height threshold moves, a landscape’s connected regions appear and merge. Persistence records how long each feature survives in threshold space. A lifetime theorem needs more than a picture: it must identify the relevant event and control the probabilistic terms that describe it.

The lifetime-remainder argument studies a particular remainder term. Its recorded review accepts an existential O(1) remainder under the stated imported assumptions. It does not supply numerical constants, a usable radius, or a second coefficient.

Read the lifetime-remainder argument →

Inspect its review and exact scope

Follow the broader research guide

02 / LOCAL GEOMETRY

What does a peak look like up close?

A smooth surface bends near a critical point. The eigenvalues of its Hessian describe that bending. Two negative eigenvalues identify a strict local maximum in a nondegenerate two-dimensional example.

The SIDE24 calculation integrates a particular geometric quantity and supplies exact coefficient enclosures in dimensions two and three. Its coefficient review has a precise scope; interpreting the coefficient as part of a lifetime law retains that law’s separate assumptions.

Read the coefficient argument · Source and review

diff --git a/docs/site/workspace.html b/docs/site/workspace.html index cd1899aa8..8ebeaf5a7 100644 --- a/docs/site/workspace.html +++ b/docs/site/workspace.html @@ -11,10 +11,10 @@ - + - + @@ -94,6 +94,6 @@

Source observation

Pinned source bytes are verified by script before the endpoints are shown.

Exact lower endpoint
—
Exact upper endpoint
—
Reference cone moment
—
Approximate display only. Bar lengths use binary floating point; the exact endpoints remain visible at left. The enclosure width is too small to show at this scale.

This engineering-only coefficient exhibit retains the artifact’s original scientific_acceptance: false. Read the later scoped coefficient review and its limits separately. The parent theorem’s open dependencies remain open.

Source identity and method
-

04 / JOIN THE WORK

Bring a result. Keep its evidence.

1. Claim a bounded task

Replay a pinned calculation, chart public data, document an import, or leave a source-bound review comment. Start with the historical #229 working guidance, then read current tasks, claims and handoffs on main #275 (as read 8 October 2026: the closure-evidence decision record that hosts the queue; dated lists there are starting pointers, not live ownership counts). New general questions, obstacles and handoffs go on the active coordination board, main #619 (as read 26 October 2026; successor to main #539, which remains readable history after reaching the comment limit; before it, main #475, main #419, which stays readable as history after GitHub stopped accepting comments there at 2,500 on 21 October 2026; main #307 is the board before it; GitHub stopped accepting comments on main #229 at 2,500 on 8 October 2026, and it stays readable as the earlier record). Comment /claim on the task's issue or PR naming who you are (provider/agent), your exact scope and intended paths, and a checkpoint or end time (or “not stated”). Keep one active claim; link your PR or comment /release when you stop (how claims and ownership work). No task fits? Propose a bounded task.

Active coordination board ↗Current tasks and claims ↗

2. Submit a result PR

Fork main. Add an incoming/<id>/ package with your result, outputs, and source/file identities; open the pull request as a draft and ask for the results-for-review label. Do not edit scientific status rows. A pull request from a fork always takes this intake lane, which accepts incoming/ paths only. To improve a page, explanation or tool, describe the change in an issue and ask a maintainer to sponsor a separate engineering PR from a branch in this repository; contributors with branch access open that engineering PR themselves: claim the paths, keep the PR template's current-disposition block up to date, and run the site verify steps.

Contribution instructions ↗
+

04 / JOIN THE WORK

Bring a result. Keep its evidence.

1. Claim a bounded task

Replay a pinned calculation, chart public data, document an import, or leave a source-bound review comment. Start with the historical #229 working guidance, then read current tasks, claims and handoffs on the active coordination board and in each task's issue or PR, and take architecture questions to main #666 (as read 26 October 2026: it continues the architecture role of main #275, the closure-evidence decision record; dated lists on the boards are starting pointers, not live ownership counts). New general questions, obstacles and handoffs go on the active coordination board, main #619 (as read 26 October 2026; successor to main #539, which remains readable history after reaching the comment limit; before it, main #475, main #419, which stays readable as history after GitHub stopped accepting comments there at 2,500 on 21 October 2026; main #307 is the board before it; GitHub stopped accepting comments on main #229 at 2,500 on 8 October 2026, and it stays readable as the earlier record). Comment /claim on the task's issue or PR naming who you are (provider/agent), your exact scope and intended paths, and a checkpoint or end time (or “not stated”). Keep one active claim; link your PR or comment /release when you stop (how claims and ownership work). No task fits? Propose a bounded task.

Active coordination board ↗Architecture discussion ↗

2. Submit a result PR

Fork main. Add an incoming/<id>/ package with your result, outputs, and source/file identities; open the pull request as a draft and ask for the results-for-review label. Do not edit scientific status rows. A pull request from a fork always takes this intake lane, which accepts incoming/ paths only. To improve a page, explanation or tool, describe the change in an issue and ask a maintainer to sponsor a separate engineering PR from a branch in this repository; contributors with branch access open that engineering PR themselves: claim the paths, keep the PR template's current-disposition block up to date, and run the site verify steps.

Contribution instructions ↗
diff --git a/docs/superpowers/plans/2026-10-26-source-list-continuity.md b/docs/superpowers/plans/2026-10-26-source-list-continuity.md new file mode 100644 index 000000000..b42239c32 --- /dev/null +++ b/docs/superpowers/plans/2026-10-26-source-list-continuity.md @@ -0,0 +1,68 @@ +# Current-source continuity implementation plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans. +> Root implements the product change inline; a delegated engineer owns the +> independent browser regression, followed by a fresh whole-change reviewer. + +**Goal:** Preserve source evidence and keyboard position while revealing more files. + +**Architecture:** Retain the existing immutable admitted snapshot and filter. +Append only a new suffix for an unchanged query; retain replacement on query +reset. Focus a newly revealed source only when the activated More button owned +focus. No loader, data or mathematics change. + +**Tech stack:** Existing browser ES modules; Python Playwright/Chromium driver; +existing Python/Node site checks and release-key generator. + +**Spec:** `docs/superpowers/specs/2026-10-26-source-list-continuity-design.md`. + +## Global constraints + +50-file batches; immutable accepted observation; no production dependencies. +Preserve literal source identities, source admission/refusal and mathematical status. +Do not delete, move, rename or reshare Drive files; delivery is additive. +Use explicit OpenAI Codex attribution for Git commits; no human review claim. + +## Review focus + +- New query after expansion replaces the old prefix and resets the window. +- Programmatic query changes before More cannot mix two query populations. +- A final partial batch focuses its first newly revealed named source. +- A programmatic click while another control owns focus does not steal focus. +- Retained acquisition details and save controls stay the same DOM objects. + +### Task 1: Repair and qualify source browsing + +**Files:** Modify `docs/site/current.mjs` results/More block only; create +`tools/source_list_continuity_browser_check.py`; add a small usage note to the +existing site guide; include all release-tool-derived importer/HTML keys. + +**Interfaces:** Consume existing `filterSources`, `renderCurrentSource`, admitted +`data.sources` and annotations. Keep their interfaces and output untouched. +The browser driver consumes the actual included site or optional `--origin` +and produces report JSON/screenshots outside the repository. + +- [ ] Write the focused real-browser cases for all five review-focus conditions, + exact ordered URLs/no duplicates, clear/history and refusal controls. +- [ ] Run on unchanged c1678a5; retain actual behavioral RED separately from setup + failures. Product write waits for actual #501 hunk reconciliation. +- [ ] Track rendered query/count in the existing result closure. Append only the + suffix on an unchanged query; otherwise replace/reset. Capture focus before + handling More, then focus the first new source link/row only if it owned focus. +- [ ] Run focused GREEN in desktop/phone themes; run existing Library search and + reading-desk continuity checks. Keep original RED and every failed attempt. +- [ ] Stage additions; run `python -B tools/site_asset_release.py` and `--check`; + run the site guide's prescribed public-shop checks and repository full + discovery, recording unrelated failures by name rather than silently repairing + peer-owned scientific or test work. +- [ ] Obtain a fresh separate engineering review; fix supported findings, rerun + affected checks, commit explicit AI identity and open the ordinary PR. +- [ ] Reconcile current Main/hunks and required hosted checks; perform only the + guarded authorized integration and verify the landed/public/offline behavior. +- [ ] Deliver an additive source/site/evidence download with actual hashes, + changes, benefits and open limits. Release only this task's finite claims. + +Self-review: every spec requirement maps to this single component task. The two +browser control-state branches are tested independently. No new shared API or +mathematical acceptance path is introduced. Existing user delegation selects +continued execution and supersedes the generic skill approval prompt. diff --git a/docs/superpowers/specs/2026-10-26-source-list-continuity-design.md b/docs/superpowers/specs/2026-10-26-source-list-continuity-design.md new file mode 100644 index 000000000..a34e5c27d --- /dev/null +++ b/docs/superpowers/specs/2026-10-26-source-list-continuity-design.md @@ -0,0 +1,53 @@ +# Current-source result continuity + +The Library should let a reader inspect source evidence, reveal more matching +files and continue reading without closing that evidence or losing keyboard +position. This is a presentation repair to the existing admitted-source reader. + +## Evidence and choice + +On Main `c1678a556ab487954abbdc2456686bb64ddc7114`, the included `proof` +query has 224 matches. A real sandboxed Chromium probe observed that expanding +50 to 100 results removed the first open acquisition disclosure, and expanding +200 to 224 hid the focused button and left focus on BODY. The shared renderer +uses `replaceChildren` for both a changed query and a larger result window. + +Three approaches were considered: rebuilding rows and restoring disclosure +state by identity; a general keyed renderer; and appending the next batch for +an unchanged query. Choose the last: the accepted snapshot is immutable within +this load, ordering already comes from `filterSources`, and only explicit +Show more needs continuity. A new rendering framework would add unnecessary +state and touch the separately owned loader contract. + +## Required behavior + +- Keep the existing 50-file batch size, filtering, source ordering, counts, + literal source text, pinned URLs and acquisition annotations. +- For Show more on the same query and admitted observation, retain all existing + row objects, open acquisition details and source-save controls, then append + only the newly revealed rows. Never duplicate a row. +- If Show more owns focus when activated, focus the first newly revealed + source link. Apply this on each batch, including the terminal partial batch. + If that row has no link, focus the row with a programmatic `tabindex=-1`. + If another control owns focus, do not move it. +- Input changes, Clear search and history restoration replace results and reset + the 50-file window as before. A different query must never append to an old + query's rows, even if changed programmatically before Show more. +- Snapshot refusal keeps search/save controls disabled. Static and no-JavaScript + source routes remain available. No new dependencies, schema or storage. + +## Boundaries and delivery + +Change only the source-results renderer/Show-more handler in `current.mjs`. +Preserve fetch/admission/timeout/acquisition/model/importer/registry contracts, +mathematical records, source payloads, historical evidence and scientific status. +Reconcile actual #501 renderer hunks before product edits; its wider publication +work remains owned there. Asset URL keys are derived by the existing release +tool, not manually chosen. Preserve other agents' actual changes on integration. + +Use real-browser RED/GREEN checks, related Library/reading-desk checks and the +required site checks. Record actual browser, widths/themes, source identities and +limits; DOM checks are not spoken assistive-technology or mathematical review. +User standing delegation authorizes execution without another design approval. +Same-family separate engineering review is allowed under the 25 October owner +decision; scientific effect NONE and organizational-independence credit 0. diff --git a/tests/test_reader_links.py b/tests/test_reader_links.py index cc45be0da..184b46092 100644 --- a/tests/test_reader_links.py +++ b/tests/test_reader_links.py @@ -942,7 +942,7 @@ class NewerWorkRoutes(unittest.TestCase): ACTIVE_BOARD = 619 # current coordination successor; guide routing may await its own amendment PREVIOUS_BOARD = 539 HISTORICAL_BOARD = 229 - QUEUE = 275 + ARCHITECTURE = 666 # architecture discussion, continued from #275 (option B, 26 October) ISSUES = SOURCE_ROOT+'main/issues/' AS_READ = r'as read \d{1,2} (?:January|February|March|April|May|June|July|August|September|October|November|December) 20\d\d' # The aside's routes in reading order, each with its exact name; a renamed or reordered route is a deliberate edit here. @@ -965,7 +965,7 @@ class NewerWorkRoutes(unittest.TestCase): ('main/issues/475', 'main #475'), ('main/issues/419', 'main #419'), ('main/issues/307', 'main #307'), - ('main/issues/275', 'task and claim queue, main #275'), + ('main/issues/666', 'architecture discussion, main #666'), ('main/issues/229', 'historical board, main #229'), ('main/blob/main/CONTRIBUTING.md', 'contribution guide'), ('meta-framework/blob/main/registry.json', 'current curated catalog'), @@ -1005,7 +1005,7 @@ def is_historical_board(self, href): def test_routes_reach_both_repositories_and_the_board_in_use(self): aside=self.aside() self.assertEqual(self.anchors(aside),[(SOURCE_ROOT+href,name) for href,name in self.ROUTES]) - for n in (self.ACTIVE_BOARD,self.QUEUE,self.HISTORICAL_BOARD): + for n in (self.ACTIVE_BOARD,self.ARCHITECTURE,self.HISTORICAL_BOARD): with self.subTest(issue=n):self.assertIn(f'main/issues/{n}',[href for href,_ in self.ROUTES]) self.assertTrue(aside.startswith('