# G-034 Zip-based #modpod modules mount in the shell code-interp on Tcl 8.6 Status: proposed Scope: src/modules/punk/mix/ (modpod mount path); vfs::zip availability in the repl code interp; src/modules/punk/cap/ (templates capability handler) Goal: zip-based `#modpod` modules (e.g. `punk::mix::templates`) mount and their punk::cap handlers register in the `shell` subcommand's code interp on Tcl 8.6, matching the `script`/main-interp context - so `dev module.templates` and other `punk.templates`-capability consumers work in an interactive 8.6 shell instead of failing with `invalid command name vfs::RegisterMount`. Acceptance: `dev module.templates` in an interactive 8.6 punk shell (`shell` subcommand) lists the template providers with no `failed to load ZIP archive-based module` / `invalid command name vfs::RegisterMount` / `Unable to register any template providers` / `invalid command name ::punk::cap::handlers::templates::api_punk.templates` errors, matching the `script`-subcommand output on the same binary (verified 2026-07-07: script works, shell fails); root cause fixed (the code interp lacks the vfs::zip library that provides vfs::RegisterMount for pre-zipfs Tcl, present in the main interp - restore it to the code interp or use an alternative modpod mount path there); Tcl 9 (built-in zipfs) behaviour is unchanged. ## 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-- 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 alternative modpod mount path there" branch of this goal's Acceptance: extract the modpod rather than mount it. It does not narrow this goal's options. Measured while achieving it: on msys2's tclsh8.6 `make.tcl` cannot mount its OWN `punk::mix::templates` modpod - "Unable to load vfs::zip package to mount module templates-0.2.0 (and zipfs not available either)", non-fatal but the package reports `broken` - which is this goal's failure in the build tooling rather than the code interp.