@vitrinka/cli 5.16.1 → 5.17.1

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -3,6 +3,110 @@
3
3
  `vitrinka update` prints the sections newer than your previous version
4
4
  after updating — keep entries short and user-facing.
5
5
 
6
+ ## 5.17.1
7
+
8
+ **A code-mode review shows the sheet as an image, never as text.** When
9
+ a Codex code-mode script reads `get_card_image`, the `review` skill and
10
+ the annotation docs now tell it to hand the image block to the host's
11
+ image call (`image(block)`) and print only the text block. A script that
12
+ logged the whole result would otherwise feed the image's base64 to the
13
+ model as text, which is how one review's transcript grew to 41 GB.
14
+
15
+ ## 5.17.0
16
+
17
+ **A ui-loop review keeps what did not move.** Each review batch carries a
18
+ digest per screen and a reviewer records the digests of the screens it
19
+ actually read, so retaking a few blank shots reopens only those screens,
20
+ never every finished batch. A screen whose shots did not change since
21
+ the previous pass is carried: it keeps its findings and verdicts, leaves
22
+ the review batches and counts as reviewed, and the scoreboard callout
23
+ names how many were carried.
24
+
25
+ **Several review runs share one ui-loop pass.** Each `review-loop` run
26
+ claims its own review batches, so a big pass can be reviewed by several
27
+ identical runs at once: the review stage's return says how many
28
+ (`parallel`), each of those runs continues as one, and a run that finds
29
+ every batch left already claimed ends. A run whose reviewer failed hands
30
+ its claimed batches to its own next run, which reviews them first.
31
+ Only the run that takes the pass's synthesis lease writes the backlog,
32
+ scores the pass and posts the callouts; any other ends saying another run
33
+ is synthesizing. While a capture runs, every stage waits instead of
34
+ starting beside it, and `areas` no longer narrows a review.
35
+
36
+ **A stalled reviewer no longer stalls the pass.** A review batch whose
37
+ reviewer stalls twice (the watchdog stops it) is split in halves, and the
38
+ same run reviews them with the agents it has left. A half that stalls
39
+ twice is blocked instead of retried: its screens stay unreviewed and are
40
+ named in the run's problems, the pass still gets its backlog, and the
41
+ loop then ends naming them, to judge by hand or reshoot, instead of
42
+ reviewing the pass again.
43
+
44
+ **A ui-loop polish loop can be paused.** `vybava ui-loop pause --reason
45
+ "…"` drains the whole loop: no `review-loop` stage starts (it returns
46
+ stage `paused`, a null `next` and the `resume` args to launch later),
47
+ and a running stage ends at its next boundary, after its reviewer round,
48
+ before the synthesis, between fix lanes or before Settle, keeping what
49
+ it did. `vybava ui-loop resume` lifts the pause and frees the stopped
50
+ runs' batch claims; launch the `resume` args and the loop goes on where
51
+ it stopped.
52
+
53
+ **A screen nobody could shoot is one line, not a broken finding.** A
54
+ ui-loop screen marked `retired` (dead code, a plugin not installed, a
55
+ feature off) is never shot, reviewed or counted, and `map` marks such
56
+ screens instead of calling them unreachable. A screen without a single
57
+ usable shot (unreachable, a failed recipe, an error) no longer counts
58
+ against review coverage or gets filed as a broken finding: each area
59
+ board's "Not captured this pass" card lists it once with its reason,
60
+ instead of once per viewport and theme. The fix round's rig lane
61
+ (below) repairs its recipe, and the screens a pass still has no shot of
62
+ when it reaches its final check are named in one problems line and keep
63
+ it from completing.
64
+
65
+ **A cross-lane fix is reworked, not blocked.** A ui-loop fix lane whose
66
+ fix needs a file another lane owns now defers the item with the change
67
+ it needs there, and the fix stage gives it a rework lane after the area
68
+ lanes that owns both, so it is fixed in the same round. A block now
69
+ means the fix waits on something outside the repo (seed data, a
70
+ backend, another repo, a decision), and the run that ends the fix round
71
+ returns every such item of the round in one list, `ownerQuestions`, to
72
+ ask their owner in a single batch. A skipped, blocked or deferred item
73
+ stays checkpointed while its own files are unchanged, whatever other
74
+ lanes commit; one that no longer counts is listed in the stage's
75
+ `stale`, and the next fix round takes it.
76
+
77
+ **A ui-loop fix round repairs its capture recipes.** The round ends with
78
+ one rig lane that fixes the recipes a renamed label or a dead step broke:
79
+ the literal names `vybava ui-loop check --labels` finds in no label
80
+ source, the screens the pass never shot (unless the manifest marks them
81
+ unreachable with the seed data) and those whose recipe failed; a screen
82
+ whose code is dead or whose feature is off it marks `retired`. It
83
+ reaches a control by its role and accessible name (the harness's
84
+ `action` step) instead of a CSS or `nth=` selector, checks each repair
85
+ with `vybava ui-loop run --probe` before it checkpoints it, re-renders
86
+ the app map with them, and the verify pass reshoots those screens. A
87
+ screen it cannot repair joins the round's `ownerQuestions` when its
88
+ environment blocks it, or `reworkStuck` when the repair needs the app
89
+ or the rig's project file. A pass whose review converged gets the same
90
+ repair: the loop runs the rig lane on it and then captures the screens
91
+ it repaired, instead of ending with them unshot. A label miss no longer
92
+ stops a capture, and `map` writes new recipes the same way.
93
+
94
+ **A ui-loop pass triages its failures.** After each capture, and before
95
+ the review writes the backlog, `vybava ui-loop triage` groups the shots
96
+ that failed by cause. Screens that failed on infrastructure (a network
97
+ blip, a page that stayed blank) come back as one `vybava ui-loop run
98
+ --retake …` command in the stage's problems, and one application
99
+ failure behind many screens is filed as ONE broken item that names them
100
+ all, instead of a finding per screen. A recipe whose literal left the app
101
+ goes to the fix round's rig lane.
102
+ Every ui-loop stage needs Výbava v0.45.0 or later (ui-loop state
103
+ contract 10) and refuses an older one; run
104
+ `brew upgrade --cask vybava`. Update vitrinka with it: an older vitrinka
105
+ neither waits for a running capture, shares a review between runs nor
106
+ splits a stalled batch, it cannot finish a review in which a newer one
107
+ blocked a batch, it would complete a pass whose never-shot screens it
108
+ never names, and it stops a fix round in which a lane deferred an item.
109
+
6
110
  ## 5.16.1
