agentty 0.8.10 → 0.8.11
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.
- package/CHANGELOG.md +56 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,62 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [v0.8.11] - 2026-05-02
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- testty: add `SoftAssertions` accumulator that batches `match_*` failures and panics
|
|
15
|
+
once at scope end with every recorded message. When constructed with
|
|
16
|
+
`SoftAssertions::with_report`, each recorded `AssertionFailure` is also routed into
|
|
17
|
+
the most recent `ProofCapture::assertions` entry through the new
|
|
18
|
+
`ProofReport::record_soft_failure` plumbing so a single capture can carry every
|
|
19
|
+
batched failure for the proof report. `SoftAssertions` is re-exported from
|
|
20
|
+
`testty::prelude`.
|
|
21
|
+
- testty: re-export `AssertionResult` from `testty::prelude` so downstream code can
|
|
22
|
+
inspect `ProofCapture::assertions` entries (including the structured `failure`
|
|
23
|
+
payload) without naming the full module path.
|
|
24
|
+
- testty: add `Step::Eventually` plus the `Step::eventually` and `Scenario::eventually`
|
|
25
|
+
constructors so test authors can poll any `MatchResult`-returning frame predicate
|
|
26
|
+
against the live PTY frame and surface the last `AssertionFailure` on timeout instead
|
|
27
|
+
of a generic timeout panic. The `FramePredicate` alias is re-exported from
|
|
28
|
+
`testty::prelude`. VHS recordings approximate the new step with a fallback `Sleep` for
|
|
29
|
+
the full timeout because VHS has no predicate-driven wait primitive, keeping GIF
|
|
30
|
+
playback bounded by the same worst-case window the PTY executor would have observed.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- testty: add the new `AssertionResult::failure: Option<Box<AssertionFailure>>` field so
|
|
35
|
+
soft-batched failures preserve the full structured context (`Expected` variant,
|
|
36
|
+
optional `Region`, matched spans, frame excerpt) for HTML and other structured proof
|
|
37
|
+
backends instead of collapsing every failure into a formatted string. The annotated
|
|
38
|
+
text backend renders the first line of `description` next to `[PASS]`/`[FAIL]` and
|
|
39
|
+
indents continuation lines under the marker. `AssertionResult` stays a regular (not
|
|
40
|
+
`#[non_exhaustive]`) struct so downstream crates can both destructure entries on
|
|
41
|
+
`ProofCapture::assertions` and push their own entries with struct literals; existing
|
|
42
|
+
field reads through `assertion.passed` and `assertion.description` stay
|
|
43
|
+
source-compatible, but two downstream patterns break at compile time and must be
|
|
44
|
+
updated together: any caller constructing `AssertionResult` directly must add the new
|
|
45
|
+
`failure: None` field, and any caller exhaustively destructuring `AssertionResult`
|
|
46
|
+
with a `let AssertionResult { passed, description } = ...` pattern (the destructuring
|
|
47
|
+
contract pinned in `crates/testty/tests/public_api.rs`) must add the new `failure`
|
|
48
|
+
binding (or a `..` rest pattern).
|
|
49
|
+
- testty: mark `PtySessionError` as `#[non_exhaustive]` and add the new
|
|
50
|
+
`PtySessionError::Assertion(Box<AssertionFailure>)` variant so structured predicate
|
|
51
|
+
failures from `Step::Eventually` flow through the existing executor return type.
|
|
52
|
+
Downstream `match` arms must include a fallback `_` arm.
|
|
53
|
+
- agentty: replace the fixed `Step::sleep` waits in the shared E2E session-creation
|
|
54
|
+
journeys (`create_session_and_return_to_list` and
|
|
55
|
+
`create_session_with_prompt_and_return_to_list`) with predicate-driven
|
|
56
|
+
`Step::eventually` waiters keyed off the in-session and sessions-list footer markers
|
|
57
|
+
so the journeys settle as soon as the UI transitions and surface a structured
|
|
58
|
+
`AssertionFailure` on timeout instead of an opaque over-sleep.
|
|
59
|
+
- Bump workspace crate metadata and lockfile package versions to `0.8.11`.
|
|
60
|
+
|
|
61
|
+
### Contributors
|
|
62
|
+
|
|
63
|
+
- @andagaev
|
|
64
|
+
- @minev-dev
|
|
65
|
+
|
|
10
66
|
## [v0.8.10] - 2026-04-28
|
|
11
67
|
|
|
12
68
|
### Added
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "Apache-2.0",
|
|
25
25
|
"name": "agentty",
|
|
26
|
-
"version": "0.8.
|
|
26
|
+
"version": "0.8.11"
|
|
27
27
|
},
|
|
28
28
|
"node_modules/@isaacs/cliui": {
|
|
29
29
|
"engines": {
|
|
@@ -542,5 +542,5 @@
|
|
|
542
542
|
}
|
|
543
543
|
},
|
|
544
544
|
"requires": true,
|
|
545
|
-
"version": "0.8.
|
|
545
|
+
"version": "0.8.11"
|
|
546
546
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/agentty-xyz/agentty/releases/download/v0.8.
|
|
3
|
+
"https://github.com/agentty-xyz/agentty/releases/download/v0.8.11"
|
|
4
4
|
],
|
|
5
5
|
"bin": {
|
|
6
6
|
"agentty": "run-agentty.js"
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"zipExt": ".tar.xz"
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
|
-
"version": "0.8.
|
|
71
|
+
"version": "0.8.11",
|
|
72
72
|
"volta": {
|
|
73
73
|
"node": "18.14.1",
|
|
74
74
|
"npm": "9.5.0"
|