ace-compressor 0.24.7 → 0.25.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e1c996e7eab195756890b7054562db27f6c26889dbd877e24bc6b65ecc6dbfee
|
|
4
|
+
data.tar.gz: 19709fefdc5d05514374017e54f0a7b2601ae844fc1e05c894ad1bfd1ce24f05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ac0cacd03fad49727d70c294d9032f2bba3e08b2055f9cf2d4e907be567f8673426eb5826154b53ba9d34bd7d07a775fb302eb5f93a88208fd2c4eb98440641d
|
|
7
|
+
data.tar.gz: 7252c6067f0c3a19029301f4220e82df8dacd4953970705a44813cf4cf370382199f240d2744259a1a3761dcb3597e5580ad48e2b5deff5cf2128b71d99bdcf4
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,42 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.25.2] - 2026-06-30
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- Canonicalized exact and compact compressor source labels through real paths so symlinked project files and missing descendants render stable project-relative labels.
|
|
11
|
+
|
|
12
|
+
### Technical
|
|
13
|
+
- Bumped exact, compact, and agent cache contract keys for the source-labeling fix.
|
|
14
|
+
|
|
15
|
+
## [0.25.1] - 2026-04-16
|
|
16
|
+
|
|
17
|
+
### Technical
|
|
18
|
+
- Updated `TS-COMP-001` sandbox setup to source `mise.toml` from `${ACE_E2E_SOURCE_ROOT:-$PROJECT_ROOT_PATH}` so public-surface smoke runs remain compatible with the shared E2E sandbox contract.
|
|
19
|
+
|
|
20
|
+
## [0.25.0] - 2026-04-14
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- Rewrote `TS-COMP-001` around public-surface goal-style contracts by preserving core smoke journeys, replacing brittle compact-refusal fixture behavior, and adding documented `--mode agent` and `benchmark` smoke goals.
|
|
24
|
+
|
|
25
|
+
### Technical
|
|
26
|
+
- Updated scenario manifests, decision records, and verification criteria to align with impact-first E2E evidence while keeping package test coverage references current.
|
|
27
|
+
|
|
28
|
+
## [0.24.9] - 2026-04-13
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
- Completed the batch i05 migration follow-through for this package and aligned it with the restarted `fast` / `feat` / `e2e` verification model.
|
|
32
|
+
|
|
33
|
+
### Technical
|
|
34
|
+
- Included in the coordinated assignment-driven patch release for batch i05 package updates.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## [0.24.8] - 2026-04-12
|
|
38
|
+
|
|
39
|
+
### Technical
|
|
40
|
+
- Migrated deterministic package tests from `test/{atoms,commands,molecules,organisms}` to `test/fast/...` and updated relative test helper loading for the new layout.
|
|
41
|
+
- Refreshed `TS-COMP-001` E2E scenario metadata and verifier checks to align smoke contracts with the fast/feat/e2e model, including guarded sandbox setup when `mise.toml` is absent.
|
|
42
|
+
|
|
7
43
|
## [0.24.7] - 2026-04-01
|
|
8
44
|
|
|
9
45
|
### Fixed
|
|
@@ -12,9 +12,9 @@ module Ace
|
|
|
12
12
|
PACK_EXTENSION = ".pack"
|
|
13
13
|
METADATA_EXTENSION = ".json"
|
|
14
14
|
SHORT_KEY_LENGTH = 12
|
|
15
|
-
EXACT_CACHE_CONTRACT = "exact-list-shell-
|
|
16
|
-
COMPACT_CACHE_CONTRACT = "compact-list-shell-
|
|
17
|
-
AGENT_CACHE_CONTRACT = "agent-payload-rewrite-
|
|
15
|
+
EXACT_CACHE_CONTRACT = "exact-list-shell-v4"
|
|
16
|
+
COMPACT_CACHE_CONTRACT = "compact-list-shell-v4"
|
|
17
|
+
AGENT_CACHE_CONTRACT = "agent-payload-rewrite-v8"
|
|
18
18
|
|
|
19
19
|
def initialize(cache_root: nil, project_root: Dir.pwd)
|
|
20
20
|
@cache_root = File.expand_path(cache_root || default_cache_root, project_root)
|
|
@@ -445,13 +445,53 @@ module Ace
|
|
|
445
445
|
end
|
|
446
446
|
|
|
447
447
|
def source_label(source)
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
448
|
+
value = source.to_s
|
|
449
|
+
return value if logical_source?(value)
|
|
450
|
+
|
|
451
|
+
source_path = canonical_path(value)
|
|
452
|
+
project_root = canonical_path(Dir.pwd)
|
|
453
|
+
relative = relative_path_under(source_path, project_root)
|
|
454
|
+
return relative if relative
|
|
455
|
+
|
|
456
|
+
value
|
|
457
|
+
end
|
|
458
|
+
|
|
459
|
+
def logical_source?(value)
|
|
460
|
+
return true unless Pathname.new(value).absolute?
|
|
461
|
+
|
|
462
|
+
value.match?(%r{\A[a-z][a-z0-9+\-.]*://}i)
|
|
453
463
|
rescue ArgumentError
|
|
454
|
-
|
|
464
|
+
true
|
|
465
|
+
end
|
|
466
|
+
|
|
467
|
+
def canonical_path(path)
|
|
468
|
+
expanded = File.expand_path(path)
|
|
469
|
+
return File.realpath(expanded) if File.exist?(expanded)
|
|
470
|
+
|
|
471
|
+
canonical_missing_path(expanded)
|
|
472
|
+
rescue
|
|
473
|
+
File.expand_path(path)
|
|
474
|
+
end
|
|
475
|
+
|
|
476
|
+
def canonical_missing_path(path)
|
|
477
|
+
parent = path
|
|
478
|
+
suffix = []
|
|
479
|
+
until File.exist?(parent) || parent == File.dirname(parent)
|
|
480
|
+
suffix.unshift(File.basename(parent))
|
|
481
|
+
parent = File.dirname(parent)
|
|
482
|
+
end
|
|
483
|
+
return path unless File.exist?(parent)
|
|
484
|
+
|
|
485
|
+
File.join(File.realpath(parent), *suffix)
|
|
486
|
+
end
|
|
487
|
+
|
|
488
|
+
def relative_path_under(path, root)
|
|
489
|
+
return "." if path == root
|
|
490
|
+
|
|
491
|
+
prefix = "#{root}#{File::SEPARATOR}"
|
|
492
|
+
return path.delete_prefix(prefix) if path.start_with?(prefix)
|
|
493
|
+
|
|
494
|
+
nil
|
|
455
495
|
end
|
|
456
496
|
|
|
457
497
|
def flush_pending_section!(lines, pending_section)
|
|
@@ -164,14 +164,15 @@ module Ace
|
|
|
164
164
|
end
|
|
165
165
|
|
|
166
166
|
def source_label(source)
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
relative = pathname.relative_path_from(project_root).to_s
|
|
170
|
-
return relative unless relative.start_with?("..")
|
|
167
|
+
value = source.to_s
|
|
168
|
+
return value if logical_source?(value)
|
|
171
169
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
170
|
+
source_path = canonical_path(value)
|
|
171
|
+
project_root = canonical_path(Dir.pwd)
|
|
172
|
+
relative = relative_path_under(source_path, project_root)
|
|
173
|
+
return relative if relative
|
|
174
|
+
|
|
175
|
+
value
|
|
175
176
|
end
|
|
176
177
|
|
|
177
178
|
def mode_label
|
|
@@ -181,6 +182,44 @@ module Ace
|
|
|
181
182
|
def mode_title
|
|
182
183
|
mode_label.capitalize
|
|
183
184
|
end
|
|
185
|
+
|
|
186
|
+
def logical_source?(value)
|
|
187
|
+
return true unless Pathname.new(value).absolute?
|
|
188
|
+
|
|
189
|
+
value.match?(%r{\A[a-z][a-z0-9+\-.]*://}i)
|
|
190
|
+
rescue ArgumentError
|
|
191
|
+
true
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def canonical_path(path)
|
|
195
|
+
expanded = File.expand_path(path)
|
|
196
|
+
return File.realpath(expanded) if File.exist?(expanded)
|
|
197
|
+
|
|
198
|
+
canonical_missing_path(expanded)
|
|
199
|
+
rescue
|
|
200
|
+
File.expand_path(path)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def canonical_missing_path(path)
|
|
204
|
+
parent = path
|
|
205
|
+
suffix = []
|
|
206
|
+
until File.exist?(parent) || parent == File.dirname(parent)
|
|
207
|
+
suffix.unshift(File.basename(parent))
|
|
208
|
+
parent = File.dirname(parent)
|
|
209
|
+
end
|
|
210
|
+
return path unless File.exist?(parent)
|
|
211
|
+
|
|
212
|
+
File.join(File.realpath(parent), *suffix)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
def relative_path_under(path, root)
|
|
216
|
+
return "." if path == root
|
|
217
|
+
|
|
218
|
+
prefix = "#{root}#{File::SEPARATOR}"
|
|
219
|
+
return path.delete_prefix(prefix) if path.start_with?(prefix)
|
|
220
|
+
|
|
221
|
+
nil
|
|
222
|
+
end
|
|
184
223
|
end
|
|
185
224
|
end
|
|
186
225
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-compressor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.25.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-06-30 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-config
|