@agentty-xyz/testty 0.10.4 → 0.10.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,58 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [v0.10.6] - 2026-06-21
11
+
12
+ ### Added
13
+
14
+ - agentty: show project token usage metrics in the project list.
15
+
16
+ ### Changed
17
+
18
+ - agentty: refresh agent CLI versions after best-effort startup updates, preserving
19
+ provider display order and showing `updating...` while the background refresh runs.
20
+ - agentty: split session worker turn workflows into focused workflow modules.
21
+ - agentty: route prompt image paste handling through the infra client boundary.
22
+ - agentty: route session rebase assistance through the session worker.
23
+ - Bump workspace crate metadata and lockfile package versions to `0.10.6`.
24
+
25
+ ### Fixed
26
+
27
+ - agentty: preserve Antigravity prose after repair failure.
28
+
29
+ ### Contributors
30
+
31
+ - @minev-dev
32
+
33
+ ## [v0.10.5] - 2026-06-20
34
+
35
+ ### Added
36
+
37
+ - testty: `testty run <scenario.yaml>` executes a declarative YAML scenario against any
38
+ binary, so non-Rust projects can drive TUI end-to-end tests without a Rust harness.
39
+ The process exit code is the pass/fail signal. See
40
+ `crates/testty/docs/scenarios-yaml.md`.
41
+ - testty: new `testty::spec` module (`ScenarioSpec`, `StepSpec`, `ExpectSpec`,
42
+ `SpecError`, `LoweredScenario`) deserializes a scenario from YAML and lowers it onto
43
+ the runtime engine shared with the Rust authoring API. `StepSpec`, `ExpectSpec`, and
44
+ `SpecError` are `#[non_exhaustive]`.
45
+
46
+ ### Changed
47
+
48
+ - agentty: remove deprecated direct Gemini CLI/backend support; Google-backed model
49
+ selection now goes through Antigravity.
50
+ - Bump workspace crate metadata and lockfile package versions to `0.10.5`.
51
+
52
+ ### Contributors
53
+
54
+ - @andagaev
55
+ - @dependabot
56
+ - @minev-dev
57
+
58
+ ### Removed
59
+
60
+ - agentty: remove Claude Fable 5 from selectable Claude models.
61
+
10
62
  ## [v0.10.4] - 2026-06-13
11
63
 
12
64
  ### Added
package/README.md CHANGED
@@ -42,9 +42,10 @@ testty update
42
42
  - `proof gallery` — build a gallery from a directory of proof reports.
43
43
  - `update` — update stored scenario snapshots to match current output.
44
44
 
45
- The command-line binary is currently a stub: the command tree is in place, but every
46
- verb prints a "not yet implemented" notice and exits non-zero until the behavior is
47
- wired up.
45
+ `run` executes a YAML scenario against a binary and reports pass/fail through the exit
46
+ code (see [YAML scenarios](docs/scenarios-yaml.md)). The remaining verbs (`schema`,
47
+ `proof open`, `proof gallery`, `update`) are still stubs: they print a "not yet
48
+ implemented" notice and exit non-zero until the behavior is wired up.
48
49
 
49
50
  ## Capabilities
50
51
 
@@ -137,10 +138,36 @@ report.save(&HtmlBackend, Path::new("proof.html")).unwrap();
137
138
  report.save(&JunitBackend, Path::new("proof.xml")).unwrap();
138
139
  ```
139
140
 
141
+ #### Run a scenario from YAML — no Rust required
142
+
143
+ Installing the crate (`cargo install testty`) provides the `testty` binary, so projects
144
+ in any language can drive TUI scenarios with a YAML file:
145
+
146
+ ```yaml
147
+ # scenario.yaml
148
+ session:
149
+ bin: ./myapp
150
+ size: [80, 24]
151
+ steps:
152
+ - wait_for_stable_frame: { stable_ms: 500, timeout_ms: 5000 }
153
+ - press_key: Tab
154
+ expect:
155
+ - selected_tab: Sessions
156
+ ```
157
+
158
+ ```sh
159
+ testty run scenario.yaml
160
+ ```
161
+
162
+ The exit code is the pass/fail signal (`0` = passed), so it drops straight into any CI.
163
+ See [YAML scenarios](docs/scenarios-yaml.md).
164
+
140
165
  ## Resources
141
166
 
142
167
  - [Getting started](docs/getting-started.md) — install, write your first test, run it
143
168
  - [Scenarios](docs/scenarios.md) — describe a sequence of actions and waits
169
+ - [YAML scenarios](docs/scenarios-yaml.md) — run scenarios from a file with
170
+ `testty run`, no Rust required
144
171
  - [Assertions](docs/assertions.md) — check text, colors, and highlights on screen
145
172
  - [Snapshots](docs/snapshots.md) — compare a test against a saved baseline
146
173
  - [Proof pipeline](docs/proof-pipeline.md) — save what a test saw as text, image, GIF,
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "Apache-2.0",
25
25
  "name": "@agentty-xyz/testty",
26
- "version": "0.10.4"
26
+ "version": "0.10.6"
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.10.4"
545
+ "version": "0.10.6"
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.10.4"
3
+ "https://github.com/agentty-xyz/agentty/releases/download/v0.10.6"
4
4
  ],
5
5
  "bin": {
6
6
  "testty": "run-testty.js"
@@ -77,7 +77,7 @@
77
77
  "zipExt": ".tar.xz"
78
78
  }
79
79
  },
80
- "version": "0.10.4",
80
+ "version": "0.10.6",
81
81
  "volta": {
82
82
  "node": "18.14.1",
83
83
  "npm": "9.5.0"