Skip to content

Commit 66072eb

Browse files
committed
Update docs-site for the standalone native binaries feature
The public MkDocs docs-site had never been touched across any of the @pptxdiff/binaries commits, even though docs/.scrolls was kept current throughout - confirmed via git log rather than assumed. - getting-started.md: new "Option D - standalone binary" install option, with a matching doc_coverage id (native-binaries, partial). - cli.md: cross-link to Option D. index.md: updated install card. - limitations.md: new row for the binaries' own limitations, and reworded the existing "browser tab, not native window" row so it doesn't read like the binaries are an exception to it. - New changelog subpage changelogs/pptxdiff-binaries.md, transcluding all three per-OS CHANGELOG.md files (this package has no single package-level one) - added to nav and the changelog index. - coverage_registry.yml: two new ids, native-binaries and native-binaries-limitations; sync_doc_coverage.py --write/--check re-run (36 complete, 4 partial, 0 missing). Found and fixed a real mkdocs build --strict failure: the three per-OS CHANGELOG.md files' relative link back to the root CHANGELOG.md was correct on GitHub but broke once transcluded into the new subpage at a different path. Fixed at the source with an absolute GitHub URL, matching every other changelog subpage's existing pattern. Verified for real: mkdocs build --strict clean, and directly grepped the built HTML to confirm the new anchor matches exactly between the defining page and both pages that link to it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BxwMTp6RQJ6j6K5K8Jjdpm
1 parent e94729a commit 66072eb

15 files changed

Lines changed: 194 additions & 15 deletions

File tree

