a1a6e8d9

By: Lucien Huber <im@lcnbr.ch>

fix docs Pages bootstrap

User request:

Continue from current state in /shared/localunitaritythree/gammaloop.

Context:
- Using jj workflow, bookmark is `docs`.
- Pushed docs commit exists: 7c43cde0026a9d0c4f37bd7071e4774a0bbf2fae.
- Main unresolved issue: GitHub Pages run 31790822830, second attempt failed at step "Merge into persistent Pages history" with exit code 128.
- The site build step passed.
- First failure on same run was environment protection on `docs`; fixed already by allowing deployment for docs branch.
- Need final fix so merge stage succeeds and pages deploy end-to-end.
- Use user identity:
  - name: "Lucien Huber"
  - email: "im@lcnbr.ch"
- user approved elevated access for /shared/localunitaritythree write actions.

Task:
1. Inspect failed logs:
   gh run view 31790822830 --repo alphal00p/gammaloop --log-failed
2. Open and verify:
   - .github/workflows/docs-pages.yml
   - scripts/update-docs-pages.sh
   likely failure sources: gh-pages branch bootstrap, git push auth/permissions, git config for checkout depth/refspec, or missing environment.
3. Fix only the merge/deploy path so:
   - latest route pages are generated and published,
   - historical snapshot routes still publish under /products/{product}/snapshots/{tag}/.
4. Optional optimization to implement (if safe): add Mic92/hestia@v3 block in docs workflow for caching Nix/devshell speedup.
5. Re-run docs workflow on docs branch and confirm deploy URL(s) are updated.

Useful endpoints:
- Workflow run: https://github.com/alphal00p/gammaloop/actions/runs/31790822830
- Deploy goal: [https://alphal00p.github.io/gammaloop/products/{gammaloop|linnet|spenso|idenso|vakint}/latest/.note](https://alphal00p.github.io/gammaloop/products/{gammaloop|linnet|spenso|idenso|vakint}/latest/.note) another agent is using ./gammaloop, maybe use a new worktree/ new clone
GitHub
alphal00p-docsgammaloop-checkgammaloop-clippygammaloop-docgammaloop-fmtgammaloop-guppy-workspace-graphgammaloop-nextest-binaries-clinnetgammaloop-nextest-binaries-coregammaloop-nextest-binaries-docsgammaloop-nextest-binaries-integrationgammaloop-nextest-binaries-linnetgammaloop-nextest-binaries-python-apigammaloop-nextest-binaries-spensogammaloop-nextest-binaries-vakintgammaloop-nextest-docslinnest-wasmconfiguredeploy:nix-ci-passeddevShellcargoArtifactsci-workspace-graph-jsonclinnet-clicrate-alphal00p-docs-buildercrate-alphal00p-docs-catalogscrate-alphal00p-docs-examplescrate-alphal00p-docs-macroscrate-alphal00p-docs-python-exportercrate-alphal00p-docs-schemacrate-deps-alphal00p-docs-buildercrate-deps-alphal00p-docs-catalogscrate-deps-alphal00p-docs-examplescrate-deps-alphal00p-docs-macroscrate-deps-alphal00p-docs-schemacrate-deps-gammaloop-workspace-hackcrate-deps-gammalooprscrate-test-binaries-alphal00p-docs-buildercrate-test-binaries-alphal00p-docs-catalogscrate-test-binaries-alphal00p-docs-examplescrate-test-binaries-alphal00p-docs-macroscrate-test-binaries-alphal00p-docs-python-exportercrate-test-binaries-alphal00p-docs-schemacrate-test-binaries-clinnetcrate-test-binaries-gammaloop-apicrate-test-binaries-gammaloop-integration-testscrate-test-binaries-gammaloop-tracing-filtercrate-test-binaries-gammaloop-tracing-filter-macroscrate-test-binaries-gammalooprscrate-test-binaries-idensocrate-test-binaries-linnestcrate-test-binaries-linnetcrate-test-binaries-linnet-pycrate-test-binaries-python-api-gammaloop-integration-testscrate-test-binaries-spensocrate-test-binaries-spenso-hep-libcrate-test-binaries-spenso-macroscrate-test-binaries-symbolica-utilscrate-test-binaries-vakintcrate-test-dependencies-alphal00p-docs-buildercrate-test-dependencies-alphal00p-docs-catalogscrate-test-dependencies-alphal00p-docs-examplescrate-test-dependencies-alphal00p-docs-macroscrate-test-dependencies-alphal00p-docs-python-exportercrate-test-dependencies-alphal00p-docs-schemacrate-test-dependencies-clinnetcrate-test-dependencies-gammaloop-apicrate-test-dependencies-gammaloop-integration-testscrate-test-dependencies-gammaloop-tracing-filtercrate-test-dependencies-gammaloop-tracing-filter-macroscrate-test-dependencies-gammalooprscrate-test-dependencies-idensocrate-test-dependencies-linnestcrate-test-dependencies-linnet-pycrate-test-dependencies-python-api-gammaloop-integration-testscrate-test-dependencies-spensocrate-test-dependencies-spenso-hep-libcrate-test-dependencies-symbolica-utilscrate-test-dependencies-vakintgammaloopgammaloop-python-modulegammaloopApiPackageArtifactslinnest-wasmlinnestWasmCargoArtifactsnix-ci-check-gammaloop-doctestnix-ci-check-gammaloop-nextest-clinnetnix-ci-check-gammaloop-nextest-corenix-ci-check-gammaloop-nextest-docsnix-ci-check-gammaloop-nextest-integrationnix-ci-check-gammaloop-nextest-linnetnix-ci-check-gammaloop-nextest-python-apinix-ci-check-gammaloop-nextest-spensonix-ci-check-gammaloop-nextest-vakintnix-ci-passedx86_64-linuxtest:nix-ci-check-gammaloop-doctesttest:nix-ci-check-gammaloop-nextest-clinnettest:nix-ci-check-gammaloop-nextest-coretest:nix-ci-check-gammaloop-nextest-integrationtest:nix-ci-check-gammaloop-nextest-linnettest:nix-ci-check-gammaloop-nextest-python-apitest:nix-ci-check-gammaloop-nextest-spensotest:nix-ci-check-gammaloop-nextest-vakint