From 25340047c380c56799c32639ccbdf866ba0235aa Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Sat, 25 Jul 2026 02:34:17 +1000 Subject: [PATCH] G-101 notes: launch-mechanism ladder + trial-kit naming convention (spike-validated) Assisted-by: harness=opencode; primary-model=openrouter/moonshotai/kimi-k3; api-location=openrouter.ai --- goals/G-101-tcl86-kit-container-strategy.md | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/goals/G-101-tcl86-kit-container-strategy.md b/goals/G-101-tcl86-kit-container-strategy.md index df50519c..d9cabd2a 100644 --- a/goals/G-101-tcl86-kit-container-strategy.md +++ b/goals/G-101-tcl86-kit-container-strategy.md @@ -68,3 +68,29 @@ wrap), and only worth activating once G-099/G-100 land. delivering THAT payload shape (adjusted for 8.6 boot: no zipfs /app anchor - the metakit/cookfs/zipvfs mount point plays the /app role and the hook mechanism must be re-verified against 8.6's tclPkgUnknown). +- 2026-07-25: launch-mechanism ladder for Tk apps launched from Explorer/shortcuts + (spike-validated on punk91/punk86): (1) punkapp::hide_console stays dev-only - + SW_HIDE on the console HWND hides the whole terminal window under ConPTY/tabbed + terminals; (2) in-place FreeConsole + close/open-NUL std reassignment works on + 8.6 and on stock 9.x + 9.0.x-era punk kits (Tcl installs the next created channel + into the vacated std slot - tclIO.c Tcl_CreateChannel; recipe `chan close stderr; + open NUL w` yields a channel auto-named stderr), but is currently blocked on the + 9.1 kit by a boot-layer std-slot pin (investigation: G-120); (3) relaunch-self via + twapi::create_process -noconsole is the primary cross-generation mechanism (hidden + console, stdio + package require Tk verified working, no channel surgery; the + brief console flash is OS-unavoidable for console-subsystem exes; sign release + binaries against self-spawn AV heuristics); (4) a GUI-subsystem punkw-class + wrapper is the only zero-flash option (prior art: punkwish91.exe is a full + GUI-subsystem punk kit); DETACHED_PROCESS semantics are a trap (no std handles; + Tk load fails on Tcl 9). bgerror must be guarded or stdio repaired before detach: + punk::repl::bgerror writes stderr (silent output loss on 9.x post-detach; not + fatal on 9.1 per spike). +- 2026-07-25: trial-kit naming convention (user direction): the G-103 scheme holds + for 8.6 family runtimes - artifacts tclsh[-punk[-bi]]-r.exe; + during container trials the container tag rides the artifact modifier chain (e.g. + tclsh8.6.17-punk-cookfs-r1.exe / -mk4 / -zipvfs) and drops once the container + decision lands; kit names stay punk86-class. tclkit/tclkitsh naming is not revived + for punk-built artifacts (the -sh suffix implies a GUI sibling that will not + exist; current kit downloads already use bare tclkit for console builds). Any + future zero-flash launcher takes the w-suffix convention (punkw) rather than + -gui/-cli (which in kit lineage encode Tk linkage, not subsystem).