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
//! **What hangs UNDER a conversation, and whether it is on the glass**
//! (bl-00f5).
//!
//! # The strip is the index of what is happening, and two thirds of it was
//! bookkeeping
//!
//! One session of ordinary work answered twelve conversations, of which five
//! were compactors the operator never started — each with a minted name as
//! memorable as the work's, each at the same weight, four of the five
//! belonging to ONE conversation. The rows were not wrong: `depth` is 1 and
//! the preview says what they are. But an index whose majority is machinery is
//! an index people learn to stop reading.
//!
//! # The rule is about DESCENT and not about compactors
//!
//! **The wire carries no kind, and since yog bl-009a it carries no machinery
//! either** (bl-b538; ruling lernie bl-454d): an agent a workflow binding
//! forked — titler, compactor, verifier — is read off its dispatch commit's
//! `Procedure:` trailer on the server and leaves the conversations answer with
//! its descent, counted in no `members` and no `direct`. Nothing on a row says
//! *this one is a compactor* because no row is one. A seat that guessed from a
//! preview would be reading prose to make a structural decision, and now has
//! no reason to.
//!
//! What the server does give is the descent of what remains — the subagents a
//! model dispatched, a fork's candidates — and the descent is the whole
//! answer: **the list is the conversations, and what hangs under one is under
//! it.** A root is always on the glass; its subtree is one gesture away and
//! says how much of it there is. Those rows are what this conversation is made
//! of, and the operator may well open them, so the fold stays exactly as it
//! was: its mechanism unchanged, its subject shrunk to conversations.
//!
//! # It is ONE list, so the fold is here rather than in the pane
//!
//! [`Model::rows`] is what the pointer paints and the keyboard walks
//! (`super::claim`), so a fold applied in the pane would be a row a click
//! could not reach and a key could — which is the second surface
//! `crate::ui::keys` exists in order not to have. Filtering the one list keeps
//! both honest for free.
//!
//! **What the attention rows said was not this seat's to fix**, and the server
//! fixed it (yog bl-3592: a rest is the operator's only when nobody dispatched
//! it). This seat's half is where the rows are painted.
use crateConvRow;
use crateModel;