ace-llm-providers-cli 0.36.1 → 0.36.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 +14 -0
- data/lib/ace/llm/providers/cli/molecules/safe_capture.rb +18 -2
- data/lib/ace/llm/providers/cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 31bd7e17459ce8d8e8c1bc358819d49fbd919fa5c5fefbfab977d1a4993983c6
|
|
4
|
+
data.tar.gz: 47a14679feaea4018e4a437a36ddfb176a9392909db2c4eb68a49e7773927348
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8368b8e11eb5e0afa9e9e4fef56696bd16024b0ded23fca5e54689d86694a1aa045f6df1d701b1cadbe8281ccb04b992d861884bf5b4c1805da8d551979ecb48
|
|
7
|
+
data.tar.gz: e5353cb3b9734d28b9003d6017b3a31fbd61c8dd36d781c97b211f6e795323551b1ec0226ae527c4ca788df873983b001850afe0f159131605475700566901fe
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.36.2] - 2026-10-16
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Terminate coding-agent subprocess groups when a caller interrupts a capture, before Open3 waits for the child.
|
|
15
|
+
|
|
16
|
+
- `SafeCapture`: repair the `readiness.nil.` typo (missing `?`) introduced in
|
|
17
|
+
0.36.0 that raised `NoMethodError` on every successful supervised CLI
|
|
18
|
+
capture before any model call, breaking all CLI-delegating providers
|
|
19
|
+
(codex, agy, claude, pi). Regression tests pin readiness semantics
|
|
20
|
+
(String/nil/unsupervised); signal-classification tests now exercise an
|
|
21
|
+
unsupervised direct child, since the Linux supervisor converts child
|
|
22
|
+
signals to exit status by design.
|
|
23
|
+
|
|
10
24
|
## [0.36.1] - 2026-10-01
|
|
11
25
|
|
|
12
26
|
### Technical
|
|
@@ -97,7 +97,7 @@ module Ace
|
|
|
97
97
|
# StandardError describing a supervisor-reported child spawn
|
|
98
98
|
# failure, or nil when the child group started normally.
|
|
99
99
|
def child_spawn_failure
|
|
100
|
-
return nil if supervised != true || readiness.nil
|
|
100
|
+
return nil if supervised != true || readiness.nil?
|
|
101
101
|
|
|
102
102
|
message = readiness.to_s
|
|
103
103
|
return nil unless message.start_with?("S")
|
|
@@ -203,6 +203,22 @@ module Ace
|
|
|
203
203
|
deadline_seconds: normalized_timeout,
|
|
204
204
|
elapsed_seconds: elapsed_since(started_at)
|
|
205
205
|
)
|
|
206
|
+
ensure
|
|
207
|
+
# A caller may cancel a worker thread while it waits on a coding
|
|
208
|
+
# agent. Clean up before Open3's block unwinds (which otherwise
|
|
209
|
+
# waits for the still-running child). The capture boundary owns
|
|
210
|
+
# the process group, so consumers must not duplicate this policy.
|
|
211
|
+
if pid && (wait_thr.alive? || $!)
|
|
212
|
+
terminate_subprocess_tree(
|
|
213
|
+
pid: pid, pgid: pgid, provider_name: provider_name, supervised: spawn_result.supervised?
|
|
214
|
+
)
|
|
215
|
+
unless wait_thr.join(5)
|
|
216
|
+
terminate_group_or_pid("KILL", pid, pgid)
|
|
217
|
+
wait_thr.join(5)
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
[stdin, stdout, stderr].each { |stream| stream.close unless stream.closed? }
|
|
221
|
+
[out_reader, err_reader].compact.each { |reader| reader.join(1) }
|
|
206
222
|
end
|
|
207
223
|
end
|
|
208
224
|
|
|
@@ -296,7 +312,7 @@ module Ace
|
|
|
296
312
|
end
|
|
297
313
|
|
|
298
314
|
def terminate_subprocess_tree(pid:, pgid:, provider_name:, supervised: false)
|
|
299
|
-
debug_log(provider_name, "
|
|
315
|
+
debug_log(provider_name, "capture cleanup pid=#{pid} pgid=#{pgid || "n/a"}")
|
|
300
316
|
terminate_group_or_pid("TERM", pid, pgid)
|
|
301
317
|
terminate_group_or_pid("KILL", pid, pgid) unless supervised
|
|
302
318
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-llm-providers-cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.36.
|
|
4
|
+
version: 0.36.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-10-16 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-llm
|