A released aeb reported `aeb 0.0.0-dev+<sha>` even when the correct tagged
release was fetched — the tag was never carried into the payload. The release
workflow knows $TAG when it stages aeb-bootstrap but wrote it nowhere; the
payload has no .git, so make install's `git describe` yields "unknown"; and the
--version handler hardcoded 0.0.0-dev. Confirmed by unpacking the real v0.294
payload: the tag appears nowhere in it. Reported by the selaenium line.
Three coordinated changes:
- release.yml: `printf '%s' "$TAG" > "$STAGE/VERSION"` into the bootstrap stage.
- Makefile install: new AEB_STAMP `version` field — VERSION file if present,
else 0.0.0-dev+<src>.
- aeb (bash trampoline `--version`) + tools/aeb-cli.ae (the telemetry
AEB_VERSION line, via _aeb_stamp_summary): read the `version` field, use it
when set, else 0.0.0-dev+<src>.
Source `make install` ships no VERSION file, so a dev build still correctly
reports 0.0.0-dev+<sha>; /VERSION is gitignored so it never leaks into the tree.
Verified on ae 0.643.0: VERSION-stamped install -> `aeb v0.295 (git …)`; source
install -> `aeb 0.0.0-dev+<sha>`. tests/test_aebcli_parse.ae covers the version
field. Forward-only: takes effect from the next release.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TgmxVg44D6P5irWxhQkSAb