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
//! The transcript's **virtual trailing entries** (§5.1 #12, §8.5): the two
//! rows no `messages/` file backs, folded onto a committed transcript by the
//! caller that already holds what they are made of.
//!
//! There are three virtual entries in all and they are one move made three
//! times. [`EntryKind::Compacted`](super::EntryKind::Compacted) stands in a
//! hole the compactor left and is seated by [`super::compaction`] during the
//! read; the two here are *trailing* and are folded after it, because their
//! inputs are not the directory:
//!
//! - **[`Streaming`](super::EntryKind::Streaming)** — the open
//! `response.json`, folded from the rendered snapshot's own
//! [`Stream`](crate::git_tree::Stream). Its clock is the model's write
//! cadence, not the derivation's (§7.2), which is why it is folded rather
//! than built.
//! - **[`Wounded`](super::EntryKind::Wounded)** — the **settled-failure
//! notice** (bl-015b): the conversation stopped, and the last thing that
//! happened to it was a §7.3 [`Wound`]. Its input is the steps tree, which
//! the transcript read never touches.
//!
//! The two are exclusive by derivation and not by a rule here: a wound is
//! claimed only of a step nobody is driving (`steps_view::wound::driven`), and
//! a stream exists only while somebody is. Each fold **replaces** its own kind
//! of tail rather than appending beside one, so folding twice is folding once
//! — the reconciliation the follow lane needs, stated once per row.
//!
//! **Why the notice exists at all.** A conversation refused at its first model
//! call painted its user message and nothing else: one committed entry, no
//! tail, and a pane that was honest and useless. The fact was derived, stored
//! and answered correctly — it reached the roster's hue, the §6 attention word
//! and the per-step `auth_row` — and reached no surface the operator reading
//! the conversation was looking at.
use crateWound;
use ;
/// Synthetic filename for the virtual live-streaming entry.
pub const STREAMING_NAME: &str = "«live»";
/// Synthetic filename for the virtual settled-failure notice. Bracketed like
/// the other two, so a seat listing names never mistakes one for a file.
pub const WOUND_NAME: &str = "«wound»";
/// The entries with a trailing row of the caller's own kind removed — the
/// *replace, never append* half both folds share, in one place so neither can
/// forget it. Only the tail is examined: a virtual row is never seated
/// anywhere else.