saffron-ai 0.9.5 → 0.9.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
@@ -5,6 +5,60 @@ the VS Code extension (`ChathurangaJayasinghe.saffron-vscode`) and the
5
5
  JetBrains plugin (`ai.saffron.jetbrains`). Dates are publish dates. Each
6
6
  release heading names its main feature: `## <version>: <title>`.
7
7
 
8
+ ## 0.9.6: Dashboard figures you can trust
9
+
10
+ Released 2026-10-05.
11
+
12
+ Runner
13
+
14
+ - **Three dashboard figures no longer flatter the suite.** *Recorded*
15
+ counted a stale recording, one whose scenario was edited since and
16
+ needs the agent again, so the dashboard could say 100% while `saffron
17
+ status` said otherwise; it now counts current recordings only, and at
18
+ 100% says "every scenario has a current recording". *Passing* and the
19
+ last run's pass rate counted a heal whose zero-AI proof had failed;
20
+ such a heal is now "healed, unverified", out of the pass rate, with its
21
+ own stripe in the health bar, a count on the tiles and a mark in the
22
+ healed-again list. *Flaky* counted a scenario that was red on one base
23
+ URL and green on another as flipping; flips are now counted between
24
+ consecutive runs on the same base URL, and a first recording that
25
+ failed is left out. `status --json` gains `quality.suite.unverified`,
26
+ `quality.lastRun.unverified`, and `unverified` on tags and healing
27
+ entries. Both IDE dashboards show the runner's page, so they follow
28
+ without a plugin update.
29
+ - **An upload whose file does not exist says so.** Under a project path
30
+ reached through a link (a temp folder on macOS), the message was
31
+ "outside the project". The repository's own example now names its
32
+ upload file relative to the project, as replay has resolved it since
33
+ 0.9.4.
34
+ - **Uploads are single files.** A folder passed to a file input was let
35
+ through, and a folder upload sends everything inside it, dotfiles such
36
+ as `.env` included. The agent's upload and replay both refuse a folder
37
+ now.
38
+ - **`saffron report --merge` never hides another environment's result.**
39
+ A re-run attempt replaced the earlier attempt of the same shard number
40
+ before checking that both ran the same suite against the same base
41
+ URL, so a green production attempt could silently drop a red staging
42
+ one. An attempt now replaces only the same shard of the same suite,
43
+ split and base URL; anything else is refused, naming the base URLs.
44
+ - **`saffron export --branch` works with `"features": "."`.** With the
45
+ scenarios at the project root, the shared StepSets were left out of the
46
+ check against the commit the branch starts on, so a correctly bound
47
+ proposal was refused as using a StepSet "not defined anywhere".
48
+ - A replay that finds its recording stale no longer leaves a listener on
49
+ the browser context.
50
+
51
+ VS Code extension 0.5.1
52
+
53
+ - **The dashboard tab shows the Saffron mark in dark themes.** It used the
54
+ activity bar icon, one dark shape that VS Code tints there and a tab
55
+ draws as is, so it was dark on a dark tab.
56
+ - **Cancelling an import stops every process it started, on macOS and
57
+ Linux too.** The CLI runs in a process group of its own, so a `gh` or
58
+ `az` download that outlives it is stopped as well, with a forced stop
59
+ for one that ignores the first request. Output over 16 MB ends the
60
+ command with a clear message.
61
+
8
62
  ## 0.9.5: CI heals you can trust
9
63
 
10
64
  Released 2026-10-04.