app-punkscript accepts lib:<name> (with or without .tcl - extensionless
appends it) as the shell subcommand does: `punkexe script lib:hello` or
bare `punkexe lib:hello` via reclassification. The prefix always wins; a
literal path beginning lib: (pathological - colon is illegal in Windows
filenames) is reachable via ./lib:... Not-found errors list every
searched location; only .tcl runs via the script subcommand.
Resolution policy is factored into punk::path::scriptlib_resolve
(PUNKARGS-documented) rather than copied inline: kit-internal
app/scriptlib first and deliberately not externally overridable, then
scriptlib dirs relative to the executable - the same policy
app-punkshell encodes inline (todo noted: refactor the shell path onto
the shared proc). Share definitions via modules, not launcher control
flow.
Verified on both generations (punk902z, punksys): lib:hello
extensionless and explicit, bare-arg reclassification, not-found
candidate listing (bin/scriptlib then <root>/scriptlib for a bin/ exe).
Project version 0.4.0 (backward-compatible behaviour addition).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
- Create scriptlib/tests/mime.tcl with 44 test cases covering:
* mime::finalize with all subordinates modes (all, dynamic, none)
* mime::setheader with new keys and different modes
* mime::encodingasciiP with various character types
* mime::qp_decode with encoded characters and soft newlines
* mime::parseaddress with complex formats (quoted, routes, groups)
* mime::initialize with different content types
* mime::getproperty with all properties
* mime::copymessage with different content types
* mime::buildmessage functionality
- Update mime-1.7.1.tm to mark all 15 previously untested code paths as TESTED
- All 44 tests pass successfully
- Resolves all TODO comments related to test coverage in MIME module