fix: v0.7.3 hardening — Emacs local-only deploy, iTerm2 Restore guard, tmux coverage#7
Merged
Conversation
…, tmux coverage - Emacs (internal/emacs): deploy the UNION of the shared emacs/ tree and the local/emacs/ overlay, so a local-only file (e.g. init.local.el with no shared counterpart) deploys as a machine-only file — mirrors the iTerm2 Dynamic Profiles union walk. Excludes + symlink refusal now cover both trees. - iTerm2 (internal/terminal): PreferenceDomain.Restore now honours the same 'iTerm2 running' guard as Apply (refuses import/delete into a live domain); the restore/rollback caller treats the skip as a warn-continue, never aborting a multi-domain restore or wedging the next apply. Apple Terminal unaffected. - tmux (internal/tmux): the secret recogniser now covers setw/set-window-option, trailing comments, and unquoted values, still degrading to a safe refusal for shapes it cannot isolate (no leak, no whole-line clobber).
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.
v0.7.3 — hardening (Emacs / iTerm2 / tmux)
Three self-contained follow-ups flagged during the v0.7.0 config-plugin work.
Fixes
emacs/tree and thelocal/emacs/overlay, so a hand-authoredinit.local.elwithno shared counterpart deploys as a machine-only file (mirrors the iTerm2 Dynamic
Profiles union walk). Excludes + symlink refusal apply to both trees; both-tree files
resolve local-wins (incl. exec bit).
Restorerunning-guard —Restorenow refuses thedefaults import/deletewhile iTerm2 is running (a live iTerm2 would discard the re-import on quit). The backup
engine recognises the skip via a
ResourceRestoreSkipperinterface and continuesrestoring every other path — never aborts a multi-domain restore, never wedges the next
apply's pre-plan rollback. Apple Terminal unaffected.setw/set-window-option, trailing#comments, and unquoted values; every shape it can't isolate still degrades to a safe
refusal (no partial redaction, no leak);
${ENV}stays verbatim.Verification
gofmt/vet/buildclean;go test ./...+ full evals green — the iTerm2 restore guardwas exercised with iTerm2 actually running on the host.
consistency-lint,check-plan-shipped v0.7.3,docs-currency-lintall pass. Ruthless review: SHIP;security review: PASS on the restore-path change. One recorded known limitation (a tmux
trailing comment ending in a same-kind quote over-selects — non-leak, quotes stay
balanced; see the v0.7.3 plan).
After merge:
scripts/release.sh v0.7.3.Assisted-by: Claude:claude-opus-4-8