1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//! **The start-window drive's own fixtures** (§7.2, §3.4) — the world, the
//! gestures and the paint reads every beat in [`super`] and its siblings shares,
//! split off at §12's per-file budget on the seam that already existed: what a
//! drive *does to* the window lives here, what the window must then *show* lives
//! in the beats.
pub use ;
use World;
use ;
/// The operator's words. Deliberately unlike anything the fixture, the theme or
/// the §3.3 wordlist paints, so `Screen::text` containing it can only be this
/// send (bl-f16e's rule: assert on what identifies *this* run).
///
/// **Short, because the row it lands in is a column** (bl-0219). The subtitle
/// shares one `left_to_right` line with the §3.3 title inside the conversation
/// panel, whose wrap mode is `Truncate` (§11 rule 1), so the title's width is
/// the subtitle's budget — and lernie's mint went from one lowercase word to a
/// PascalCase pair, which is most of that budget. `unbar the postern` painted
/// as `unbar the po…` and the beat read the glyphs, correctly, as not carrying
/// what was typed. Elision there is §11 working (`super::elision`); the beat
/// under test is the *immediacy* of the echo, so the phrase it echoes is one
/// that fits beside a two-word name. The verbatim claim is still made, on
/// `ConvRow::subtitle` below, where nothing elides.
pub const SAID: &str = "unbar it";
/// Type `SAID` into the docked composer and press Enter — the whole gesture,
/// and the last thing that happens before the frame under test.
///
/// The trailing [`AppModel::refresh`](crate::AppModel::refresh) is the **frame's
/// own model duty** (§7.2), which `main.rs` runs once per update and the
/// acceptance driver leaves to its caller. It takes a published snapshot if
/// there is one and folds the pending echo; it starts no derivation and touches
/// no disk — which is exactly the claim each beat then pins by asserting the
/// derivation has not moved.
pub
/// [`say`] with the words as a parameter — what a beat about a *second* send
/// needs, since two sends saying the same thing could not be told apart on the
/// glass by the words alone.
pub
/// The §11 conversation rows `name` would paint right now — the list as the
/// frame just built it, filtered to the one conversation under test.
pub
/// Turn the §7.2 coalescing window off (a legal cadence — `DEBOUNCE_BOUNDS`
/// floors at zero) so a marked workspace derives on the very next pass: these
/// beats drive the worker by hand, and a real 100 ms debounce would put a
/// wall-clock sleep in the suite.
pub
/// What the driver's write looks like to yog: the workspace root marked dirty —
/// the same root the live watcher would announce (§7.1) — then one derivation
/// pass and the frame's take of it.
pub
/// How many agent worktrees the driver has written. The real-substrate proof
/// that a beat's frame is showing the echo and not a derivation: a `lernie
/// prompt` that had landed would have made one here.
pub
/// One **settled** frame. egui panels reach their content height a frame after
/// the content they measure, and the queue region adds a settle of its own
/// (bl-929d) — what the operator sees is the steady state, so that is the frame
/// a beat reads.
pub
/// Every fill colour this frame put on the glass — the role stripe among them
/// (`theme::role_stripe` is a `rect_filled`), which is how the §11 fading is
/// visible to a test at all: a faded row's stripe is its own hue at reduced
/// solidity, so the two states are two different colours on one frame.
pub
/// The operator's own role stripe at the §11 pending solidity — what a §7.2
/// echo paints and nothing else does.
pub