A third instance of the pattern notebooks-export/ and the reading payloads already use: an artifact built somewhere with a toolchain this repo's node:24-slim container does not have, dropped into a gitignored directory, staged into public/ by a script, and picked up by auto-build.sh's signature on the next tick. Nothing here needs a JDK, Go, or an opinion about the game -- cannons_reloaded's deploy/export-cannons.sh hands over a directory that is already ready to serve. Three things are load-bearing and easy to get wrong later: The payload is at /cn/, not /cannons/. With build.format:'file' the page builds to cannons.html, and try_files would then have a file and a directory competing for the same URL. That is exactly why the notebook exports live at /nb/ and not under /notebooks/. nginx gets gzip_static for /cn/. nginx:alpine has `gzip on` commented out in its base config, so without it the page ships 9MB instead of 3.3MB and nothing anywhere reports that. It gets no-cache rather than an expiry, because classes.js and cannons.wasm are stable filenames whose contents change on every rebuild -- a long expiry would pair a stale client with a fresh server. The page loads on click, not `loading="lazy"`. Lazy only defers until the frame nears the viewport and this frame is above the fold, so a few MB would download for anyone who opened the page to read the paragraph. A missing export is a normal state throughout: copy-cannons.mjs stages nothing, the page says so, and the sidebar link does not appear. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S4wdbGSVzvUDHBWRjSVxfr
31 lines
1.3 KiB
Plaintext
31 lines
1.3 KiB
Plaintext
node_modules/
|
|
dist/
|
|
.astro/
|
|
public/assets/
|
|
# notebook exports are build artifacts: tracking them would make every
|
|
# export dirty the tree, which flips the auto-build signature and breaks
|
|
# the git pull at the top of every build tick
|
|
notebooks-export/
|
|
public/nb/
|
|
# the ACannons browser build, staged by cannons_reloaded's export-cannons.sh:
|
|
# same kind of artifact, same reason. It is also ~9MB of generated JavaScript
|
|
# and WebAssembly, which has no business in this repo's history.
|
|
cannons-export/
|
|
public/cn/
|
|
# the reading map is the same kind of artifact: library-rag-export.service regenerates it on
|
|
# cyrion whenever the corpus or its located highlights move. It was tracked until 2026-08-14,
|
|
# which is why automating the export needed this line first.
|
|
public/reading_umap.json
|
|
# the /reading explorer's payload — same generator, same timer, different projection
|
|
# (`export.py --explorer`, 15/0.1 plus the kind and section layers). Tracking it would dirty
|
|
# the tree exactly as above.
|
|
public/reading_explorer.json
|
|
# the /reading/models comparison: a manifest plus one coordinate file per embedding model,
|
|
# fetched on demand. Same generator, same reason they must stay untracked.
|
|
public/reading_models.json
|
|
public/reading_models.*.json
|
|
.build_state
|
|
.build.lock
|
|
.notebooks.lock
|
|
.rebuild.log
|