Browse Source

G-111 ACHIEVED 2026-08-03: flip + archive record + live-tier reference sweep

Acceptance fully met: per-defect dispositions recorded, module tarjar-free,
suite green (punk91 7/7, tclsh90 7/7, punk86 6/7 with the 8.6 zipfs
limitation recorded per G-034), 0.1.6 re-vendored with suite passing,
tarjar-artifact dispositions user-confirmed (all five keeps, none deleted).

Index entry moved to GOALS-archive.md; sweep updates pending-tense mentions
in G-029/G-109/G-157 and pushes actionable findings to G-034 (redirect =
zero-dep load path; 8.6 vfs::zip dll-load measured) and G-110 (8.6
copy-to-temp datapoint). Detail-file rename to goals/archive/ follows as a
pure-move commit.

Claude-Session: https://claude.ai/code/session_0156PuejSCGjgeGb7jiABrDU
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
2fc292f428
  1. 4
      GOALS-archive.md
  2. 4
      GOALS.md
  3. 8
      goals/G-029-testmodules-from-srctests.md
  4. 9
      goals/G-034-modpod-codeinterp-tcl86.md
  5. 11
      goals/G-109-libunknown-manifest-multiname-tm.md
  6. 11
      goals/G-110-sharedlib-extraction-cache.md
  7. 16
      goals/G-111-modpod-tidy-tests.md
  8. 4
      goals/G-157-exeless-kits-materialized.md

4
GOALS-archive.md

