hermes-agent/apps/bootstrap-installer
ethernet 694bd9ab2e feat(update): install manifest, release channels, and eject
.hermes-install.json marks a checkout as source-managed or
desktop-bundled and records its update channel. A missing file means
source mode on the main channel, so no existing install changes.

`hermes update` reads the manifest:
- On a bundled install it refuses and points at the in-app updater.
- On the stable channel it fast-forwards the checkout to the newest
  final release tag (vX.Y.Z, three-digit major cap so legacy CalVer
  tags never match) instead of origin/main. The ZIP fallback resolves
  the tag through the GitHub API because that path runs when git file
  I/O is broken.
- `update.channel` in config.yaml overrides the channel for source
  installs. "auto" defers to the manifest.

`hermes update --eject` is the exit from desktop management. On a
bundled install it downloads Hermes Setup and launches it pinned to
the exact commit the bundle was built from; the installer creates a
normal source checkout at ~/.hermes/hermes-agent. Hermes Setup accepts
the new `--pin-commit <sha>` argument for this flow. On a
source-managed install, --eject with --channel only switches the
channel. The "ejected" manageStyle is the permanent opt-out that stops
future auto-adoption.
2026-08-10 02:34:50 -04:00
..
public
src
src-tauri
.gitignore
eslint.config.mjs
index.html
package.json
tsconfig.json
tsconfig.node.json
vite.config.ts