Correctness + doc issues in the restore/build cache actions.
✅ Decision (resolved 2026-06-16) — H6: keep the env-only key, document it
The build (_build) cache key stays env-hash only (build-jupyter-cache/action.yml:74-78) — by design, not a bug. It is a stable warm-start baseline from main; freshness is already handled downstream by jupyter-cache (content-addressed per notebook), Sphinx incremental rebuilds, and the weekly cold build-jupyter-cache run. Adding a lectures/**/*.md hash would miss the cache on essentially every PR (every PR edits some .md) and defeat the warm-start for no correctness gain.
The one real exposure — Sphinx incremental does not delete outputs for removed/renamed sources — is benign in practice: orphaned pages aren't in _toc.yml or linked from any current page, so they're unreachable through navigation, and the weekly cold rebuild clears them. No stale pages observed to date. (Both PR-preview and publish build incrementally from the cache, and that has been reliable.)
Related: #18 (container-mode caching).
Filed from the 2026-06-16 technical review; H6 resolved 2026-06-16.
Correctness + doc issues in the restore/build cache actions.
save-cache != true, the primary key ends in-00000000, which never matches a key saved bybuild-jupyter-cache(usesgithub.run_id). It only works viarestore-keysprefix fallback; the exact-match path is dead and the "Requested Key" report is misleading. Use the prefix as the key directly.save-cacheinput added in 0.5.2 (action.yml:34-37). Update the README's Design Philosophy + inputs table anddocs/QUICK-REFERENCE.md.pathinput. action.yml:10-13 declarespath(default_build), but the save side hardcodes_build(build-jupyter-cache/action.yml:255). Overridingpathrestores to the wrong place. Remove or document the constraint.✅ Decision (resolved 2026-06-16) — H6: keep the env-only key, document it
The build (
_build) cache key stays env-hash only (build-jupyter-cache/action.yml:74-78) — by design, not a bug. It is a stable warm-start baseline frommain; freshness is already handled downstream by jupyter-cache (content-addressed per notebook), Sphinx incremental rebuilds, and the weekly coldbuild-jupyter-cacherun. Adding alectures/**/*.mdhash would miss the cache on essentially every PR (every PR edits some.md) and defeat the warm-start for no correctness gain.The one real exposure — Sphinx incremental does not delete outputs for removed/renamed sources — is benign in practice: orphaned pages aren't in
_toc.ymlor linked from any current page, so they're unreachable through navigation, and the weekly cold rebuild clears them. No stale pages observed to date. (Both PR-preview andpublishbuild incrementally from the cache, and that has been reliable.)build-jupyter-cache/restore-jupyter-cacheREADMEs and the caching section ofdocs/ARCHITECTURE.md.Related: #18 (container-mode caching).
Filed from the 2026-06-16 technical review; H6 resolved 2026-06-16.