Browse Source

G-119 achieved: flip, archive, reference sweep (freshness verdict complete)

Acceptance verified in full against the fixture punkbin server
(PUNKBIN_URL override): ahead/behind verdicts naming both revisions
(behind with fetch+use guidance), current annotation preserved,
pre-family no-basis note + sha1 hash-identity, no-name-fetch one-line
divergence note; ps1/bash verdict-line parity asserted per scenario;
runtimecmd roundtrip pin green; bin/AGENTS.md runtime-manager contract
records the surface. Suite evidence in the detail file's flip record.

Activation and flip both 2026-07-25 (user-directed activation; overlap
survey re-run at activation - only G-033 related, already recorded; no
new Related lines). Detail file: status achieved + activation/flip
evidence records (the goals/ -> goals/archive/ move itself rode the
previous commit as a pure 100% rename; this commit carries the flip's
content edits). Index entry moved to GOALS-archive.md. Reference sweep:
G-033's G-119 note updated to landed-state wording with the archive
path (its package-mode docs must not contradict the shipped freshness
contract on naming); goals_lint clean (83 active / 37 archived);
goals_xref report carries no G-119-bridged unlinked pairs.

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 2 days ago
parent
commit
d96da53646
  1. 4
      GOALS-archive.md
  2. 4
      GOALS.md
  3. 7
      goals/G-033-proj-mode-cwd-project.md
  4. 32
      goals/archive/G-119-runtime-active-freshness.md

4
GOALS-archive.md

@ -162,3 +162,7 @@ Acceptance: kit-family embeds the record in all three members with the embed-the
### G-118 [achieved 2026-07-25] tclsh subcommand review: stock-parity gaps, piperepl residue, docs and console-path tests → detail: goals/archive/G-118-tclsh-subcommand-review.md
Scope: src/vfs/_config/punk_main.tcl (tclsh dispatch); src/vfs/_config/project_main.tcl (parity); src/buildsuites/suite_tcl90/patches/ (tclMain piperepl rev items); src/tests/shell/testsuites/punkexe/tclshcmd.test (coverage additions)
Acceptance: Every item in the "Issue list" section carries a recorded user decision (fix / document-as-intended / wontfix) and the decided fixes and documentation have landed; the tclsh subcommand's user-facing contract is documented in a durable doc location (not TEMP_REFERENCE); tclshcmd.test covers the decided pipe-testable behaviours; and the dorepl/console-reopen path either has a console-driven test or a recorded decision that G-106-style coverage is not required.
### G-119 [achieved 2026-07-25] punk-runtime active-vs-default freshness verdict (ahead/behind/current) → detail: goals/archive/G-119-runtime-active-freshness.md
Scope: src/scriptapps/bin/punk-runtime.ps1 + punk-runtime.bash (+ rewrapped bin/punk-runtime.cmd); bin/AGENTS.md (runtime-manager contract); src/tests/modules/punk/mix/testsuites/scriptwrap/ (roundtrip pin; behavioural fixture surface settled in the work)
Acceptance: against a fixture punkbin server (PUNKBIN_URL override): list -remote prints explicit ahead/behind verdicts naming both revisions (behind adds fetch+use update guidance) and keeps the (= server default) annotation for current; a pre-family active (no toml, no -rN name) yields a stated no-revision-basis note or its sha1 hash-identity when it value-matches a server artifact; a no-name fetch prints a one-line active-vs-default note on divergence; both payloads deliver identical verdict lines (fixture surface settled: shell/testsuites/binscripts/runtimecmd_freshness.test + testsupport/httpfixture.tcl); the runtimecmd roundtrip pin stays green; bin/AGENTS.md's runtime-manager contract records the new surface.

4
GOALS.md

@ -402,10 +402,6 @@ Detail: goals/G-115-declarative-vfs-composition.md
Scope: src/buildsuites/suite_tcl90/ (build_tcltls module + crypto-backend build, sources.config + build.zig.zon source records, kit-family bi payload + metadata extension, test_gate record step); src/vfs kit payloads carrying vendored tcltls binaries (current-state reference + recorded disposition only - removal stays G-004-era work); punkbin (as eventual artifact destination via the G-067 library class); consumers punk::imap4 / punk::netbox (package require tls) as verification context
Detail: goals/G-116-suite-built-tcltls.md
### G-119 [proposed] punk-runtime active-vs-default freshness verdict (ahead/behind/current)
Scope: src/scriptapps/bin/punk-runtime.ps1 + punk-runtime.bash (+ rewrapped bin/punk-runtime.cmd); bin/AGENTS.md (runtime-manager contract); src/tests/modules/punk/mix/testsuites/scriptwrap/ (roundtrip pin; behavioural fixture surface settled in the work)
Detail: goals/G-119-runtime-active-freshness.md
### G-120 [proposed] 9.1-kit script-mode boot pins process std channels: find holder, restore std-slot recycling
Scope: src/modules/punk/console-999999.0a1.0.tm; src/modules/punk/repl-999999.0a1.0.tm; src/lib/app-punkscript/; src/vfs/_config/punk_main.tcl
Detail: goals/G-120-scriptmode-std-channel-pin.md

7
goals/G-033-proj-mode-cwd-project.md

