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
//! [`AppModel`]'s hand-off to the §3.6 unmaking: derive the confirmation, and
//! converge the frame once the engine says the unmaking happened (DESIGN §3.6,
//! §8.2; REMOTE §9.8).
//!
//! **The firing left** (bl-1747). Two effectful entries ran `dispatch` in
//! process over this window's own `ui.json`; both are `Action::DeleteWorkspace`
//! / `Action::DeleteAgent` posted over the wire now, so the gate — re-derived at
//! fire time and fail-closed, whichever frontend fires — runs where every other
//! seat's does, and the `ui.json` prune is the **engine's** write, adopted back
//! by §7.1 like any external change rather than made here.
//!
//! **The derivations left too** (bl-b4b5). `delete_confirmation` and
//! `agent_delete_confirmation` re-derived the §3.6 gate off the window's own
//! snapshot so the two §11 carriers could paint it; both are folds over landed
//! answers now (`delete::confirmation_of_rows`,
//! `delete::agent::confirmation_of_rows` over the enumeration, the descent
//! forest and the balls listing). The chokepoint's own re-derivation at fire is
//! unmoved and unchanged — a painted affordance may be an ask period behind, a
//! gate may not.
//!
//! What stays is the pair a receipt still owes the frame: the two convergences
//! a clean removal earns — the roots to re-derive, and a focus that must not
//! point at a gone directory.
use AppModel;
use Path;