evals-lab 0.14.0 → 0.15.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
@@ -5,6 +5,50 @@ Newest first. Read a release's **Upgrade notes** before installing it: an
5
5
  upgrade can rewrite what the lab keeps in your data directory, and an older
6
6
  version cannot always read it back.
7
7
 
8
+ ## 0.15.0
9
+
10
+ ### Upgrade notes
11
+
12
+ - **Copy your data directory before upgrading** (see "User data" in the
13
+ README). A pipeline 0.15.0 saves is pipeline version 19 and a filter set is
14
+ version 4, neither of which 0.14.x can read. To go back, reinstall 0.14.0
15
+ and restore the copy.
16
+ - A job's Pre-format and Post-format filters become one Filters list, in run
17
+ order around its Response Format, and each filter becomes one of seven
18
+ verbs. Every reply reads as it did, except a filter that was linked where
19
+ it never ran: it now runs where it sits.
20
+
21
+ ### Added
22
+
23
+ - Filters are seven verbs, in one Filters table with the Response Format as
24
+ a row.
25
+ - A typed prompt edited between runs becomes its next version, not a new
26
+ prompt.
27
+ - Results show a spinner on the row a run is processing, and (Not run) on
28
+ rows a stopped run never reached.
29
+ - Enter in a picker's search picks the top match.
30
+
31
+ ### Changed
32
+
33
+ - A picker ends in Cancel and a viewer in Close.
34
+ - Escape closes the innermost dialog or menu, and focus returns to what
35
+ opened it.
36
+ - Enter presses the main button in more dialogs.
37
+ - Links are amber.
38
+ - Keyboard and screen readers: focus rings are no longer clipped, menus
39
+ move with the arrow keys, and Results' run tabs are a proper tab list.
40
+ - When another tab saved first, the conflict bar keeps that copy by default,
41
+ with one button to override it.
42
+ - A dynamic Source's Status is its newest fetch's, and its button says Get
43
+ response.
44
+ - The Sources toolbar stays on one row on a phone, and a tile's quota says
45
+ what it measures.
46
+
47
+ ### Fixed
48
+
49
+ - Add source adds one Source, not two.
50
+ - A focus trap skips disabled buttons.
51
+
8
52
  ## 0.14.0
9
53
 
10
54
  ### Upgrade notes
package/lab/VERSION CHANGED
@@ -1 +1 @@
1
- 0.14.0 (2026.10.14-830)
1
+ 0.15.0 (2026.10.14-867)
@@ -3,9 +3,9 @@
3
3
  "version": 1,
4
4
  "id": "demo",
5
5
  "name": "Demo",
6
- "packVersion": "2026.10.14.2",
6
+ "packVersion": "2026.10.14.3",
7
7
  "requires": {
8
- "lab": ">=18",
8
+ "lab": ">=19",
9
9
  "plugins": []
10
10
  },
11
11
  "description": "Six demos, each a dataset with a starter pipeline: two sets of public-domain images, short texts to classify, one question in four wordings, a dynamic Source's snapshot, and PDFs to check and sort."
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 18,
2
+ "version": 19,
3
3
  "id": "demo-1",
4
4
  "name": "Demo: images pipeline",
5
5
  "jobs": [
@@ -32,18 +32,17 @@
32
32
  },
33
33
  {
34
34
  "type": "filters",
35
- "stage": "items",
36
35
  "filterSets": [
37
36
  {
38
37
  "id": "filters-j1",
39
38
  "set": null,
40
39
  "pin": null,
41
40
  "own": {
42
- "version": 3,
41
+ "version": 4,
43
42
  "filters": [
44
43
  {
45
44
  "id": "tidy",
46
- "type": "rewrite-item",
45
+ "type": "trim",
47
46
  "match": {},
48
47
  "options": {
49
48
  "ignoreFailures": false,
@@ -51,12 +50,12 @@
51
50
  },
52
51
  "tests": [],
53
52
  "op": {
54
- "kind": "tidy"
53
+ "bullets": true
55
54
  }
56
55
  },
57
56
  {
58
57
  "id": "already there",
59
- "type": "drop-item",
58
+ "type": "remove",
60
59
  "match": {
61
60
  "duplicate": true
62
61
  },
@@ -64,7 +63,10 @@
64
63
  "ignoreFailures": false,
65
64
  "repeat": 1
66
65
  },
67
- "tests": []
66
+ "tests": [],
67
+ "op": {
68
+ "kind": "items"
69
+ }
68
70
  },
69
71
  {
70
72
  "id": "keep first",
@@ -76,12 +78,13 @@
76
78
  },
77
79
  "tests": [],
78
80
  "op": {
79
- "n": 12
81
+ "n": 12,
82
+ "unit": "items"
80
83
  }
81
84
  },
82
85
  {
83
86
  "id": "case",
84
- "type": "rewrite-item",
87
+ "type": "change-case",
85
88
  "match": {},
86
89
  "options": {
87
90
  "ignoreFailures": false,
@@ -89,14 +92,14 @@
89
92
  },
90
93
  "tests": [],
91
94
  "op": {
92
- "kind": "case",
93
95
  "mode": "LOWER"
94
96
  }
95
97
  }
96
98
  ]
97
99
  }
98
100
  }
