Documents release pinning (--tag), the pinned-tag metadata route, installed-version tracking with upgrade reporting, and restart of a managed running service on upgrade; syncs the four requirements into the fpagent-installer main spec.
1.1 KiB
1.1 KiB
Tasks
- 1. App: add
/fpagent/releases/tags/:tag, sharing the release-metadata handler with/fpagent/releases/latest; reject invalid tags without contacting the forge. - 2. Hosted installer: parse
--tag, fetch the pinned tag's metadata, derive the git hash from the asset name, and write it asVERSIONinto the extracted bundle before handoff. - 3. Bundle installer (
fingerprint-agent): readVERSIONbeside the script or the binary, reportupgrading <old> -> <new>from${INSTALL_PATH}.version, stamp the new version, remove it on uninstall. - 4. Bundle installer: restart an already-running
fpagent.serviceafterenable --now(viais-active, so a fresh install does not restart). - 5.
bundle.sh: shipVERSIONin the bundle. - 6. Tests: tag-route metadata and invalid-tag rejection;
--tagmakes the installer request the tag endpoint, not latest. Verified 59 tests pass. - 7. Verified end to end: a real patched bundle served through a fake gateway
→ hosted installer → bundle installer reported
upgrading fpagent deadbeef -> cafebabe, versioncafebabe, with options forwarded.