Tree:
c1310e5af5
master
v0.1a
${ noResults }
2 Commits (c1310e5af51bf1eab3d26ae0fbb6e697c2626674)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
e2fc7332fe |
G-087 stages 4+5: overlay merge primitive, marker/matrix retirement, version seeding
Stage 4 - documented overlay semantics implemented (commandset::layout 0.2.0): layout_materialize resolves a layout to its overlay chain (vendor tier then custom tier per store+vendor, <name>@<base> derived-layout folders expanding their base chain first, cycle-guarded) and composes multi-folder chains into a disposable staging dir applying <item>.anti deletion markers (zero-byte marker files recommended - committable, unlike the originally documented empty marker folders, which are also accepted). Single-folder chains with no markers are used in place, so punk.project (store and zipfs modpod) behaviour is unchanged. project.new (commandset::project 0.4.0) copies from the materialized path and the layout listing/scanning commands show the effective merged view. Fixtures: punk.othersample is now a live derived layout (new custom-deck fauxlink ref + .gitignore.anti demo marker); extra.txt/store README rewritten to the implemented semantics. New tcltest suite src/tests/modules/punk/mix/testsuites/layout/materialize.test (20 tests). Anti markers deliberately stay a plain filename convention rather than tag-bearing fauxlinks: a fauxlink is a reference tooling may follow (fcat auto-follows), a marker is a tombstone with no target. Stage 5 - retirements and generated-project version seeding: - The empty unimplemented child-side src/PROJECT_LAYOUTS_CREATE_FROM_... marker folder is deleted along with its project.new and make.tcl sync exclusions. - The vendor/custom x _project matrix collapses for layouts: custom/<vendor> is the one override level; _project folders join no overlay chain (the pseudo-vendor remains for decktemplates module/utility templates only). - project.new seeds generated projects post-materialization (only-if-missing, never from payload): punkproject.toml ([project] name + 0.1.0), a matching CHANGELOG.md ## [0.1.0] header, and punkorigin.toml - an interim generation provenance baseline (utc, layout name + resolved store target, punk::mix::templates version, punkshell version when derivable, origin path) for the G-027 pull design to adopt (noted in G-027). Also: script-mode/programmatic project.new robustness (explicit shellrun require; punk::mix::util askuser/do_in_path/foreach-file fully qualified - the util:: shorthand exists only after cli commandset import). Includes the concurrently-landed (other session, previously uncommitted) 0.3.1 early module-name validation fix in project.new, shipped within the 0.4.0 bump. G-087 flipped achieved 2026-07-19 (verification in the detail file; archive move follows in the next commit). punkshell 0.16.0 -> 0.17.0. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
2 weeks ago |
|
|
eba0fe0098 |
goals: propose G-094/G-095 (punkcheck lifecycle unification + concurrent-writer safety); G-027 baseline reframe
Outcomes of the 2026-07-19 punkcheck module review: - G-094 [proposed]: single OO record lifecycle - installtrack/installevent becomes the sole implementation with an eager|deferred persistence policy, punkcheck::install rebuilt as an OO consumer in deferred mode, the zero-caller installfile_begin/finished/skipped trio retired to shims, and the o_record_list staleness fixed. The single save chokepoint is G-095's attachment point. - G-095 [proposed]: concurrent-writer safety - atomic temp+rename saves, advisory EXCL lockfile serializing whole installer events per punkcheck root, merge-on-flush for deferred mode, non-interactive-safe duplicate-INSTALLER recovery. SQLite recorded as rejected for now (TDL human readability/debugability overriding; three-part reconsideration bar). - G-027: acceptance reframed - .punkcheck records demoted from sole provenance basis to acceleration layer; safe-overwrite classification survives record loss via a committed baseline record (origin identity + pulled version, pristine content re-derivable from the origin's VCS), degrading conservatively (report/confirm - never silent overwrite, never a wedged pull). Approach classification bullet extended to match. - G-095 notes carry the tiered expendability taxonomy (build trees: recopies only; synced-targets bin/ deploy: non-self-healing skip wedge; derived projects: G-027 baseline) and the cross-tier invariant: absent records degrade to skip/confirm, never to overwrite. - (The G-087 cross-pointer to G-094/G-095 already landed with the stage-3 sources commit.) goals_lint clean (73 active-index goals, 22 archived). Claude-Session: https://claude.ai/code/session_01L7MfuYBfYpUFpVafo5JowC Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
2 weeks ago |