Browse Source

punk-runtime list -remote: local column uses the shared candidate filter (ps1)

The powershell payload's list -remote built its local-file dict with an
older inline filter (only .txt/.tm excluded), so active.toml, artifact
metadata tomls and stray .log files showed as local runtimes in the
server comparison. Now routed through Get-PunkRuntimeCandidates - the
same filter 'list'/'use' use (directories, *_BUILDCOPY*, .txt/.toml/
.tm/.tmp/.log excluded) and the bash payload's -remote loop already
used (list_candidates). Verified against the LIVE pushed punkbin: no
toml/log leakage, comparison rows correct; 'platforms -remote' also
live-verified over the network (all five served platforms). Rewrapped;
roundtrip pin PASS; layout copy + .ps1 twin refreshed. Project 0.18.3.

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
197f55f1b2
  1. 4
      CHANGELOG.md
  2. 7
      bin/punk-runtime.cmd
  3. 2
      punkproject.toml
  4. 7
      src/project_layouts/vendor/punk/project-0.1/bin/punk-runtime.cmd
  5. 7
      src/scriptapps/bin/punk-runtime.ps1

4
CHANGELOG.md

@ -5,6 +5,10 @@ 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` Entries are newest-first; one bullet per notable change. See the root `AGENTS.md`
"Project Versioning" section for the bump policy. "Project Versioning" section for the bump policy.
## [0.18.3] - 2026-07-22
- `bin/punk-runtime.cmd` `list -remote` (powershell payload): the local column now uses the shared runtime-candidate filter, so `active.toml`, artifact metadata tomls, stray `.log` files, `.tmp`/build copies and directories no longer appear as local runtimes in the server comparison (bash payload already filtered).
## [0.18.2] - 2026-07-22 ## [0.18.2] - 2026-07-22
- `bin/punk-runtime.cmd`: new `platforms ?-remote?` action - lists local `bin/runtime/*` platform folders (local platform marked), or the platforms the artifact server serves via the server's new root-level `platforms.txt` discovery manifest (raw-file servers have no directory listing; the manifest is now part of the punkbin layout contract, generated by punkbin's maintenance script, and third-party mirrors using the layout carry the same file). Local presence marked, cached-copy fallback, actionable message for pre-convention servers. - `bin/punk-runtime.cmd`: new `platforms ?-remote?` action - lists local `bin/runtime/*` platform folders (local platform marked), or the platforms the artifact server serves via the server's new root-level `platforms.txt` discovery manifest (raw-file servers have no directory listing; the manifest is now part of the punkbin layout contract, generated by punkbin's maintenance script, and third-party mirrors using the layout carry the same file). Local presence marked, cached-copy fallback, actionable message for pre-convention servers.

7
bin/punk-runtime.cmd

@ -2915,7 +2915,12 @@ function psmain {
$localdict = @{} $localdict = @{}
if (test-path -Path $archfolder -Type Container) { if (test-path -Path $archfolder -Type Container) {
$dircontents = (get-childItem -Path $archfolder -File | Where-object Name -Notlike '*_BUILDCOPY.*' | Where-object {-not ($(".txt",".tm") -contains $_.Extension) }) #shared candidate filter (bash payload parity - its -remote loop
#already uses list_candidates): excludes directories, build
#copies and .txt/.toml/.tm/.tmp/.log support files, so
#active.toml / metadata tomls / stray logs never show as
#local runtimes in the comparison
$dircontents = Get-PunkRuntimeCandidates $archfolder
foreach ($f in $dircontents) { foreach ($f in $dircontents) {
$local_sha1 = Get-FileHash -Path $(${f}.FullName) -Algorithm SHA1 $local_sha1 = Get-FileHash -Path $(${f}.FullName) -Algorithm SHA1
$localdict[$f.Name] = ${local_sha1}.Hash $localdict[$f.Name] = ${local_sha1}.Hash

2
punkproject.toml

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

7
src/project_layouts/vendor/punk/project-0.1/bin/punk-runtime.cmd vendored

@ -2915,7 +2915,12 @@ function psmain {
$localdict = @{} $localdict = @{}
if (test-path -Path $archfolder -Type Container) { if (test-path -Path $archfolder -Type Container) {
$dircontents = (get-childItem -Path $archfolder -File | Where-object Name -Notlike '*_BUILDCOPY.*' | Where-object {-not ($(".txt",".tm") -contains $_.Extension) }) #shared candidate filter (bash payload parity - its -remote loop
#already uses list_candidates): excludes directories, build
#copies and .txt/.toml/.tm/.tmp/.log support files, so
#active.toml / metadata tomls / stray logs never show as
#local runtimes in the comparison
$dircontents = Get-PunkRuntimeCandidates $archfolder
foreach ($f in $dircontents) { foreach ($f in $dircontents) {
$local_sha1 = Get-FileHash -Path $(${f}.FullName) -Algorithm SHA1 $local_sha1 = Get-FileHash -Path $(${f}.FullName) -Algorithm SHA1
$localdict[$f.Name] = ${local_sha1}.Hash $localdict[$f.Name] = ${local_sha1}.Hash

7
src/scriptapps/bin/punk-runtime.ps1

@ -667,7 +667,12 @@ function psmain {
$localdict = @{} $localdict = @{}
if (test-path -Path $archfolder -Type Container) { if (test-path -Path $archfolder -Type Container) {
$dircontents = (get-childItem -Path $archfolder -File | Where-object Name -Notlike '*_BUILDCOPY.*' | Where-object {-not ($(".txt",".tm") -contains $_.Extension) }) #shared candidate filter (bash payload parity - its -remote loop
#already uses list_candidates): excludes directories, build
#copies and .txt/.toml/.tm/.tmp/.log support files, so
#active.toml / metadata tomls / stray logs never show as
#local runtimes in the comparison
$dircontents = Get-PunkRuntimeCandidates $archfolder
foreach ($f in $dircontents) { foreach ($f in $dircontents) {
$local_sha1 = Get-FileHash -Path $(${f}.FullName) -Algorithm SHA1 $local_sha1 = Get-FileHash -Path $(${f}.FullName) -Algorithm SHA1
$localdict[$f.Name] = ${local_sha1}.Hash $localdict[$f.Name] = ${local_sha1}.Hash

Loading…
Cancel
Save