Browse Source
G-146 [proposed] Fossil binary-glob seeding for generated projects: the trailing fossil initial commit of a generated project aborts on binary payload (layout bin/sdx.kit, injected zip-based .tm modules, incoming G-136 .ico) because thin layouts ship no binary-glob setting. Deferred twice already (G-087 -> G-012 territory); scoped as its own goal with the glob-value and seeding-path decisions recorded as open options and relationships to G-136/G-086/G-027/G-114/G-047 surveyed. Assisted-by: harness=opencode; primary-model=opencode/kimi-k3; api-location=unknownmaster
2 changed files with 67 additions and 0 deletions
@ -0,0 +1,63 @@ |
|||||||
|
# G-146 Fossil binary-glob seeding for generated projects (initial commit completes) |
||||||
|
|
||||||
|
Status: proposed |
||||||
|
Scope: src/project_layouts/ (.fossil-settings payloads); src/make.tcl (thin-layout sync, if derivation chosen); src/modules/punk/mix/commandset/project-999999.0a1.0.tm (generation-time fossil commit path) |
||||||
|
Goal: a project generated from any punkshell layout completes its trailing fossil initial |
||||||
|
commit with no binary-content prompt or abort - the layout's .fossil-settings payload |
||||||
|
carries a binary-glob setting covering the binary content generation injects (layout-carried |
||||||
|
bin/sdx.kit, injected zip-based .tm modules, seeded assets). |
||||||
|
Acceptance: dev project.new from each binary-affected layout (project-0.1, plus one |
||||||
|
injection-only layout e.g basic) completes its trailing fossil initial commit cleanly |
||||||
|
(FOSSIL_HOME diverted, no binary prompt/abort); the generated project's versioned |
||||||
|
.fossil-settings carries binary-glob with the recorded value; the seeding path |
||||||
|
(hand-authored per layout vs derived via the make.tcl template refresh) is decided and |
||||||
|
documented in this file; the G-136 relationship (icon payload is binary - same abort |
||||||
|
class) is recorded. |
||||||
|
|
||||||
|
## Context |
||||||
|
|
||||||
|
G-087's generation verifications (stages 3 and 4, 2026-07-19 - see |
||||||
|
goals/archive/G-087-thin-project-layouts.md): the trailing fossil initial commit of a |
||||||
|
punk.project-generated project aborts on binary payload content (bin/sdx.kit from the |
||||||
|
layout plus injected zip-based modpod .tm modules) because thin layouts ship no |
||||||
|
binary-glob settings; layouts without binaries commit cleanly. Deferred twice since |
||||||
|
(G-087 -> G-012 as "designated fix"; G-012 correctly scoped .fossil-settings payloads out |
||||||
|
of its inert-storage treatment - they are inert by nature, fossil reads them only at a |
||||||
|
checkout root; the missing SETTING is a different problem class). |
||||||
|
|
||||||
|
Binary sources in generated projects: bin/sdx.kit carried by the punk.project layout |
||||||
|
(project-0.1); zip-based .tm modules injected into EVERY generated project by |
||||||
|
bootsupport_inject (zip content reads as binary to fossil); the G-136 icon seed (.ico) |
||||||
|
when that goal lands. punkshell's own repo already runs binary-glob=* (versioned in |
||||||
|
.fossil-settings/, workflow-policy-only per root AGENTS.md) so binary checkins proceed |
||||||
|
without prompts. |
||||||
|
|
||||||
|
## Approach (options - decision recorded in the work) |
||||||
|
|
||||||
|
- Value: binary-glob=* (mirror punkshell's own - generated projects own their binary |
||||||
|
policy) vs a narrow glob (*.tm, bin/*.kit, *.ico - tighter, but maintained as payload |
||||||
|
classes grow). |
||||||
|
- Seeding path: hand-authored per-layout .fossil-settings payload vs derived from |
||||||
|
punkshell's own .fossil-settings/binary-glob via the G-012 template-refresh machinery |
||||||
|
(a second derived payload class after gitignore.in). |
||||||
|
|
||||||
|
## Related |
||||||
|
|
||||||
|
- G-136 (icon seeding injects binary .ico assets - its acceptance hits the same abort |
||||||
|
without this goal's setting; coordinate) |
||||||
|
- G-086 (light layout - generated light projects carry the same injected-.tm binary |
||||||
|
class; its .fossil-settings needs the setting too) |
||||||
|
- G-027 (pull updates - the seeded setting becomes pull-updatable infrastructure payload |
||||||
|
once the pull channel exists) |
||||||
|
- G-114 (per-platform tm roots - binary .tm segregation shares the "zip .tm reads as |
||||||
|
binary" classification fact) |
||||||
|
- G-047 (deliberate non-overlap: seeds punkproject.toml workflow defaults, not |
||||||
|
.fossil-settings; recorded because both seed layout payload) |
||||||
|
- G-087, G-012 (archived - origin of the finding; inert-payload machinery this goal's |
||||||
|
derivation option rides) |
||||||
|
|
||||||
|
Overlap survey 2026-08-01 (goals_xref paths src/project_layouts .fossil-settings |
||||||
|
src/make.tcl src/modules/punk/mix/commandset/project-999999.0a1.0.tm + report unlinked |
||||||
|
list): relationships as above; G-031 (layout payload, no binary content) and the |
||||||
|
project-commandset path-anchor hits (G-016 G-014 G-066 G-063 G-067 G-022) surveyed - |
||||||
|
no relationship. |
||||||
Loading…
Reference in new issue