From d8d3a219fefeae9d3583c1b10e45aaa8e123c7cf Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Tue, 25 Aug 2026 14:50:38 -0700 Subject: [PATCH] docs(bootstrap): correct marker_owned_by_self justification for current live_marker_owner semantics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Main's live_marker_owner has adopted self-owned markers since 160586ff8/dbc2a9c8e (#74761), so the cherry-picked comment's claim that it 'maps self-ownership to None' is stale. The raw read is still the right tool — the heal needs the single fact 'does the marker name our PID' without age/liveness policy folded in. --- apps/bootstrap-installer/src-tauri/src/update.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/bootstrap-installer/src-tauri/src/update.rs b/apps/bootstrap-installer/src-tauri/src/update.rs index ee11cca232..982377bcad 100644 --- a/apps/bootstrap-installer/src-tauri/src/update.rs +++ b/apps/bootstrap-installer/src-tauri/src/update.rs @@ -158,11 +158,13 @@ fn live_marker_owner(path: &Path) -> Option { /// True when the on-disk marker names THIS process as its owner. /// -/// `live_marker_owner` cannot answer this: it deliberately maps -/// self-ownership to `None` (the #74761 pre-write adoption). The exit-2 -/// self-heal below needs the raw fact, because a `hermes update` child that -/// refuses over OUR marker is a handoff-recognition failure, not a real -/// concurrent update. +/// A raw read is used instead of `live_marker_owner` on purpose: that +/// helper folds in age and liveness policy (and, since the #74761 +/// adoption work, self-ownership handling has changed shape more than +/// once). The exit-2 self-heal below needs exactly one raw fact — does +/// the marker name our PID — because a `hermes update` child that +/// refuses over OUR marker is a handoff-recognition failure in a stale +/// checkout, not a real concurrent update. fn marker_owned_by_self(path: &Path) -> bool { std::fs::read_to_string(path) .ok()