---
id: bb8d3d3b-decb-4b68-83cf-d55033baa9c4
title: 'release install: project-generic artifact (any project), record-sha resolution'
state: closed
labels: []
assignees: []
milestone: null
created: 2026-09-08T22:01:17.449957907Z
updated: 2026-09-08T22:24:54.123135126Z
---
SOURCE: wr1te round 3 (verified): `f0rge release install <ver>`
only works for f0rge's own self-update — the artifact name is
hardcoded to f0rge, the cargo fallback assumes a cargo project
whose binary is the artifact; project binaries always need manual
install. And it required git tags that no command creates (covered
by #47's record sha). FIX — make install PROJECT-GENERIC:
- artifact: if releases/build/<ver>/ has exactly one binary file,
  COPY it to $CARGO_HOME/bin/<that name> (any project, any
  language — wr1te's build drop becomes installable);
- cargo fallback ONLY when Cargo.toml exists AND no prebuilt
  artifact — resolve the bin name from [package]/[bin] and cargo
  install --locked from the resolved tree;
- resolution order: record sha (#47) > git tag > main = current
  checkout; --dry-run unchanged.
- AGENTS.md Install section reworded to the generic promise
  ("installs this project's release artifact").
DONE: a non-cargo project with a dropped artifact installs <ver>
by copy; f0rge still self-installs; record-sha resolution works
with zero tags; SEC argv-only holds.
