saffron-ai 0.8.4 → 0.8.5
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 +39 -0
- package/dist-pkg/cli.js +134 -130
- package/package.json +1 -1
- package/skills/saffron/SKILL.md +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,45 @@ 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.5
|
|
8
|
+
|
|
9
|
+
Released 2026-09-24.
|
|
10
|
+
|
|
11
|
+
Runner
|
|
12
|
+
|
|
13
|
+
- **A proposal is bound to what you reviewed.** Every proposal now carries
|
|
14
|
+
digests of the scenario's steps, of the committed recording it was
|
|
15
|
+
diffed against and of its own recording, taken when it was filed.
|
|
16
|
+
`saffron accept` recomputes them and refuses a proposal, by reason, when
|
|
17
|
+
any moved since: a step edited, a colleague's heal accepted, a locator
|
|
18
|
+
fix propagated, a pull, a hand edit ("step 3 now reads ... and was
|
|
19
|
+
..."). There is no override; run the scenario again for a proposal
|
|
20
|
+
bound to what is there now, or reject it. `saffron accept`, `saffron
|
|
21
|
+
diff`, `saffron status --json` (`stale`) and both IDE panels show STALE
|
|
22
|
+
with the reason first. A run that finds a stale pending proposal records
|
|
23
|
+
afresh instead of proving it again. Fingerprints are advisory and are
|
|
24
|
+
not bound; data tables, doc strings and the feature edits that
|
|
25
|
+
`--with-feature-edit` would apply are. Proposals filed before this
|
|
26
|
+
release carry no digests and are accepted with a note.
|
|
27
|
+
- **Recordings and proposals are validated on read.** The schema version,
|
|
28
|
+
every step, every action type and field are checked, along with the
|
|
29
|
+
operands each action needs (a click without a usable target, an
|
|
30
|
+
`expectUrl` without a URL, which used to compare "" and pass), and the
|
|
31
|
+
first problem is named by path. An unreadable recording makes its scenario red
|
|
32
|
+
with the reason instead of replaying as garbage or being recorded over;
|
|
33
|
+
`saffron status` marks it `invalid` with the reason (`cacheProblem`);
|
|
34
|
+
an unreadable proposal is reported and left out of listings
|
|
35
|
+
(`unreadableProposals`) instead of blanking them. A file from a newer
|
|
36
|
+
runner, a schema version or an action type this one does not know, says
|
|
37
|
+
to update `saffron-ai`. Fields added within the schema version stay
|
|
38
|
+
optional, so newer caches read on older runners. Hand-written caches may
|
|
39
|
+
omit `recordedAt` and `recordedBy`.
|
|
40
|
+
|
|
41
|
+
Editors (VS Code extension 0.2.10, JetBrains plugin 0.2.5)
|
|
42
|
+
|
|
43
|
+
- Both Proposals panels mark a stale proposal STALE, with the reason and
|
|
44
|
+
what to do, and note a proposal filed by an older runner.
|
|
45
|
+
|
|
7
46
|
## 0.8.4
|
|
8
47
|
|
|
9
48
|
Released 2026-09-24.
|