Reading map: the payload is a generated artifact, not a tracked file
library-rag-export.service now regenerates reading_umap.json on cyrion whenever the corpus or its located highlights move, writing straight into this checkout. Keeping it tracked would defeat that: a generated file that changes under git dirties the tree, which both flips auto-build.sh's change signature and breaks the `git pull` at the top of every build tick — the reason notebooks-export/ is already ignored, in that file's own words. So it joins them: ignored, plus a find line in the signature block so the 5-minute tick still notices a new projection. The cost is that a fresh checkout has no map until the service runs — on cyrion that is within the hour, anywhere else never. ReadingMap.astro says so where someone would hit it.
This commit is contained in:
@@ -7,6 +7,10 @@ public/assets/
|
||||
# the git pull at the top of every build tick
|
||||
notebooks-export/
|
||||
public/nb/
|
||||
# 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
|
||||
.build_state
|
||||
.build.lock
|
||||
.notebooks.lock
|
||||
|
||||
@@ -30,6 +30,9 @@ sig=$({
|
||||
git diff
|
||||
find "$VAULT" -name .obsidian -prune -o -type f -printf '%T@ %p\n' | sort
|
||||
find "$REPO/notebooks-export" -type f -printf '%T@ %p\n' 2>/dev/null | sort
|
||||
# same deal for the reading map: gitignored, written by library-rag-export.service on its
|
||||
# own timer, so git status/diff above cannot see it change
|
||||
find "$REPO/public/reading_umap.json" -printf '%T@ %p\n' 2>/dev/null | sort
|
||||
} | sha256sum | cut -d' ' -f1)
|
||||
|
||||
if [ "$FORCE" -eq 0 ] && [ -f "$STATE" ] && [ "$(cat "$STATE")" = "$sig" ]; then
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -11,11 +11,16 @@
|
||||
* src/lib/reading-map.js ← the renderer (shared with the standalone preview
|
||||
* in c0smere_devops/library-rag/umap/web)
|
||||
* src/styles/reading-map.css ← the chrome
|
||||
* public/reading_umap.json ← `uv run umap/export.py -o …`
|
||||
* public/reading_umap.json ← generated; NOT in git
|
||||
*
|
||||
* ⚠️ The payload is a STATIC SNAPSHOT. Nothing on cyrion regenerates it — the 5-minute
|
||||
* auto-build rebuilds the site, not the data. New reading only reaches this map when
|
||||
* someone re-runs `export.py` and commits the result. See library-rag/umap/PLAN.md §7.
|
||||
* The payload is regenerated on cyrion by `library-rag-export.service` (hourly, gated on a
|
||||
* fingerprint of the corpus and the located highlights) and written straight into this
|
||||
* checkout. It is **gitignored on purpose** — a tracked generated file dirties the tree, which
|
||||
* flips auto-build.sh's signature and breaks the `git pull` at the top of every build tick.
|
||||
*
|
||||
* ⚠️ **A fresh checkout therefore has no map until that service runs.** On cyrion that is
|
||||
* within the hour; anywhere else it is never, and the banner renders empty. Fetch a copy from
|
||||
* garden.c0smere.net/reading_umap.json, or run `library-rag/umap/export.py` yourself.
|
||||
*/
|
||||
import '../styles/reading-map.css';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user