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
//! **The echo folded into the SNAPSHOT** (§7.2) — the projection every seat
//! that reads `AppModel::snap` gets, cut off [`super`] at §12's per-file budget
//! on the seam that module already draws three ways (bl-78d8). Its siblings are
//! [`rows`](super::rows) (the same optimism over an answered §11 list) and
//! [`seat`](super::seat) (the two `AppModel` doors); what an echo *is* and when
//! it retires stays in [`super`].
//!
//! One file per altitude, and still one module owning every fold: *"what does a
//! frame see that disk does not say?"* has one place to read.
use ;
use Path;
use Arc;
/// **The one place the derivation and the non-derived facts meet** (§7.2): the
/// snapshot a frame paints is the worker's, with the pending `echo` and the
/// §3.4 `raised` wall ([`crate::app::raise`]) folded in. Every render seat reads
/// the result and neither of them knows either exists.
///
/// **There were three** until bl-73e7: the focused conversation's live tail was
/// folded here too, by a follower thread in the window. It is an *answer* now
/// (`wire::lane`, spliced at `Transcript::with_live`), so the fold that reached
/// every seat by writing `Agent::stream` reaches the one seat that paints it by
/// being asked for — which is what the remote split already made true of every
/// other §11 read.
///
/// The two are folded here rather than each somewhere convenient because that
/// is the whole partition: **one function writes the painted snapshot**, so
/// "what does a frame see that disk does not say?" has one answer to read, and
/// a third such fact is a third argument here rather than a third mechanism.
///
/// With nothing pending and nothing raised this is a pointer clone, so the
/// ordinary case allocates nothing and the rendered `Arc` is the derived one —
/// which is also why the caller may only run this when one of its inputs moved:
/// a fresh `Arc` every frame would make `SnapMemo` rebuild per frame, the exact
/// cost bl-e90a removed.
pub