From 49f14060e164c0f4ecac6b06baa26d5d7523d6a2 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Wed, 22 Jul 2026 15:09:03 +1000 Subject: [PATCH] G-103 achieved: runtime kit family - flip, archive, reference sweep (wrap trial PASS) Final acceptance item closed by the punk9_beta/punk9bi_beta kit-wrap trial (user go-ahead; quiet tree): make.tcl project wrapped both kits over the family runtimes (the user's own earlier same-day build agreed - punkcheck no-change), and probes UNDER each kit verified 9.0.5, //zipfs:/app/tcl_library, PIPEREPL MACHINERY PRESENT, Thread 3.0.7 winning over the vfs payload's legacy thread3.0.1, vfs/tcllib/tcllibc engaged, punk::args from the vfs side, and Tk create/destroy in both - punk9bi_beta's Tk necessarily from the runtime's attached image (punk9win_for_tkruntime.vfs carries none). Every acceptance clause is now met; evidence recorded in the detail file. Flip mechanics: Status achieved 2026-07-22; detail file to goals/archive/ (content-identical move after edits); index entry to GOALS-archive.md; reference sweep across 13 live goal files (archive markers per the G-058 precedent - non-contract text only, Scope lines untouched; pending-tense updates in G-099 arc-unblocked, G-108 family production landed, G-018/G-023 naming-authority pointers). Forward pointers pushed to live goals: G-101 (8.6-family deferral target), G-067 (family -rN artifacts exist; publication user-gated with the defaults.txt flip process). Flagged (completion report): tcltls bi-battery line loses its goal home with this archive - candidate goal on request; punk9wintk905.vfs legacy thread3.0.1 payload cleanup can ride a future payload refresh; beta promotion is the user's interactive trial per the *_beta convention. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com --- GOALS-archive.md | 4 ++ GOALS.md | 4 -- goals/G-004-no-committed-binaries.md | 3 +- goals/G-018-zig-plain-tclsh-kits.md | 3 +- goals/G-023-version-named-binaries.md | 3 +- goals/G-060-qemu-test-matrix.md | 3 +- goals/G-066-pkgindex-tm-repackaging.md | 3 +- goals/G-067-module-artifact-channel.md | 12 ++++- goals/G-099-suite-tcl86-buildsuite.md | 2 +- goals/G-101-tcl86-kit-container-strategy.md | 5 +- goals/G-104-maketcl-buildsuite-surface.md | 2 +- goals/G-105-buildsuite-cross-target.md | 5 +- goals/G-108-buildsuite-debug-tier.md | 6 ++- goals/G-110-sharedlib-extraction-cache.md | 3 +- goals/G-115-declarative-vfs-composition.md | 3 +- .../{ => archive}/G-103-runtime-kit-family.md | 47 +++++++++++++++---- 16 files changed, 79 insertions(+), 29 deletions(-) rename goals/{ => archive}/G-103-runtime-kit-family.md (93%) diff --git a/GOALS-archive.md b/GOALS-archive.md index d8ffb20f..aa1af630 100644 --- a/GOALS-archive.md +++ b/GOALS-archive.md @@ -148,3 +148,7 @@ Acceptance: thread and tclvfs run gated with tracked dispositioned baselines, de ### G-106 [achieved 2026-07-22] powershell console-mode fallback: maintained raw-mode path for twapi-less runtimes → detail: goals/archive/G-106-powershell-consolemode-fallback.md Scope: src/modules/punk/console-999999.0a1.0.tm (enableRaw_powershell/disableRaw_powershell + the persistent server lifecycle), scriptlib/utils/pwsh/ (consolemode_server_async.ps1 canonical + experiment-variant reconciliation), ps-script resolution/packaging across launch contexts (argv0-derived pstooldir; kits via the G-089 scriptlib-in-kits interplay), src/make.tcl shell (the verified launch context) Acceptance: on a twapi-less suite runtime, raw enable/disable work via the fallback from (a) the make.tcl shell launch and (b) a kit / plain-tclsh repl launch, with no stderr noise in normal operation; the server lifecycle is verified - starts once per session, stays up for the session's raw transitions (the 2026-07-20 observed early-shutdown mode diagnosed and fixed), and shuts down with the session leaving no orphan pwsh processes; ps-script resolution no longer depends solely on argv0 parent-dir derivation (works from kits and unusual cwds, with the fallback-to-pwd branch replaced by something principled); scriptlib/utils/pwsh is reconciled to one canonical server script with the experiment variants retired or explicitly labelled; the fallback's role as the no-twapi contingency is documented where G-103's twapi investigation will find it, and a repeatable verification recipe is recorded in this file. + +### G-103 [achieved 2026-07-22] runtime kit family from buildsuites: plain / punk / bi kits with attached batteries + artifact metadata → detail: goals/archive/G-103-runtime-kit-family.md +Scope: src/buildsuites/suite_tcl90/ (kit assembly steps in recipe/driver; pattern for later suites), src/vfs/_config + src/runtime/mapvfs.config (as consumers of the new runtime names), punkbin repo layout + metadata (c:/repo/jn/punkbin; compatible repos), src/scriptapps runtime scriptset (punk-runtime list/use - renamed under G-097, achieved 2026-07-21) +Acceptance: suite_tcl90 produces named artifacts for at least plain, punk, and one bi (+Tk) kit; each verified self-contained from a path with no external Tcl visible (info library resolves into the attached zip; package require checks for Thread, vfs + representative vfs::* packages, tcllib module + tcllibc acceleration engaged; bi adds Tk create/destroy) with the checks recorded here; the punk kit demonstrates piperepl active by default and disabled via the documented env opt-out, the plain kit demonstrates stock behaviour (no patch); artifact metadata (variant, versions, target, source provenance) is emitted alongside the binaries in the punkbin layout and surfaced by the runtime scriptset's list/use; the naming scheme for family members is documented, with piperepl-patched runtime executables carrying 'punk' in the name to distinguish them from unpatched (e.g tclsh905punk.exe - the tcl-patchlevel / punk-version / separator questions resolved and the decision recorded here) and mapvfs.config consuming the punk/bi runtimes under the decided names; the 8.6 family variant is explicitly deferred to the G-101 container investigation (static vfs / metakit patching questions). diff --git a/GOALS.md b/GOALS.md index 27bf79a7..8e3f4833 100644 --- a/GOALS.md +++ b/GOALS.md @@ -346,10 +346,6 @@ Detail: goals/G-100-suite-tcl86-tk-tcllib.md Scope: investigation + decision record under src/buildsuites/suite_tcl86/ (or successor mechanism), TEMP_REFERENCE/metakit + TEMP_REFERENCE/KitCreator (read-only guidance), src/runtime/mapvfs.config ('kit' type consumers), src/make.tcl kit-wrap path (as consumer) Detail: goals/G-101-tcl86-kit-container-strategy.md -### G-103 [active] runtime kit family from buildsuites: plain / punk / bi kits with attached batteries + artifact metadata -Scope: src/buildsuites/suite_tcl90/ (kit assembly steps in recipe/driver; pattern for later suites), src/vfs/_config + src/runtime/mapvfs.config (as consumers of the new runtime names), punkbin repo layout + metadata (c:/repo/jn/punkbin; compatible repos), src/scriptapps runtime scriptset (punk-runtime list/use - renamed under G-097, achieved 2026-07-21) -Detail: goals/G-103-runtime-kit-family.md - ### G-104 [proposed] make.tcl buildsuite surface: list / info / build Scope: src/make.tcl (buildsuite subcommand group), src/buildsuites/*/ (suite self-description contract: an 'info'/describe affordance per suite - suite.tcl action or manifest record), documentation (make.tcl help text, src/buildsuites README/AGENTS) Detail: goals/G-104-maketcl-buildsuite-surface.md diff --git a/goals/G-004-no-committed-binaries.md b/goals/G-004-no-committed-binaries.md index bb7d1971..7c9f885a 100644 --- a/goals/G-004-no-committed-binaries.md +++ b/goals/G-004-no-committed-binaries.md @@ -66,7 +66,8 @@ A standing repo-wide rule in root `AGENTS.md` (User Preferences) already directs (punkshell strict, derived projects owner-chosen). - 2026-07-22 (user framing + assessment): EXIT PATHS for the src/vfs/*.vfs interim exception - the .vfs binary payloads leave the committed tree via - some mix of: (i) suite-built runtime batteries (G-103 attached images + some mix of: (i) suite-built runtime batteries (G-103, achieved 2026-07-22 + - see goals/archive/G-103-runtime-kit-family.md - attached images already shrink kit .vfs payloads toward pure punkshell script payload); (ii) per-package punkbin LIBRARY artifacts (G-067 channel - buildsuite-built .tm/pkg libraries as a second punkbin artifact class) declared into kit diff --git a/goals/G-018-zig-plain-tclsh-kits.md b/goals/G-018-zig-plain-tclsh-kits.md index 24d45252..9f6f0775 100644 --- a/goals/G-018-zig-plain-tclsh-kits.md +++ b/goals/G-018-zig-plain-tclsh-kits.md @@ -62,7 +62,8 @@ This defines one end of a deliberate spectrum of buildable executables: with the tcl library in its attached zip; stock script/piped invocations, no punk namespaces) - it remains READILY ACCESSIBLE as a build product of every suite run (_build//out/bin), deliberately NOT showcased or - published as a product. The showcased family lives in G-103, whose 'plain' + published as a product. The showcased family lives in G-103 (achieved 2026-07-22 - see + goals/archive/G-103-runtime-kit-family.md), whose 'plain' member is plain-for-punk-purposes (no piperepl patch, but batteries - Thread/tclvfs/tcllib - attached), close enough to plain for our purposes. make.tcl surfacing of suite builds is G-104. The executable-spectrum framing diff --git a/goals/G-023-version-named-binaries.md b/goals/G-023-version-named-binaries.md index ff5bb01d..52ff75f5 100644 --- a/goals/G-023-version-named-binaries.md +++ b/goals/G-023-version-named-binaries.md @@ -83,5 +83,6 @@ binary-artifacts repository). Revisit when the accumulation actually bites. make.tcl/bin-side ADOPTION of that decision's kit-artifact tier plus the -dev / release-gated-plain-name policy layer (which the decision deliberately leaves under project-owner control). Naming authority: G-103's NAMING - DECISION section (goals/G-103-runtime-kit-family.md; archive location once + DECISION section (achieved 2026-07-22 - goals/archive/G-103-runtime-kit-family.md; the + decision text is stable there flipped). diff --git a/goals/G-060-qemu-test-matrix.md b/goals/G-060-qemu-test-matrix.md index cffd9b55..245e2260 100644 --- a/goals/G-060-qemu-test-matrix.md +++ b/goals/G-060-qemu-test-matrix.md @@ -65,4 +65,5 @@ direction rather than a new ad-hoc location. - 2026-07-21: concrete cross-platform test item for this matrix - temp-DLL/dir cleanup after loading binary batteries out of a kit's VFS (Tcl core TIP 741, windows-framed): per guest, verify extracted temp copies do not accumulate, or - characterize the flaw. Detail + requirement: G-103 Notes. + characterize the flaw. Detail + requirement: G-103 Notes (achieved + 2026-07-22 - see goals/archive/G-103-runtime-kit-family.md). diff --git a/goals/G-066-pkgindex-tm-repackaging.md b/goals/G-066-pkgindex-tm-repackaging.md index 8be94044..10abce36 100644 --- a/goals/G-066-pkgindex-tm-repackaging.md +++ b/goals/G-066-pkgindex-tm-repackaging.md @@ -47,7 +47,8 @@ current goal touches this. then the inner binary 'load's from that zipfs mount and EXTRACTS to %TEMP%\TCL\ - the SAME copy-to-temp machinery as a direct-from-kit dll load, so the TIP-741 non-cleanup/accumulation flaw applies equally (one temp dir - per binary, persists on exit; see G-103 Notes). Three loading locations all + per binary, persists on exit; see G-103 Notes - achieved 2026-07-22, + archived at goals/archive/G-103-runtime-kit-family.md). Three loading locations all converge on this one mechanism: (1) dll direct in a kit's zipfs, (2) standalone .tm on disk, (3) .tm nested INSIDE a kit's zipfs - the nested (zip-in-zip) mount works IN PLACE with NO pre-extraction of the .tm itself; only the dll load hits diff --git a/goals/G-067-module-artifact-channel.md b/goals/G-067-module-artifact-channel.md index b92c724d..2ce659f3 100644 --- a/goals/G-067-module-artifact-channel.md +++ b/goals/G-067-module-artifact-channel.md @@ -38,10 +38,20 @@ and pull (G-065) instead of re-vendoring by hand. - 2026-07-21 (user): binary-bearing zip-based .tm (modpod) are an intended publish payload here - single-file downloadable libraries carrying manifest + binary + script. Consuming-side load extracts the binary to %TEMP%\TCL* with the TIP-741 - non-cleanup flaw on windows (characterized - G-066/G-103 Notes). Single-lowercase- + non-cleanup flaw on windows (characterized - G-066 Notes and G-103, achieved + 2026-07-22 - see goals/archive/G-103-runtime-kit-family.md). Single-lowercase- name .tm (TIP 590) are plain-tclsh loadable; multi-require-name .tm need libunknown (punkshell-only, must be documented). Generation + multi-name discovery detail: G-066 Notes. +- 2026-07-22 (from archived G-103 - see goals/archive/G-103-runtime-kit-family.md): + the family runtime -rN artifacts + toml metadata + sha1sums now EXIST + (suite kit-family-artifacts emission, punkbin-layout shaped) and their punkbin + publication is a pending USER-GATED step - the archived goal's deferral + condition ("publication follows this goal's artifacts") is satisfied. When it + happens: copy the emission into punkbin win32-x86_64/, run build_sha1sums.tcl, + flip defaults.txt's win32-x86_64 line in the same change-set (the recorded + release process). Those runtime artifacts are punkbin's FIRST metadata-carrying + class; this goal's library class follows the same per-platform + toml pattern. - 2026-07-22 (user framing): the zig BUILDSUITES are a producing source for this channel - libraries the suites build (thread/tk/tcltls-class) get packaged as per-platform .tm/pkg artifacts when they are not going directly into a kit, and diff --git a/goals/G-099-suite-tcl86-buildsuite.md b/goals/G-099-suite-tcl86-buildsuite.md index fa9fc3c0..867b603b 100644 --- a/goals/G-099-suite-tcl86-buildsuite.md +++ b/goals/G-099-suite-tcl86-buildsuite.md @@ -53,7 +53,7 @@ later. ## Notes -- 2026-07-21 (user): SEQUENCING CONFIRMED - G-097 (achieved 2026-07-21) then G-103 precede this arc; the +- 2026-07-21 (user): SEQUENCING CONFIRMED - G-097 (achieved 2026-07-21) then G-103 (achieved 2026-07-22 - see goals/archive/G-103-runtime-kit-family.md) precede this arc - BOTH LANDED, the arc is unblocked; the suite_tcl86 fork is taken after the kit-family assembly steps exist in suite_tcl90 so the 8.6 suite is born expressing family products (and G-101 inherits a concrete payload contract). diff --git a/goals/G-101-tcl86-kit-container-strategy.md b/goals/G-101-tcl86-kit-container-strategy.md index bb6216db..16446293 100644 --- a/goals/G-101-tcl86-kit-container-strategy.md +++ b/goals/G-101-tcl86-kit-container-strategy.md @@ -25,7 +25,8 @@ zip-wrap). 8.6 has no zipfs, so a kit needs a vfs container and a boot mechanism make.tcl's existing 'kit' wrap type drives sdx/mk4-style wrapping; whichever container is chosen must either fit that path or come with a documented successor. -The G-103 runtime kit family (plain/punk/bi kits with thread + tclvfs + tcllib +The G-103 runtime kit family (achieved 2026-07-22 - see +goals/archive/G-103-runtime-kit-family.md; plain/punk/bi kits with thread + tclvfs + tcllib batteries in the attached container) extends to 8.6 THROUGH this investigation: the user notes (2026-07-20) that in the 8.6 case tclvfs may have to be STATIC and there may be metakit-specific patching - both are part of this goal's assessment, and the @@ -59,7 +60,7 @@ wrap), and only worth activating once G-099/G-100 land. "loading binary dlls from or via the container" acceptance should characterize that cleanup per platform - TIP 741 detail + requirement in G-103 Notes. - 2026-07-22: the G-103 family attached-image contract this goal was promised as - its concrete payload target now EXISTS (G-103 Progress 2026-07-22): a family + its concrete payload target now EXISTS (G-103 Progress 2026-07-22; archived): a family runtime's image is tcl_library/ at the container root position the boot searches, tm tree at tcl9/ (8.6: tcl8/), batteries at lib/ with installed-shape pkgIndexes + dlls at bin/, and a one-line stock diff --git a/goals/G-104-maketcl-buildsuite-surface.md b/goals/G-104-maketcl-buildsuite-surface.md index 6ac50364..4416af72 100644 --- a/goals/G-104-maketcl-buildsuite-surface.md +++ b/goals/G-104-maketcl-buildsuite-surface.md @@ -29,7 +29,7 @@ separate subsystem (kit wrapping) but the same ergonomic family - a candidate to execute alongside this goal. Relationships: G-096 (achieved 2026-07-20 - suite.tcl driver + copy-and-tweak workflow this fronts), -G-102 (achieved 2026-07-21 - driver shape settled; the info/build contract holds), G-103 (family +G-102 (achieved 2026-07-21 - driver shape settled; the info/build contract holds), G-103 (achieved 2026-07-22 - see goals/archive/G-103-runtime-kit-family.md; family products appear in info output), G-105 (target dimension forwarded when it exists). ## Notes diff --git a/goals/G-105-buildsuite-cross-target.md b/goals/G-105-buildsuite-cross-target.md index f0337d74..5c2ef716 100644 --- a/goals/G-105-buildsuite-cross-target.md +++ b/goals/G-105-buildsuite-cross-target.md @@ -34,7 +34,7 @@ INVERTED): Relationships: G-060 (qemu cross-platform matrix - WSL is the cheap first rung; qemu covers what WSL cannot), G-099/G-100 (the 8.6 suite inherits the target -dimension), G-102 (achieved 2026-07-21 - driver shape settled; target becomes a build-graph dimension), G-103 +dimension), G-102 (achieved 2026-07-21 - driver shape settled; target becomes a build-graph dimension), G-103 (achieved 2026-07-22 - see goals/archive/G-103-runtime-kit-family.md) (family x target = the punkbin artifact matrix), G-006 (punkbin artifact consent). ## Notes @@ -64,7 +64,8 @@ dimension), G-102 (achieved 2026-07-21 - driver shape settled; target becomes a loads - G-103/G-066 Notes); the linux expectation stays no-accumulation (unlink-while-mapped) but is UNVERIFIED until a runtime exists. - 2026-07-22: punk-runtime grew the cross-platform staging surface this goal - will consume (user-approved; details in G-103 Progress 2026-07-22): + will consume (user-approved; details in the archived G-103 Progress + 2026-07-22): fetch/list/use -platform with local-platform default (PUNK_RUNTIME_PLATFORM env override), foreign fetch name-required, list !TARGET-MISMATCH integrity flag from the G-103 metadata target field, diff --git a/goals/G-108-buildsuite-debug-tier.md b/goals/G-108-buildsuite-debug-tier.md index b7ae39c6..0be9d75d 100644 --- a/goals/G-108-buildsuite-debug-tier.md +++ b/goals/G-108-buildsuite-debug-tier.md @@ -44,9 +44,11 @@ TCL_COMPILE_STATS similarly must be absent (not =0) for release performance. -mode record with distinct artifact names (e.g. tclcore-dbg1.summary/.log); never part of the default gate composite; a run that produces no totals still fails its step (G-107 semantics). -- Kit family debug members follow G-103's family definition; this goal only +- Kit family debug members follow G-103's family definition (achieved + 2026-07-22 - see goals/archive/G-103-runtime-kit-family.md); this goal only requires the feasibility outcome plus naming convention (-dbg) — full - family production may land with/after G-103. + family production landed under G-103 (kit-family/kit-family-artifacts + suite steps) - debug members extend that settled shape. - Debug tiers are opt-in build invocations (-D flags / named steps), not new copy-and-tweak suite trees, unless implementation shows a variant tree is cleaner (sources.config precedent). diff --git a/goals/G-110-sharedlib-extraction-cache.md b/goals/G-110-sharedlib-extraction-cache.md index ad93d1ca..7abd0018 100644 --- a/goals/G-110-sharedlib-extraction-cache.md +++ b/goals/G-110-sharedlib-extraction-cache.md @@ -75,7 +75,8 @@ prototype); (2) a suite core patch to the zipfs load path loads use the cache; (3) upstream conversation (a third option next to TIPs 741/709). -Relationships: G-103 (family runtimes are the heaviest consumer - every kit +Relationships: G-103 (achieved 2026-07-22 - see +goals/archive/G-103-runtime-kit-family.md; family runtimes are the heaviest consumer - every kit battery load), G-101 (Metakit 8.6 kits share the copy-to-temp shape), G-066/G-067/G-109 (binary modpod .tm artifacts), G-105/G-060 (per-platform characterization of the existing behaviour), Tcl TIPs 741/709. diff --git a/goals/G-115-declarative-vfs-composition.md b/goals/G-115-declarative-vfs-composition.md index 0bb3377d..05f83d56 100644 --- a/goals/G-115-declarative-vfs-composition.md +++ b/goals/G-115-declarative-vfs-composition.md @@ -28,7 +28,8 @@ Precedents already in the tree that make this credible: with overlay/anti mechanics is proven machinery in this codebase. - tomlish is vendored, and toml is the accepted format for punkshell-context configuration (the 2026-07-20 toml drop applies only to dependency-free - BUILDSUITE BOOTSTRAP configs - recorded in G-103 Context). + BUILDSUITE BOOTSTRAP configs - recorded in G-103 Context; achieved + 2026-07-22, archived at goals/archive/G-103-runtime-kit-family.md). Relationship to the punkbin third-class question (G-004 Notes 2026-07-22): declarative composition pulling per-package artifacts is the diff --git a/goals/G-103-runtime-kit-family.md b/goals/archive/G-103-runtime-kit-family.md similarity index 93% rename from goals/G-103-runtime-kit-family.md rename to goals/archive/G-103-runtime-kit-family.md index 0276f850..4a82619b 100644 --- a/goals/G-103-runtime-kit-family.md +++ b/goals/archive/G-103-runtime-kit-family.md @@ -1,6 +1,6 @@ # G-103 runtime kit family from buildsuites: plain / punk / bi kits with attached batteries + artifact metadata -Status: active +Status: achieved 2026-07-22 Scope: src/buildsuites/suite_tcl90/ (kit assembly steps in recipe/driver; pattern for later suites), src/vfs/_config + src/runtime/mapvfs.config (as consumers of the new runtime names), punkbin repo layout + metadata (c:/repo/jn/punkbin; compatible repos), src/scriptapps runtime scriptset (punk-runtime list/use - renamed under G-097, achieved 2026-07-21) Goal: buildsuites produce a defined FAMILY of runnable, self-contained runtime kits - executables whose info library and core batteries live in the initially attached zip, depending on no external filesystem tree: (1) a PLAIN tclsh kit carrying loadable Thread, tclvfs with as many vfs::* packages as we have, and tcllib+tcllibc; (2) a PUNK kit = the plain kit with the TCLSH_PIPEREPL patch applied and ENABLED BY DEFAULT (env opt-out, not opt-in - users wanting stock behaviour take the plain kit); (3) BI (batteries-included) punk kits additionally carrying libraries WE BUILD - Tk first; tcltls (with a zig-built OpenSSL/LibreSSL backend), sqlite3/tdom/twapi as future build targets - all in the attached zip. These are the project's 'runtime' executables: punkbin candidates carrying metadata (variant, component versions, target platform, provenance) that runtime list/use subcommands can surface. Acceptance: suite_tcl90 produces named artifacts for at least plain, punk, and one bi (+Tk) kit; each verified self-contained from a path with no external Tcl visible (info library resolves into the attached zip; package require checks for Thread, vfs + representative vfs::* packages, tcllib module + tcllibc acceleration engaged; bi adds Tk create/destroy) with the checks recorded here; the punk kit demonstrates piperepl active by default and disabled via the documented env opt-out, the plain kit demonstrates stock behaviour (no patch); artifact metadata (variant, versions, target, source provenance) is emitted alongside the binaries in the punkbin layout and surfaced by the runtime scriptset's list/use; the naming scheme for family members is documented, with piperepl-patched runtime executables carrying 'punk' in the name to distinguish them from unpatched (e.g tclsh905punk.exe - the tcl-patchlevel / punk-version / separator questions resolved and the decision recorded here) and mapvfs.config consuming the punk/bi runtimes under the decided names; the 8.6 family variant is explicitly deferred to the G-101 container investigation (static vfs / metakit patching questions). @@ -394,14 +394,43 @@ Verified on both payloads directly AND through the rewrapped polyglot run-guard/env-override incl run's immunity to it); roundtrip pin PASS; layout copy + .ps1 twin refreshed; project 0.17.9. -Remaining for acceptance: - -- exercise the new mapvfs entries with an actual kit wrap (punk9_beta / - punk9bi_beta) - entries landed 2026-07-22, the wrap trial is the next - increment (kit builds touch user-facing bin/ kits; beta-trial convention - applies). -- record the 8.6-family deferral note against G-101 when closing (the - acceptance's explicit deferral - no work item here). +### 2026-07-22 increment: kit-wrap trial PASS - acceptance complete, goal achieved + +The mapvfs consumption was exercised with real kit builds (user go-ahead; +quiet tree, no punk shells locking bin exes): make.tcl project built and +deployed punk9_beta.exe (tclsh9.0.5-punk.exe + punk9wintk905.vfs, 28.9 MB) +and punk9bi_beta.exe (tclsh9.0.5-punk-bi.exe + punk9win_for_tkruntime.vfs, +58.3 MB). The user's own earlier same-day build had already wrapped them +(punkcheck reported no-change on the agent's confirming run - two +independent builds agree). Probes run UNDER each kit: + +- both: patchlevel 9.0.5, tcl_library //zipfs:/app/tcl_library (merged + runtime+vfs image), PIPEREPL MACHINERY PRESENT (the punk-family basis + carries into wrapped kits), vfs 1.4.2, md5 2.0.9 + tcllibc 2.0 engaged, + punk::args 0.12.6 (vfs payload side), Tk 9.0.2 with widget + create/destroy. +- Thread resolves to 3.0.7: the runtime's attached battery wins over the + vfs payload's legacy thread3.0.1 exactly as designed (versioned package + resolution over the union image). +- punk9bi_beta's Tk necessarily comes from the RUNTIME's attached image + (punk9win_for_tkruntime.vfs carries no Tk by design) - the bi battery + demonstrably serves a real kit. + +Remaining-work resolution (both items closed): + +- kit-wrap trial of the mapvfs entries: DONE (this increment). Interactive + beta trial and punk9_beta/punk9bi_beta promotion remain ordinary + *_beta-convention user activities, outside this contract. +- 8.6-family deferral pointer recorded against G-101 at closing (see G-101 + Notes 2026-07-22). + +Post-achievement follow-throughs (not acceptance items): punkbin +publication of the family -rN artifacts remains user-gated (the +defaults.txt flip process is ready - pointer left in G-067's channel notes); the tcltls bi-battery line (crypto backend under the +zig-only policy) loses its goal home with this archive - flagged for a +candidate goal decision; punk9wintk905.vfs still carries the legacy +thread3.0.1 payload dir (harmless - runtime 3.0.7 wins - cleanup can ride +any future payload refresh). - 2026-07-22: punkbin layout contract gained a root-level platforms.txt discovery manifest (generated by punkbin src/build_sha1sums.tcl; committed locally in punkbin 7b8a244, push = user decision) - raw-file artifact