saffron-ai 0.8.1 → 0.8.3
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 +40 -1
- package/dist-pkg/cli.js +122 -116
- package/package.json +1 -1
- package/skills/saffron/references/config.md +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,9 +4,48 @@ All notable changes to Saffron, in one place: the `saffron-ai` runner (npm),
|
|
|
4
4
|
the VS Code extension (`ChathurangaJayasinghe.saffron-vscode`) and the
|
|
5
5
|
JetBrains plugin (`ai.saffron.jetbrains`). Dates are publish dates.
|
|
6
6
|
|
|
7
|
+
## 0.8.3
|
|
8
|
+
|
|
9
|
+
Released 2026-09-22.
|
|
10
|
+
|
|
11
|
+
Runner
|
|
12
|
+
|
|
13
|
+
- **A `{unique:...}` or `{data:...}` reference inside a data-table cell is
|
|
14
|
+
now recorded as the cell reference (`<table:1:email>`), not as the token
|
|
15
|
+
itself.** The agent types the resolved value, so the recorder matched it
|
|
16
|
+
against the cell as written and missed. Replay was right either way; the
|
|
17
|
+
difference is that editing the cell in the feature file now follows the
|
|
18
|
+
table at zero tokens instead of making the recording stale.
|
|
19
|
+
- Docs: the `model` option says what the default really is (whatever Claude
|
|
20
|
+
Code currently defaults to, which drifts) and which values it takes, so a
|
|
21
|
+
project can pin its recording model.
|
|
22
|
+
|
|
23
|
+
## 0.8.2
|
|
24
|
+
|
|
25
|
+
Released 2026-09-22.
|
|
26
|
+
|
|
27
|
+
Runner
|
|
28
|
+
|
|
29
|
+
- **Split a suite across CI machines: `--shard 2/4` and
|
|
30
|
+
`saffron report --merge`.** `--workers` stops at one machine's cores;
|
|
31
|
+
sharding gives the suite to several. Each shard runs a fixed part, split
|
|
32
|
+
by scenario rather than by file, so one large feature file spreads over
|
|
33
|
+
every machine, and every scenario runs exactly once. `--shard-by file`
|
|
34
|
+
(or `"shardBy": "file"`) keeps each feature file on one machine instead,
|
|
35
|
+
for files whose scenarios share expensive or order-dependent state. A shard writes
|
|
36
|
+
`.saffron/reports/shard-2-of-4.json` instead of `latest.json` and leaves
|
|
37
|
+
`history.jsonl` alone, because part of a run would read as a run in the
|
|
38
|
+
trends. `saffron report --merge` finds the shard reports under `.saffron/`
|
|
39
|
+
(or the folders you name) and writes `latest.json`, `latest.html` and one
|
|
40
|
+
history line, with the same totals, scenario order and trends as an
|
|
41
|
+
unsharded run. It refuses a missing shard, the same shard twice, shards
|
|
42
|
+
that ran a different suite, and shards from different CI runs; merging
|
|
43
|
+
twice does not count the run twice. Setup and teardown run on each shard
|
|
44
|
+
and receive `SAFFRON_SHARD`. The docs have a GitHub Actions example.
|
|
45
|
+
|
|
7
46
|
## 0.8.1
|
|
8
47
|
|
|
9
|
-
Released 2026-09-
|
|
48
|
+
Released 2026-09-22.
|
|
10
49
|
|
|
11
50
|
Runner
|
|
12
51
|
|