From bfdb18c558a8b50442d8da9972b1c3f34b622086 Mon Sep 17 00:00:00 2001 From: Michael Scott Asato Cuthbert Date: Mon, 27 Jul 2026 11:27:16 -1000 Subject: [PATCH] Rename .worktreeignore to .worktreeinclude and trim its entries The harness only ever reads .worktreeinclude, so the old filename matched no code path and nothing was actually being copied into new worktrees. Also drop three entries that are not worth copying per worktree: .venv (~560 MB / 18k files, and its interpreter symlinks point back at the source checkout -- run 'uv sync' instead), .mypy_cache (~210 MB, rebuilt on first run), and documentation/build (~150 MB of Sphinx HTML; the tracked sources under documentation/source are what agents actually read). AI-assisted (Claude) --- .worktreeignore | 20 -------------------- .worktreeinclude | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 20 deletions(-) delete mode 100644 .worktreeignore create mode 100644 .worktreeinclude diff --git a/.worktreeignore b/.worktreeignore deleted file mode 100644 index e39ef00ff..000000000 --- a/.worktreeignore +++ /dev/null @@ -1,20 +0,0 @@ -# .worktreeignore -# -# Paths that are git-ignored (see .gitignore) but are expensive to regenerate -# and worth carrying into / sharing across a fresh worktree, so a new worktree -# is usable immediately instead of after a full rebuild. - -# Python virtual environment (expensive `uv sync`) -.venv - -# Build / packaging artifacts -dist -build - -# Built documentation (expensive Sphinx build) -documentation/build - -# Tool caches that speed up repeated runs -.mypy_cache -.pytest_cache -.coverage diff --git a/.worktreeinclude b/.worktreeinclude new file mode 100644 index 000000000..963c851d4 --- /dev/null +++ b/.worktreeinclude @@ -0,0 +1,23 @@ +# .worktreeinclude +# +# Paths that are git-ignored (see .gitignore) but are expensive to regenerate +# and worth copying into a fresh worktree, so a new worktree is usable +# immediately instead of after a full rebuild. +# +# Keep this list small: every entry is copied file-by-file into each worktree. +# Anything large, cheap to regenerate, or holding absolute paths belongs in +# .gitignore only: +# .venv run `uv sync` in the new worktree instead; a copy is +# ~560 MB / 18k files and its interpreter symlinks point +# back at the source checkout. +# .mypy_cache ~210 MB, and mypy rebuilds it on first run. +# documentation/build ~150 MB of Sphinx HTML; rebuild with +# `documentation/make.py` on the rare occasion it is needed. + +# Build / packaging artifacts +dist +build + +# Tool caches that speed up repeated runs +.pytest_cache +.coverage