@unotest/viewer 0.28.0 → 0.30.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,5 +1,72 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.30.0] - 2026-09-03
4
+
5
+ ### Minor Changes
6
+
7
+ - 23de03c: On a hosted viewer (a box), the project and environment you are looking at
8
+ are now named and switched in the viewer's own tree header, in place of
9
+ the checkout directory it used to show there (`current`, which told
10
+ nobody anything). Previously the only way to another environment was
11
+ logging out and using the picker page. The chevrons appear on hover, like
12
+ the refresh button beside them, and only when something fronts the viewer
13
+ and offers it a list; a plain local viewer keeps the folder name it
14
+ always showed. Because
15
+ each environment on a box is its own viewer process, picking one is a full
16
+ page load into that viewer, and the menu shows which test bundle each
17
+ environment is running. The status bar's `.env.<name>` overlay switcher is
18
+ now labelled "env overlay", so the two senses of "environment" no longer
19
+ share a name. `@unotest/viewer/session` carries the two URLs this needs
20
+ (`environmentsUrl`, `switchEnvUrl`) and the `ViewerEnvOption` type, both
21
+ optional — a proxy that does not offer them gets the old behaviour.
22
+
23
+ ### Patch Changes
24
+
25
+ - A run started in the first moments after the viewer boots is now discovered: the run watcher finishes its initial scan of the day directory before reporting itself started, instead of filing such a run as history.
26
+ - Updated dependencies [9f2e244]
27
+ - @unotest/protocol@0.30.0
28
+ - @unotest/core@0.30.0
29
+ - @unotest/dsl@0.30.0
30
+
31
+ ## [0.29.0] - 2026-09-02
32
+
33
+ ### Minor Changes
34
+
35
+ - 64108b8: The Variables panel of a viewer on a box now lists what the box injects
36
+ into every run of the environment — the target URL, the operator's
37
+ variables and the names of the environment's secrets — as read-only rows
38
+ with a `box` badge. It used to read `unotest/.env*`, which never travel
39
+ in a bundle, and show an empty panel next to a full run history; a
40
+ secret's value is still never sent, only its name. The box passes the
41
+ names through `UNOTEST_BOX_VARIABLE_NAMES` / `UNOTEST_BOX_SECRET_NAMES`
42
+ (constants in `@unotest/protocol`); writes to such a key are refused
43
+ with 409 and point at `boxd.config.mjs` / `boxd.mjs secret set`.
44
+
45
+ ### Patch Changes
46
+
47
+ - ab296ff: New `env push`, `env set` and `env rm` commands send an environment's
48
+ values to a box — the target, the variables and the secrets a suite runs
49
+ with there — from the same files a local run reads (`unotest/.env`,
50
+ `.env.<env>`, `.secrets`, `.secrets.<env>`), or from files named with
51
+ `--env-file` / `--secrets-file`. `.env*` become the box environment's
52
+ variables, `.secrets*` its secrets and `APP_BASE_URL` its target;
53
+ `UNOTEST_*` and empty values stay home and are listed as skipped. A push
54
+ replaces the box's layers and reports what it removed; `env set` reads
55
+ one value from stdin, never from the command line. Values never print.
56
+ The commands use the project token of `bundle push`, minted on the box
57
+ with the new `--values` scope — a token without it is refused, so a CI
58
+ token that pushes suites cannot rewrite an environment's credentials.
59
+ `@unotest/protocol` carries the wire (`box-values.ts`) and `TARGET_ENV_VAR`.
60
+ The viewer's messages about box-held variables now point at these
61
+ commands instead of the box's shell.
62
+ - Updated dependencies [ab296ff]
63
+ - Updated dependencies [64108b8]
64
+ - Updated dependencies [64108b8]
65
+ - Updated dependencies [64108b8]
66
+ - @unotest/protocol@0.29.0
67
+ - @unotest/core@0.29.0
68
+ - @unotest/dsl@0.29.0
69
+
3
70
  ## [0.28.0] - 2026-09-01
4
71
 
5
72
  ### Patch Changes
@@ -1,5 +1,11 @@
1
1
  import { IRunnerAdapter, IDslLanguageService, IProcessLauncher } from '@unotest/protocol';
2
2
 
3
+ interface BoxInjectedNames {
4
+ /** Non-secret: the viewer has their values in its own environment. */
5
+ readonly variables: readonly string[];
6
+ /** Secret: names only, a value never reaches the browser. */
7
+ readonly secrets: readonly string[];
8
+ }
3
9
  interface ViewerQueueConfig {
4
10
  /** With queueing off, the viewer starts every run immediately — and
5
11
  * so does every terminal. Nothing serialises them. */
@@ -73,6 +79,10 @@ declare function startViewerServer(opts: StartViewerOptions): Promise<ViewerHand
73
79
  * the installed `@unotest/*` runner packages (by name — DIP boundary
74
80
  * intact). `UNOTEST_RUNNER_PKG` (legacy single-runner var) and
75
81
  * `UNOTEST_TARGET` just pick which detected target is active at boot. */
82
+ /** The box's injected-variable names, when a box supervisor set them.
83
+ * Both lists come together or not at all; an environment with no secrets
84
+ * still has a target URL, so "set" means the variables list is present. */
85
+ declare function boxInjectedFrom(env: NodeJS.ProcessEnv): BoxInjectedNames | undefined;
76
86
  /** Everything the standalone launcher reads from its environment, in one
77
87
  * pure place so the plumbing is testable without starting a server.
78
88
  *
@@ -83,4 +93,4 @@ declare function startViewerServer(opts: StartViewerOptions): Promise<ViewerHand
83
93
  declare function viewerCliOptions(env: NodeJS.ProcessEnv, cwd: string): Omit<StartViewerOptions, "runners">;
84
94
  declare function runViewerCli(): Promise<void>;
85
95
 
86
- export { type RunnerEntry, type StartViewerOptions, type ViewerHandle, runViewerCli, startViewerServer, viewerCliOptions };
96
+ export { type RunnerEntry, type StartViewerOptions, type ViewerHandle, boxInjectedFrom, runViewerCli, startViewerServer, viewerCliOptions };