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
143
144
145
146
147
148
149
150
151
152
153
154
//! The conversation's **settings rows** (§11 bottom accessories, bl-2e18):
//! the config-shaped rows of altitude 1, docked at the bottom of the
//! conversation pane below the composer.
//!
//! The ruling: every setting for a conversation moves to the bottom of the
//! surface instead of the top. The altitude-1 header is
//! the identity line and nothing else ([`super::workspace`]); what the
//! conversation *runs on* — the §9.4 model line and the §3.5 budget-spent
//! figures — reads at the bottom of the conversation, and the transcript leads
//! uninterrupted.
//!
//! **bl-2e18's ordering clause is superseded** (bl-58e4). That ball seated
//! these rows *"between the goal box and the in-flight strip, so what the
//! conversation runs on reads beside where the operator talks to it"* — the
//! adjacency to the box was the stated reason. The later ruling: the work
//! directory, the budget, the context and the model selection must not sit
//! between the input bar and the chat — those elements belong below the input
//! box, not above it. Those four
//! elements are exactly this band — the §9.4 model line, the §3.5 spend
//! figures, the §5.1 #35 context line, and the work directory the birth block
//! below carries — so the adjacency is what the ruling overrides: these rows
//! are read occasionally, and putting them between the chat and the box the
//! operator types into pushed the two things that ARE read together apart.
//!
//! The seat is therefore the **bottom edge of the pane**, below the goal box.
//! Everything else about bl-2e18 stands: the ruling that these rows
//! belong at the bottom of the conversation rather than on its header, and the
//! internal order of the rows, which that ball also fixed. The in-flight strip
//! keeps its own seat hard against the chat tail (bl-905f) — it is not one of
//! the four elements named, and the ruling does not reach it.
//!
//! **An empty selection is the same seat, not an empty one.** With no
//! conversation selected the rows are the §11 birth-config block
//! ([`super::birth`]): these rows answer *what is this conversation running
//! on*, and with nothing selected the same question is *what would one started
//! now run on* (bl-824e, re-seated here with the settings it mirrors). One
//! branch on the selection, never a second surface.
//!
//! **The seat is bounded at half the pane** — the fold line's own ceiling
//! (§11 inbox-composer), one idiom for "an accessory may not eat the pane it
//! hangs off". The §9.4 picker expands inline at the model line, so the region
//! is exactly the kind that grows without limit, and an over-subscribed bottom
//! stack is the QUALITY G4 defect bl-9551 filed. Past the cap the rows scroll.
//!
//! Coverage-excluded shell glue like the rest of `src/shell/*`: every fact it
//! paints is composed and tested elsewhere (`crate::model_pick`,
//! `crate::spend`, `AppModel`).
use ShellState;
use crateAppModel;
use crateCli;
use crateAgent;
use crateroot_of;
use cratespend;
use ;
/// Paint the seat as the conversation pane's own bottom panel. **Created first
/// of the stack, so it holds the pane's bottom edge** — below the goal box,
/// which is where the band-order ruling puts these four elements. `cap` is the
/// band's ceiling, already divided by the pane ([`crate::layout::share`]): the
/// stack's arithmetic lives in one place ([`super::pane`]) and each band is
/// handed its answer, so the row this band holds back for the box below it is
/// decided where the order it follows from is written.
pub
/// The rows of a selected conversation: the §3.5 spend figures — one per bound
/// workspace ball, then the conversation's own — and the §9.4 model line with
/// the picker it opens.