• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jhheider / scriptbox / 29619708570

17 Jul 2026 11:04PM UTC coverage: 86.075% (-1.8%) from 87.828%
29619708570

push

github

jhheider
subscripts: freeze-tree mode (launch-scoped snapshot cache) + depth cap

`--subscripts=freeze-tree` / `subscripts = "freeze-tree"`: like wrap, but every
script in the tree is served from a launch-scoped snapshot cache - keyed by
canonical path, pinned on copy (exact-bytes sha256), stored read-only (0400),
and re-verified on reuse. The whole reachable tree freezes at first encounter,
so an edit to a script BETWEEN invocations can't leak into a later one (plain
wrap re-reads disk and does allow that). Proven by a differential e2e test:
under wrap the cross-invocation edit runs, under freeze-tree it doesn't.

The cache dir (mode 0700) is created by the root and shared via $SCRIPTBOX_CACHE.
Wrapped trees also carry $SCRIPTBOX_DEPTH; past a cap of 256 scriptbox refuses
rather than fork-bomb on unbounded mutual recursion (verified).

New modules: cache.rs (get_or_create + frozen_bytes, path-keyed pin-on-copy).
Both feature configs pass (default 51+10, subs 53+12), clippy/fmt clean, default
build stays 15 crates. Known spike gaps documented: in-process `source` still
unwrapped; cache dir isn't cleaned up (root execs away).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014psyX18vgHn4UkMwCtZqff

93 of 127 new or added lines in 4 files covered. (73.23%)

85 existing lines in 3 files now uncovered.

921 of 1070 relevant lines covered (86.07%)

7.94 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.64
/src/cache.rs


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc