Repository navigation
Expand file tree
/
Copy path.gitignore
More file actions
68 lines (68 loc) · 3.8 KB
/
Copy path.gitignore
File metadata and controls
68 lines (68 loc) · 3.8 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
__pycache__/
*.pyc
# No trailing slash on `node_modules` and `.venv`: `<name>/` matches directories only, and
# the merge gate's own remedy (`scripts/check-merge-plan-suite.py`) tells the operator to
# *link* both into a worktree (`ln -sfn <main>/emrg/gui/node_modules <worktree>/...`, same
# for `.venv`). Measured on master `c9d7f4b7` in a scratch repo carrying these rules: with
# the slashed form a **symlink** or a plain **file** of either name is not ignored,
# `git status --porcelain` lists it as `??`, and `git add -A` stages it — the link then
# lands in a commit and the first symptom is an unrelated test reddening (the tracked-file
# scan reads the link's target and reports `... could not be read as UTF-8 text ([Errno 21]
# Is a directory`). Same finding, and the same reason, as the `.emrg-*` block below.
# Verified safe: `git ls-files | grep -cE '(^|/)(node_modules|\.venv)$'` is 0.
node_modules
.venv
.emrg/emrg-client.log
.emrg/logs/
.emrg/decisions/
.here-claude/
# `.emrg` is an exact match, so it does NOT cover the scratch trees this repo's
# own workflows create (`.emrg-cmp`, `.emrg-cmp2`, `.emrg-wt-*`, `.emrg-verify`).
# Those are verification artifacts, never deliverables: one leaked into a PR as
# ~272 KB / 5518 lines of a duplicated version tree (caught by an external
# contributor, cycle cyc20260910-152337). Widen the pattern so the intent that
# line states is actually enforced.
#
# No trailing slash: `.emrg-*/` matches directories only, so a stray *file*
# named `.emrg-verify` stayed untracked-but-unignored and could still be swept
# in by `git add -A` (#1119 review, how2how2how2-arch). `.emrg-*` covers both
# forms. Verified safe: `git ls-files | grep '\.emrg-'` is empty.
.emrg
.emrg-*
# The test suite's own scratch directories: five `mkdtemp(dir=<this directory>)` sites in
# `tests/test_bash_tool_sandbox.py` run a POSIX shell in a private directory and delete it in
# a `finally` — and a `finally` does not run under SIGKILL. Measured 2026-09-17: a kill
# inside the corpus test's loop left `tests/emrg-corpus-fapk6xox/`, `git status` listed it as
# `??`, `git check-ignore` said it was not ignored, and the dirty-tree criterion answered
# `loses=True` ("could not be read to compare") — so the next evolution cycle keeps the
# read-only tier because a *test* was interrupted; with the residue removed the same
# criterion answers `loses=False`. An untracked directory really cannot be compared to
# `HEAD`, so the criterion is right and the names are the problem: these are scratch, never
# deliverables. Scoped to `/tests/` on purpose — this is about those sites, not about any
# `emrg-*` file a future contributor may want tracked at the root.
# `tests/test_scratch_roots_are_gitignored.py` is the mechanic that keeps a new site from
# reintroducing the exposure.
/tests/emrg-*
.claude
# `patch`'s backups: `<file>.orig`, and the `.rej` left by a hunk it could not
# apply, are artifacts of an edit rather than deliverables — and `.bak` is the same
# shape from an editor. One really was committed: two branches of the
# redirect-operand stack carried `emrg/tools/bash_tool.py.orig` (349,773 bytes /
# 6218 lines, a duplicate of the file under edit), so both PR diffs showed the whole
# copy and a reviewer had to notice it by eye. Ignoring the names here stops
# `git add -A` from staging a new one; `tests/test_patch_backups_are_gitignored.py`
# is the mechanic that keeps a reverted rule or a new suffix from reopening it.
*.orig
*.rej
*.bak
.pytest_cache/
/dist/
/emrg/gui/dist/
/emrg/gui/renderer/dist/
# icon products generated at build time from packaging/assets/icon.svg (design source)
# (rant 2026-08-11T18:28:09: repo keeps only the SVG; png/icns/ico generated by gen-assets.sh)
packaging/assets/icon.png
packaging/assets/icon-512.png
packaging/assets/icon-256.png
packaging/assets/icon.icns
packaging/assets/icon.ico