fix(cli): gitignore Desktop bootstrap marker so hermes update stops autostashing it - #39707
Merged
Conversation
…utostashing it The Desktop bootstrap installer writes `.hermes-bootstrap-complete` into the managed git checkout root. Because it wasn't gitignored, `hermes update`'s `git stash push --include-untracked` treated it as a local change and created an autostash on every run — prompting the user to restore "local changes" that were really Hermes-managed runtime state (and risking the marker getting stranded in a stash, which re-triggers Desktop bootstrap). Add the marker to .gitignore; `git stash -u` and `git status --porcelain` both skip ignored files, so the updater now sees a clean tree. Fixes #38529
Contributor
🔎 Lint report:
|
Collaborator
|
Duplicate of #38550 / #38555 (same one-line |
19 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
hermes updateno longer treats the Desktop bootstrap marker as a local change. Adding.hermes-bootstrap-completeto.gitignoremakesgit stash -uandgit status --porcelainskip it, so the updater sees a clean tree and stops creating a spurious autostash on every run.Root cause: the bootstrap installer writes
.hermes-bootstrap-completeinto the managed checkout root; it wasn't ignored, sogit stash push --include-untrackedswept it into an autostash and prompted the user to restore "local changes" that were really Hermes-managed install state — which could strand the marker in a stash and re-trigger Desktop bootstrap.Changes
.gitignore: ignore.hermes-bootstrap-completetests/hermes_cli/test_update_autostash.py: hermetic regression test — adopts the repo's real.gitignore, drops the marker, runs the exactgit stash -uthe updater uses, asserts the marker survives and stays out ofgit status --porcelainscripts/release.py: AUTHOR_MAP entry for the contributor's email (CI gate)Validation
git stash -utest_update_autostash.py::test_bootstrap_marker_not_autostashed_by_updateSalvage of #38550 by @harjothkhara onto current main (authorship preserved). Fabricated
Co-Authored-By: Claude Opus 4.8trailer dropped on cherry-pick.Fixes #38529
Closes #38550
Infographic