Development record
An AI-written interview's role can slow the change guard through git itself: every reading runs git status before the guard's own bounds apply, and git reads some files in its own directory whole on every command, so a role writing a sparse HEAD, packed-refs or info/exclude there holds the turn while git reads it, before the guard's byte bound refuses the file. A scratch probe of git status with each file grown to 4 GiB sparse: HEAD 0.8 s, packed-refs 2.3 s, info/exclude 0.4 s, growing with the size (so minutes at 128 GiB). The guard fails closed (the file is named once read), and neither the in-tree byte bound (iss-2610050348533437) nor the followed-link budget covers it, since git, not the guard, does the reading. Files git bounds itself are not affected: a tracked file whose size changed is not re-read, a .gitignore or .gitattributes past 100 MiB is skipped, an index of zeros is refused at its header, and a configuration of zeros at its first line.
An AI-written interview's role can slow the change guard through git itself: every reading runs git status before the guard's own bounds apply, and git reads some files in its own directory whole on every command, so a role writing a sparse HEAD, packed-refs or info/exclude there holds the turn while git reads it, before the guard's byte bound refuses the file. A scratch probe of git status with each file grown to 4 GiB sparse: HEAD 0.8 s, packed-refs 2.3 s, info/exclude 0.4 s, growing with the size (so minutes at 128 GiB). The guard fails closed (the file is named once read), and neither the in-tree byte bound (iss-2610050348533437) nor the followed-link budget covers it, since git, not the guard, does the reading. Files git bounds itself are not affected: a tracked file whose size changed is not re-read, a .gitignore or .gitattributes past 100 MiB is skipped, an index of zeros is refused at its header, and a configuration of zeros at its first line.
Grounds
- pursued: a HEAD, packed refs or info/exclude a role grows is refused before git reads it; a turn held while git reads it would show it wrong
Frontmatter
| id | iss-2610050429322910 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610050429322910-an-ai-written-interview-s-role-can-slow.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2610050348533437An AI-written interview's role can slow the change guard by writing one large file into the working tree: the reading after its turn hashes every path git status lists whole (hashOne, then contentState's io.Copy), with no byte bound, so an untracked sparse file of many GiB holds the turn for as long as hashing it takes (about 7 s for 16 GiB in the hooks-directory probe, growing with the size) before the new path is reported. The guard fails closed (the path is named), and the budget on what one reading reads outside the tree (iss-2610050315146044) does not cover it, because the path is inside the tree, where a large untracked file can be the person's own.