Skip to main content

max / makenotwork

Say the embeds as one region, and drop the CSS that undid the grid An embed is one region. It said list_detail(title, false) because the vocabulary had nothing else, and DOCUMENT_CSS then spent a display:block cancelling the two-column grid that produced. makeover-layout 0.41.0 adds Arrangement::Single, so the description says the shape and the host adds only its own padding. mnw-cli's makeover-tui pin was five minors stale and comes current in the same pass.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session
https://claude.ai/code/session_01DwpiantpUgohzML4xr6KeQ
Author: Max Johnson <me@maxj.phd> · 2026-08-30 18:40 UTC
Signed with PGP, not checked
Commit: 179a0f1da1f5c071b94db49c3f1883074388fc27
Parent: b767fd5
7 files changed, +114 insertions, -118 deletions
@@ -1125,9 +1125,9 @@
1125 1125
1126 1126 [[package]]
1127 1127 name = "makeover-layout"
1128 - version = "0.40.0"
1128 + version = "0.41.0"
1129 1129 source = "registry+https://github.com/rust-lang/crates.io-index"
1130 - checksum = "c2f7ecec1a7e3b5026f731aec88607a5856fc21945cca478d4130d08724deb96"
1130 + checksum = "668c1ae75b3cc6617b9ef840f7980b0f576a93564f244c920191c90794fc8e17"
1131 1131
1132 1132 [[package]]
1133 1133 name = "makeover-timing"
@@ -1140,9 +1140,9 @@
1140 1140
1141 1141 [[package]]
1142 1142 name = "makeover-tui"
1143 - version = "0.40.0"
1143 + version = "0.41.0"
1144 1144 source = "registry+https://github.com/rust-lang/crates.io-index"
1145 - checksum = "4aa7a3663b98a7e52b31a57127fe3e32f641d9c5cae593f5656f449a05903d53"
1145 + checksum = "3d1ea0f2ab4d28552f7442f01688a8c65b4100a326c8cc79eadb0535a860dbe0"
1146 1146 dependencies = [
1147 1147 "makeover",
1148 1148 "makeover-layout",
@@ -3000,29 +3000,33 @@
3000 3000 source = "registry+https://github.com/rust-lang/crates.io-index"
3001 3001 checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
3002 3002
3003 + [[patch.unused]]
3004 + name = "docengine"
3005 + version = "0.7.0"
3006 +
3003 3007 [[patch.unused]]
3004 3008 name = "quasi-axum"
3005 - version = "0.80.0"
3009 + version = "0.81.0"
3006 3010
3007 3011 [[patch.unused]]
3008 3012 name = "quasi-basics"
3009 - version = "0.80.0"
3013 + version = "0.81.0"
3010 3014
3011 3015 [[patch.unused]]
3012 3016 name = "quasi-http"
3013 - version = "0.80.0"
3017 + version = "0.81.0"
3014 3018
3015 3019 [[patch.unused]]
3016 3020 name = "quasi-immediate"
3017 - version = "0.80.0"
3021 + version = "0.81.0"
3018 3022
3019 3023 [[patch.unused]]
3020 3024 name = "quasi-notifs"
3021 - version = "0.80.0"
3025 + version = "0.81.0"
3022 3026
3023 3027 [[patch.unused]]
3024 3028 name = "quasi-router"
3025 - version = "0.80.0"
3029 + version = "0.81.0"
3026 3030
3027 3031 [[patch.unused]]
3028 3032 name = "quasi-store"
@@ -3030,15 +3034,11 @@
3030 3034
3031 3035 [[patch.unused]]
3032 3036 name = "quasi-tauri"
3033 - version = "0.80.0"
3037 + version = "0.81.0"
3034 3038
3035 3039 [[patch.unused]]
3036 3040 name = "quasi-webview"
3037 - version = "0.80.0"
3038 -
3039 - [[patch.unused]]
3040 - name = "docengine"
3041 - version = "0.7.0"
3041 + version = "0.81.0"
3042 3042
3043 3043 [[patch.unused]]
3044 3044 name = "kberg"
@@ -3052,10 +3052,6 @@
3052 3052 name = "tagtree"
3053 3053 version = "0.4.1"
3054 3054
3055 - [[patch.unused]]
3056 - name = "quasi-type"
3057 - version = "0.1.3"
3058 -
3059 3055 [[patch.unused]]
3060 3056 name = "synckit-client"
3061 3057 version = "0.10.0"
@@ -3063,3 +3059,7 @@
3063 3059 [[patch.unused]]
3064 3060 name = "synckit-config"
3065 3061 version = "0.2.0"
3062 +
3063 + [[patch.unused]]
3064 + name = "quasi-type"
3065 + version = "0.1.3"
@@ -18,7 +18,7 @@
18 18 # `makeover-tui` is the terminal renderer, and its `theme` feature is the
19 19 # intents-to-ratatui-colours mapping. No hex value is written in this crate.
20 20 makeover = "3.0"
21 - makeover-tui = { version = "0.40.0", features = ["theme"] }
21 + makeover-tui = { version = "0.41.0", features = ["theme"] }
22 22 tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "time", "sync", "signal", "fs"] }
23 23 # `rustls-no-provider` rather than `rustls`: the latter is an alias for
24 24 # `__rustls-aws-lc-rs`, which links a C crypto backend. The provider is ring
M mnw-cli/Cargo.lock +49 -49
@@ -1836,9 +1836,9 @@
1836 1836
1837 1837 [[package]]
1838 1838 name = "makeover-layout"
1839 - version = "0.36.0"
1839 + version = "0.41.0"
1840 1840 source = "registry+https://github.com/rust-lang/crates.io-index"
1841 - checksum = "9ffed28fd6f311d8603b9fe02cffc14bacf29b840c486f84e8ff4866a4748514"
1841 + checksum = "668c1ae75b3cc6617b9ef840f7980b0f576a93564f244c920191c90794fc8e17"
1842 1842
1843 1843 [[package]]
1844 1844 name = "makeover-timing"
@@ -1851,9 +1851,9 @@
1851 1851
1852 1852 [[package]]
1853 1853 name = "makeover-tui"
1854 - version = "0.36.0"
1854 + version = "0.41.0"
1855 1855 source = "registry+https://github.com/rust-lang/crates.io-index"
1856 - checksum = "6ecee186af0fc104be9237defc437be2bfd8512cf5064ba0ff7a9298b01de081"
1856 + checksum = "3d1ea0f2ab4d28552f7442f01688a8c65b4100a326c8cc79eadb0535a860dbe0"
1857 1857 dependencies = [
1858 1858 "makeover",
1859 1859 "makeover-layout",
@@ -3540,7 +3540,7 @@
3540 3540 checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
3541 3541 dependencies = [
3542 3542 "fastrand",
3543 - "getrandom 0.3.4",
3543 + "getrandom 0.4.2",
3544 3544 "once_cell",
3545 3545 "rustix",
3546 3546 "windows-sys 0.61.2",
@@ -4778,48 +4778,8 @@
4778 4778 checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
4779 4779
4780 4780 [[patch.unused]]
4781 - name = "quasi-axum"
4782 - version = "0.74.0"
4783 -
4784 - [[patch.unused]]
4785 - name = "quasi-basics"
4786 - version = "0.74.0"
4787 -
4788 - [[patch.unused]]
4789 - name = "quasi-http"
4790 - version = "0.74.0"
4791 -
4792 - [[patch.unused]]
4793 - name = "quasi-immediate"
4794 - version = "0.74.0"
4795 -
4796 - [[patch.unused]]
4797 - name = "quasi-notifs"
4798 - version = "0.74.0"
4799 -
4800 - [[patch.unused]]
4801 - name = "quasi-router"
4802 - version = "0.74.0"
4803 -
4804 - [[patch.unused]]
4805 - name = "quasi-store"
4806 - version = "0.1.0"
4807 -
4808 - [[patch.unused]]
4809 - name = "quasi-tauri"
4810 - version = "0.74.0"
4811 -
4812 - [[patch.unused]]
4813 - name = "quasi-webview"
4814 - version = "0.74.0"
4815 -
4816 - [[patch.unused]]
4817 - name = "synckit-config"
4818 - version = "0.2.0"
4819 -
4820 - [[patch.unused]]
4821 - name = "docengine"
4822 - version = "0.7.0"
4781 + name = "quasi-type"
4782 + version = "0.1.3"
4823 4783
4824 4784 [[patch.unused]]
4825 4785 name = "kberg"
@@ -4838,5 +4798,45 @@
4838 4798 version = "0.4.1"
4839 4799
4840 4800 [[patch.unused]]
4841 - name = "quasi-type"
4842 - version = "0.1.1"
4801 + name = "synckit-config"
4802 + version = "0.2.0"
4803 +
4804 + [[patch.unused]]
4805 + name = "quasi-axum"
4806 + version = "0.81.0"
4807 +
4808 + [[patch.unused]]
4809 + name = "quasi-basics"
4810 + version = "0.81.0"
4811 +
4812 + [[patch.unused]]
4813 + name = "quasi-http"
4814 + version = "0.81.0"
4815 +
4816 + [[patch.unused]]
4817 + name = "quasi-immediate"
4818 + version = "0.81.0"
4819 +
4820 + [[patch.unused]]
4821 + name = "quasi-notifs"
4822 + version = "0.81.0"
4823 +
4824 + [[patch.unused]]
4825 + name = "quasi-router"
4826 + version = "0.81.0"
4827 +
4828 + [[patch.unused]]
4829 + name = "quasi-store"
4830 + version = "0.1.0"
4831 +
4832 + [[patch.unused]]
4833 + name = "quasi-tauri"
4834 + version = "0.81.0"
4835 +
4836 + [[patch.unused]]
4837 + name = "quasi-webview"
4838 + version = "0.81.0"
4839 +
4840 + [[patch.unused]]
4841 + name = "docengine"
4842 + version = "0.7.0"
@@ -15,7 +15,7 @@
15 15 # selection; `makeover-tui` is the terminal renderer, and its `theme` feature is
16 16 # the intents-to-ratatui-colours mapping. No colour is named in this crate.
17 17 makeover = "3.0"
18 - makeover-tui = { version = "0.36.0", features = ["theme"] }
18 + makeover-tui = { version = "0.41.0", features = ["theme"] }
19 19 tokio = { version = "1", features = ["full"] }
20 20 # `rustls-no-provider` rather than `rustls`: the latter is an alias for
21 21 # `__rustls-aws-lc-rs`, which links a C crypto backend. The provider is ring
M server/Cargo.lock +24 -24
@@ -5390,9 +5390,9 @@
5390 5390
5391 5391 [[package]]
5392 5392 name = "makeover-build"
5393 - version = "0.62.0"
5393 + version = "0.63.0"
5394 5394 source = "registry+https://github.com/rust-lang/crates.io-index"
5395 - checksum = "44a6eac851cf98206f65d24021e4231bb75e923f9ab8c0cb0a3ec0bb5d5905be"
5395 + checksum = "e6bac617f443bd197e965b00686c8648fac58902fed28434aeacaa7fbfcab502"
5396 5396 dependencies = [
5397 5397 "makeover",
5398 5398 "makeover-geometry",
@@ -5408,9 +5408,9 @@
5408 5408
5409 5409 [[package]]
5410 5410 name = "makeover-layout"
5411 - version = "0.40.0"
5411 + version = "0.41.0"
5412 5412 source = "registry+https://github.com/rust-lang/crates.io-index"
5413 - checksum = "c2f7ecec1a7e3b5026f731aec88607a5856fc21945cca478d4130d08724deb96"
5413 + checksum = "668c1ae75b3cc6617b9ef840f7980b0f576a93564f244c920191c90794fc8e17"
5414 5414
5415 5415 [[package]]
5416 5416 name = "makeover-timing"
@@ -5423,9 +5423,9 @@
5423 5423
5424 5424 [[package]]
5425 5425 name = "makeover-touch"
5426 - version = "0.30.0"
5426 + version = "0.31.0"
5427 5427 source = "registry+https://github.com/rust-lang/crates.io-index"
5428 - checksum = "9c2111c223a33cb980a2cdc74ab784c428064bcf820a8e89c3cfb06fd6801f21"
5428 + checksum = "8b59944f2258db046b4c7ea325eaef71a9e681e854432cd88e1355ea891eecc1"
5429 5429 dependencies = [
5430 5430 "makeover-geometry",
5431 5431 "makeover-layout",
@@ -5433,9 +5433,9 @@
5433 5433
5434 5434 [[package]]
5435 5435 name = "makeover-webview"
5436 - version = "0.69.0"
5436 + version = "0.70.0"
5437 5437 source = "registry+https://github.com/rust-lang/crates.io-index"
5438 - checksum = "78d0f434b4a70830f0c647d1d67bcb19ef9e59e6ded2577bcc45901c0d1e2b37"
5438 + checksum = "ef402e7badce6073d49320837ec3262bfaa6f739561c0f4e27926e94fee29ad0"
5439 5439 dependencies = [
5440 5440 "makeover-geometry",
5441 5441 "makeover-layout",
@@ -6636,7 +6636,7 @@
6636 6636
6637 6637 [[package]]
6638 6638 name = "quasi-axum"
6639 - version = "0.80.0"
6639 + version = "0.81.0"
6640 6640 dependencies = [
6641 6641 "axum",
6642 6642 "http 1.4.2",
@@ -6647,7 +6647,7 @@
6647 6647
6648 6648 [[package]]
6649 6649 name = "quasi-basics"
6650 - version = "0.80.0"
6650 + version = "0.81.0"
6651 6651 dependencies = [
6652 6652 "makeover-layout",
6653 6653 "quasi-router",
@@ -6655,7 +6655,7 @@
6655 6655
6656 6656 [[package]]
6657 6657 name = "quasi-http"
6658 - version = "0.80.0"
6658 + version = "0.81.0"
6659 6659 dependencies = [
6660 6660 "form_urlencoded",
6661 6661 "http 1.4.2",
@@ -6664,7 +6664,7 @@
6664 6664
6665 6665 [[package]]
6666 6666 name = "quasi-router"
6667 - version = "0.80.0"
6667 + version = "0.81.0"
6668 6668 dependencies = [
6669 6669 "makeover-layout",
6670 6670 ]
@@ -6687,7 +6687,7 @@
6687 6687
6688 6688 [[package]]
6689 6689 name = "quasi-webview"
6690 - version = "0.80.0"
6690 + version = "0.81.0"
6691 6691 dependencies = [
6692 6692 "docengine",
6693 6693 "makeover-layout",
@@ -10759,14 +10759,6 @@
10759 10759 "pkg-config",
10760 10760 ]
10761 10761
10762 - [[patch.unused]]
10763 - name = "synckit-client"
10764 - version = "0.10.0"
10765 -
10766 - [[patch.unused]]
10767 - name = "synckit-config"
10768 - version = "0.2.0"
10769 -
10770 10762 [[patch.unused]]
10771 10763 name = "kberg"
10772 10764 version = "0.1.0"
@@ -10779,13 +10771,21 @@
10779 10771 name = "painhours"
10780 10772 version = "0.1.0"
10781 10773
10774 + [[patch.unused]]
10775 + name = "synckit-client"
10776 + version = "0.10.0"
10777 +
10778 + [[patch.unused]]
10779 + name = "synckit-config"
10780 + version = "0.2.0"
10781 +
10782 10782 [[patch.unused]]
10783 10783 name = "quasi-immediate"
10784 - version = "0.80.0"
10784 + version = "0.81.0"
10785 10785
10786 10786 [[patch.unused]]
10787 10787 name = "quasi-notifs"
10788 - version = "0.80.0"
10788 + version = "0.81.0"
10789 10789
10790 10790 [[patch.unused]]
10791 10791 name = "quasi-store"
@@ -10793,4 +10793,4 @@
10793 10793
10794 10794 [[patch.unused]]
10795 10795 name = "quasi-tauri"
10796 - version = "0.80.0"
10796 + version = "0.81.0"
@@ -168,14 +168,14 @@
168 168 # rather than reached through quasi-router's re-export because a described
169 169 # screen names FieldKind and Tone directly; it has to track what quasi-router
170 170 # resolves or the two `layout::` paths are different crates.
171 - makeover-layout = "0.40.0"
171 + makeover-layout = "0.41.0"
172 172 # The webview renderer's field emitter, called directly by
173 173 # `quasi::rich_field` so one markdown editor's markup comes from the same
174 174 # place a whole described screen's would. Pinned here rather than reached
175 175 # through quasi-webview for makeover-layout's reason: two `form::` paths from
176 176 # two resolutions are two crates, and the `data-format="markdown"` rules in
177 177 # `static/layout.css` are generated from this one.
178 - makeover-webview = "0.69.0"
178 + makeover-webview = "0.70.0"
179 179 # For the request head the per-viewer state factory reads. axum re-exports it,
180 180 # but the factory's signature is quasi-axum's and names `http::request::Parts`.
181 181 http = "1.3.1"
@@ -254,7 +254,7 @@
254 254 # Emits static/geometry.css (makeover-geometry) and static/layout.css
255 255 # (makeover-webview). The same generator GO and BB run; only the output paths
256 256 # differ, since the server serves its stylesheets rather than bundling them.
257 - makeover-build = "0.62.0"
257 + makeover-build = "0.63.0"
258 258 # Read directly for the embeds' own copy of the spacing layer, which they need
259 259 # because an iframe cannot link a stylesheet. makeover-build does not re-export
260 260 # it, so the pin lives here and has to track the one makeover-build resolves.
@@ -36,14 +36,13 @@
36 36 //! falls through to its fallback. See `crate::templates::embed`'s note on the
37 37 //! two typography sheets, which is where the two files are written.
38 38 //!
39 - //! # What the description could not say, recorded rather than worked around
39 + //! # One region, said as one region
40 40 //!
41 - //! An embed is **one region**, and [`layout::Arrangement`] has two members,
42 - //! both of which are about two: a list beside a detail, or a sidebar beside
43 - //! content. There is no arrangement for "one region, the whole document", so
44 - //! these screens name `list_detail` and [`DOCUMENT_CSS`] undoes the two-column
45 - //! grid. That is a small vocabulary gap and it is filed rather than left as a
46 - //! surprise for the next reader.
41 + //! An embed is **one region**, which [`layout::Arrangement::Single`] says as of
42 + //! makeover-layout 0.41.0. These screens named `list_detail` before that and
43 + //! [`DOCUMENT_CSS`] spent a rule undoing the two-column grid it produced, which
44 + //! is a host contradicting the description rather than adding to it. The
45 + //! description now says the shape and the host adds only its own furniture.
47 46
48 47 use makeover_layout as layout;
49 48 use quasi_axum::Serves as _;
@@ -88,8 +87,7 @@
88 87 background: var(--surface-page);
89 88 color: var(--content);
90 89 }
91 - main.list-detail {
92 - display: block;
90 + main.single {
93 91 min-height: 100vh;
94 92 padding: var(--step-base) var(--gap-section);
95 93 }
@@ -153,7 +151,7 @@
153 151
154 152 /// A screen with one region, holding one node.
155 153 fn one(title: &str, node: Node) -> Screen {
156 - Screen::list_detail(title, false).with(Slot::new(REGION, RegionKind::Pane).with(node))
154 + Screen::single(title).with(Slot::new(REGION, RegionKind::Pane).with(node))
157 155 }
158 156
159 157 /// A cover picture, cropped to its box.
@@ -242,7 +240,7 @@
242 240 let slot = slot
243 241 .with(Node::text(&view.price))
244 242 .with(Node::Act(buy(view)));
245 - Screen::list_detail(&view.title, false).with(slot)
243 + Screen::single(&view.title).with(slot)
246 244 }
247 245
248 246 /// The audio player: the card, with the transport in a bespoke region.
@@ -268,14 +266,12 @@
268 266 .with(Node::text(&view.price))
269 267 .with(Node::Act(buy(view)));
270 268
271 - Screen::list_detail(&view.title, false)
272 - .with(slot)
273 - .with(Slot::new(
274 - PLAYER_REGION,
275 - RegionKind::Bespoke {
276 - name: "media-transport".into(),
277 - },
278 - ))
269 + Screen::single(&view.title).with(slot).with(Slot::new(
270 + PLAYER_REGION,
271 + RegionKind::Bespoke {
272 + name: "media-transport".into(),
273 + },
274 + ))
279 275 }
280 276
281 277 /// The bespoke region the transport is mounted in.
@@ -406,7 +402,7 @@
406 402 "View project",
407 403 Action::external(&view.project_url),
408 404 )));
409 - Screen::list_detail(&view.title, false).with(slot)
405 + Screen::single(&view.title).with(slot)
410 406 }
411 407
412 408 /// What a tip embed is drawn from.