Repository navigation
Expand file tree
/
Copy path.gitignore
More file actions
92 lines (89 loc) · 4.87 KB
/
Copy path.gitignore
File metadata and controls
92 lines (89 loc) · 4.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Rust build output. `crates/` is gone (tan-cli#269) and nothing here produces
# a `target/` any more, but the entry stays: a stale `target/` from a checkout
# that predates the deletion is exactly the tree an accidental `git add -A`
# would commit, and it is 3.6 MB of sources' worth of build products.
/target
# Editor / OS cruft
*.swp
.DS_Store
# Python bytecode cache (tests/parity/seam1_field_diff.py)
__pycache__/
*.pyc
.pytest_cache/
# PyInstaller output + the clean build venv (python/scripts/build_binary.sh)
/python/dist/
/python/.build/
# GLOB, not the single `.venv-build` name this used to list. A venv created for
# an ad-hoc freeze under a different name (`.venv-e2e`) slipped straight past
# the exact-name rule and 3327 files were committed -- including `pyvenv.cfg`
# and `Activate.ps1` carrying a literal `C:\Users\<name>` home path, in a public
# repo whose history is permanent. Same reason the support-bundle rule below
# exists; the fix is to stop matching one name and match the shape.
#
# NOT anchored to /python/ either, for the same reason the name was widened.
# The rule above matched the shape but only in ONE LOCATION, and the venvs
# people actually create for gating live at the CHECKOUT ROOT, not under
# python/ -- `<worktree>/.venv-gate/` is what every gate lane in this repo
# builds, because the suite is run as `cd python && ../.venv-gate/bin/python
# -m pytest`. Measured 2026-08-12: EIGHT worktrees each held an unignored
# root-level `.venv-gate/`, and a stray `git add -A` in one of them staged
# 1043 files in a single commit -- the same accident as the 3327-file one
# above, past a rule written to prevent it. Match the shape in both places.
/python/.venv*/
/python/venv*/
/.venv*/
/venv*/
python/build/
python/*.egg-info/
# `tan doctor` support bundles. They snapshot the DEVELOPER's machine -- two so
# far have carried a literal `C:\Users\<name>` home path. This is a public repo;
# they must never be committable by a stray `git add -A`.
#
# NOT anchored with a leading slash, deliberately. The first version of this rule
# was `/.alp-support/`, which matches the repo root only -- and a bundle promptly
# appeared at `python/.alp-support/` and slipped straight past it. `tan doctor`
# writes relative to wherever it is invoked, so the directory can land at any
# depth.
.alp-support/
# Editor state written by the test suite, not by a human: `tan debug-config`
# writes a launch.json, and `test_debug_config_command.py` has leaked one into
# the real tree. No `.vscode/` is tracked in this repo, so ignoring it at any
# depth costs nothing; use `git add -f` if one is ever meant to ship.
.vscode/
# Atomic-write temp siblings, from TWO independent producers, each with its
# own naming scheme: `debug_config_cmd.py`'s `_atomic_write_launch_json`
# (tan-cli#489) uses `tempfile.mkstemp(dir=..., suffix=".tan-tmp")`, which
# names it `tmpXXXXXXXX.tan-tmp` (mkstemp's own random prefix, not the real
# file's own name); `bootstrap_cmd.py`'s `reconcile_west_manifest_path`
# instead names its own `config.<pid>.tan-tmp` beside `.west/config`, an
# older, PID-based scheme that predates the mkstemp-based one and was not
# changed to match it. Both sit next to the real file they replace (for
# `debug_config_cmd.py`'s, the symlink-resolved real target, if `launch.json`
# is a symlink) and are renamed over that path on success; a process killed
# between the write and the rename (SIGKILL, power loss) leaves one behind
# -- `debug_config_cmd.py`'s deliberately NOT swept by a later run, which
# could otherwise delete a DIFFERENT process's still-open temp. Unanchored:
# the real file either sits beside can be anywhere `--project`/`--workspace`/
# `--sdk-root` points, which is never this repo's own tree in normal use, but
# a stray one must not become committable by a `git add -A` run from inside a
# test fixture.
*.tan-tmp
# Agent/session state, never repository content. `.claude/alp-tasks.json` is
# per-session bookkeeping: it carries a session UUID and a list of in-progress
# task subjects, so committing it puts a machine-local scratch file into a PUBLIC
# repo whose history is permanent, and guarantees a conflict on every future
# session that writes it. `CLAUDE.md` is likewise tool configuration injected
# into a checkout, not a document this project maintains -- tracking it would
# mean reviewing a generated block on every plugin update. Both were added by
# tan-cli#386 and removed before merge. Unanchored so they are ignored at any
# depth; `git add -f` if one is ever deliberately meant to ship.
.claude/
CLAUDE.md
# A local pip HTTP cache lands here whenever PIP_CACHE_DIR is pointed at the
# checkout (a container run with the repo bind-mounted does exactly that).
# Binary response bodies, machine-local and worthless to anyone else -- they
# were staged once by a `git add -A` and caught before the commit.
pip/
*.stackdump
# code-review-graph local graph DB; per-checkout, never commit
/.code-review-graph/