@ -20,6 +20,10 @@ Do not edit archived entries except to fix a broken path. If an archived goal is
## Archived goals
### G-111 [achieved 2026-08-03] modpod tidy: fix/remove tar-era remnants + first test baseline → detail: goals/archive/G-111-modpod-tidy-tests.md
Scope: modpod canonical source (c:/repo/jn/tclmodules/modpod fossil checkout, src/modules/modpod-999999.0a1.0.tm) with re-vendor into shellspy (src/vendormodules/modpod-*.tm + bootsupport copies via established channels); punkshell-side tarjar artifacts ASSESSED ONLY (cli #tarjar-* module-type branch, libunknown skip-globs, vendored tarjar-2.4.3.tm, src/modules/_build/#tarjar-tarjar-2.3 - dispositions individually user-confirmed, preservation-aware per the c:/tclmodules/main manual-migration intent); new modpod testsuite (home settled in the work; shellspy src/tests/modules/ harness is the natural fit)
Acceptance: each enumerated tar-era defect in modpod-999999.0a1.0.tm is dispositioned with the outcome recorded here (undefined tar::readHeader connect path; ::tarjar::connected reference in myfullname; con/connected and versionpart/versionparts typos; the malformed set/lindex constructs; connect's debug stderr puts; get's unimplemented wrapped branch); after the pass a grep of the modpod module for tarjar returns nothing or only deliberate keeps recorded here; punkshell-side tarjar artifacts each carry a recorded keep/remove/migrate disposition explicitly confirmed by the user, with none deleted absent that confirmation; a modpod testsuite exists and passes on the tcl9 kit and on 8.6 (or the 8.6 limitation is recorded per G-034), covering make_zip_modpod wrap then package require from a real-disk module path and from a zipfs module path, a binary-payload load, the unwrapped #modpod-folder redirect form, and both -offsettype forms; the fixed module is re-vendored into shellspy with the suite passing there.
### G-025 [achieved 2026-08-02] Punk executables self-report project version and build provenance → detail: goals/archive/G-025-exe-selfreport.md
Scope: src/vfs/_config/punk_main.tcl (subcommand dispatch); src/make.tcl (stamping build info into the vfs); src/vfs/ (stamp payload location); src/modules/punk/ (in-shell command - the single implementation)
Acceptance: the build stamps project version, runtime binary name, and vfs folder name into the kit; the built executable invoked with the version-report subcommand prints those fields machine-parseably on stdout and exits 0 with no other output (G-015-compatible; no repl fallthrough); a same-named command in the punk module returns the same fields in-process (subcommand implemented as a wrapper over it - one implementation) and works from the code interp; the report distinguishes stamped provenance from live facts: a stamped kit reports its stamp, a `src`-mode or source-tree session additionally reports the live punkproject.toml version as a distinct field when it differs, and unstamped contexts (`tclsh src/make.tcl shell`, plain tclsh with punk modules) report stamp fields explicitly absent with live runtime facts (actual `info nameofexecutable`) still provided; the report is correct when the executable file has been renamed or copied; executables built before stamping existed fail gracefully with a clear message rather than fabricating values.

4
GOALS.md

@ -337,10 +337,6 @@ Detail: goals/G-109-libunknown-manifest-multiname-tm.md
Scope: investigation + decision record (goals/G-110-sharedlib-extraction-cache.md); prototype surface: punk/modpod-side loaders (modpod stub, punk boot loading - no core change required); src/buildsuites/suite_tcl90/patches/ (candidate zipfs-load core patch if adopted); TIP 741/709 relationship record
Detail: goals/G-110-sharedlib-extraction-cache.md
### G-111 [active] modpod tidy: fix/remove tar-era remnants + first test baseline
Scope: modpod canonical source (c:/repo/jn/tclmodules/modpod fossil checkout, src/modules/modpod-999999.0a1.0.tm) with re-vendor into shellspy (src/vendormodules/modpod-*.tm + bootsupport copies via established channels); punkshell-side tarjar artifacts ASSESSED ONLY (cli #tarjar-* module-type branch, libunknown skip-globs, vendored tarjar-2.4.3.tm, src/modules/_build/#tarjar-tarjar-2.3 - dispositions individually user-confirmed, preservation-aware per the c:/tclmodules/main manual-migration intent); new modpod testsuite (home settled in the work; shellspy src/tests/modules/ harness is the natural fit)
Detail: goals/G-111-modpod-tidy-tests.md
### G-114 [proposed] Per-platform tm module roots: platform-segregated binary .tm via tcl::tm::path
Scope: src/vfs/_config/punk_main.tcl + src/vfs/_config/project_main.tcl + src/make.tcl (boot tm-path wiring); src/modules/punk/platform-999999.0a1.0.tm (canon names, as consumer); new per-platform tm root trees (layout/naming decision - sibling roots beside src/vendormodules_tclX / src/modules_tclX); src/project_layouts (layout seeding); modpod demonstration artifact; tree READMEs; coordinates with G-109 (manifest target-platform field stays that goal's item)
Detail: goals/G-114-per-platform-tm-roots.md

8
goals/G-029-testmodules-from-srctests.md

@ -81,6 +81,8 @@ are now fossil-tracked and must be kept in sync by hand until this goal lands.
manifest-emission consumers - when G-109's manifest lands in the wrap
tooling, the packaging step emits it (multi-name for test::punk::foo-style
sub-packages).
- G-111 relationship: G-111's modpod tidy plus first test baseline is the
machinery-health floor this goal's generation step builds on - sequence
after it.
- G-111 relationship: the machinery-health floor is in place (G-111,
achieved 2026-08-03 - see goals/archive/G-111-modpod-tidy-tests.md):
modpod 0.1.6 is tidy and its wrap/load round-trip suite lives at
src/tests/modules/modpod/ - this goal's generation step builds on it and
can share its per-run generated fixture approach.

9
goals/G-034-modpod-codeinterp-tcl86.md

@ -7,6 +7,15 @@ Acceptance: `dev module.templates` in an interactive 8.6 punk shell (`shell` sub
## Notes
- G-111 (achieved 2026-08-03 - see goals/archive/G-111-modpod-tidy-tests.md) landed
two facts for this goal: (a) the modpod 0.1.6 stub redirects to an extracted
#modpod-<pkg>-<ver> folder beside the .tm BEFORE any mount attempt - a
zero-dependency load path usable where vfs::zip is absent
(extract-instead-of-mount; pairs with the G-124 punk::zip::unzip candidate
below, which reads the wrapped .tm directly); (b) measured on the punk86
8.6.17 kit MAIN interp: vfs::zip 1.0.4 is present and a dll payload loads
from a vfs::zip-mounted pod (copy-to-temp fallback; suite modpod-3.1) - the
code-interp gap remains this goal's subject.
- Related: G-124 (achieved 2026-07-26 - see goals/archive/G-124-punkzip-reader.md) - the
dependency-free zip READER in punk::zip (no zipfs, no vfs::zip, no tcllib) now exists as
`punk::zip::members` / `punk::zip::unzip`, and is a concrete candidate for the "or use an

11
goals/G-109-libunknown-manifest-multiname-tm.md

@ -80,6 +80,11 @@ mount path - the 8.6 leg of acceptance), TIP 590 (lowercase naming), G-110
- G-029 relationship: its generated test::<modulename> modpods become manifest
consumers once this goal's emission lands in the wrap tooling (multi-name for
test::punk::foo-style sub-packages).
- G-111 relationship: G-111's modpod tidy plus first test baseline is the
precursor - its cleanup and round-trip pins land before this goal's manifest
edits to the same module.
- G-111 relationship: the precursor landed (G-111, achieved 2026-08-03 -
see goals/archive/G-111-modpod-tidy-tests.md): modpod 0.1.6 is tidy
(tar-era connection API removed, stub gained the unwrapped
#modpod-folder redirect) and the wrap/load round-trip pins exist at
src/tests/modules/modpod/ - this goal's manifest edits land on sound
code. NOTE for the manifest reader design: the stub's redirect check
runs BEFORE any mount, so a manifest reader that inspects the zip tail
must tolerate the extracted-folder form too.

11
goals/G-110-sharedlib-extraction-cache.md

@ -108,8 +108,15 @@ characterization of the existing behaviour), Tcl TIPs 741/709.
keying eliminates - tarjar is prior art for the cache-location/persistence
half and a demonstration of why the keying half matters. Old tarjar material
at c:/tclmodules/main is preserve/partly-migrate, handled MANUALLY by the
user (explicitly not a goal); tarjar artifacts elsewhere are not
free-to-delete (see the modpod-tidy goal when it lands).
user (explicitly not a goal); tarjar artifacts elsewhere carry
user-confirmed KEEP dispositions recorded under G-111 (achieved
2026-08-03 - see goals/archive/G-111-modpod-tidy-tests.md), including the
vendored tarjar-2.4.3.tm this goal's prior art lives in
(vendorupdate-managed from c:/repo/jn/tarjar).
- G-111 datapoint (achieved 2026-08-03): on the punk86 8.6.17 kit a dll
inside a vfs::zip-mounted modpod loads via the copy-to-temp fallback
(suite modpod-3.1) - the extraction path this investigation costs out
exists and works on pre-zipfs runtimes too.
- G-114 relationship (recorded 2026-07-24 after overlap review): the
per-platform tm roots are where the binaries this cache extracts originate -
content-hash keying survives same-name different-platform siblings by

16
goals/G-111-modpod-tidy-tests.md

@ -1,6 +1,6 @@
# G-111 modpod tidy: fix/remove tar-era remnants + first test baseline
Status: active
Status: achieved 2026-08-03
Scope: modpod canonical source (c:/repo/jn/tclmodules/modpod fossil checkout, src/modules/modpod-999999.0a1.0.tm) with re-vendor into shellspy (src/vendormodules/modpod-*.tm + bootsupport copies via established channels); punkshell-side tarjar artifacts ASSESSED ONLY (cli #tarjar-* module-type branch, libunknown skip-globs, vendored tarjar-2.4.3.tm, src/modules/_build/#tarjar-tarjar-2.3 - dispositions individually user-confirmed, preservation-aware per the c:/tclmodules/main manual-migration intent); new modpod testsuite (home settled in the work; shellspy src/tests/modules/ harness is the natural fit)
Goal: modpod's surviving zip-based surface is sound and tested: the tar-era broken/dead code inside the modpod module is fixed or removed with each item dispositioned, tarjar-SYSTEM artifacts elsewhere get user-confirmed preservation-aware dispositions only (old tarjar material at c:/tclmodules/main is preserved/migrated manually by the user, outside this goal), and modpod gains its first test baseline covering wrap and load round-trips including a binary payload.
Acceptance: each enumerated tar-era defect in modpod-999999.0a1.0.tm is dispositioned with the outcome recorded here (undefined tar::readHeader connect path; ::tarjar::connected reference in myfullname; con/connected and versionpart/versionparts typos; the malformed set/lindex constructs; connect's debug stderr puts; get's unimplemented wrapped branch); after the pass a grep of the modpod module for tarjar returns nothing or only deliberate keeps recorded here; punkshell-side tarjar artifacts each carry a recorded keep/remove/migrate disposition explicitly confirmed by the user, with none deleted absent that confirmation; a modpod testsuite exists and passes on the tcl9 kit and on 8.6 (or the 8.6 limitation is recorded per G-034), covering make_zip_modpod wrap then package require from a real-disk module path and from a zipfs module path, a binary-payload load, the unwrapped #modpod-folder redirect form, and both -offsettype forms; the fixed module is re-vendored into shellspy with the suite passing there.
@ -157,13 +157,19 @@ gone, kept procs present) OK.
source trees via package ifneeded (runtestmodules.tcl boot lines) - the
harness itself consumes the unwrapped form.
Remaining for acceptance: user-confirmed dispositions for the punkshell-side
tarjar artifacts (assessment + proposals below).
2026-08-03 ACHIEVED FLIP: all acceptance items verified met - per-defect
dispositions recorded above with the module grepping tarjar-free (zero
keeps); suite green on punk91 tcl9.1 kit (7/7), native tclsh90 (7/7) and
punk86 8.6.17 (6/7, modpod-4.1 zipfs-container skip recorded per G-034 -
the 8.6 limitation clause); 0.1.6 re-vendored with the suite passing in
shellspy (git bba10012 / fossil 1b803031; kits rebaked, both report 0.1.6);
tarjar-artifact dispositions below CONFIRMED by the user 2026-08-03 ("all
five as proposed"), none deleted.
### Tarjar-system artifact assessment (2026-08-03, proposals - awaiting user confirmation)
### Tarjar-system artifact assessment (2026-08-03; dispositions CONFIRMED by user 2026-08-03, all five as proposed)
Inventory verified on disk; VCS tracking checked in both git and fossil.
Nothing deleted. Proposed dispositions:
Nothing deleted. Confirmed dispositions:
1. src/vendormodules/tarjar-2.4.3.tm (TRACKED git+fossil; contains the
.TclSoCache prior art G-110 references): KEEP - the G-110 investigation

4
goals/G-157-exeless-kits-materialized.md

@ -23,7 +23,9 @@ The transparent-container set is zip today, matching G-004's zip-based .tm
exception vocabulary and its content-not-extension rule (a zip-based exe-less
kit follows the same content rule: allowed only if it embeds no executables).
Extending the transparent set (e.g. tar) is a policy decision to record here
if it arises; tarjar disposition stays with G-111.
if it arises; the tarjar-artifact dispositions were confirmed under G-111
(achieved 2026-08-03, all keeps - see
goals/archive/G-111-modpod-tidy-tests.md).
Current tracked instances - exactly three, all sdx.kit:
- bin/sdx.kit: the locally-patched 2011-era sdx that make.tcl's 'kit' wrap

Loading…
Cancel
Save