Commit Graph

2 Commits

Author SHA1 Message Date
ethernet 4a783b1c21 unify install provenance on a single code-scoped install-stamp.json
one artifact replaces three: install-stamp.json (code-scoped) subsumes
.hermes_build_info.json (same schema, different name) and .install_method
(derivable). git checkouts carry no stamp at all — .git plus location is
the fact.

detect_install_method() now delegates to runtime_tree.install_method():
  stamp distribution (docker/nix/desktop-app)
  -> .git at a managed install root => git
  -> .git anywhere else => source (new)
  -> unknown

the new 'source' method makes hermes update refuse random src checkouts
outright and point at git pull (replaces the --yes-overridable ask-first
guard). nixos dies as a method value; /nix/store sniffing and the
HERMES_MANAGED ladder step die with it. HERMES_MANAGED keeps exactly one
job: the NixOS module's declarative config-write guard.

lazy_deps drops install-method inference entirely: the read-only guard
now probes site-packages writability directly.

no backwards compat: nothing reads the legacy stamps anymore. stage2-hook
keeps deleting stale home-scoped .install_method markers left by old
images.
2026-08-10 11:21:49 -04:00
ethernet a28ecc88ff feat: hermes update asks before it touches a non-managed checkout
The update flow stashes local changes and moves the checkout to the
update branch. At a managed install root that is the purpose. In any
other checkout it yanks a working tree off its feature branch. The
guard asks first, refuses without a terminal, and honors --yes.
2026-08-10 02:34:53 -04:00