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 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
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "Apache-2.0",
25
25
  "name": "agentty",
26
- "version": "0.8.10"
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.10"
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.10"
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.10",
71
+ "version": "0.8.11",
72
72
  "volta": {
73
73
  "node": "18.14.1",
74
74
  "npm": "9.5.0"