Split kernel::entry_flows into entry_movements and flows_of so the reversal-mirror proof fits CI; prove runs the fast harnesses, prove-slow the 8 slow ones (own job in scheduled CI), prove-all both. Laws in verification.md renumbered 1-31 with a table of all 55 harnesses. MCP docs checked against the 115 tools (about 60 fixes) with a test that every tool is documented; rules.md cross-references fixed; bookspec statuses and loader tightened; viewer notes wrap and accounts sort by code; STATUS.md says P3 is built, cutover pending. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
49 files changed
+963
-292
No files matched your search
@@ -1881,6 +1881,26 @@ fn render(ui: &mut Ui, t: &Table, pdf: &PdfInfo, shell: &mut Shell<'_>) {
|
||||
Stroke::new(1.0, p.border),
|
||||
);
|
||||
for (ri, r) in t.rows.iter().enumerate() {
|
||||
// A note wraps over the table's width, never cut short:
|
||||
// it says how to read the figures above it.
|
||||
if r.kind == Kind::Note {
|
||||
let mut job = egui::text::LayoutJob::single_section(
|
||||
r.label.clone(),
|
||||
egui::TextFormat::simple(theme::regular(12.0), p.muted),
|
||||
);
|
||||
job.wrap.max_width = (width - 8.0).max(10.0);
|
||||
let galley = ui.painter().layout_job(job);
|
||||
let (rr, _) = ui.allocate_exact_size(
|
||||
vec2(width, galley.size().y + 14.0),
|
||||
Sense::hover(),
|
||||
);
|
||||
ui.painter().galley(
|
||||
egui::pos2(rr.left() + 4.0, rr.top() + 7.0),
|
||||
galley,
|
||||
p.muted,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
let h = match r.kind {
|
||||
Kind::Section => 36.0,
|
||||
Kind::Grand => 38.0,
|
||||
|
||||
Reference in new issue
Block a user