Levi Neuwirth
eb7fef30df
Pin Hugging Face model revisions for downloader and embed pipeline
...
- Add tools/model-checksums.sha256 with sha256 hashes for the five
Xenova/all-MiniLM-L6-v2 files served from static/models/.
download-model.sh was already plumbed to verify against this file
when present; the file itself was missing, so downloads were
unverified. Now every fetch checks against committed hashes and
fails closed on mismatch.
- Pin embed.py's SentenceTransformer load to a specific HF commit
(c9745ed1d9f207416be6d2e6f8de32d1f16199bf of
sentence-transformers/all-MiniLM-L6-v2). A future model bump can no
longer silently change embedding semantics across builds. Bump
deliberately when validating; re-run a full embed pass to refresh
the semantic + similar-links data.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:08:14 -04:00
Levi Neuwirth
6286c82389
more prominent related pages
2026-05-03 14:01:14 -04:00
Levi Neuwirth
cd94227acb
Spec dilemma
2026-05-01 21:22:01 -04:00
Levi Neuwirth
6585573dae
States/Context/Embeddings fixes
2026-04-26 11:22:57 -04:00
Levi Neuwirth
6d2f9d12ae
PDF compression
2026-04-22 12:40:22 -04:00
Levi Neuwirth
3a95a05284
Fix broken PDF hyperlinks
2026-04-22 12:10:31 -04:00
Levi Neuwirth
1a532f881b
major visual changes - dingbats, footer, etc
2026-04-17 12:48:22 -04:00
Levi Neuwirth
b02e1e868d
audit: tooling, deploy ordering, README, repo hygiene
2026-04-10 17:41:33 -04:00
Levi Neuwirth
9a01c602bc
auto: 2026-04-05T01:18:45Z
2026-04-04 21:18:45 -04:00
Levi Neuwirth
728afd4c68
affiliation, cabal helper script
2026-03-26 08:14:50 -04:00
Levi Neuwirth
5cfbfbc0ef
GPG signing, embedding pipeline, visualization filter, search timing, sig popups
...
- GPG page signing: dedicated signing subkey in ~/.gnupg-signing, sign-site.sh
walks _site/**/*.html producing .sig files, preset-signing-passphrase.sh caches
passphrase via gpg-preset-passphrase; make sign target; make deploy chains it
- Footer sig link: $url$.sig with hover popup showing ASCII armor (popups.js
sigContent provider; .footer-sig-link bound explicitly to bypass footer exclusion)
- Public key at static/gpg/pubkey.asc
- Embedding pipeline: tools/embed.py encodes _site pages with nomic-embed-text-v1.5
+ FAISS IndexFlatIP, writes data/similar-links.json; staleness check skips when
JSON is newer than all HTML; make build invokes via uv, skips gracefully if .venv absent
- SimilarLinks.hs: similarLinksField loads similar-links.json with Hakyll dependency
tracking; renders Related section in page-footer.html
- uv environment: pyproject.toml + uv.lock (CPU-only torch via pytorch-cpu index)
- Visualization filter: Filters/Viz.hs runs Python scripts for .figure (SVG) and
.visualization (Vega-Lite JSON) fenced divs; viz.js renders with monochrome config
and MutationObserver dark-mode re-render; viz.css layout
- Search timing: #search-timing element shows elapsed ms via MutationObserver
- Build telemetry timestamps removed from git tracking (now in .gitignore)
- spec.md updated to v9; WRITING.md updated with viz, related, signing, build docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 20:14:49 -04:00
Levi Neuwirth
714824a0b5
initial deploy! whoop
2026-03-17 21:56:14 -04:00