agent-lock 0.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13449d302065507190249f6bcf9cea27e2e4ce283a1aa422213122951826d78e
4
- data.tar.gz: db759d6540ea353eda999c77eb02d2b6d8d5887f86e8fad52036ef93774124b6
3
+ metadata.gz: aa831ef3bd2d74a6b65c1131ebebec51d914bd92199681d71fef99b568b75faf
4
+ data.tar.gz: bc0d2afc62e90a2e610f0dd4995e05e944ff00cd9a4a9ee2e59a6ad3483a463d
5
5
  SHA512:
6
- metadata.gz: 2f56d58d5250a8dda75cae4f6a39b741f2186864bf91296954b6996e36b9cf9984413ddb19c92d96570f2286bfc0b88feea58d1ade5e7fcbb2a8e595e74450b5
7
- data.tar.gz: 9421c3c1397eedbd49fbe3ac735aec9f649ef7938bf4f0d16e2bb70368278e5ff60caf5dc291356e43adef931f23f34c3632f120ed8731a78c182be2b9e2ce7e
6
+ metadata.gz: d986bcb837514045683037ebaecd7ddabc4059cf00a9118c8d9998f4ec3ced0e3378ab854a1b21eaaf0a0ad4fce2473d18f8fd994287ac550f5a778ec74171da
7
+ data.tar.gz: 0a1925e8747601cfa147260642eb863c8c7ede69895622ee50c9c5a8c13f5c1656618e699aa80c5bdc11edc53f3728f6401cb08cf7d93bbfe3eca71b023ba736
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Ruby](https://github.com/kigster/agent-lock/actions/workflows/main.yml/badge.svg)](https://github.com/kigster/agent-lock/actions/workflows/main.yml)
4
4
 
5
- Advisory file locks for coding agents that share a checkout.
5
+ Advisory locks on files and folders with pluggable backends (redis and file-system provided out the box, with redis being the default if it's available locally). This locking tool is meant to be used by the coding agents that share a checkout.
6
6
 
7
7
  ## What it is
8
8
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Agent
4
4
  module Lock
5
- VERSION = "0.2.1"
5
+ VERSION = "2.0.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agent-lock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Gredeskoul
@@ -29,14 +29,42 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0.1'
32
+ version: '0.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.1'
39
+ version: '0.5'
40
+ - !ruby/object:Gem::Dependency
41
+ name: dry-cli-help
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.5'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.5'
54
+ - !ruby/object:Gem::Dependency
55
+ name: dry-cli-ui
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.5'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.5'
40
68
  - !ruby/object:Gem::Dependency
41
69
  name: pastel
42
70
  requirement: !ruby/object:Gem::Requirement
@@ -65,10 +93,15 @@ dependencies:
65
93
  - - "~>"
66
94
  - !ruby/object:Gem::Version
67
95
  version: '5.0'
68
- description: 'A CLI an agent runs before it writes: claim a path or a glob, see who
69
- holds one, record progress inside the lock, and pick the work back up after a crash.
70
- Identity belongs to the session rather than the process, so a lock taken by one
71
- command can be released by the next.'
96
+ description: 'This compact ruby gem is purely CI utility: it''s meant to be used with
97
+ the team of AI agentsexecuting along the plan you approved. Using worktrees and
98
+ parallelism it''s easy to 10x the speed of develpoment of software even compared
99
+ to a single agent working on it. Plus each agent can specialize. With that, these
100
+ agents need a shared locking mechanism to ensure they are not working on the same
101
+ directory, same worktree, and soon. This gem is exaclty that tool. The gem distributed
102
+ as ''agent-lock'', and offers the shortened binary called ''alock'' (although ''agent-lock''
103
+ works as well). The best way to understand the gem is to install and run it with
104
+ ''alock --help''. Furthermore, each subcommand has an additional help.'
72
105
  email:
73
106
  - kigster@gmail.com
74
107
  executables:
@@ -78,8 +111,6 @@ extensions: []
78
111
  extra_rdoc_files: []
79
112
  files:
80
113
  - ".claude/CLAUDE.md"
81
- - ".envrc"
82
- - ".rubocop_todo.yml"
83
114
  - ".ruby-version"
84
115
  - AGENTS.md
85
116
  - CHANGELOG.md
@@ -146,5 +177,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
177
  requirements: []
147
178
  rubygems_version: 4.0.20
148
179
  specification_version: 4
149
- summary: Advisory locks for the several coding agents that end up in one checkout
180
+ summary: Advisory locks to prevent race conditions and general mayhem when multiple
181
+ AI agents unknowinly modify the same souce three.
150
182
  test_files: []
data/.envrc DELETED
@@ -1,2 +0,0 @@
1
- PATH_add bin
2
- PATH_add exe
data/.rubocop_todo.yml DELETED
@@ -1,90 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config --no-auto-gen-timestamp`
3
- # using RuboCop version 1.91.0.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 1
10
- Gemspec/RequiredRubyVersion:
11
- Exclude:
12
- - 'agent-lock.gemspec'
13
-
14
- # Offense count: 3
15
- # Configuration parameters: Prefixes, AllowedPatterns.
16
- # Prefixes: when, with, without
17
- RSpec/ContextWording:
18
- Exclude:
19
- - 'spec/agent/lock/tree_spec.rb'
20
- - 'spec/support/aruba.rb'
21
- - 'spec/support/checkout.rb'
22
-
23
- # Offense count: 3
24
- # Configuration parameters: IgnoredMetadata.
25
- RSpec/DescribeClass:
26
- Exclude:
27
- - '**/spec/features/**/*'
28
- - '**/spec/requests/**/*'
29
- - '**/spec/routing/**/*'
30
- - '**/spec/system/**/*'
31
- - '**/spec/views/**/*'
32
- - 'spec/agent/lock/concurrency_spec.rb'
33
- - 'spec/agent/lock/loading_spec.rb'
34
- - 'spec/agent/lock/manager_spec.rb'
35
-
36
- # Offense count: 1
37
- # This cop supports unsafe autocorrection (--autocorrect-all).
38
- # Configuration parameters: SkipBlocks, EnforcedStyle, OnlyStaticConstants.
39
- # SupportedStyles: described_class, explicit
40
- RSpec/DescribedClass:
41
- Exclude:
42
- - 'spec/agent/lock/manager_spec.rb'
43
-
44
- # Offense count: 46
45
- # Configuration parameters: CountAsOne.
46
- RSpec/ExampleLength:
47
- Max: 20
48
-
49
- # Offense count: 2
50
- # This cop supports unsafe autocorrection (--autocorrect-all).
51
- RSpec/IncludeExamples:
52
- Exclude:
53
- - 'spec/agent/lock/concurrency_spec.rb'
54
-
55
- # Offense count: 5
56
- # Configuration parameters: AssignmentOnly.
57
- RSpec/InstanceVariable:
58
- Exclude:
59
- - 'spec/agent/lock/tree_spec.rb'
60
- - 'spec/support/checkout.rb'
61
-
62
- # Offense count: 2
63
- RSpec/LeakyLocalVariable:
64
- Exclude:
65
- - 'spec/agent/lock/loading_spec.rb'
66
-
67
- # Offense count: 2
68
- # Configuration parameters: EnforcedStyle.
69
- # SupportedStyles: have_received, receive
70
- RSpec/MessageSpies:
71
- Exclude:
72
- - 'spec/agent/lock/freeze_spec.rb'
73
- - 'spec/agent/lock/store_spec.rb'
74
-
75
- # Offense count: 1
76
- RSpec/MultipleDescribes:
77
- Exclude:
78
- - 'spec/agent/lock/manager_spec.rb'
79
-
80
- # Offense count: 6
81
- RSpec/MultipleExpectations:
82
- Max: 2
83
-
84
- # Offense count: 1
85
- # Configuration parameters: AllowedClasses.
86
- Style/OneClassPerFile:
87
- Exclude:
88
- - 'spec/**/*'
89
- - 'test/**/*'
90
- - 'lib/agent/lock/cli.rb'