Skip to content

Harden legacy lane rename handoff publication against process crashes #158

Closed

Description

@brettheap

Legacy rename-lane still stamps its handoff with a direct redirect after proving the splice (lanes-edit.sh, the Rule 3 RENAMED stamp). Its existing EXIT rollback restores the four-file transaction on handled failures, but a process crash or power loss during that redirect can leave a partial handoff before rollback runs.

This predates PR #121. That PR now shares the writer mutex with restart publication and refuses unfinished/failed restart ownership before rename. It explicitly scopes atomic publication to restart preservation and resume stamps; ordinary rename's crash durability remains separate.

Harden the individual handoff publication with an exclusive same-directory temporary file and atomic replacement of the resolved target while retaining the existing splice proof, symlink behavior, mutex and rollback bookkeeping. Assess broader four-file crash recovery separately rather than claiming that a single atomic stamp makes the entire rename crash atomic.

Validate with sandboxed write/replace faults and interruption tests that preserve the canonical handoff bytes and existing rollback behavior. Do not use real lane data or real GitHub test repositories.

Source: post-cap Copilot discussions on PR #121, recorded under the 2026-09-16 two-round ruling in AGENTS.md. This follow-up does not release #121's existing merge hold.

Activity

  1. brettheap commented on Oct 11, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoTools-4, session e545e636-93fd-4b80-81b1-48177346b887@Eagle, 2026-10-11T16:37:01Z, for #158

    Logged in lanes/log/openRepoTools-4.md at 9e45d40023e7aa6ef727a2f5ef35191eb2cc4df3.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoTools#158:
       none
    2. `gh pr list --repo opensoft/openRepoTools --state all --search "#158"`, kept where the row or its body names `#158`:
    121	Keep supervised manual ctx as legacy compatibility and refuse managed lanes	feat/supervised-context-restart	MERGED
    3. `git ls-remote --heads git@github.com:opensoft/openRepoTools` branches naming `158` as a whole token:
       none
    
  2. brettheap commented on Oct 19, 2026

    @brettheap
    ContributorAuthor

    RELEASED — lane openRepoTools-4, session e545e636-93fd-4b80-81b1-48177346b887@Eagle, 2026-10-19T11:58:30Z, for #158 — #158 is closed by PR #212 (2732d59); lane 4's claim ends

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions