Repository navigation
v1.7.6 - config parsing stays linear; a config over 1 MiB is skipped
Config parsing stays linear; a config over 1 MiB is skipped
Reading a .coaltipple.json no longer stalls on input full of unclosed comments, strings or backslashes, and a config file over 1 MiB is no longer read at all. The repo tooling gets the same linear parsing, a few stricter checks in verify, and a re-copied secret scanner.
Fixed
- The comment strip of a
.coaltipple.jsonruns in linear time. An unclosed/*, string or backslash run in a config file could take seconds in the conductor's read, with the same cost inconfigure.mjs. The strip now keeps an unclosed opener to the end of the file, unchanged, so the file stays unreadable as JSON but no longer stalls the hook. — test:scripts/lib/jsonc-linear.test.mjs
Changed
- A config file over 1 MiB (1,048,576 bytes) is never read. The conductor skips it and names it in its existing UNREADABLE line as
(too large), and the config loader treats it as absent. — test:scripts/lib/jsonc-linear.test.mjs
Repo tooling (user-run scripts; not in the plugin)
- A
configure.mjswrite stops on an over-size config with a message that names the size, and leaves the file untouched.configure.mjs --listreads such a file as absent and prints one line naming it as skipped (Skipped <file>: larger than 1048576 bytes, read as absent.), then shows the remaining config, or the defaults when none is left. — test:scripts/lib/jsonc-linear.test.mjs,scripts/lib/configure.test.mjs - The house secret scanner pair is re-copied from its source, byte for byte:
scripts/lib/secret-scan.mjsbd70dd5dandscripts/secret-scan.test.mjs142221ed, both as inLLMWorks/Bankfireat71f71ae. No plugin byte changes. — test:scripts/secret-scan.test.mjs - Link extraction is linear on unclosed brackets, with the same link targets as before. — test:
scripts/lib/link-check-linear.test.mjs verifyprints values read from repo files quoted, so a line break in one of them cannot start an output line of its own; control characters in such a value (ESC, the C1 range, U+2028 and U+2029) are written out as escapes too. — test:scripts/verify.test.mjsverify's SKILL.md frontmatter check runs in linear time on a frontmatter that never closes. It now requiresname:anddescription:to start a line inside the frontmatter block, and requires the name to be exactlycoaltipple. — test:scripts/lib/skill-frontmatter.test.mjsbuild-dist.mjs --checknames a link under a shipped item and does not follow it. — test:scripts/build-dist.test.mjs
Notes
CoalTipple's own effort ladder stays low to max by design. The platform's ladder also has xhigh, which is a named divergence rather than a leak; the older entries that called it a "vocabulary leak" are not rewritten.