Skip to content

Follow-ups from #215: dangling links to left-out pages, untested site scripts, check cost, titles #415

Open

Description

@Deicyde

#215 merged at 505155d (c2304ce) with these items open. They come from its reviews (2026-10-18 at 5e75131 and the follow-up at 505155d) and its own "Until the next layers land" section. The cleanup items were re-checked on main 6838e69; the others are the reviews' repros.

Gaps

  • A link from a page outside roadmap/ into a published: false folder or a hidden file is published dangling. check prints nothing, and mkdocs build --strict aborts. Repro: scaffold a project, add roadmap/drafts/README.md with published: false, and link to it from blueprint/notes.md. Let a folder's README say published: false: checked, not rendered #381's rule covers only roadmap pages. left_out (render.py) already keeps only a link's text for bad suffixes and encodings, so one rule covers all three: a target inside the blueprint that the capture did not keep loses its link, and check warns.
  • The generated javascripts/mathjax.js is only syntax-checked. No CI job runs the Node MathJax suite, so its formula-class restriction, version check and early-load guard can each be removed with every test passing. Show statement review on the site #217's review found the same for its per-card typesetting.
  • The Mermaid draw queue is untested. Moving the module-level queue back into draw() passes every Mermaid test, which reopens the race where a color-scheme change during drawing re-initializes Mermaid with securityLevel: "loose".
  • check costs much more CPU. Measured at 5e75131: about 6.4x user time on Hartshorne (1.56 s to 9.94 s), and 7x to 32x on synthetic vaults. Checking a chapter's stretches grows with slots times lines.

Behaviour

  • An authored frontmatter title: is dropped. title: My Notes beside the H1 "Something else" publishes "Something else", so the page's <title> changes. It could be kept through title_text.
  • A flagged blueprint/README.md is reported as "the site shows it as typed", by both check and render, but the landing page shows no typed block; it shows the escaped lead.
  • A dependencies.html directory passes check silently and then fails the MkDocs build. This is documented, and main did the same before Treat every published page as untrusted #215.

Cleanup

  • _STALE_VIEWS (render.py) repeats three names from markdown.GENERATED_VIEWS. Define the retired views once, in markdown.py.
  • render.py's comment "Capture skips a hidden article" is stale: since Make check and audit see the blueprint render publishes #380 the graph never loads hidden articles, and that branch only skips nodes in unpublished folders.
  • The \def notation test now names \gdef in its prose, to avoid the known extra line, but its docstring still says prose that names a command is never reported.

When other work lands

Decision

Tracked elsewhere: harmless markup that shows a page as typed is #410.

Activity

  1. added a commit that references this issue on Oct 21, 2026
  2. Deicyde commented on Oct 22, 2026

    @Deicyde
    ContributorAuthor

    Status of these follow-ups on main cbdd753:

    Done

    Decided

    • MathJax cancel stays off, as Treat every published page as untrusted #215 merged it. The chosen option keeps the formula-colouring packages off, and \cancel[mathcolor=green]{\checkmark} would draw a check mark like the site's status marks. No blueprint here uses \cancel. (Board Maintainer, on Jack's delegation.)

    Still open

    • The generated javascripts/mathjax.js is only syntax-checked: no CI job runs the Node MathJax suite.
    • The Mermaid draw queue: Retire generated Mermaid: a Markdown dependency summary and locked-down authored diagrams #378's harness now asserts at most one diagram in flight across the light and dark passes. Whether that also pins the queue against a scheme change mid-draw has not been checked with a mutant.
    • check's CPU cost: about 6.4x on Hartshorne, measured at 5e75131.
    • An authored frontmatter title: is still dropped; keeping it needs YAML semantics.
    • A dependencies.html directory passes check and fails the MkDocs build (documented).
    • The bundled example's blueprint/javascripts/mathjax.js copy goes once its AUTOFORM_REF moves past Treat every published page as untrusted #215.

    Under the current stabilization rules these stay open until a user or CI hits one, or Jack asks.

    Posted by Claude Code (348 worker session).

  3. Deicyde commented on Oct 23, 2026

    @Deicyde
    ContributorAuthor

    Status of the still-open items, rechecked on main a840c3f. The mutants ran locally against the pinned MathJax 3.2.2 (npm tarball, sha256 checked).

    Resolved

    Partly resolved

    • The generated javascripts/mathjax.js. CI now runs the Node suite: the "MathJax read-back cards (Node)" job runs tests/test_site_mathjax_node.py. Of the three guards this item named:
      • The formula-class restriction is pinned. Removing processHtmlClass: SETTINGS.nothing and the element list fails all 6 Node tests.
      • The early-load guard is not pinned. This guard stops a MathJax that mkdocs.yml loads before the script.
      • The version check is not pinned. This check leaves formulas as typed under any MathJax but 3.2.2.
      • Removing either unpinned guard still passes all 6 Node tests and all 187 tests in tests/test_site_math.py.

    Still open

    • The authored frontmatter title: is still dropped. title: My Notes beside the H1 "Something else" publishes title: "Something else".
    • A blueprint/dependencies.html/ directory still passes check ("OK: 3 articles"). This is documented.
    • The bundled example still keeps blueprint/javascripts/mathjax.js. Its AUTOFORM_REF is still 0288506.
    • check's CPU cost was not re-measured. The machine's load average was about 200, which makes timings meaningless.

    Under the stabilization rules these stay open until a user or CI hits one, or Jack asks.

    Posted by Claude Code (348 worker session).

  4. Deicyde commented on Oct 26, 2026

    @Deicyde
    ContributorAuthor

    Jack's decisions (2026-10-26) on what's left: an authored frontmatter title: stays out of the published title; check keeps reading the pieces the site never publishes, so its cost stays where #462 left it; the dependencies.html/ directory case stays documented; and the bundled example's leftover blueprint/javascripts/mathjax.js goes, in a PR that closes this issue.

    Posted by Claude Code (session jackmccarthy-da), at Jack's request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions