Skip to content

Fix github repo stats rendering twice, and fix them in the nav drawer - #68

Merged
Mark90 merged 1 commit into
mainfrom
fix-duplicate-repo-facts
Sep 18, 2026
Merged

Mark90 merged 1 commit into
mainfrom
fix-duplicate-repo-facts

Conversation

@Mark90

@Mark90 Mark90 commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

The header showed the repo stats twice on a cold page load. Our source.html override kept upstream's data-md-component="source", so Material mounted its own fact-fetching on the same element repo-source.js writes to, and both appended a list. Material's mount runs once at bundle-eval time and never again, which is why the duplicate disappeared as soon as a navigation repainted the element. Marking the link with data-repo-source instead leaves repo-source.js as the only writer, and halves the GitHub API calls per cold load from four to two.

The partial also renders a second time in the navigation drawer, the copy shown below 960px, which repo-source.js never patched because it used a singular querySelector. Its facts came from Material's session-wide cache and could be another project's, and instant navigation replaces that node, so they vanished entirely after the first in-project navigation. Both copies are now re-queried and repainted on each navigation rather than captured once, and the route's resolved facts are memoised so the extra repaints cost no requests.

The header showed the repo stats twice on a cold page load. Our source.html
override kept upstream's data-md-component="source", so Material mounted its
own fact-fetching on the same element repo-source.js writes to, and both
appended a list. Material's mount runs once at bundle-eval time and never
again, which is why the duplicate disappeared as soon as a navigation
repainted the element. Marking the link with data-repo-source instead leaves
repo-source.js as the only writer, and halves the GitHub API calls per cold
load from four to two.

The partial also renders a second time in the navigation drawer, the copy
shown below 960px, which repo-source.js never patched because it used a
singular querySelector. Its facts came from Material's session-wide cache and
could be another project's, and instant navigation replaces that node, so they
vanished entirely after the first in-project navigation. Both copies are now
re-queried and repainted on each navigation rather than captured once, and the
route's resolved facts are memoised so the extra repaints cost no requests.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Mark90
Mark90 merged commit d0f3614 into main Sep 18, 2026
2 checks passed
@Mark90
Mark90 deleted the fix-duplicate-repo-facts branch September 18, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant