Browse Source

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
master
Julian Noble 5 days ago
parent
commit
e6c8ed7544
  1. 5
      CHANGELOG.md
  2. 19
      goals/G-087-thin-project-layouts.md
  3. 2
      punkproject.toml

5
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.

19
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

2
punkproject.toml

@ -1,4 +1,4 @@
[project]
name = "punkshell"
version = "0.12.38"
version = "0.12.39"
license = "BSD-2-Clause"

Loading…
Cancel
Save