Skip to main content

max / goingson

Take quasi 0.5 and the makeover 0.23.0/0.40.0 cascade goingson was pinned at quasi ^0.2 against a published 0.5.0, so `cargo check --all-features` could not resolve at all -- the `version` requirement on the git deps caught it at resolution time, which is what it is there for. The makeover half was a partially-applied cascade left uncommitted in the tree: build 0.31, webview 0.38, layout 0.22, tui 0.20, each one release behind. Forward-fixed in one pass, per the same-pass rule: - quasi-{router,http,webview,tauri} 0.2 -> 0.5 - makeover-build 0.32 -> 0.33, webview 0.38 -> 0.40, layout 0.22 -> 0.23, tui 0.20 -> 0.21 makeover-build needed releasing first. Its main took makeover-webview 0.40.0 in 05e001a without a version bump, so the published 0.32.0 still asked for ^0.39.0 while the rest of the suite was on 0.40.0, and under `links` that is a resolver error rather than a warning. Released as 0.33.0. The quasi 0.2 -> 0.5 API delta reaches this repo in exactly one place: `Outcome::Over(Screen)`, an app-level overlay that arrived alongside the chrome bindings. Six test helpers match on `outcome` and none used a wildcard, deliberately, so each gets an arm. It panics rather than rendering: an overlay is a screen, but not the screen the route was asked for, and drawing it would let a route answering with the command palette pass as the page. No route here returns one today. DEAD_VOCABULARY_HIGH_WATER 21 -> 23 for `.showing-frame` and `.showing-position`, generated by makeover-webview 0.40.0's derived showing-chrome. goingson draws no carousel, so both are members this app has no use for rather than members it stopped using -- the same mechanical rise as the picture-* classes, documented at the constant. cargo check --all-features clean, cargo test --all-features 541 passed / 0 failed / 2 ignored (the count recorded on 2026-08-12, restored), clippy --all-features --all-targets clean.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-15 15:19 UTC
Signed with PGP, not checked
Commit: 2ef1475cd212bf892800ab5c1b1ee2f7914a4745
Parent: 8bd86a0
10 files changed, +80 insertions, -34 deletions
M Cargo.lock +33 -23
@@ -3398,7 +3398,9 @@
3398 3398
3399 3399 [[package]]
3400 3400 name = "makeover-build"
3401 - version = "0.29.0"
3401 + version = "0.33.0"
3402 + source = "registry+https://github.com/rust-lang/crates.io-index"
3403 + checksum = "2fe013f4ef6dd2b1db9ee45f304a75f195348b1b6de5c7386448f21c2bc6f3fa"
3402 3404 dependencies = [
3403 3405 "makeover",
3404 3406 "makeover-geometry",
@@ -3413,11 +3415,15 @@
3413 3415
3414 3416 [[package]]
3415 3417 name = "makeover-layout"
3416 - version = "0.21.0"
3418 + version = "0.23.0"
3419 + source = "registry+https://github.com/rust-lang/crates.io-index"
3420 + checksum = "6109712c400d787df788da4379559540b6b262b18b6cd4f42d7c084b2e6e8d79"
3417 3421
3418 3422 [[package]]
3419 3423 name = "makeover-touch"
3420 - version = "0.12.0"
3424 + version = "0.15.0"
3425 + source = "registry+https://github.com/rust-lang/crates.io-index"
3426 + checksum = "e3e9a630a8003974a31b3ceeea36684c94254e7e517a0fb3029b5fd9ed667692"
3421 3427 dependencies = [
3422 3428 "makeover-geometry",
3423 3429 "makeover-layout",
@@ -3425,7 +3431,9 @@
3425 3431
3426 3432 [[package]]
3427 3433 name = "makeover-tui"
3428 - version = "0.19.0"
3434 + version = "0.21.0"
3435 + source = "registry+https://github.com/rust-lang/crates.io-index"
3436 + checksum = "3f4bb2e3873442d9f429bcc5083bc7a8217ef0f496b2da6d10e80206e889f5e4"
3429 3437 dependencies = [
3430 3438 "makeover",
3431 3439 "makeover-layout",
@@ -3434,7 +3442,9 @@
3434 3442
3435 3443 [[package]]
3436 3444 name = "makeover-webview"
3437 - version = "0.36.0"
3445 + version = "0.40.0"
3446 + source = "registry+https://github.com/rust-lang/crates.io-index"
3447 + checksum = "f654764729b9b286632d195578fd48c737998809a4a495879d0fd624a09e4db4"
3438 3448 dependencies = [
3439 3449 "makeover-geometry",
3440 3450 "makeover-layout",
@@ -4641,7 +4651,7 @@
4641 4651
4642 4652 [[package]]
4643 4653 name = "quasi-http"
4644 - version = "0.2.0"
4654 + version = "0.5.0"
4645 4655 dependencies = [
4646 4656 "form_urlencoded",
4647 4657 "http",
@@ -4650,14 +4660,14 @@
4650 4660
4651 4661 [[package]]
4652 4662 name = "quasi-router"
4653 - version = "0.2.0"
4663 + version = "0.5.0"
4654 4664 dependencies = [
4655 4665 "makeover-layout",
4656 4666 ]
4657 4667
4658 4668 [[package]]
4659 4669 name = "quasi-tauri"
4660 - version = "0.2.0"
4670 + version = "0.5.0"
4661 4671 dependencies = [
4662 4672 "http",
4663 4673 "quasi-http",
@@ -4667,7 +4677,7 @@
4667 4677
4668 4678 [[package]]
4669 4679 name = "quasi-webview"
4670 - version = "0.2.0"
4680 + version = "0.5.0"
4671 4681 dependencies = [
4672 4682 "docengine",
4673 4683 "makeover-layout",
@@ -8363,22 +8373,22 @@
8363 8373 "winnow 1.0.4",
8364 8374 ]
8365 8375
8366 - [[patch.unused]]
8367 - name = "quasi-axum"
8368 - version = "0.2.0"
8369 -
8370 - [[patch.unused]]
8371 - name = "quasi-immediate"
8372 - version = "0.2.0"
8373 -
8374 - [[patch.unused]]
8375 - name = "quasi-store"
8376 - version = "0.1.0"
8377 -
8378 8376 [[patch.unused]]
8379 8377 name = "ops-status"
8380 8378 version = "0.1.0"
8381 8379
8382 8380 [[patch.unused]]
8383 - name = "makeover-immediate"
8384 - version = "0.18.0"
8381 + name = "quasi-axum"
8382 + version = "0.5.0"
8383 +
8384 + [[patch.unused]]
8385 + name = "quasi-basics"
8386 + version = "0.5.0"
8387 +
8388 + [[patch.unused]]
8389 + name = "quasi-immediate"
8390 + version = "0.5.0"
8391 +
8392 + [[patch.unused]]
8393 + name = "quasi-store"
8394 + version = "0.1.0"
M Cargo.toml +1 -1
@@ -95,7 +95,7 @@
95 95 notify = "8.2"
96 96 notify-debouncer-mini = "0.7"
97 97 makeover = "2.5"
98 - makeover-tui = "0.19.0"
98 + makeover-tui = "0.21.0"
99 99 toml = "1.1"
100 100
101 101 # Enums
@@ -18,12 +18,12 @@
18 18 # Materialises all three generated files: themes/, geometry.css, layout.css,
19 19 # and holds both drift checks this build.rs used to carry itself: touch density
20 20 # as of 0.17, breakpoints as of 0.18.
21 - makeover-build = "0.30.0"
21 + makeover-build = "0.33.0"
22 22 # The table CSS is generated here too: the columns are this app's, so the
23 23 # shared helper cannot know them, but the tracks and the narrowing rules come
24 24 # from the description rather than from hand-written nth-child cuts.
25 - makeover-webview = "0.37.0"
26 - makeover-layout = "0.21.0"
25 + makeover-webview = "0.40.0"
26 + makeover-layout = "0.23.0"
27 27 # Width. Direct rather than through makeover-webview, because the narrow table
28 28 # pass keys off SizeClass::Compact and a boundary reached transitively is a
29 29 # boundary nobody pinned.
@@ -45,10 +45,10 @@
45 45 # dependency's source even with the feature off -- so a public clone could not
46 46 # build at all against a URL it could not reach. quasi went public that day and
47 47 # the URL moved here with it.
48 - quasi-router = { git = "https://makenot.work/git/max/quasi.git", version = "0.2", optional = true }
49 - quasi-http = { git = "https://makenot.work/git/max/quasi.git", version = "0.2", optional = true }
50 - quasi-webview = { git = "https://makenot.work/git/max/quasi.git", version = "0.2", optional = true }
51 - quasi-tauri = { git = "https://makenot.work/git/max/quasi.git", version = "0.2", optional = true }
48 + quasi-router = { git = "https://makenot.work/git/max/quasi.git", version = "0.5", optional = true }
49 + quasi-http = { git = "https://makenot.work/git/max/quasi.git", version = "0.5", optional = true }
50 + quasi-webview = { git = "https://makenot.work/git/max/quasi.git", version = "0.5", optional = true }
51 + quasi-tauri = { git = "https://makenot.work/git/max/quasi.git", version = "0.5", optional = true }
52 52
53 53 # Tauri
54 54 tauri = { workspace = true, features = ["image-png", "devtools"] }
@@ -112,8 +112,8 @@
112 112 # The forms emitter and the description it renders. Runtime deps, not build:
113 113 # form markup depends on the value, the error and the options at the moment a
114 114 # modal opens, so it cannot be materialised the way the stylesheet is.
115 - makeover-webview = "0.37.0"
116 - makeover-layout = "0.21.0"
115 + makeover-webview = "0.40.0"
116 + makeover-layout = "0.23.0"
117 117 # Browser opening
118 118 open = { workspace = true }
119 119
@@ -487,10 +487,22 @@
487 487 /// stopped using. The rise is mechanical: the denominator grew from 43 classes
488 488 /// to 46 and goingson's usage did not change.
489 489 ///
490 + /// # 21 to 23, 2026-08-15: the two `showing-*` classes
491 + ///
492 + /// `makeover-webview` 0.40.0 derives a region's showing-chrome, which generates
493 + /// `.showing-frame` and `.showing-position`. They exist for a region that says
494 + /// how many of its children are up at once -- a carousel -- and goingson draws
495 + /// none, so neither is emitted here and both land in this count.
496 + ///
497 + /// The same mechanical shape as the `picture-*` rise above and read the same
498 + /// way: a member this app has no use for, not a member this app stopped using.
499 + /// The denominator grew from 46 classes to 50 and goingson's usage did not
500 + /// change.
501 + ///
490 502 /// The one direction this number should move is down, so if it ever needs
491 503 /// raising for a class goingson's own markup *should* be writing, that is the
492 504 /// defect this exists to catch and the answer is the markup, not the seal.
493 - const DEAD_VOCABULARY_HIGH_WATER: usize = 21;
505 + const DEAD_VOCABULARY_HIGH_WATER: usize = 23;
494 506
495 507 /// Every file that can carry a class name.
496 508 fn markup_files(frontend: &Path) -> Vec<PathBuf> {
@@ -103,6 +103,10 @@
103 103 // redirect has no body, and a fallback returning empty markup would read
104 104 // as a screen that rendered nothing.
105 105 Outcome::Goto(action) => panic!("expected content, got a redirect to {action:?}"),
106 + // Same reasoning one step along: an overlay is a screen, but it is not
107 + // the screen this route was asked for. Rendering it here would let a
108 + // route that answered with the command palette pass as the page.
109 + Outcome::Over(_) => panic!("expected content, got a screen drawn over it"),
106 110 }
107 111 }
108 112
@@ -66,6 +66,10 @@
66 66 // redirect has no body, and a fallback returning empty markup would
67 67 // read as a screen that rendered nothing.
68 68 Outcome::Goto(action) => panic!("expected content, got a redirect to {action:?}"),
69 + // Same reasoning one step along: an overlay is a screen, but it is not
70 + // the screen this route was asked for. Rendering it here would let a
71 + // route that answered with the command palette pass as the page.
72 + Outcome::Over(_) => panic!("expected content, got a screen drawn over it"),
69 73 }
70 74 }
71 75
@@ -36,6 +36,10 @@
36 36 Outcome::Screen(screen) => quasi_webview::Webview::new().screen(&screen),
37 37 Outcome::Fragment { node, .. } => quasi_webview::Webview::new().fragment(&node),
38 38 Outcome::Goto(action) => panic!("expected content, got a redirect to {action:?}"),
39 + // Same reasoning one step along: an overlay is a screen, but it is not
40 + // the screen this route was asked for. Rendering it here would let a
41 + // route that answered with the command palette pass as the page.
42 + Outcome::Over(_) => panic!("expected content, got a screen drawn over it"),
39 43 }
40 44 }
41 45
@@ -71,6 +71,10 @@
71 71 // tests: a redirect has no body, and a fallback returning empty markup
72 72 // would read as a screen that rendered nothing.
73 73 Outcome::Goto(action) => panic!("expected content, got a redirect to {action:?}"),
74 + // Same reasoning one step along: an overlay is a screen, but it is not
75 + // the screen this route was asked for. Rendering it here would let a
76 + // route that answered with the command palette pass as the page.
77 + Outcome::Over(_) => panic!("expected content, got a screen drawn over it"),
74 78 }
75 79 }
76 80
@@ -77,6 +77,10 @@
77 77 // redirect has no body, and a fallback returning empty markup would
78 78 // read as a screen that rendered nothing.
79 79 Outcome::Goto(action) => panic!("expected content, got a redirect to {action:?}"),
80 + // Same reasoning one step along: an overlay is a screen, but it is not
81 + // the screen this route was asked for. Rendering it here would let a
82 + // route that answered with the command palette pass as the page.
83 + Outcome::Over(_) => panic!("expected content, got a screen drawn over it"),
80 84 }
81 85 }
82 86
@@ -75,6 +75,10 @@
75 75 // into a wildcard that returned empty markup and looked like a screen
76 76 // that rendered nothing.
77 77 Outcome::Goto(action) => panic!("expected content, got a redirect to {action:?}"),
78 + // Same reasoning one step along: an overlay is a screen, but it is not
79 + // the screen this route was asked for. Rendering it here would let a
80 + // route that answered with the command palette pass as the page.
81 + Outcome::Over(_) => panic!("expected content, got a screen drawn over it"),
78 82 }
79 83 }
80 84