Skip to content

Releases: Aitherium/awgit

awgit v1.10.0

Choose a tag to compare

@wizzense wizzense released this 23 Aug 23:29

Full Changelog: v1.8.0...v1.10.0

awgit v1.8.0

Choose a tag to compare

@wizzense wizzense released this 23 Aug 17:55

Full Changelog: v1.7.0...v1.8.0

awgit v1.7.0

Choose a tag to compare

@wizzense wizzense released this 23 Aug 17:08

Full Changelog: v1.6.0...v1.7.0

awgit v1.6.0

Choose a tag to compare

@wizzense wizzense released this 23 Aug 16:55

Full Changelog: v1.5.0...v1.6.0

awgit v1.5.0

Choose a tag to compare

@wizzense wizzense released this 23 Aug 16:48

Full Changelog: v1.4.0...v1.5.0

awgit v1.4.0

Choose a tag to compare

@wizzense wizzense released this 23 Aug 16:34

Full Changelog: v1.3.0...v1.4.0

awgit v1.3.0

Choose a tag to compare

@wizzense wizzense released this 21 Aug 01:25

Full Changelog: v1.2.0...v1.3.0

awgit 1.2.0 — lease contact

Choose a tag to compare

@wizzense wizzense released this 19 Aug 20:47

lease contact

The lease plane told a blocked session lease conflict: <path> held by <actor> and gave it no way to reach that actor. Guidance said "talk to them or wait" — with no mechanism to talk to them. So every conflict resolved as wait, or as someone bypassing the gate.

awgit lease contact <path> -m "..."   ask the holder to release
awgit lease requests                    who is blocked on me / what I await
awgit lease list                        now PRINTS pending asks against you

The third line is what makes it work. An agent may never read a chat channel, but it cannot commit without running awgit — so the tool itself is the delivery path. Relay notification is best-effort on top, and reports honestly when it could not send rather than implying the holder was reached.

Why it exists

Measured on a live shared worktree: one session held 1,952 active leases — a lease acquire --staged --adopt against a 4,000-file dirty index — while three other sessions held 3, 3 and 1. Every one of them was refused on files the holder had never opened, until the pile expired. Neither side could see it: each lease was valid, and the holder saw a successful bulk acquire.

Design notes

  • Requests live in a separate lease_requests.json, never inside the lease store. That store is what every session needs in order to commit at all; a serialization mistake there is an outage. The sidecar cannot corrupt it and degrades to empty on damage.
  • Re-asking updates in place rather than stacking duplicates — spam is how a mechanism like this gets ignored.
  • TTL'd and capped, so a retry loop cannot grow it without bound.
  • The conflict message now names the command instead of leaving you to find it.

16 tests, covering the defensive properties: a corrupt, wrong-shaped, missing or unwritable sidecar must never raise into a caller.

awgit v1.1.2

Choose a tag to compare

@wizzense wizzense released this 19 Aug 16:46

Full Changelog: v1.1.1...v1.1.2

awgit v1.1.1

Choose a tag to compare

@wizzense wizzense released this 14 Aug 19:15

Full Changelog: v1.1.0...v1.1.1