Refactor the website around a Typst-backed reduction graph - #1156
Merged
Merged
Conversation
fCoSE draws its initial positions from Math.random and has no seed option, so every build shuffled the published node positions. Install a fixed mulberry32 stream in the Node generator and assert that two runs are byte-identical. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The global keydown handler only exempted #graph-search, so typing "/" in the list search moved focus and split the query, and Escape in any field cleared the whole selection. Mirror the typing guard from site.js; Escape inside a field now clears that field through its own input handler and blurs it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
renderBrowser replaces every button, so Enter on a list item dropped focus to <body>. When focus was inside the list, move it to the re-rendered counterpart of the focused item; canvas and mouse-free selections leave focus alone. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
build_website.py compiles docs/paper/reductions.typ, which reads the generated docs/paper/data/examples.json, but only `make website` exported it, so `make doc` and `make mdbook` failed on a clean checkout. Move the export into a paper-data target that website, doc, mdbook and paper all depend on, and let mdbook copy the API docs before the website builder finalizes them, as doc already does. The README names mdBook 0.5.2 as the deployment version. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
design.md still linked the deleted open-problems.md, and the published reduction-graph.html and open-problems.html had no successor. Link the Open questions tab and add mdBook redirects to graph.html and index.html#open-questions; the meta refresh works under the site CSP. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
aria-valuemax was only written by the first resize, so the separator exposed an incomplete range until then. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
window.REDUCTIONS was read before the try block, so a failed graph-data.js left the workspace inert with no message. The preamble moves inside the try (whitespace-only re-indent) and a missing payload raises a readable error. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Typst 0.15 puts role=doc-noteref on the <sup>, not the link, so the footnote lookup never matched and footnotes were never shown. Match the link inside the noteref, and report a failed footnotes fetch in the footnote block instead of replacing the rendered article. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1156 +/- ##
=======================================
Coverage 95.93% 95.93%
=======================================
Files 1074 1074
Lines 132106 132106
=======================================
Hits 126730 126730
Misses 5376 5376 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
|
Follow-up items (recorded during final review):
|
GiggleLiu
approved these changes
Sep 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Standalone website PR based directly on main, replacing the stacked delivery in #1153. Includes all 13 website commits through 0a95d08, including the maintainer review fixes. No dependency on #1151. The maintainer approved the website scope exception (36 files).
Website
No library API changes
Rust library, solver, macro, and CLI source files match main. Public ProblemSchemaJson is unchanged.
The website needs module_path only to construct Open implementation links. The existing ProblemSchemaEntry registry already provides it; examples/export_schemas.rs adds it solely to the generated documentation JSON. A regression checks both the exported path and the unchanged public schema JSON. Browser fixtures use the actual CircuitSAT-to-SpinGlass edge on main.
Verification
No deployment or merge performed. #1153 remains available for its review history.