docs/.scrolls/DOCS.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,3 +242,69 @@ PUBLIC-docs-site side of that same rule.
242242
docs`, per §5/§13's existing note about avoiding the root `[project]` deps' torch/CUDA pull), the
243243
new page's `/headless-cli-api/index.html` present in the built `site/` output, and
244244
`sync_doc_coverage.py --check` passing (34 complete, 1 partial, 0 missing, structurally valid).
245+
246+
## 15. Content updates + new changelog subpage for standalone native binaries (`@pptxdiff/binaries`, added a later session)
247+
248+
Follow-up to the `@pptxdiff/binaries` feature (SPEC.md §32 — six standalone executables, x64+arm64
249+
for Windows/macOS/Linux, via `@yao-pkg/pkg`) shipped across several turns of the same session — the
250+
`.scrolls/` working-memory docs were updated as each piece landed, but the PUBLIC docs-site was not
251+
touched at all until an explicit follow-up ("verify docs/.scrolls folder is updated and so is the
252+
docs-site folder"). Confirmed via `git log --oneline master..HEAD -- src/pptxdiff/docs-site/`
253+
returning zero commits before this entry — a real, not hypothetical, gap.
254+
255+
- **`getting-started.md` gained "Option D — standalone binary (no Node.js at all)"**, between the
256+
existing Option C (just the file) and "What happens on first load" — this page's whole job is
257+
already "here are the ways to run pptxdiff," so a new install option belongs here, not a new
258+
top-level page (see §14's own reasoning for the opposite call on `headless-cli-api.md`, which
259+
documents a genuinely different tool with a different purpose — this is the SAME `bin/cli.js`,
260+
just packaged differently). New `doc_coverage:` id `native-binaries` (`partial` — the page is
261+
accurate, but the underlying feature has known gaps: unsigned/ad-hoc-signed, not on GitHub
262+
Releases yet), anchored to the new section.
263+
- **`cli.md` gained a one-paragraph cross-link** ("No Node.js at all?") pointing at the new Option D
264+
— no new `doc_coverage:` id here, since `getting-started.md`'s new id already covers the feature
265+
and this is supplementary framing on an already-covered page, not a second independent unit of
266+
coverage.
267+
- **`limitations.md` gained a new row** (`native-binaries-limitations`, `complete` — the limitation
268+
itself is fully documented even though the underlying feature has real gaps, same convention §14
269+
established for `headless-cli-api-limitations`) and the existing "npm CLI opens a browser tab" row
270+
was reworded to note the binaries share that same property (same `bin/cli.js`, not a native-window
271+
wrapper) rather than reading as if the binaries somehow escaped it.
272+
- **`index.md`'s "No install required" card** updated to mention the binaries option — a factual
273+
correction (the card previously implied only two options existed), no coverage-registry impact
274+
(the card doesn't carry its own `doc_coverage:` entry, `index.md`'s existing ids are unaffected).
275+
- **New changelog subpage `changelogs/pptxdiff-binaries.md`**, added to nav under "NPM Package(s)"
276+
(same category `pptxdiff-cli`/`@pptxdiff/server` already live in, despite also being `private:
277+
true` unpublished packages — the nav grouping in this site means "package.json-defined sibling in
278+
this repo," not "published to the npm registry") and to `changelog.md`'s index. **Structurally
279+
different from every other changelog subpage**: `@pptxdiff/binaries` has no single package-level
280+
`CHANGELOG.md` (each OS's binary has its own, since they're independent downloadable artifacts —
281+
see `SPEC.md` §32/`GAP_CONTEXT.md`) — so this page transcludes all THREE
282+
(`src/packages/binaries/pptxdiff-{win,mac,linux}/CHANGELOG.md`) under their own `## Windows` /
283+
`## macOS` / `## Linux` subheadings, rather than one `--8<--` include like every other subpage.
284+
- **A real `mkdocs build --strict` failure found and fixed, not just described**: the three per-OS
285+
`CHANGELOG.md` files each linked back to the root `CHANGELOG.md` via a relative path
286+
(`../../../../CHANGELOG.md`) that's correct when the file is read on GitHub (four levels up from
287+
`src/packages/binaries/pptxdiff-win/`) but WRONG once transcluded verbatim into
288+
`docs-site/docs/changelogs/pptxdiff-binaries.md``pymdownx.snippets` is a textual include, it
289+
does not rewrite relative links to account for where the content ends up, so the link resolved
290+
against the WRONG base and `mkdocs build --strict`'s link checker correctly flagged it (twice — the
291+
same relative link appears in the transcluded content of two other, unrelated warnings the build
292+
also printed for the same reason). Fixed at the SOURCE (`src/packages/binaries/pptxdiff-{win,mac,
293+
linux}/CHANGELOG.md` themselves, since the docs-site page transcludes them verbatim) by swapping
294+
the relative link for the same absolute GitHub URL pattern every other subpage's own "Source:"
295+
line already uses — the fix had to happen in the package-level files, not the docs-site page, since
296+
the page has no content of its own to fix.
297+
- **`scripts/coverage_registry.yml` gained two new ids** (`native-binaries` under `features:`,
298+
`native-binaries-limitations` under `limitations:`), each added in the same change as the
299+
page/row that declares them via `doc_coverage:` front matter, per this file's own §8/§14 rule —
300+
`sync_doc_coverage.py --write` then `--check` re-run to confirm 36 complete + 4 partial + 0 missing
301+
(of 40; was 34 complete + 1 partial before this session's headless-CLI-API work, then presumably
302+
higher still after intervening sessions not otherwise noted here).
303+
- **Verified for real**: `mkdocs build --strict` clean after the link fix (one remaining, expected,
304+
harmless warning — `git-revision-date-localized-plugin` complaining the brand-new, not-yet-committed
305+
`pptxdiff-binaries.md` has no git history yet; resolves itself once committed, not a structural
306+
issue). Directly grepped the built HTML (`getting-started/index.html`, `cli/index.html`,
307+
`limitations/index.html`) to confirm the new anchor (`option-d-standalone-binary-no-nodejs-at-all`)
308+
matches EXACTLY between the page that defines it and the two pages that link to it, rather than
309+
trusting that `--strict` alone would have caught a mismatched anchor (MkDocs's built-in link
310+
checker validates that a linked FILE exists, not that a `#fragment` inside it does).

docs/.scrolls/HANDOFF.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
**Read `.scrolls/SPEC.md` first for the full feature list.** This file is the "what's the state of things right now" note — update it at the end of every session, keep it short and current (prune stale entries).
44

