From f3d86b8fb3a03aeb779c26b37ac3e0186e09f9cc Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Sun, 2 Aug 2026 19:19:33 +1000 Subject: [PATCH] G-031 Progress: increment 2 recorded (split landed punkshell-side); Approach split-point decision noted Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com --- goals/G-031-componentized-kit-boot.md | 42 ++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/goals/G-031-componentized-kit-boot.md b/goals/G-031-componentized-kit-boot.md index 0850ec94..33f4419f 100644 --- a/goals/G-031-componentized-kit-boot.md +++ b/goals/G-031-componentized-kit-boot.md @@ -45,6 +45,13 @@ permanently own - a thousand lines of boot code. exist yet) - it is sourced by vfs-relative path from the thin main. The default dispatch portion runs post-boot and may be package-based if that proves cleaner; record the split point here when decided. + DECIDED 2026-08-02 (increment 2): the default dispatch stays IN the core + file - one sourced file, no package hop; the dispatch handlers are already + one-line package requires, so a package-based dispatch would add a moving + part for no reduction. The core is a naked script body (no apply wrapper of + its own) sourced from inside the thin main's one-level 'apply {args {...}}' + frame - the dispatch's 'uplevel 1' semantics (evaluate at global level) are + preserved by construction and the contract is stated in the core header. - Registration model: the thin main declares subcommands (name -> handler package/command, plus optional punk::args definition id for G-032) before invoking the default dispatch; built-ins (tclsh/shellspy/punk/shell/script, @@ -181,10 +188,31 @@ permanently own - a thousand lines of boot code. Minted + promoted (bootsupport, vfscommon); layout make.tcl copies (basic, project-0.1, templates modpod) synced by the modules step. Gate probed live against a bootsupport-only tm path (0.7.0 served, collision fixture ok=0). -- Remaining for acceptance: the split itself (boot core extraction + thin - main handover), project_main.tcl rebirth as the commented sample + README - boot-entry sections, the punk::args::moduledoc boot-core package, derived - project proof (tomlish), G-025 vintage tie-in, behaviour parity exercise - across dispatch cases and vfs types. Collision gate is unit+probe covered - but not yet exercised by a real bake; consider a 'make.tcl check' surface - line for it when the moduledoc lands. +- 2026-08-02 increment 2 LANDED - the split itself, punkshell side (0.45.0): + boot core extracted verbatim-plus-contract to src/vfs/_config/punkboot_core.tcl + (::punkboot::core_version 0.1.0), delivered as /punkboot/core.tcl + by a new vfscommonupdate step; punk_main.tcl reborn as the thin main + (publishes launch_args/main_script, ==CUSTOMIZE== declaration points, + three-candidate core lookup: vfs root, parent dir for nested app/main.tcl, + sibling master for source-tree execution). Registration model live: + project_subcommands merge in (built-ins unshadowable, reported+ignored on + collision), launch_defaults noargs/unknownfirst declared not hardcoded. + Parity evidence: full punkexe suite 110/0 against freshly baked punk902z; + kitmountpoint 4/4 (8.6-backport exe-path mount, 32-bit modern //zipfs:/app, + 64-bit kit, unattributed-mount stderr pin) - the sibling-master candidate + exists BECAUSE those tests run punk_main.tcl as a plain script under raw + runtimes (a supported shape to preserve); registration model exercised via + a scratch fake.vfs under plain tclsh (declared subcommand + tool-style + defaults + shadow refusal); 11-kit default bake, only known-baseline + warnings; punk86 metakit/starkit 8.6.17 smoke green. cookfs branch carried + verbatim - NO cookfs kit is currently mapped in mapvfs.toml to exercise it + (stale bin/punk9cook.exe predates the split and shows an old monolith + vintage - not a regression). +- Remaining for acceptance: layout _config copies (OUTSIDE the sync channels + - the 0.43.0 lesson - hand-swept deliberately next increment) and + project_main.tcl rebirth as the commented thin sample + README boot-entry + sections; the punk::args::moduledoc boot-core package (runtime-queryable + API doc); derived-project proof (tomlish); G-025 vintage tie-in (core + carries core_version; kit-level reporting pending). Collision gate now + exercised by real bakes (11-kit run clean); 'make.tcl check' surface line + still a candidate when the moduledoc lands.