ace-test-runner-e2e 0.40.5 → 0.40.6

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: 94e961591334cd5f25260b037fed72385202036621fb48ec472af41bae2d0bba
4
- data.tar.gz: dbf8fc48822a82b28ff9fda37853687da1fbd46ae82e7c56ae130ea51c92681f
3
+ metadata.gz: 8d69fa4e48a31e4dd0f92cf961dfcc9b1c2fca7b392e61519add56ab806bc492
4
+ data.tar.gz: d07a32cde8ab19937798129a563d65ef97884caf0158ce0dd5c6f757fdec352c
5
5
  SHA512:
6
- metadata.gz: 4997ee129e8708c19e0cf2d31547f44ae0f21413da69a41530d635364363d3d729de265992f6d253d4f2cde4d8bf33bee3c8c2c740420440f6e9dab1aaf93d24
7
- data.tar.gz: f4ee1fcca03f29bfdc54ae07d82c48ad166df55dc67f684b7a1350c4b27e89c9561add0bd66737dc5db1f902924f5617891482ad1b29cfa99bea0e7a7f14530a
6
+ metadata.gz: d6c7df27616d263629bcda75f2a3ff6eb098170115a8ad3a21cab96ff3e860a380f555c9d06603baef3f6922a7616880392c79cace2888ae89da41d40e55a275
7
+ data.tar.gz: 39158b36f9a7b20d5c1e7ee8c5ae27b488482e4724d63758234a59700ca98ec67c8ac03e6783d5b1369b2fafa027db8013f188ad2c70716a330f2ac4bfeeb12b
data/CHANGELOG.md CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.40.6] - 2026-09-29
11
+
12
+ ### Fixed
13
+ - macOS E2E runs keep provider auth: sandbox HOME/TMPDIR/XDG_RUNTIME_DIR/TMUX_TMPDIR overrides now apply only when the bwrap sandbox is supported.
14
+ - Prepared env clears RUBYOPT/RUBYLIB with empty strings so ambient loader variables cannot leak into runner/verifier children (plain delete does not unset through env-hash spawns, and nil-unset is unreliable once RubyGems re-reads the ambient environment).
15
+
16
+ ### Changed
17
+ - Runner system prompt: scenario-prescribed isolation (for example `env -i` and direct executables) must be executed exactly as written.
18
+ - Verifier system prompt: pre-created placeholder files are input contracts, not postcondition evidence.
19
+
20
+ ### Technical
21
+ - Regression test proving a contaminated parent RUBYLIB cannot reach backend children.
10
22
 
11
23
  ## [0.40.5] - 2026-09-02
12
24
 
@@ -49,13 +49,19 @@ module Ace
49
49
 
50
50
  def prepared_env(base_env = {})
51
51
  env = stringify_keys(base_env)
52
- STRIPPED_ENV_KEYS.each { |key| env.delete(key) }
52
+ # Empty strings clear inherited loader vars for children. A plain
53
+ # delete leaves the parent's value leaking through env-hash spawns,
54
+ # and nil-unset is unreliable once RubyGems auto-activation re-reads
55
+ # the ambient environment.
56
+ STRIPPED_ENV_KEYS.each { |key| env[key] = "" }
53
57
  env["PROJECT_ROOT_PATH"] = @sandbox_root
54
58
  env["ACE_E2E_SOURCE_ROOT"] ||= @source_root if @source_root
55
- env["HOME"] = sandbox_home
56
- env["TMPDIR"] = sandbox_tmp
57
- env["XDG_RUNTIME_DIR"] = sandbox_runtime_dir
58
- env["TMUX_TMPDIR"] ||= sandbox_runtime_dir
59
+ if self.class.supported?
60
+ env["HOME"] = sandbox_home
61
+ env["TMPDIR"] = sandbox_tmp
62
+ env["XDG_RUNTIME_DIR"] = sandbox_runtime_dir
63
+ env["TMUX_TMPDIR"] ||= sandbox_runtime_dir
64
+ end
59
65
  env["BUNDLE_GEMFILE"] ||= File.join(@sandbox_root, ".ace-local", "e2e-runtime", "Gemfile")
60
66
  env["ACE_CONFIG_PATH"] ||= File.join(@sandbox_root, ".ace")
61
67
  env["BUNDLE_APP_CONFIG"] ||= bundler_app_config
@@ -17,7 +17,7 @@ module Ace
17
17
  Rules:
18
18
  - Execute each goal in order
19
19
  - Treat the initial working directory as SANDBOX_ROOT; if a goal needs commands in a created worktree, cd there for execution but keep any declared outcome artifacts under SANDBOX_ROOT/results
20
- - Preserve the sandbox runtime environment; do not reset PATH, HOME, or other provided env vars
20
+ - Preserve the sandbox runtime environment for ACE tooling; do not reset PATH, HOME, or other provided env vars on your own initiative. When a goal prescribes its own isolation (for example `env -i` or direct executables for the tool under test), execute it exactly as written — do not drop `env -i` or substitute partial environment overrides
21
21
  - If `ACE_E2E_SANDBOX_RUNTIME_ROOT` is set, make sure command execution uses `$ACE_E2E_SANDBOX_RUNTIME_ROOT/bin` on PATH in the shell where you run scenario commands
22
22
  - Run `ace-*` commands directly; do not wrap them with `timeout`, `env -i`, or other execution wrappers that can change behavior or hide diagnostics
23
23
  - Do not bypass the public CLI with repo-local executables such as `./exe/ace-*`, `bin/ace-*`, or `ruby .../exe/ace-*`
@@ -41,6 +41,7 @@ module Ace
41
41
  - Treat declared artifacts and helper filenames as hints, not as the source of truth
42
42
  - If a helper file is missing or stale, inspect the sandbox directly before failing the goal
43
43
  - Use artifact mtimes to detect runner ordering mistakes; if postcondition captures are older than the primary command's stdout/stderr/exit, classify the goal as `runner-error` unless direct sandbox state proves a product failure after the command completed
44
+ - Pre-created placeholder files required by the goal contract are input contracts, not postcondition evidence; their emptiness or older mtimes never fails a goal on their own
44
45
  - Use read-only commands in the sandbox when they materially improve confidence (for example: git log/status/show, ls/find/cat)
45
46
  - Do not speculate beyond the provided sandbox evidence and runner observations
46
47
  - For each failed goal, include a category:
@@ -3,7 +3,7 @@
3
3
  module Ace
4
4
  module Test
5
5
  module EndToEndRunner
6
- VERSION = "0.40.5"
6
+ VERSION = "0.40.6"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-test-runner-e2e
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.40.5
4
+ version: 0.40.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-09-05 00:00:00.000000000 Z
10
+ date: 2026-09-29 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-cli