Batched punkcheck-managed build outputs from make.tcl modules/bootsupport/
vfscommonupdate for the G-133 change-set: bootsupport and _vfscommon.vfs gain
utils-0.5.0.tm (0.4.0 pruned), thin-layout make.tcl copies and the modpod
templates payload re-synced.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Regenerated by 'make.tcl modules' + 'bootsupport' + 'vfscommonupdate'. The thin-layout
make.tcl copies and the templates modpod carry ::punkboot::replace_possibly_mapped_file and
::punkboot::mapped_file_hint, so generated projects get the same behaviour - a project whose
own bootsupport carries a zip-based .tm meets exactly the same windows constraint.
Note the templates modpod copy in this commit was itself replaced by the new delete-then-
place path: the bootsupport run reported "in-place overwrite refused - replaced by
delete-then-place" and completed, where the previous three runs this session failed and
needed a hand copy. The fix was exercised by the change-set that introduced it.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
Regenerated by 'make.tcl modules' + 'bootsupport' + 'vfscommonupdate'. make.tcl reaches
the predicate through a guarded require against the bootsupport snapshot, so the third
tcl-library convention only takes effect for a bake once this lands; 'make.tcl check'
confirms the gate ACTIVE and now names all three locations.
The thin-layout make.tcl copies and the templates modpod carry the reworded K10 key note,
so generated projects describe the gate the same way.
The bootsupport templates modpod again failed to copy in place with 'invalid argument' and
again succeeded on retry seconds later - the transient lock noted in the previous two
build-output commits, not a make.tcl mount this time. Copied by hand, then 'make.tcl
bootsupport' and 'vfscommonupdate' re-run to reconcile; all three copies share one sha1.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
Regenerated by 'make.tcl modules' + 'bootsupport' + 'vfscommonupdate' for the G-125
change. make.tcl loads punkboot::utils from bootsupport through a guarded require, so the
boot-precondition gate only becomes ACTIVE once the snapshot carries
vfs_boot_library_report - before this propagation 'make.tcl check' correctly reported the
gate UNAVAILABLE.
The thin-layout make.tcl copies and the templates modpod pick up the gate and the K10
workflow key note, so generated projects get the same refusal behaviour.
The bootsupport templates modpod again could not be replaced in place - 'BOOTSUPPORT
module update FAILED: ... templates-0.2.0.tm (invalid argument)'. Unlike the G-124
occurrence a plain tclsh failed on the first attempt too and succeeded on a retry moments
later, which points at a transient lock by one of the running shells rather than at
make.tcl having the file mounted. Copied by hand, then 'make.tcl bootsupport' re-run to
reconcile the punkcheck record.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
Regenerated by 'make.tcl modules' + 'bootsupport' + 'vfscommonupdate' for the G-124
change. make.tcl loads punk::zip from bootsupport, so the reader only reaches the
zipfs-less bake path once the snapshot carries it.
Also carries two version propagations pending from earlier work, not authored here:
punk 0.2.7 -> 0.2.8 and punk::platform 0.1.0 -> 0.2.0 (the latter was added to
include_modules.config in 5c1e6927 but never snapshotted). Their source buildversion
files are unchanged by this change-set.
The templates modpod is rebuilt because the layout make.tcl inside it changed. Note for
next time: 'make.tcl bootsupport' cannot replace a bootsupport modpod that the running
make.tcl has itself mounted - it failed twice with 'BOOTSUPPORT module update FAILED:
... templates-0.2.0.tm (invalid argument)' while a plain tclsh copied the identical file
without complaint. Copied by hand, then re-run to reconcile the punkcheck record.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
make.tcl bootsupport pulled the newly-included punk::platform; the templates
modpod refresh used the established virgin-tclsh direct copy (cd6aec8f
precedent) because the in-process punkcheck copy fails while the running
interp holds the target modpod mounted ("invalid argument") - snapshot now
byte-identical to the built modules/punk/mix/templates-0.2.0.tm (carries the
G-121-era layout make.tcl payload).
Claude-Session: https://claude.ai/code/session_01Jz7wkUsknJzyuJ3tgMaL2t
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Completes the user's conversion of punk::mix::base from manual
versioning to the magic-version mechanism: header Meta block + magic
provide block in base-999999.0a1.0.tm, version history relocated to the
new base-buildversion.txt (0.1.2 - same version, mechanism-only
change). The file RENAME itself landed one commit early (ab3e1a45)
via the staged index riding an unrelated commit - net effect is the
repo's preferred move-then-edit sequence, recorded here for clarity.
src/modules/AGENTS.md: punk::libunknown is now the only manually
versioned module; base noted as converted 2026-07-21.
Bootsupport syncs from the rebuild ride along: base-0.1.2.tm restamped
from the converted source; libunknown comment catch-up
(runtime.cmd -> punk-runtime.cmd reference).
Conversion verified: make.tcl modules builds base-0.1.2.tm from the
magic-versioned source under Tcl 9.0.3 and 8.7a6 (the original build
failure was the unrelated pre-c971e6c7c4 zipfs mkzip dotfile defect,
fixed by cli 0.5.2's fallback in ab3e1a45).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Batched punkcheck-managed build outputs from 'make.tcl modules' +
'make.tcl bootsupport' after the G-094 landing: punkcheck 0.4.0 -> 0.5.0
and punk::mix::cli 0.5.0 -> 0.5.1 snapshots (per the G-094 prompt
re-vendor note - make.tcl now runs the unified lifecycle), plus
opportunistic catch-up of stale snapshots (libunknown 0.2.0 -> 0.2.1,
punk::config / punk::lib / punk::repl content syncs from current built
modules).
Verification under the new punkcheck: 'make.tcl modules' x2 and a full
'make.tcl project' complete exit 0 with skip/copy decisions unchanged
against pre-refactor .punkcheck state - copied: 0 on every batch phase,
kit installs skip 'no change detected' (the sole punk905 rebuild traces
to the newly promoted tclsh905 runtime, a genuinely changed source).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
The stale copy (2026-07-19 20:55 build) survived three make.tcl bootsupport
runs: two in-session runs failed the copy with 'invalid argument' (destination
held open - a running shell's zipfs mount on the bootsupport modpod, the
G-087-era self-lock class) and the user's post-shell-close rerun left it
untouched (cause unobserved - if that run reported no copy attempt rather
than a failure, the punkcheck staleness records having absorbed the earlier
failed attempts would be worth noting for G-094). Direct file copy from the
current root modules build (22:13, md5 b1226b3d) succeeded once the lock was
gone; bootsupport now matches root modules and _vfscommon.vfs (already fresh
via the earlier vfscommonupdate).
Claude-Session: https://claude.ai/code/session_01BNUVVkYq9vHa6G3S9a3XTZ
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
make.tcl modules + bootsupport + vfscommonupdate after the stage 4/5 source
changes: commandset layout 0.1.1->0.2.0 and project 0.3.0->0.4.0 snapshots in
src/bootsupport and _vfscommon.vfs; thin-layout sync refreshed the store
layouts' make.tcl copies and the templates modpod payload (repacked
templates-0.2.0.tm) for the retired marker exclusion comment.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
make.tcl bootsupport refresh following the stage-2 cutover; superseded 0.1.1
handler and 0.1.4 modpod pruned (the modpod copy required manual deletion -
the running make.tcl mounts it and the prune self-locks; flagged in the G-087
detail file). Layout custom/_project bootsupport copies mirrored by the build.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
make.tcl bootsupport batched build-output refresh (punkcheck-managed): fauxlink
0.1.1 -> 0.1.2, plus catch-up of source versions that had moved since the last
refresh - punk::ansi 0.1.3, punk::args 0.12.3, punk::lib 0.5.0, punk::ns 0.8.0,
punk::repl 0.5.2, tomlish 1.1.10 -> 1.1.12, test/tomlish-1.1.5 modpod, and this
morning's G-087 hygiene bumps (cap handlers templates 0.1.1, punk::mix::base
0.1.1, commandset layout/module/scriptwrap 0.1.1, commandset project 0.2.2,
punk::mix templates 0.1.4). Superseded versions pruned; the same refresh is
mirrored into the custom/_project layout bootsupport copies by the build.
templates-0.1.3.tm prune initially failed with a transient file lock and was
removed manually after verification.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Output of src/make.tcl refreshing bootsupport, vfs, and project_layouts
bootsupport trees to match the recently-bumped module versions.
Assisted-by: harness=opencode; primary-model=openrouter/z-ai/glm-5.2; api-location=openrouter.ai
Resolves the build-maintenance TODO: built module trees no longer accumulate
superseded intermediate versions, and .punkcheck state stays consistent because
every deletion is recorded through punkcheck's event mechanism.
punkcheck (0.3.0):
- installsource_add_virtual + installevent method targetset_addsource_virtual:
'virtual' named-value SOURCE records (-type virtual -path virtual:<id> -value <v>)
compared by stored value, participating in targetset_source_changes. Needed
because successive module versions are built from the same physical source
files - the recorded virtual module_name/module_version identify which
product of the source fileset a target is, at install and delete time.
punk::mix::cli (0.5.0):
- lib::prune_superseded_target_modules: deletes lower-version .tm siblings only
when records prove the same module line (virtual module_name match, or legacy
fallback: recorded sources share the keep-version's source folder(s) and name
prefix). Unrecorded files are never deleted - reported to stderr instead.
- lib::prune_sourcevanished_targets: mirror-prune of recorded targets whose
recorded source files no longer exist (layout bootsupport copies, vendormodule
copies) - intentional multi-version vendoring is preserved.
- build_modules_from_source_to_base prunes after each module install/skip and
records virtual module identity sources on installs.
make.tcl:
- bootsupport: non-glob include_modules.config entries track only the latest
version - superseded recorded snapshot versions pruned; project-layout copies
mirror-pruned; virtual identity recorded on snapshot installs. Calls guarded
(info commands) so a stale bootsupport snapshot degrades to a warning and the
two-pass modules+bootsupport bootstrap self-heals.
- vendormodule copies in root modules*/ mirror-pruned after install.
docs/config:
- include_modules.config headers now document the entry format (non-glob =
latest-only + prune; glob chars = keep all matches; unrecorded never pruned)
- src/AGENTS.md TODO replaced with the durable prune contract;
src/bootsupport/AGENTS.md + src/tests/modules/AGENTS.md updated
tests: src/tests/modules/punk/mix/testsuites/cli/prune.test (19 tests) covering
virtual source recording/comparison and prune identity/safety rules.
Suites: punkcheck 64/64, full suite under Tcl 9.0.3 green except pre-existing
exec-14.3.
payload sync: bootsupport snapshots, project layouts and _vfscommon.vfs pruned
of superseded intermediates (~570k lines of stale .tm copies removed).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com