Browse Source

G-117: staging anatomy recorded (shared trees vs per-member record; build_id determinism fork)

build905.zig kit-family: 2 shared payload trees wrap 3 kits via zipfs_mkimg.tcl,
so the per-member embedded record needs a per-kit embed argument on the wrap
tool; -Doriginurl/-Dpackager join familyrev as b.option()s. build_id fork to
decide: random-per-configure (cache-busting) vs uuid-shaped digest of stable
identity inputs (reproducible, cache-friendly) - leaning the digest.

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
f5dcae5dfa
  1. 16
      goals/G-117-self-describing-runtimes.md

16
goals/G-117-self-describing-runtimes.md

@ -93,8 +93,20 @@ hosts without a zip reader.
exists (fail if absent). Staging generates build_id per member and writes the
embedded record WITHOUT sha1/size (finished-binary facts stay sidecar-only).
Embedded record filename namespaced per the G-025 reconciliation note.
- Remaining for acceptance: extend the kit-family staging step (embed write; located
2026-07-24: implemented in build905.zig - build.zig is the G-102 entry shim),
- 2026-07-24 staging anatomy (build905.zig ~2337-2466; build.zig is the G-102 entry
shim): two shared addWriteFiles payload trees (0 = core for plain+punk, 1 = bi) are
wrapped per-kit by tools/zipfs_mkimg.tcl (-infile prefix exe, -indir tree). The
embedded record is PER-MEMBER (variant/working_name/build_id) so it cannot live in
the shared trees: plan is a per-kit record file (small addWriteFiles or generated
arg) handed to zipfs_mkimg.tcl via a new optional embed argument merged into the
image at wrap time. -Doriginurl/-Dpackager become b.option()s beside familyrev
(~2459) and flow to both the record generation and family_artifacts invocation.
BUILD_ID DETERMINISM FORK to decide at implementation: (i) random uuid per
configure - simple but busts the zig cache every run; (ii) uuid-shaped digest
derived from stable identity inputs (working_name | familyrev | source checkout
uuids) - reproducible, cache-friendly, still unique per artifact identity + rev +
source state. Leaning (ii); record the choice + rationale here when implemented.
- Remaining for acceptance: extend the kit-family staging step per the anatomy above,
family_artifacts v1 fields + mount-read derivation + '#' field comments +
-Doriginurl/-Dpackager plumbing, family_check embedded-record verification,
punk-runtime 'info' action (ps1 + bash + cmd rewrap; zip central-directory read,

Loading…
Cancel
Save