Skip to content

Lab Zero v1.19.0 — tracking density warnings + size-gate SIGPIPE fix

Choose a tag to compare

@rayrage213 rayrage213 released this 01 Sep 15:51
· 3 commits to main since this release
  • Your tracking files now warn you when an entry is growing into a document. Two advisory checks join the pre-commit hook. The first reads the rows a commit newly adds to Log/TASKS.md and names any over 200 bytes — TASKS is a dashboard, and a row that has become a paragraph belongs in Sessions/, Log/plans/ or DECISIONS.md instead. The second reads wholly-new ## D- entries in Log/DECISIONS.md and names any over 8 KB. Both are warn-only and never block: existing rows and existing entries are never flagged, so neither can turn your backlog into recurring noise, and editing a line inside an entry you already wrote stays silent. Thresholds are LAB_ROW_LEN_WARN (default 200) and LAB_ENTRY_SIZE_WARN_KB (default 8). Lengths are counted in bytes under LC_ALL=C, so an em-dash costs 3 — deliberate, because awk implementations disagree about what a "character" is, and a threshold that moves between machines is worse than one that is slightly strict. The whole block is wrapped so a failure inside it cannot stop your commit: the worst case is that the advisory silently does not run, and the shipped suite proves it by deliberately breaking the check and asserting the commit still succeeds. On an existing install: update.sh delivers both, no config change needed. Two limits worth knowing: the checks live in scripts/, so they reach every project that updates — but the one-line note in Log/TASKS.md that documents the row rule is part of your own Log/, which no updater ever touches, so it reaches only projects you graduate from now on. And a Lab home that keeps no Log/TASKS.md or Log/DECISIONS.md — ~/.Lab itself, by default — is never covered by either check, permanently.

  • Bug fix: the 128 KB tracking-file block could silently skip on a large commit. v1.13.0 added a hard block for a tracking file staged over 128 KB, alongside its 64 KB warning tier. Both were fed by a shell pipe that exits at the first match — on a commit staging enough files, the writing side of that pipe was killed before it finished, and the failure was read as "no tracking file staged", so neither tier ran. The bigger the commit, the more likely it was to slip. Both tiers, and the new checks, now read their input without a pipe at all. No threshold and no message changed; the gate simply runs when it should. On an existing install: update.sh delivers the fix.