ace-assign 0.73.0 → 0.73.2
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/CHANGELOG.md +11 -0
- data/docs/usage.md +18 -0
- data/lib/ace/assign/cli/commands/list.rb +3 -2
- data/lib/ace/assign/molecules/assignment_discoverer.rb +5 -0
- data/lib/ace/assign/molecules/runtime_control_surface_runner.rb +6 -2
- data/lib/ace/assign/molecules/skill_assign_source_resolver.rb +9 -0
- data/lib/ace/assign/version.rb +1 -1
- data/lib/ace/assign.rb +13 -0
- metadata +32 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae08476e5414f7ce2059dded5afe8dfd4de816c47be62e94e80f718633708b1d
|
|
4
|
+
data.tar.gz: 12f65ec84777c48848aa890c96a6bcb668a2d74b1a8adc86859eca9688184cf3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4bff793e68ecf69f568c4c4eef2dd4245fd62eac2d414f95b24fae2ef29e71a751ab23a07cf9529bd4abf104e766be0d050b0dbcd3fc5453b4c9245cc2fed974
|
|
7
|
+
data.tar.gz: e47b67f585f61f6fd35ecba390c7a4c7c1f658ff57d750c74c8cb59b0673bb2219763698008b6ac2bf8385f59dd8b36e34899df8d2cd6a282a35f3c12f132bd5
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.73.2] - 2026-11-10
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Expose assignment discovery through its owner API with per-project configuration and typed read errors.
|
|
15
|
+
|
|
16
|
+
## [0.73.1] - 2026-10-20
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- Honor `ACE_TOOLCHAIN=installed` for published-gem execution and context propagation without source-runtime fallback; retain default auto development behavior.
|
|
20
|
+
|
|
10
21
|
|
|
11
22
|
## [0.73.0] - 2026-10-20
|
|
12
23
|
|
data/docs/usage.md
CHANGED
|
@@ -218,3 +218,21 @@ plans. Each plan keeps its own history.
|
|
|
218
218
|
The old protected/attempt-evidence and installation paths are removed from the
|
|
219
219
|
local flow. No journal, admission service, or second queue is required to
|
|
220
220
|
create, read, or drive an assignment.
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
### Reading assignments from another project in Ruby
|
|
224
|
+
|
|
225
|
+
Use the installed owner's explicit-root inventory when observing a worktree:
|
|
226
|
+
|
|
227
|
+
```ruby
|
|
228
|
+
Ace::Assign::Molecules::AssignmentDiscoverer
|
|
229
|
+
.for_project(project_root: worktree_path)
|
|
230
|
+
.find_all(include_completed: true)
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
The call resolves that directory's configuration cascade without changing cwd or
|
|
234
|
+
`Ace::Assign.config`. Relative `cache_dir` and `CACHE_BASE` values resolve against
|
|
235
|
+
the supplied root; absolute values remain absolute. An explicit root takes
|
|
236
|
+
precedence over `PROJECT_ROOT_PATH`. CLI commands retain their existing cwd-based
|
|
237
|
+
cache resolution, including relative `CACHE_BASE`. The API reads current owner
|
|
238
|
+
records on every invocation; it creates no observation cache.
|
|
@@ -49,8 +49,9 @@ module Ace
|
|
|
49
49
|
option :debug, aliases: ["-d"], type: :boolean, default: false, desc: "Show debug output"
|
|
50
50
|
|
|
51
51
|
def call(**options)
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
cache = Ace::Assign.cache_dir
|
|
53
|
+
discoverer = Molecules::AssignmentDiscoverer.new(cache_base: cache)
|
|
54
|
+
manager = Molecules::AssignmentManager.new(cache_base: cache)
|
|
54
55
|
current_id = manager.current_id
|
|
55
56
|
|
|
56
57
|
all_assignments = discoverer.find_all(include_completed: true)
|
|
@@ -9,6 +9,11 @@ module Ace
|
|
|
9
9
|
# (step scanning) to produce AssignmentInfo objects with full
|
|
10
10
|
# state, progress, and current step information.
|
|
11
11
|
class AssignmentDiscoverer
|
|
12
|
+
# Public read-only inventory for a specified project/worktree.
|
|
13
|
+
def self.for_project(project_root:, env: ENV)
|
|
14
|
+
new(cache_base: Ace::Assign.cache_dir_for(project_root: project_root, env: env))
|
|
15
|
+
end
|
|
16
|
+
|
|
12
17
|
# @param cache_base [String, nil] Base cache directory
|
|
13
18
|
def initialize(cache_base: nil)
|
|
14
19
|
@cache_base = cache_base || Ace::Assign.cache_dir
|
|
@@ -75,13 +75,13 @@ module Ace
|
|
|
75
75
|
working_dir: working_dir,
|
|
76
76
|
visible_handoff: visible_handoff
|
|
77
77
|
)
|
|
78
|
-
runtime.send_command(pane: pane_target, command: shell_command)
|
|
78
|
+
runtime.send_command(pane: pane_target, command: Ace::Support::Cli::Toolchain.shell_setup + shell_command)
|
|
79
79
|
rescue Ace::Runtime::Error => e
|
|
80
80
|
raise Error, "Failed to send fork command: #{e.message}"
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
def run_script_in_pane(pane_target:, script_path:)
|
|
84
|
-
runtime.send_command(pane: pane_target, command: "bash #{File.expand_path(script_path).shellescape}")
|
|
84
|
+
runtime.send_command(pane: pane_target, command: Ace::Support::Cli::Toolchain.shell_setup + "bash #{File.expand_path(script_path).shellescape}")
|
|
85
85
|
rescue Ace::Runtime::Error => e
|
|
86
86
|
raise Error, "Failed to send fork command: #{e.message}"
|
|
87
87
|
end
|
|
@@ -135,6 +135,10 @@ module Ace
|
|
|
135
135
|
def build_exec_command(command:, env:)
|
|
136
136
|
cmd = Array(command).map { |part| Shellwords.escape(part.to_s) }.join(" ")
|
|
137
137
|
env_hash = env.respond_to?(:to_h) ? env.to_h : {}
|
|
138
|
+
if Ace::Support::Cli::Toolchain.installed?
|
|
139
|
+
env_hash = env_hash.merge(Ace::Support::Cli::Toolchain.child_environment)
|
|
140
|
+
env_hash.keys.grep(/\ABUNDLER?_/).each { |key| env_hash[key] = nil }
|
|
141
|
+
end
|
|
138
142
|
unset_parts = []
|
|
139
143
|
assign_parts = []
|
|
140
144
|
|
|
@@ -54,6 +54,11 @@ module Ace
|
|
|
54
54
|
configured_skill_paths = skill_paths || Ace::Assign.config["skill_source_paths"]
|
|
55
55
|
configured_workflow_paths = workflow_paths || Ace::Assign.config["workflow_source_paths"]
|
|
56
56
|
|
|
57
|
+
if Ace::Support::Cli::Toolchain.installed?
|
|
58
|
+
configured_skill_paths = []
|
|
59
|
+
configured_workflow_paths = []
|
|
60
|
+
end
|
|
61
|
+
|
|
57
62
|
canonical_paths = discover_canonical_skill_source_paths
|
|
58
63
|
canonical_workflow_paths = discover_canonical_workflow_source_paths
|
|
59
64
|
override_paths = normalize_paths(configured_skill_paths || [])
|
|
@@ -459,6 +464,8 @@ module Ace
|
|
|
459
464
|
end
|
|
460
465
|
end
|
|
461
466
|
|
|
467
|
+
return registry_paths.uniq if Ace::Support::Cli::Toolchain.installed?
|
|
468
|
+
|
|
462
469
|
(registry_paths + discover_package_default_source_paths(package_glob)).uniq
|
|
463
470
|
end
|
|
464
471
|
|
|
@@ -501,6 +508,8 @@ module Ace
|
|
|
501
508
|
end
|
|
502
509
|
|
|
503
510
|
def external_implicit_source?(source, directory)
|
|
511
|
+
return false if Ace::Support::Cli::Toolchain.installed? && source.origin.to_s == "gem-default"
|
|
512
|
+
|
|
504
513
|
return false if path_within_project?(directory)
|
|
505
514
|
return false if explicit_registration?(source)
|
|
506
515
|
|
data/lib/ace/assign/version.rb
CHANGED
data/lib/ace/assign.rb
CHANGED
|
@@ -47,6 +47,19 @@ module Ace
|
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
+
# Resolve another project's inventory without changing cwd or the cached
|
|
51
|
+
# configuration used by this process. Explicit roots override PROJECT_ROOT_PATH.
|
|
52
|
+
def self.cache_dir_for(project_root:, env: ENV)
|
|
53
|
+
root = File.expand_path(project_root)
|
|
54
|
+
override = env["CACHE_BASE"]
|
|
55
|
+
return File.expand_path(override, root) unless override.to_s.empty?
|
|
56
|
+
|
|
57
|
+
gem_root = Gem.loaded_specs["ace-assign"]&.gem_dir || File.expand_path("../..", __dir__)
|
|
58
|
+
config = Ace::Support::Config.create(start_path: root, gem_path: gem_root,
|
|
59
|
+
test_mode: false).resolve_namespace("assign").data
|
|
60
|
+
File.expand_path(config.fetch("cache_dir", ".ace-local/assign"), root)
|
|
61
|
+
end
|
|
62
|
+
|
|
50
63
|
# Reset config cache (useful for testing)
|
|
51
64
|
def self.reset_config!
|
|
52
65
|
@config = nil
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-assign
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.73.
|
|
4
|
+
version: 0.73.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-10
|
|
10
|
+
date: 2026-11-10 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-llm-providers-cli
|
|
@@ -16,6 +16,9 @@ dependencies:
|
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
18
|
version: 0.36.1
|
|
19
|
+
- - ">="
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: 0.36.3
|
|
19
22
|
type: :runtime
|
|
20
23
|
prerelease: false
|
|
21
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -23,6 +26,9 @@ dependencies:
|
|
|
23
26
|
- - "~>"
|
|
24
27
|
- !ruby/object:Gem::Version
|
|
25
28
|
version: 0.36.1
|
|
29
|
+
- - ">="
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: 0.36.3
|
|
26
32
|
- !ruby/object:Gem::Dependency
|
|
27
33
|
name: ace-support-fs
|
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -78,6 +84,9 @@ dependencies:
|
|
|
78
84
|
- - "~>"
|
|
79
85
|
- !ruby/object:Gem::Version
|
|
80
86
|
version: '0.6'
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 0.6.10
|
|
81
90
|
type: :runtime
|
|
82
91
|
prerelease: false
|
|
83
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -85,6 +94,9 @@ dependencies:
|
|
|
85
94
|
- - "~>"
|
|
86
95
|
- !ruby/object:Gem::Version
|
|
87
96
|
version: '0.6'
|
|
97
|
+
- - ">="
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: 0.6.10
|
|
88
100
|
- !ruby/object:Gem::Dependency
|
|
89
101
|
name: ace-support-core
|
|
90
102
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -106,6 +118,9 @@ dependencies:
|
|
|
106
118
|
- - "~>"
|
|
107
119
|
- !ruby/object:Gem::Version
|
|
108
120
|
version: '0.18'
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: 0.18.4
|
|
109
124
|
type: :runtime
|
|
110
125
|
prerelease: false
|
|
111
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -113,6 +128,9 @@ dependencies:
|
|
|
113
128
|
- - "~>"
|
|
114
129
|
- !ruby/object:Gem::Version
|
|
115
130
|
version: '0.18'
|
|
131
|
+
- - ">="
|
|
132
|
+
- !ruby/object:Gem::Version
|
|
133
|
+
version: 0.18.4
|
|
116
134
|
- !ruby/object:Gem::Dependency
|
|
117
135
|
name: ace-support-nav
|
|
118
136
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -120,6 +138,9 @@ dependencies:
|
|
|
120
138
|
- - "~>"
|
|
121
139
|
- !ruby/object:Gem::Version
|
|
122
140
|
version: '0.28'
|
|
141
|
+
- - ">="
|
|
142
|
+
- !ruby/object:Gem::Version
|
|
143
|
+
version: 0.28.8
|
|
123
144
|
type: :runtime
|
|
124
145
|
prerelease: false
|
|
125
146
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -127,6 +148,9 @@ dependencies:
|
|
|
127
148
|
- - "~>"
|
|
128
149
|
- !ruby/object:Gem::Version
|
|
129
150
|
version: '0.28'
|
|
151
|
+
- - ">="
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
version: 0.28.8
|
|
130
154
|
- !ruby/object:Gem::Dependency
|
|
131
155
|
name: ace-b36ts
|
|
132
156
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -232,6 +256,9 @@ dependencies:
|
|
|
232
256
|
- - "~>"
|
|
233
257
|
- !ruby/object:Gem::Version
|
|
234
258
|
version: '0.6'
|
|
259
|
+
- - ">="
|
|
260
|
+
- !ruby/object:Gem::Version
|
|
261
|
+
version: 0.8.1
|
|
235
262
|
type: :runtime
|
|
236
263
|
prerelease: false
|
|
237
264
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -239,6 +266,9 @@ dependencies:
|
|
|
239
266
|
- - "~>"
|
|
240
267
|
- !ruby/object:Gem::Version
|
|
241
268
|
version: '0.6'
|
|
269
|
+
- - ">="
|
|
270
|
+
- !ruby/object:Gem::Version
|
|
271
|
+
version: 0.8.1
|
|
242
272
|
- !ruby/object:Gem::Dependency
|
|
243
273
|
name: ace-support-test-helpers
|
|
244
274
|
requirement: !ruby/object:Gem::Requirement
|