@ -178,8 +178,11 @@ ships with the prefix, not before):
- G-047 relationship: G-047's primary-VCS resolution anchors at the same
is_project_root marker proj: uses; its nested-punkproject.toml rule and this goal's
root walk must agree.
- G-119 relationship: G-119's freshness-verdict contract lands in bin/AGENTS.md's
runtime-manager contract, the same doc this goal's package-mode docs extend.
- G-119 relationship (G-119 achieved 2026-07-25 - see
goals/archive/G-119-runtime-active-freshness.md): its freshness-verdict contract
now sits in bin/AGENTS.md's runtime-manager contract, the same doc this goal's
package-mode docs will extend - the mode docs must not contradict it on naming
(artifact-named actives, -rN parsing).
- G-089 relationship (recorded 2026-07-24 after overlap review): G-089's proj:
scriptlib resolution rides this goal's visitor root discovery - its Notes
already flag that `proj:... script` benefits; the two share the same root walk

32
goals/archive/G-119-runtime-active-freshness.md

@ -1,6 +1,6 @@
# G-119 punk-runtime active-vs-default freshness verdict (ahead/behind/current)
Status: proposed
Status: achieved 2026-07-25
Scope: src/scriptapps/bin/punk-runtime.ps1 + punk-runtime.bash (+ rewrapped bin/punk-runtime.cmd); bin/AGENTS.md (runtime-manager contract); src/tests/modules/punk/mix/testsuites/scriptwrap/ (roundtrip pin; behavioural fixture surface settled in the work)
Goal: punk-runtime states the relationship between the ACTIVE runtime and the SERVER DEFAULT whenever both are known - current / ahead / behind / incomparable - so an operator is never silently ahead of or behind the curated recommendation. Today use/list record and display each fact separately (the active's revision only via its beside-toml summary, the default only as a row annotation), and a no-name fetch reports on the default artifact alone ("No download required"), leaving active r2 with default r1 and active r1 with default r3 equally invisible. The comparison uses revision fields where both sides carry them (active: beside-toml revision/name for materialized working copies, -rN parsed from the name for artifact-named actives; default: -rN parsed from its defaults.txt name), with sha1 VALUE-matching of local runtimes against the server sha1sums as the identity fallback for runtimes with no revision basis (pre-family).
Acceptance: against a fixture server (PUNKBIN_URL override): (1) active materialized from r2 with server default r1 -> list -remote prints an explicit ahead verdict naming both revisions; (2) active r1 with default r2 -> behind verdict plus update guidance (fetch + use); (3) active == default -> the existing (= server default) annotation or an equivalent current verdict; (4) a pre-family active (no toml, no -rN name) yields a stated no-revision-basis note - or its hash-identity when its sha1 matches a server artifact - rather than silence or a crash; (5) a no-name fetch prints a one-line active-vs-default note when the two diverge. Both payloads deliver identical verdicts (ps1/bash parity), the runtimecmd roundtrip pin stays green, and bin/AGENTS.md's runtime-manager contract records the new surface.
@ -36,3 +36,33 @@ value-matching identifies it against the server listing).
docs and this goal's runtime-manager contract are sibling sections of
bin/AGENTS.md - the mode docs and the freshness-verdict contract must not
contradict each other on naming (artifact-named actives, -rN parsing).
## Progress
- 2026-07-25 activated (user). Activation-freshness overlap survey re-run
(goals_xref score G-119): only linked pair is G-033 (already recorded above);
the remaining pairs are term-frequency noise (G-027/G-115/G-116 reviewed -
provenance, vfs composition and tcltls surfaces, no freshness relationship).
No new Related lines needed.
- 2026-07-25 ACHIEVED (flip evidence): freshness_verdict (bash) /
Write-PunkFreshnessVerdict (ps1) landed in both payloads + rewrapped
bin/punk-runtime.cmd (checkfile clean, no spacer resize needed; roundtrip pin
green). Behavioural fixture surface settled:
src/tests/shell/testsuites/binscripts/runtimecmd_freshness.test drives BOTH
payloads against a fixture punkbin server - new child-process http helper
src/tests/testsupport/httpfixture.tcl behind the PUNKBIN_URL override (curl and
WinPS Invoke-WebRequest share no file:// support, so a real endpoint is
required); staged tempdir + fixture platform testplat-x86_64 so the real
bin/runtime store is untouched; ps1 route = staged committed .cmd via cmd.exe,
bash route = payload driven directly under probed msys/git bash (on windows the
polyglot routes unix shells to the powershell payload via the win32 nextshell,
so direct drive mirrors the G-059 WSL approach; WSL bash rejected - WSL2 cannot
reach the 127.0.0.1 fixture server). All five acceptance scenarios verified with
per-scenario ps1/bash verdict-line parity, plus bash-side extras
(different-series incomparable verdict, fetch-mode BEHIND inline hint): suite
7/7 pass; scriptwrap + binscripts subtrees 32 pass / 1 pre-existing skip /
0 fail (roundtrip + checkfile + WSL + dtplite unaffected). bin/AGENTS.md
runtime-manager contract records the surface; payload help text updated
(list/fetch sections); punkshell 0.21.0 + CHANGELOG entry. Verified on: native
tclsh90 (Tcl 9.0.3) runner, Windows PowerShell 5 via the .cmd route, git-bash
(MINGW64) for the bash payload.

Loading…
Cancel
Save