Skip to content

Redesign exact-generation claim fencing for multi-target claims #161

Description

@Deicyde

Goal

Rebuild the still-useful session-fencing and transport-hardening ideas from closed stale PR #72 on today's arbitrary, atomic multi-target claim contract (#135/#126/#136/#150).

Required behavior

  • give each acquired claim generation a unique lease/session ID and receipt, so a stale process using the same worker ID cannot renew or release its successor
  • support arbitrary exact claim_targets, article/path fallbacks, lean/... helper keys, shared-owner batches, and all-or-nothing acquire/renew/release
  • preserve the current author/<hash> refs and dashboard/runtime contract, with an explicit compatible migration plan for v1 leases
  • make any v1→v2 transition atomic or conservatively blocking; never expose a window where both generations can be acquired
  • pin/verify repository and scratch generations, bound Git input/output/process resources, and use the hardened Git environment
  • reject symbolic/malformed claim refs without dereferencing/mutating their targets
  • never destructively adopt or rewrite a markerless scratch repository
  • handle relative-origin replacement/ABA and terminate surviving process-group descendants

Regression source

Use repaired local descendant 729ae642 from #72 as a test corpus for the six prior blockers, but do not port its old single-target/article-ID namespace or overwrite current #135 batch and #126 transport behavior.

Provenance

Source discussion: #72 (and earlier #34 review). #72 was closed because its snapshot dependencies landed through #95 and its exact branch had 35 conflicts plus an obsolete claim model.

Activity

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