Follow quasi's marks onto the nodes audiofiles builds and reads quasi-router grew `marks` on the container nodes, so a staged twin can say which run it built. audiofiles was never carried across and had not compiled against the working copy since: the Form it builds was missing the field, and four matches over Form and Stats spelled every member. The form is not staged, so it carries Marks::none(); the matches take `..`, which is what the other arms in the same walk already do for Table.
- Co-Authored-By
- Claude-Session
Author: Max Johnson <me@maxj.phd> - 2026-09-08 21:30 UTC
Signed with PGP, not checked
Commit:
e8a1968fb3a39f245c097a9177fc3a407b6f8fadParent:
3 files changed,
+7 insertions,
-2 deletions
OldNewLine
@@ -287,6 +287,7 @@
287
287
submit,288
288
action,289
289
fields,290
..290
291
} => {291
292
out.push(Role::Button, submit.clone(), false);292
293
out.addresses.push(action.destination.as_str().to_owned());@@ -312,7 +313,7 @@
312
313
walk(&placed.node, out);313
314
}314
315
}315
Node::Stats { figures } => {316
Node::Stats { figures, .. } => {316
317
for (figure, action) in figures {317
318
if let Some(action) = action {318
319
out.push(Role::Button, figure.caption.clone(), false);OldNewLine
@@ -1555,6 +1555,7 @@
1555
1555
submit,1556
1556
action,1557
1557
fields,1558
..1558
1559
} => Some((1559
1560
submit,1560
1561
action.destination.as_str().to_owned(),@@ -8475,7 +8476,7 @@
8475
8476
let figures: Vec<(String, String)> = deep_nodes(&imported(&import))8476
8477
.into_iter()8477
8478
.flat_map(|node| match node {8478
Node::Stats { figures } => figures,8479
Node::Stats { figures, .. } => figures,8479
8480
_ => Vec::new(),8480
8481
})8481
8482
.map(|(figure, _)| (figure.value, figure.caption))OldNewLine
@@ -87,6 +87,7 @@
87
87
88
88
use quasi_declare::declare;89
89
use quasi_router::layout::{FieldKind, Priority, Tone};90
use quasi_router::stage::Marks;90
91
use quasi_router::{91
92
Action, Choice, Consult, Field, Node, RegionKind, Request, Response, RouteError, Router,92
93
Screen, Slot,@@ -166,6 +167,8 @@
166
167
"A dynamic collection re-applies these filters, so it updates itself as samples match.",167
168
))168
169
.with(Node::Form {170
// Nothing here is staged, so the run carries no marks.171
marks: Marks::none(),169
172
fields: vec![170
173
Field::new(FieldKind::Text, NAME, "Name")171
174
.required()