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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//! **The records pane**: what the selected conversation's loop did and what
//! its worktree holds (bl-2cf7; yog's `docs/REMOTE.md` §8.5).
//!
//! # The tuning pane's shape, one noun over
//!
//! bl-213c built the conversation's ACTS and left its records to this pane —
//! the reads an operator actually reaches for on a conversation that is doing
//! something: the steps taken and the files touched. It is the third covering
//! pane and the second that is a place rather than a moment, and it follows
//! `crate::ui::tuning` in every joint: it opens on its subject (the SELECTED
//! CONVERSATION where tuning's is the aimed wall), its two reads are standing
//! while it is open (`crate::state::Standing::records`), and everything on it
//! is the engine's answer — this pane holds no state at all, not even a draft.
//!
//! # Every empty state is a sentence, and the sentences differ
//!
//! A conversation nobody has been answered about is not one whose loop did
//! nothing ([`NOT_ANSWERED_STEPS`] vs [`NO_STEPS`]) — the same doctrine the
//! conversation list wrote down first. The worktree adds a third claim of its
//! own: `files` answers a torn-down worktree as an ABSENCE and an empty one as
//! a listing of nothing, and the two paint as two sentences because they are
//! two facts ([`NO_WORKTREE`] vs [`EMPTY_WORKTREE`]).
//!
//! # What is painted is words, computed beside the paint
//!
//! Every line a half paints comes off a pure function of the row, so the suite
//! reads the sentence rather than the layout — the same reason
//! `RoleRow::runs_on` is a method. The class tokens ride verbatim
//! (`crate::reply` rung 3): a `framing` or a `wound` this build has no word
//! for paints as itself. The two halves this file used to hold are modules of
//! their own (bl-d1ae), and their sentences travel with the paint that says
//! them; they are re-exported here, because a sentence's home on the crate's
//! surface is the pane it is read on.
//! # The vertical budget, measured (bl-d1ae)
//!
//! Six sections cost 42 points each — `L` of air, a hairline and the word's
//! own line — where the rules they replaced cost ten. At 900x700 this pane is
//! 420 points wide, because the two list columns keep 480, so nearly every
//! sentence here wraps to two lines and the answered world stands 789 points
//! tall in a 700-point window. What could be bought back inside the pane was:
//! the close rides the subject's line, the header's notices share one row and
//! its figures the next, the listing joins where the work lands, a deposit's
//! header joins what it says, the fork's boxes carry a width, and a step with
//! no wound paints no row for one. The nodes that still fall below the fold
//! there are LABELS — every CONTROL is inside the window at both sizes — and
//! `crate::snapshot::clipped` judges prose at all only because egui's
//! `interaction.selectable_labels` makes a label a click target. The room
//! that is left is not in this pane; it is the width next door.
/// The cascade: the stop that takes the subtree with it.
/// One step's records, under the row that addresses them.
/// The files half: where the work lands and what the worktree holds.
/// The conversation's own row, as the pane's header.
/// The undelivered mail waiting in its inbox.
/// The spine half: what the history is anchored to, and the fork off it.
/// The steps half: what the loop did, and the sentences a step carries.
use crate;
pub use ;
pub use ;
/// The word that opens the pane, on the selected conversation.
pub const OPEN: &str = "records…";
/// The word that closes it.
pub const CLOSE: &str = "done";
/// The pane's own heading.
pub const HEADING: &str = "records";
/// The steps half's own heading.
pub const STEPS_HEAD: &str = "steps";
/// The files half's.
pub const FILES_HEAD: &str = "files";
/// What the steps half says before the first answer.
pub const NOT_ANSWERED_STEPS: &str = "waiting to hear what this conversation's loop has done";
/// What it says for a loop that answered, and has taken no step. A fact about
/// the conversation, and the one empty state here that is not a wait.
pub const NO_STEPS: &str = "its loop has taken no step yet";
/// What the files half says before the first answer.
pub const NOT_ANSWERED_FILES: &str = "waiting to hear what its worktree holds";
/// The worktree's absence — a different claim from an empty listing, and the
/// wire keeps them two on purpose.
pub const NO_WORKTREE: &str = "no worktree stands for this conversation";
/// The listing of nothing, which is the other claim.
pub const EMPTY_WORKTREE: &str = "the worktree holds nothing";
/// Said under a listing the engine cut short of the worktree.
pub const TRUNCATED: &str = "…and more — the listing was cut short";
/// Paint the pane and take the clicks on it. Answers whether there was one to
/// paint, so the shell knows whether the conversation still stands.