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 +4 -4
- data/README.md +1 -1
- data/lib/agent/lock/version.rb +1 -1
- metadata +42 -10
- data/.envrc +0 -2
- data/.rubocop_todo.yml +0 -90
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aa831ef3bd2d74a6b65c1131ebebec51d914bd92199681d71fef99b568b75faf
|
|
4
|
+
data.tar.gz: bc0d2afc62e90a2e610f0dd4995e05e944ff00cd9a4a9ee2e59a6ad3483a463d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d986bcb837514045683037ebaecd7ddabc4059cf00a9118c8d9998f4ec3ced0e3378ab854a1b21eaaf0a0ad4fce2473d18f8fd994287ac550f5a778ec74171da
|
|
7
|
+
data.tar.gz: 0a1925e8747601cfa147260642eb863c8c7ede69895622ee50c9c5a8c13f5c1656618e699aa80c5bdc11edc53f3728f6401cb08cf7d93bbfe3eca71b023ba736
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/kigster/agent-lock/actions/workflows/main.yml)
|
|
4
4
|
|
|
5
|
-
Advisory file
|
|
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
|
|
data/lib/agent/lock/version.rb
CHANGED
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.
|
|
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.
|
|
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.
|
|
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: '
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
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
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'
|