Files
improvise/.gitignore
T
Edward Langley 90ccfb0154 feat: attach the assembled site to every release, and let the page name its build
improvise-oujb. A tagged release carried four native tarballs and nothing for
the web; the site shipped only by ci.yml's pages-deploy, on a push to main.

Pages keeps tracking main (user, 2026-09-22: "I like Pages showing the latest
main for now"), so this is a CAPTURE, not a second deployment: the tarball is a
self-hostable copy of the site as of the tag and a rollback target, not what a
visitor to the published site is running. pages-deploy is untouched.

Mechanism is dist's own [[dist.extra-artifacts]], so it survives `dist init`:
`dist plan` under the pinned 0.30.4 lists improvise-web.tar.gz beside the four
platform tarballs and `dist generate` leaves release.yml byte-identical. The
build command is scripts/build-web-release.sh, which calls web/build.sh and
web/assemble.sh -- the same two scripts ci.yml and a developer run, so there is
no second way to build the bundle. Its toolchain pins come from
scripts/web-toolchain-versions.env, which ci.yml's build job now reads too.

`github-build-setup` was measured and does NOT help: it injects into
build-local-artifacts only, which is the wrong job for a global artifact.

The page now names the build it was assembled from in #build-version, stamped
by web/assemble.sh with the same token as the bundles and verified by the same
scripts/assemble-stamp.sh gate. An unassembled tree honestly reads "unstamped".

Verified by running `dist build --artifacts=global` locally: the script ran,
the site assembled, and dist placed improvise-web.tar.gz in target/distrib.
Not verified: a real tag push, which would require cutting a tag.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FC2jVn8Au7E9JPkw6bwXXH
2026-09-21 22:37:05 -07:00

67 lines
1.4 KiB
Plaintext

target/
*.autosave
.DS_Store
/result
.direnv
[#]*
symbols.json
profile.json
profile.json.gz
bench/*.txt
# Added by git-smart-commit
*.patch
*.improv
!examples/*.improv
# The document the static site ships and seeds a fresh browser from
# (improvise-bck). A shipped asset, not somebody's working file.
!web/*.improv
# The harness's own documents. A test fixture, not somebody's working file:
# the grouped, multi-level model no shipped document is (improvise-plcx).
!harness/fixtures/*.improv
# Beads / Dolt files (added by bd init)
.dolt/
*.db
.beads-credential-key
.sqlhistory
backup.jsonl
# Added by git-smart-commit
*.swp
proptest-regressions/
.cursor
.claude/worktrees/
*~
/roadmap.html
# prolog-mcp session files (server writes ./prolog-sessions relative to cwd)
# ...except the checked-in seed knowledge base, which agents load at session start.
prolog-sessions/*
!prolog-sessions/kb.pl
# Beads runtime locks (bd creates these next to .beads/)
*.gate.lock*
.beads/embeddeddolt.incoming/
.beads/embeddeddolt.previous/
# GNU Global tag files (generated by the gtags devShell tooling)
GTAGS
GRTAGS
GPATH
GSYMS
# graphviz/dependency-graph artifacts at the repo root
/graph.dot
/graph.html
/graph.svg
.human
# Python bytecode from scripts/ (interpreter-version-specific, regenerated)
__pycache__/
*.pyc
# The release web capture, written to the repo root by
# scripts/build-web-release.sh (improvise-oujb).
/improvise-web.tar.gz