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
//! The §3.3 display ladder as a **seat** holds it (REMOTE §9.4, bl-1eb0): one
//! `(agent id, title)` pair per agent in a workspace, so a face that paints a
//! name it did not derive needs no agent set at all.
//!
//! Every seat that renders somebody's *name* — a deposit's sender, a
//! conversation's target, a transcript speaker — was asking
//! [`display_name_of`](super::display_name_of) against the frame's own
//! `&[Agent]`. That slice is the engine's tree derivation: fat, disk-derived,
//! and unspellable on a wire, which is exactly what REMOTE §9.4 retires from
//! paint code. The ladder itself does not move — [`super::display_name`] stays
//! its one home — only its *input* narrows to the two strings the answer is
//! made of.
//!
//! **It is a projection of an answer a seat already holds**: `root_id` +
//! `display` is every [`ConvRow`] pair, so [`Titles::of_rows`] builds the same
//! table out of a decoded [`Conversations`](crate::boundary::Query::Conversations)
//! reply. Nothing here is a second fact — it is one fact addressed by id.
use ;
use crateAgent;
/// A workspace's agents paired with what each is called (§3.3).