From 90f2c27d55f0d2082e4f2a8977516bdf132782d6 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Fri, 10 Jul 2026 00:46:58 +1000 Subject: [PATCH] punkcheck 0.3.1: install -overwrite/-source-checksum/-punkcheck-folder -choiceprefix 0 PUNKARGS fix install documented -choices on -overwrite, -source-checksum and -punkcheck-folder with -choiceprefix defaulting to true, but the manual dict merge parser validates option names only and never normalizes choice values. PUNKARGS now declares -choiceprefix 0 so documented behaviour matches the implementation (exact match required). Assisted-by: harness=opencode; primary-model=openrouter/z-ai/glm-5.2; api-location=openrouter.ai --- src/modules/punkcheck-999999.0a1.0.tm | 5 +++-- src/modules/punkcheck-buildversion.txt | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/modules/punkcheck-999999.0a1.0.tm b/src/modules/punkcheck-999999.0a1.0.tm index 33ff5278..ad22e4c6 100644 --- a/src/modules/punkcheck-999999.0a1.0.tm +++ b/src/modules/punkcheck-999999.0a1.0.tm @@ -1359,6 +1359,7 @@ namespace eval punkcheck { -overwrite -default no-targets\ -choices {no-targets newer-targets older-targets all-targets installedsourcechanged-targets synced-targets}\ -choicecolumns 1\ + -choiceprefix 0\ -choicelabels { no-targets "only copy files that are missing at the target" newer-targets "copy files with older source timestamp over newer @@ -1371,14 +1372,14 @@ namespace eval punkcheck { synced-targets "copy if the target doesn't exist or the source changed and the target cksum is the same as the last INSTALL-RECORD -targets_cksums entry" } - -source-checksum -default comparestore -choicecolumns 3 -choices {compare store comparestore false true} -help\ + -source-checksum -default comparestore -choicecolumns 3 -choices {compare store comparestore false true} -choiceprefix 0 -help\ "Checksum behavior for source files. compare: checksum and compare against last record, but do not store. store: checksum and store, but do not compare against last record. comparestore: checksum, compare against last record, and store. false: do not checksum (not recommended - changes cannot be detected). true: same as comparestore." - -punkcheck-folder -default target -choices {target source project} -choicerestricted 0 -help\ + -punkcheck-folder -default target -choices {target source project} -choicerestricted 0 -choiceprefix 0 -help\ "The location of the .punkcheck file to track installations and checksums. The default value 'target' is generally recommended. Can also be an absolute path to a folder." diff --git a/src/modules/punkcheck-buildversion.txt b/src/modules/punkcheck-buildversion.txt index 2b06305f..4006c579 100644 --- a/src/modules/punkcheck-buildversion.txt +++ b/src/modules/punkcheck-buildversion.txt @@ -1,6 +1,7 @@ -0.3.0 +0.3.1 #First line must be a semantic version number #all other lines are ignored. +#0.3.1 - PUNKARGS fix: install -overwrite, -source-checksum and -punkcheck-folder now declare -choiceprefix 0 so documented behaviour matches the manual parser (exact match required, no prefix matching) #0.3.0 - added installsource_add_virtual proc + installevent targetset_addsource_virtual method: 'virtual' named-value SOURCE records (-type virtual -path virtual: -value ) compared by value, for e.g recording resolved module build versions on install/delete records #0.2.0 - merged -exclude-dirsegments + -antiglob_paths into unified -exclude-paths (backward-compat aliases retained) #0.2.0 - renamed all underscore flags to hyphenated forms (-max-depth, -source-checksum, -punkcheck-folder, etc.) with backward-compat alias pre-processing