7
111
 
8
112
  **Every survey uses the contact sheet.** The `publish` and `resolve` skills
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitrinka/cli",
3
- "version": "5.16.1",
3
+ "version": "5.17.1",
4
4
  "description": "vitrinka CLI — capture and publish artifact sets, drive the annotation-board work queue. Thin npm launcher for the single-binary Go CLI.",
5
5
  "bin": {
6
6
  "vitrinka": "bin/vitrinka.js"
@@ -15,12 +15,12 @@
15
15
  "node": ">=18"
16
16
  },
17
17
  "optionalDependencies": {
18
- "@vitrinka/cli-darwin-arm64": "5.16.1",
19
- "@vitrinka/cli-darwin-x64": "5.16.1",
20
- "@vitrinka/cli-linux-arm64": "5.16.1",
21
- "@vitrinka/cli-linux-x64": "5.16.1",
22
- "@vitrinka/cli-win32-arm64": "5.16.1",
23
- "@vitrinka/cli-win32-x64": "5.16.1"
18
+ "@vitrinka/cli-darwin-arm64": "5.17.1",
19
+ "@vitrinka/cli-darwin-x64": "5.17.1",
20
+ "@vitrinka/cli-linux-arm64": "5.17.1",
21
+ "@vitrinka/cli-linux-x64": "5.17.1",
22
+ "@vitrinka/cli-win32-arm64": "5.17.1",
23
+ "@vitrinka/cli-win32-x64": "5.17.1"
24
24
  },
25
25
  "keywords": [
26
26
  "vitrinka",