issues: file #47 #48 (release create/install generalization)

e48c467gl0w

all commits

Message

issues: file #47 #48 (release create/install generalization)

Diff

.forge/issues/8f7b2bcc-769a-4b4c-bfa2-96e8d890bf72/issue.md+23 −0
diff --git a/.forge/issues/8f7b2bcc-769a-4b4c-bfa2-96e8d890bf72/issue.md b/.forge/issues/8f7b2bcc-769a-4b4c-bfa2-96e8d890bf72/issue.mdnew file mode 100644index 0000000..92cb989--- /dev/null+++ b/.forge/issues/8f7b2bcc-769a-4b4c-bfa2-96e8d890bf72/issue.md@@ -0,0 +1,23 @@1+---2+id: 8f7b2bcc-769a-4b4c-bfa2-96e8d890bf723+title: 'release create: enforce v-prefix + record sha (self-sufficient releases)'4+state: open5+labels: []6+assignees: []7+milestone: null8+created: 2026-09-08T22:01:17.445305196Z9+updated: null10+---11+SOURCE: wr1te round 3 + orchestrator probe (verified):12+`f0rge release create 0.2.0` writes .forge/releases/0.2.0.md while13+the convention (all records + install tags) is v-prefixed; nothing14+validates. FIX: release create ENFORCES the v prefix — `create15+0.2.0` -> one-line usage error "versions use the v prefix:16+v0.2.0", exit 2, try-path hint. Loud over silent (same philosophy17+as create --state). ALSO: records gain `sha` (HEAD at create18+time) so releases are self-sufficient — install resolution stops19+depending on git tags (nothing ever created them; they were20+orchestrator habit). Spec [release]: Required version, created;21+Optional title, sha. Golden fixture updated (sha optional; old22+records parse fine). DONE: create 0.2.0 fails loudly; create23+v0.2.0 writes v0.2.0.md with sha; no tags needed for resolution.
.forge/issues/bb8d3d3b-decb-4b68-83cf-d55033baa9c4/issue.md+29 −0
diff --git a/.forge/issues/bb8d3d3b-decb-4b68-83cf-d55033baa9c4/issue.md b/.forge/issues/bb8d3d3b-decb-4b68-83cf-d55033baa9c4/issue.mdnew file mode 100644index 0000000..c14752e--- /dev/null+++ b/.forge/issues/bb8d3d3b-decb-4b68-83cf-d55033baa9c4/issue.md@@ -0,0 +1,29 @@1+---2+id: bb8d3d3b-decb-4b68-83cf-d55033baa9c43+title: 'release install: project-generic artifact (any project), record-sha resolution'4+state: open5+labels: []6+assignees: []7+milestone: null8+created: 2026-09-08T22:01:17.449957907Z9+updated: null10+---11+SOURCE: wr1te round 3 (verified): `f0rge release install <ver>`12+only works for f0rge's own self-update — the artifact name is13+hardcoded to f0rge, the cargo fallback assumes a cargo project14+whose binary is the artifact; project binaries always need manual15+install. And it required git tags that no command creates (covered16+by #47's record sha). FIX — make install PROJECT-GENERIC:17+- artifact: if releases/build/<ver>/ has exactly one binary file,18+  COPY it to $CARGO_HOME/bin/<that name> (any project, any19+  language — wr1te's build drop becomes installable);20+- cargo fallback ONLY when Cargo.toml exists AND no prebuilt21+  artifact — resolve the bin name from [package]/[bin] and cargo22+  install --locked from the resolved tree;23+- resolution order: record sha (#47) > git tag > main = current24+  checkout; --dry-run unchanged.25+- AGENTS.md Install section reworded to the generic promise26+  ("installs this project's release artifact").27+DONE: a non-cargo project with a dropped artifact installs <ver>28+by copy; f0rge still self-installs; record-sha resolution works29+with zero tags; SEC argv-only holds.