Skip to content

v0.4.3: async claims, and the queue plays fair

Choose a tag to compare

@wkoverfield wkoverfield released this 06 Jul 00:18
4e5423b

The coordination release: claims you can wait on, queue for, and scope your commits by.

Added

  • Async claims: quilt claim <target> --queue (MCP queue: true). Denied by a holder? Register interest, return immediately, keep working. You are auto-granted the target when it frees, and the grant surfaces at your next status, get_status, or claim retry as "granted while you waited". FIFO, self-healing, no daemon. quilt fleet shows the queue, and holders see who is waiting behind them.
  • quilt claim <target> --wait [seconds] (MCP wait): block until denied targets free up (holder releases, commits, or their lease lapses). Validated eagerly: a swallowed path argument is a loud error, never a silent partial claim.
  • quilt commit --mine [paths...] and preview --mine [paths...] (MCP paths): a hard allow-list. Name files or directory prefixes and nothing else rides into the commit.
  • The contested-tree orphan gate: when another actor holds a live claim, a new untracked file you never claimed or edited is left out loudly (skippedUnowned) instead of swept in by inference. Solo trees are exempt. Forward symbol claims (--creating) and captured edits count as ownership.
  • Global --as <id>: per-command actor identity, the ergonomic form of QUILT_ACTOR=<id>.

Fixed

  • The queue outranks a walk-up claim on a just-lapsed lease: "you're next" means next.
  • No queue-jumping across mixed granularity: an earlier blocked whole-file waiter reserves its target.
  • Holding a narrower claim (a symbol) no longer silently voids your queued interest in the wider one (the whole file).
  • Queued grants live at least the full interest window; release cancels your own queued interest; grant announcements can no longer be lost to a timing race.

Install: npm install -g @quilt-dev/cli

Full changelog: https://github.com/wkoverfield/quilt/blob/main/CHANGELOG.md