From e6c8ed754480dd3b808855081406d014f644de5b Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Fri, 17 Jul 2026 02:28:50 +1000 Subject: [PATCH] punkshell 0.12.39: fauxlink 0.1.2 vendoring closeout + G-087 fauxlink/consumer survey notes - CHANGELOG + version bump for the fauxlink 0.1.2 vendor pull, tomlish catch-up and bootsupport refresh. - G-087 detail Notes updated: fauxlink 0.1.2 upstream work record, punkshell fauxlink consumer survey (fcat follows only .fauxlink not .fxlnk; make.tcl merge_over + startup-script check; kit boot fallback), the (package) id status relative to G-075, and the recorded intention that punk::nav::fs should gain fauxlink handling analogous to its punk::winlnk shortcut treatment (candidate goal). Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com --- CHANGELOG.md | 5 +++++ goals/G-087-thin-project-layouts.md | 19 +++++++++++++++++++ punkproject.toml | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e227325..23762f2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ The latest `## [X.Y.Z]` header must match the `version` field in `punkproject.to Entries are newest-first; one bullet per notable change. See the root `AGENTS.md` "Project Versioning" section for the bump policy. +## [0.12.39] - 2026-07-17 + +- fauxlink 0.1.2 vendored from upstream (c:/repo/jn/tclmodules/fauxlink, now under fossil version control with a 62-test suite): punk::args documentation for the whole developer-facing API including a (package)fauxlink id (inert until G-075 surfaces package ids); fixes for decode_unicode_escapes dropping the first character when a hexless %U was present, single-comment (3-section) links skipping validation/decoding, and the link_as stub silently no-oping (now raises 'not yet implemented'). Consumers (fcat redirect-follow, make.tcl merge_over/startup-script check, kit boot fallback) unchanged. +- tomlish 1.1.12 + test module vendorupdate catch-up; bootsupport snapshot refreshed to current module versions (incl. the 0.12.38 hygiene bumps) with superseded copies pruned. + ## [0.12.38] - 2026-07-17 - G-087 hygiene stage (layout system): `dev project.new`'s default -layout now resolves the exact name `punk.project` (layout ref renamed to carry the alias; previously tcl::prefix ambiguity between punk.project-0.1 and punk.project-0.1_overrides). Junk/test layout refs no longer selectable (test2, a duplicate sample-0.1, and the a.txt-only punk.shell-0.1 whose ref name lied about its content). No-handler warning paths in punk::mix::commandset::{layout 0.1.1, project 0.2.2, module 0.1.1, scriptwrap 0.1.1} and punk::mix::base 0.1.1 fixed ('put' -> 'puts', and return empty dict instead of erroring on an unset variable); punk::cap::handlers::templates 0.1.1 fixes the non-braced expr that errored on any absolute-pathtype template provider registration, and the duplicate-registration guard that errored ('key not known in dictionary') for any second provider package registering the same capability. src/project_layouts/README.md rewritten to describe the implemented punk.templates+layout_refs mechanism including the ref filename grammar; dead modpod templates/layouts payload (punk::mix::templates 0.1.4) and make.tcl old_layout_update_list residue removed. diff --git a/goals/G-087-thin-project-layouts.md b/goals/G-087-thin-project-layouts.md index b4679930..24229f22 100644 --- a/goals/G-087-thin-project-layouts.md +++ b/goals/G-087-thin-project-layouts.md @@ -131,6 +131,25 @@ Staged; hygiene first since it is independently shippable. (fossil checkout, punkshell-style layout; user confirmed 2026-07-17): fauxlink tests or module changes needed for the stage-2 ref migration can be made upstream there and re-vendored, rather than patching the vendored copy. +- fauxlink 0.1.2 upstream work (2026-07-17, user-directed): complete test suite + (src/tests/fauxlink.test, 62 tests), punk::args documentation blocks (inert PUNKARGS + + registration, no punk::args dependency) including a (package)fauxlink id - the id + registers and resolves once its namespace is scanned; automatic id-derived scan and + user-facing rendering await G-075. Fixes: decode_unicode_escapes first-char drop on + hexless %U, 3-segment comment validation/decoding parity, link_as stub errors instead + of silent no-op. link_as (the encoder counterpart of resolve) remains unimplemented - + stage 2 migration tooling will want it (candidate follow-on). +- punkshell fauxlink consumer survey (2026-07-17): punk::mix::util fcat follows + .fauxlink (and .lnk via punk::winlnk) unless -noredirect - note fcat matches only the + .fauxlink extension, not .fxlnk; make.tcl merge_over does fauxlink-aware recursive + copy (follows 'punk::boot,merge_over'-tagged links, copies others as files) and the + startup-script check resolves root main.tcl fauxlinks; src/scriptapps/punk.tcl kit + boot fallback follows a main.tcl#*.fauxlink/.fxlnk with the same tag; vendored via + src/vendormodules/include_modules.config from c:/repo/jn/tclmodules/fauxlink/modules. +- Intention (user, 2026-07-17): punk::nav::fs should gain sensible fauxlink handling in + future - analogous to its optional punk::winlnk treatment of windows .lnk shortcuts + (resolve for target/type classification and display) - so fauxlinks present usefully + in directory listings/navigation. Candidate goal when picked up. - Related goals: G-086 (light project layout - becomes just another thin layout with less injected; this goal generalizes its premise to all layouts), G-027 (derived-project pull updates - takes over post-generation refresh; fauxlink TOML diff --git a/punkproject.toml b/punkproject.toml index 8c821bb1..a3eb5c1d 100644 --- a/punkproject.toml +++ b/punkproject.toml @@ -1,4 +1,4 @@ [project] name = "punkshell" -version = "0.12.38" +version = "0.12.39" license = "BSD-2-Clause"