5+
## Update (2026-08-05 — docs-site update for the binaries feature, a real gap closed)
6+
- Explicit ask: "verify docs/.scrolls folder is updated and so is the docs-site folder, apart from the README/CHANGELOG file(s)." Checked rather than assumed: `docs/.scrolls/` was confirmed fully updated across all four `@pptxdiff/binaries` commits so far, but `git log --oneline master..HEAD -- src/pptxdiff/docs-site/` came back with **zero commits** — the public MkDocs site had never been touched by any of this session's binaries work. A real gap, not a formality.
7+
- Read `docs/.scrolls/DOCS.md` first, per its own standing rule (anything beyond a routine single-page content edit gets checked against it) — this was more than routine (new page, new nav entry, new coverage-registry ids).
8+
- **`getting-started.md`** gained "Option D — standalone binary (no Node.js at all)," landing between the existing Option C and "What happens on first load" (this page's whole job is already "here are the ways to run pptxdiff"). New `doc_coverage:` id `native-binaries` (`partial`).
9+
- **`cli.md`** gained a one-line cross-link to Option D; **`index.md`**'s "No install required" card updated to mention it; **`limitations.md`** gained a new `native-binaries-limitations` row (`complete`) and had its existing "npm CLI opens a browser tab" row reworded to note the binaries share that property rather than reading as an exception.
10+
- **New changelog subpage `changelogs/pptxdiff-binaries.md`**, added to nav — structurally different from every sibling subpage since `@pptxdiff/binaries` has no single package-level `CHANGELOG.md` (each OS has its own); this page transcludes all three under `## Windows`/`## macOS`/`## Linux` headings instead of one `--8<--` include.
11+
- **Real `mkdocs build --strict` failure found and fixed, not just described**: the three per-OS `CHANGELOG.md` files' relative link back to the root `CHANGELOG.md` (`../../../../CHANGELOG.md`, correct on GitHub) broke once transcluded into the new subpage — `pymdownx.snippets` doesn't rewrite relative links for their new location. Fixed at the source (the package-level files themselves, since the docs-site page has no content of its own) by swapping to the same absolute GitHub URL pattern every other subpage's "Source:" line already uses.
12+
- **`scripts/coverage_registry.yml`** gained `native-binaries`/`native-binaries-limitations`; `sync_doc_coverage.py --write` then `--check` re-run, confirmed 36 complete + 4 partial + 0 missing (of 40).
13+
- **Verified for real**: `mkdocs build --strict` clean (one remaining, expected, harmless warning about the brand-new file having no git history yet — resolves on commit). Directly grepped the built HTML to confirm the new anchor (`option-d-standalone-binary-no-nodejs-at-all`) matches exactly between the defining page and both linking pages, rather than trusting `--strict` alone (it validates linked files exist, not that `#fragment`s inside them do).
14+
- Full technical writeup: `docs/.scrolls/DOCS.md` §15 (new). `docs-site/CHANGELOG.md` gained a matching dated entry per the project's own house rule.
15+
516
## Update (2026-08-05 — binaries: native Windows/Linux arm64 builds, `pptxdiff-win-arm64.exe`/`pptxdiff-linux-arm64`)
617
- Direct, immediate follow-up to the mac-only arm64 addition below: "Can we support arm64 for windows and linux as well?" Unlike macOS, neither Windows nor Linux needs a signing step, so no new CI job was needed — both fold straight into the existing `build-linux-win` job.
718
- **Verified `pkg` genuinely supports both targets first, hands-on, before implementing** (same rigor as every other step in this feature): the FIRST attempt (`pkg -t node22-linux-arm64 bin/cli.js ...`) failed outright with `ERR_ASSERTION`. `--debug` traced the real cause to a genuine exec-format failure: `pkg` needs to run a matching-arch "fabricator" helper binary to generate V8 bytecode for the entry script, and this x64 sandbox has no QEMU/binfmt arm64 emulation registered (confirmed empty, not assumed: `which qemu-aarch64` and `/proc/sys/fs/binfmt_misc` both came up empty) — the shell tried to interpret the foreign-arch ELF's raw bytes as a script, producing a `Syntax error`. `pkg`'s own warning named the fix: `--fallback-to-source` (ships the entry as plain JS instead of failing when bytecode generation isn't possible for the target arch) — added unconditionally to `buildOne()`'s pkg invocation (harmless no-op for same-arch builds, where bytecode generation just succeeds normally).

src/packages/binaries/pptxdiff-linux/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable changes to the Linux standalone `pptxdiff-linux`/
44
`pptxdiff-linux-arm64` builds are documented here. The format is based on
55
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the version
66
tracked is the `pptxdiff` app version bundled into the binary (see the
7-
root [`CHANGELOG.md`](../../../../CHANGELOG.md) for the app's own history)
7+
root [`CHANGELOG.md`](https://github.com/sugatoray/pptxdiff/blob/master/CHANGELOG.md) for the app's own history)
88
since the binaries have no independent feature set of their own.
99

1010
## [Unreleased]

src/packages/binaries/pptxdiff-mac/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable changes to the macOS standalone `pptxdiff-mac`/
44
`pptxdiff-mac-arm64` builds are documented here. The format is based on
55
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the version
66
tracked is the `pptxdiff` app version bundled into the binary (see the
7-
root [`CHANGELOG.md`](../../../../CHANGELOG.md) for the app's own history)
7+
root [`CHANGELOG.md`](https://github.com/sugatoray/pptxdiff/blob/master/CHANGELOG.md) for the app's own history)
88
since the binaries have no independent feature set of their own.
99

1010
## [Unreleased]

src/packages/binaries/pptxdiff-win/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable changes to the Windows standalone `pptxdiff-win.exe`/
44
`pptxdiff-win-arm64.exe` builds are documented here. The format is based
55
on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the version
66
tracked is the `pptxdiff` app version bundled into the binary (see the
7-
root [`CHANGELOG.md`](../../../../CHANGELOG.md) for the app's own history)
7+
root [`CHANGELOG.md`](https://github.com/sugatoray/pptxdiff/blob/master/CHANGELOG.md) for the app's own history)
88
since the binaries have no independent feature set of their own.
99

1010
## [Unreleased]

src/pptxdiff/docs-site/CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,25 @@ summary, that one is the record of *why*.
2424

2525
No changes yet.
2626

27+
## 2026-08-05 — Content updates + new changelog subpage for standalone native binaries
28+
29+
### Added
30+
31+
- `getting-started.md`: new "Option D — standalone binary (no Node.js at all)" section; `cli.md` gained a one-paragraph cross-link to it.
32+
- `limitations.md`: new row for the standalone binaries' own limitations (unsigned/ad-hoc-signed, not on GitHub Releases yet).
33+
- New changelog subpage `changelogs/pptxdiff-binaries.md`, added to nav — structurally different from every other subpage since it transcludes THREE per-OS `CHANGELOG.md` files (no single package-level one exists for this package) under `## Windows` / `## macOS` / `## Linux` subheadings.
34+
- New `documentation-coverage.md` registry entries: `native-binaries` (feature, `partial`) and `native-binaries-limitations` (limitation, `complete`).
35+
36+
### Fixed
37+
38+
- The three per-OS `CHANGELOG.md` files' relative link back to the root `CHANGELOG.md` broke once transcluded into the new changelog subpage (`pymdownx.snippets` doesn't rewrite relative links for their new location) — caught by `mkdocs build --strict`, fixed by swapping to an absolute GitHub URL at the source.
39+
40+
### Changed
41+
42+
- `index.md`'s "No install required" card now mentions the binaries option.
43+
44+
See `docs/.scrolls/DOCS.md` §15 for the full reasoning.
45+
2746
## 2026-07-31 — New "Headless CLI & Web API" page for `pptxdiff-cli`/`@pptxdiff/server`
2847

2948
### Added

src/pptxdiff/docs-site/docs/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ title: Changelog
1111
- [Changelog: pptxdiff](changelogs/pptxdiff.md)
1212
- [Changelog: @pptxdiff/cli](changelogs/pptxdiff-cli.md)
1313
- [Changelog: @pptxdiff/server](changelogs/pptxdiff-server.md)
14+
- [Changelog: @pptxdiff/binaries](changelogs/pptxdiff-binaries.md)
1415

1516
## VS Code Extension(s)
1617

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
title: "Changelog: @pptxdiff/binaries"
3+
---
4+
5+
# Changelog: @pptxdiff/binaries
6+
7+
Unlike this site's other package changelogs, `@pptxdiff/binaries` has no single package-level `CHANGELOG.md` — each OS's standalone binary has its own, since they're independent downloadable artifacts.
8+
9+
## Windows
10+
11+
Source: [`src/packages/binaries/pptxdiff-win/CHANGELOG.md`](https://github.com/sugatoray/pptxdiff/blob/master/src/packages/binaries/pptxdiff-win/CHANGELOG.md)
12+
13+
--8<-- "src/packages/binaries/pptxdiff-win/CHANGELOG.md"
14+
15+
## macOS
16+
17+
Source: [`src/packages/binaries/pptxdiff-mac/CHANGELOG.md`](https://github.com/sugatoray/pptxdiff/blob/master/src/packages/binaries/pptxdiff-mac/CHANGELOG.md)
18+
19+
--8<-- "src/packages/binaries/pptxdiff-mac/CHANGELOG.md"
20+
21+
## Linux
22+
23+
Source: [`src/packages/binaries/pptxdiff-linux/CHANGELOG.md`](https://github.com/sugatoray/pptxdiff/blob/master/src/packages/binaries/pptxdiff-linux/CHANGELOG.md)
24+
25+
--8<-- "src/packages/binaries/pptxdiff-linux/CHANGELOG.md"

src/pptxdiff/docs-site/docs/cli.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ npm install -g pptxdiff && pptxdiff # global install
2424

2525
There are no command-line flags. One optional environment variable is supported — see [Lite mode](#lite-mode-cdn-sourcing) below.
2626

27+
**No Node.js at all?** A standalone native executable per OS+chip runs this exact, unmodified `bin/cli.js` with the Node runtime embedded inside it — see [Getting Started → Option D](getting-started.md#option-d-standalone-binary-no-nodejs-at-all).
28+
2729
## What it does
2830

2931
`bin/cli.js` is a stdlib-only Node script (`node:http` / `node:fs` / `node:child_process`, no npm dependencies):

src/pptxdiff/docs-site/docs/documentation-coverage.md

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
title: Documentation Coverage
33
render_macros: true
44
coverage_summary:
5-
generated_at: '2026-08-02T22:11:11Z'
5+
generated_at: '2026-08-05T06:08:51Z'
66
totals:
77
overall:
8-
items: 38
9-
complete: 35
10-
partial: 3
8+
items: 40
9+
complete: 36
10+
partial: 4
1111
missing: 0
1212
feature:
13-
items: 25
13+
items: 26
1414
complete: 22
15-
partial: 3
15+
partial: 4
1616
missing: 0
1717
limitation:
18-
items: 13
19-
complete: 13
18+
items: 14
19+
complete: 14
2020
partial: 0
2121
missing: 0
2222
items:
@@ -112,6 +112,13 @@ coverage_summary:
112112
locations:
113113
- page: features/exports.md
114114
anchor: live-push
115+
- id: native-binaries
116+
kind: feature
117+
title: Standalone native binaries (@pptxdiff/binaries, x64+arm64 for win/mac/linux)
118+
quality: partial
119+
locations:
120+
- page: getting-started.md
121+
anchor: option-d-standalone-binary-no-nodejs-at-all
115122
- id: npm-cli-packaging
116123
kind: feature
117124
title: npm CLI (bin/cli.js)
@@ -274,6 +281,14 @@ coverage_summary:
274281
locations:
275282
- page: limitations.md
276283
anchor: null
284+
- id: native-binaries-limitations
285+
kind: limitation
286+
title: 'Standalone binaries: unsigned/ad-hoc-signed, macOS not cross-compiled,
287+
not on GitHub Releases'
288+
quality: complete
289+
locations:
290+
- page: limitations.md
291+
anchor: null
277292
- id: offline-capability-limitations
278293
kind: limitation
279294
title: Offline-capability limitations (pdfjs-dist unvendored, latin-only font

0 commit comments

Comments
 (0)