99
- ]
101
+ ],
102
+ "format": 0
100
103
  }
101
104
  ]
102
105
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 18,
2
+ "version": 19,
3
3
  "id": "demo-2",
4
4
  "name": "Demo: images 2 pipeline",
5
5
  "jobs": [
@@ -32,18 +32,17 @@
32
32
  },
33
33
  {
34
34
  "type": "filters",
35
- "stage": "items",
36
35
  "filterSets": [
37
36
  {
38
37
  "id": "filters-j1",
39
38
  "set": null,
40
39
  "pin": null,
41
40
  "own": {
42
- "version": 3,
41
+ "version": 4,
43
42
  "filters": [
44
43
  {
45
44
  "id": "tidy",
46
- "type": "rewrite-item",
45
+ "type": "trim",
47
46
  "match": {},
48
47
  "options": {
49
48
  "ignoreFailures": false,
@@ -51,12 +50,12 @@
51
50
  },
52
51
  "tests": [],
53
52
  "op": {
54
- "kind": "tidy"
53
+ "bullets": true
55
54
  }
56
55
  },
57
56
  {
58
57
  "id": "already there",
59
- "type": "drop-item",
58
+ "type": "remove",
60
59
  "match": {
61
60
  "duplicate": true
62
61
  },
@@ -64,7 +63,10 @@
64
63
  "ignoreFailures": false,
65
64
  "repeat": 1
66
65
  },
67
- "tests": []
66
+ "tests": [],
67
+ "op": {
68
+ "kind": "items"
69
+ }
68
70
  },
69
71
  {
70
72
  "id": "keep first",
@@ -76,12 +78,13 @@
76
78
  },
77
79
  "tests": [],
78
80
  "op": {
79
- "n": 12
81
+ "n": 12,
82
+ "unit": "items"
80
83
  }
81
84
  },
82
85
  {
83
86
  "id": "case",
84
- "type": "rewrite-item",
87
+ "type": "change-case",
85
88
  "match": {},
86
89
  "options": {
87
90
  "ignoreFailures": false,
@@ -89,14 +92,14 @@
89
92
  },
90
93
  "tests": [],
91
94
  "op": {
92
- "kind": "case",
93
95
  "mode": "LOWER"
94
96
  }
95
97
  }
96
98
  ]
97
99
  }
98
100
  }
99
- ]
101
+ ],
102
+ "format": 0
100
103
  }
101
104
  ]
102
105
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 18,
2
+ "version": 19,
3
3
  "id": "documents",
4
4
  "name": "Demo: documents pipeline",
5
5
  "jobs": [
@@ -25,18 +25,17 @@
25
25
  },
26
26
  {
27
27
  "type": "filters",
28
- "stage": "items",
29
28
  "filterSets": [
30
29
  {
31
30
  "id": "filters-j1",
32
31
  "set": null,
33
32
  "pin": null,
34
33
  "own": {
35
- "version": 3,
34
+ "version": 4,
36
35
  "filters": [
37
36
  {
38
37
  "id": "unfence",
39
- "type": "rewrite-text",
38
+ "type": "remove",
40
39
  "match": {},
41
40
  "options": {
42
41
  "ignoreFailures": false,
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 18,
2
+ "version": 19,
3
3
  "id": "sentiment",
4
4
  "name": "Demo: sentiment pipeline",
5
5
  "jobs": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 18,
2
+ "version": 19,
3
3
  "id": "weather-alerts",
4
4
  "name": "Demo: weather pipeline",
5
5
  "jobs": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 18,
2
+ "version": 19,
3
3
  "id": "wordings",
4
4
  "name": "Demo: wordings pipeline",
5
5
  "jobs": [