@unotest/viewer 0.11.0 → 0.13.0

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
@@ -1,7 +1,84 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.13.0] - 2026-08-15
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [39ca34f]
8
+ - Updated dependencies [a4f0a62]
9
+ - Updated dependencies [8d70df6]
10
+ - @unotest/dsl@0.13.0
11
+ - @unotest/protocol@0.13.0
12
+
3
13
  All notable changes to `@unotest/viewer` are documented in this file.
4
14
 
15
+ ## [0.12.0] - 2026-08-14
16
+
17
+ ### Patch Changes
18
+
19
+ - 479aa25: Feedback batch from a real-world integration (bot-service): shell()
20
+ safety, run diagnostics, boolean-attribute probes, linter ergonomics.
21
+
22
+ **BREAKING — `shell()` fails the step on a non-zero exit code.**
23
+ Previously a non-zero exit resolved silently and a forgotten `res.code`
24
+ check produced false-green tests. Migration: calls where non-zero is
25
+ expected (probes, `grep -q`) pass `{allowNonZero: true}` as the last
26
+ argument and keep checking `res.code`; calls that asserted
27
+ `assertTrue(out.code == 0, ...)` can drop the assert. More shell()
28
+ hardening: a missing binary is a distinct "failed to start" error (was a
29
+ fake `code: 1`), output over 10 MiB fails loudly (was silent
30
+ truncation), and every call has a wall-clock budget
31
+ (`sandbox.shellTimeoutMs`, default 120 s, or per-call `{timeoutMs}`) —
32
+ a detached grandchild holding the stdio pipes no longer hangs the
33
+ scenario forever; the timeout error explains the detach recipe.
34
+
35
+ New capabilities:
36
+
37
+ - `waitForFile(path, pattern?, {timeoutMs})` — poll a file until it
38
+ exists / contains a substring or regex; the file-side `waitForText`
39
+ for background processes. Returns the content.
40
+ - `sandbox.exportSecrets: [names]` — explicit allowlist of `.secrets*`
41
+ variables exported into `shell()` subprocess env (still masked in
42
+ logs). Secrets stay out of `process.env` otherwise.
43
+ - `isDisabled(loc)` / `isEnabled(loc)` — honest disabled probe (native
44
+ `:disabled` incl. fieldset inheritance, or `aria-disabled`);
45
+ `hasAttribute(loc, name)` — presence probe for boolean attributes
46
+ (`getAttribute` reads `""` for present and absent alike).
47
+ - Generators: `randomWord(len)` (letters only — digit-free markers),
48
+ `nowMs()`, `today()`, `daysFromNow(n)` (previously documented in the
49
+ skills but not implemented).
50
+ - Failed runs report the enclosing step: `✗ test: … in step "…"` in the
51
+ console, `stepLabel` in the failure bundle and `inspect_runtime`.
52
+ - Every CLI run prints a one-line header: active environment, layer
53
+ files (missing ones flagged) and effective `baseUrl`; `run_test` /
54
+ `explore_start` replies echo `baseUrl` next to `environment`.
55
+ - `run_test` accepts per-call `env` — the spawned runner child gets
56
+ `UNOTEST_ENV=<env>` for that run only.
57
+ - Linter: `// lint-ok: <reason>` silences warning/info diagnostics on
58
+ its line (reason required; errors never suppressible); new
59
+ `lint:echo-assert` warns when `waitForText`/`assertText` overlaps a
60
+ value the scenario itself filled (chat echo trap);
61
+ `lint:goto-concat` / `lint:regex-invalid` are now configurable in
62
+ `linter.rules` (they were emitted but missing from the config schema).
63
+ - A `_helpers` file that fails to parse is reported as the root cause in
64
+ `unotest-web lint` (and explore replies list `unparsableHelperFiles`)
65
+ instead of silently cascading into "Unknown function" at every call
66
+ site. The viewer logs the same condition (patch).
67
+
68
+ - 5dd59af: The Steps tree renders on the editor (canvas) background, matching the
69
+ Code mode next to it — previously it sat on the panel chrome color. The
70
+ snapshot tab's read-only source view gets the same canvas background.
71
+ - 7069d24: Panels no longer blend together: the shell adopts a JetBrains-new-UI
72
+ "islands" layout. The sidebar tree, the main content area, the terminal
73
+ tool window and the run-view inspector dock are rounded cards floating
74
+ on a darker shell background; the gap channels between them are the
75
+ separators (with rounded corners at every seam), replacing the old
76
+ flat 1px borders. Works in both light and dark themes via a new
77
+ `shell` design token.
78
+ - Updated dependencies [40300d3]
79
+ - @unotest/dsl@0.12.0
80
+ - @unotest/protocol@0.12.0
81
+
5
82
  ## [0.11.0] - 2026-08-13
6
83
 
7
84
  ### Minor Changes