summaryrefslogtreecommitdiff
path: root/test/web-snapshots
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-08-16 15:49:12 -0300
committerGabriel Schneider <[email protected]>2026-08-18 23:44:42 -0300
commit1551e409c31992437cb2fa864f576d45c8433801 (patch)
treee2fae8451f87b735a1360c7c2e383fdc40165789 /test/web-snapshots
parentbe2a9957708cbf0c478ca861c4a1f0f227bbfe10 (diff)
downloadpardes-1551e409c31992437cb2fa864f576d45c8433801.tar.gz
pardes-1551e409c31992437cb2fa864f576d45c8433801.zip
big slow change: prebuilt shaders (SPIR-V/Metal), core gui reflow, docs, web + snapshot refresh
Diffstat (limited to 'test/web-snapshots')
-rw-r--r--test/web-snapshots/README.md22
-rw-r--r--test/web-snapshots/source-list.dump.zon17
-rw-r--r--test/web-snapshots/source-list.golden382
-rw-r--r--test/web-snapshots/source-list.snap23
4 files changed, 251 insertions, 193 deletions
diff --git a/test/web-snapshots/README.md b/test/web-snapshots/README.md
index c6564ba0..3b121949 100644
--- a/test/web-snapshots/README.md
+++ b/test/web-snapshots/README.md
@@ -7,13 +7,19 @@ To recapture it:
1. Build and launch the native TTY in this checkout with `PARDES_DUMP` pointing
at a temporary file.
-2. Enter TTY mode, run `clear`, then run `git ls-files '*.zig'`.
-3. Leave the pane in TTY mode and middle-click Pardes's `Dump` builtin.
+2. Enter raw TTY mode, run `clear`, then run
+ `git ls-files --cached --others --exclude-standard -- '*.zig' | sort`.
+ This is the archive generator's tracked-plus-new/nonignored selection in its
+ deterministic display order.
+3. Leave raw TTY mode, press `gg` so the listing starts at scrollback row zero,
+ and middle-click Pardes's `Dump` builtin.
4. Copy the resulting dump into `source-list.dump.zon` without editing it.
-The visible `.body` must exactly match the command plus every path reported by
-Git (and the final prompt). The base64 PTY stream must contain the command
-itself. `source-list.snap` then drives the freestanding WASM + DOM build through
-Chromium: it checks the full listing, taps `build.zig`, snapshots packed cell
-styles (including Tree-sitter's Zig highlighting), resizes the pane separator,
-and finally verifies body scrolling.
+The visible `.body` is the first terminal viewport; `.terminal.stream` must
+contain the command plus every path reported by Git, and every listed path must
+exist. The base64 PTY stream is the real interaction and must contain the
+command itself. `source-list.snap` then drives the freestanding WASM + DOM build
+through Chromium: top and bottom launcher snapshots jointly cover the complete
+listing, then it taps `build.zig`, snapshots packed cell styles (including
+Tree-sitter's Zig highlighting), resizes the pane separator, and finally
+verifies body scrolling.
diff --git a/test/web-snapshots/source-list.dump.zon b/test/web-snapshots/source-list.dump.zon
index 02e1eb43..63d7d67d 100644
--- a/test/web-snapshots/source-list.dump.zon
+++ b/test/web-snapshots/source-list.dump.zon
@@ -3,24 +3,25 @@
.version = 1,
.screen = .{ .cols = 100, .rows = 30 },
.active = 0,
- .topbar = "Kill Newcol Tutor Debug Colors NextColor Crt Dump",
- .theme = "dark",
+ .topbar = "New Newcol Find Grep Help Tutor Dump NextColor Debug Kill",
+ .theme = "helix",
.columns = .{.{ .weight = 1, .panes = .{0} }},
.panes = .{.{
.kind = .terminal,
- .tag = "TTY /home/goblin/00-projects/0x4200.cafe/02-pardes-code Del",
- .body = "$ git ls-files '*.zig'\nbuild.zig\nsrc/crt.zig\nsrc/deck.zig\nsrc/dump.zig\nsrc/gui.zig\nsrc/image.zig\nsrc/look.zig\nsrc/main.zig\nsrc/modal.zig\nsrc/pardes.zig\nsrc/petscii.zig\nsrc/syntax.zig\nsrc/tracy.zig\nsrc/tty.zig\ntest/deck/replay.zig\ntest/deck/schema.zig\ntest/e2e_harness.zig\ntest/hxdiff.zig\ntest/snapshot.zig\nuucode_config.zig\n$ \n\n\n\n\n\n",
+ .tag = "/home/goblin/00-projects/0x4200.cafe/02-pardes-code New Del",
+ .body = "git ls-files --cached --others --exclude-standard -- '*.zig' | sort\nbuild.zig\nbuild/snap.zig\nmupdf.zig\nsrc/allocators.zig\nsrc/animation.zig\nsrc/builtins.zig\nsrc/config.zig\nsrc/dump.zig\nsrc/effect_sources.zig\nsrc/file_pane.zig\nsrc/fonts.zig\nsrc/grammar_manifest.zig\nsrc/gui/crt.zig\nsrc/gui/deck.zig\nsrc/gui/gui.zig\nsrc/image.zig\nsrc/image_pane.zig\nsrc/look.zig\nsrc/lsp/lsp.zig\nsrc/lsp/lsp_zls.zig\nsrc/macos.zig\nsrc/main.zig\nsrc/message.zig\nsrc/modal.zig\nsrc/nested.zig\nsrc/normal_input.zig\nsrc/output_pane.zig",
.scroll = 0,
.cols = 98,
.rows = 28,
.vweight = 1,
+ .tag_tail = null,
.terminal = .{
.cwd = "/home/goblin/00-projects/0x4200.cafe/02-pardes-code",
- .stream = "$ git ls-files '*.zig'\nbuild.zig\nsrc/crt.zig\nsrc/deck.zig\nsrc/dump.zig\nsrc/gui.zig\nsrc/image.zig\nsrc/look.zig\nsrc/main.zig\nsrc/modal.zig\nsrc/pardes.zig\nsrc/petscii.zig\nsrc/syntax.zig\nsrc/tracy.zig\nsrc/tty.zig\ntest/deck/replay.zig\ntest/deck/schema.zig\ntest/e2e_harness.zig\ntest/hxdiff.zig\ntest/snapshot.zig\nuucode_config.zig\n$ ",
- .stream_b64 = "G10xMzM7QwcbXTEzMztEBxtdMTMzO0MHG10wO2dvYmxpbkBwYXJkZXM6L2hvbWUvZ29ibGluLzAwLXByb2plY3RzLzB4NDIwMC5jYWZlLzAyLXBhcmRlcy1jb2RlBxtbPzIwMDRoG10xMzM7QTtjbD1saW5lByQgG10xMzM7QgcNG1tLDRtdMTMzO0E7Y2w9bGluZQckIBtdMTMzO0IHbHMNChtbPzIwMDRsDRtdMTMzO0MHYXNzZXRzCSAgICAgICBkb2NzCQkgICAgbmV4dC1zdGVwcy50eHQgIHRlc3QJICAgICAgdXVjb2RlX2NvbmZpZy56aWcgIHppZy1wa2cNCmJ1aWxkLnppZyAgICAgIG1pc2UudG9tbAkgICAgc2hhZGVycwkgICAgdG9vbHMJICAgICAgdmVuZG9yDQpidWlsZC56aWcuem9uICBuZXh0LW5leHQtc3RlcHMudHh0ICBzcmMJCSAgICB0cmFuc2FjdGlvbnMudHh0ICB6aWctb3V0DQobXTEzMztDBxtdMTMzO0QHG10xMzM7QwcbXTA7Z29ibGluQHBhcmRlczovaG9tZS9nb2JsaW4vMDAtcHJvamVjdHMvMHg0MjAwLmNhZmUvMDItcGFyZGVzLWNvZGUHG1s/MjAwNGgbXTEzMztBO2NsPWxpbmUHJCAbXTEzMztCB2NsZWFyDQobWz8yMDA0bA0bXTEzMztDBxtbSBtbMkobWzNKG10xMzM7QwcbXTEzMztEBxtdMTMzO0MHG10wO2dvYmxpbkBwYXJkZXM6L2hvbWUvZ29ibGluLzAwLXByb2plY3RzLzB4NDIwMC5jYWZlLzAyLXBhcmRlcy1jb2RlBxtbPzIwMDRoG10xMzM7QTtjbD1saW5lByQgG10xMzM7QgdnaXQgbHMtZmlsZXMgJyouemlnJw0KG1s/MjAwNGwNG10xMzM7QwdidWlsZC56aWcNCnNyYy9jcnQuemlnDQpzcmMvZGVjay56aWcNCnNyYy9kdW1wLnppZw0Kc3JjL2d1aS56aWcNCnNyYy9pbWFnZS56aWcNCnNyYy9sb29rLnppZw0Kc3JjL21haW4uemlnDQpzcmMvbW9kYWwuemlnDQpzcmMvcGFyZGVzLnppZw0Kc3JjL3BldHNjaWkuemlnDQpzcmMvc3ludGF4LnppZw0Kc3JjL3RyYWN5LnppZw0Kc3JjL3R0eS56aWcNCnRlc3QvZGVjay9yZXBsYXkuemlnDQp0ZXN0L2RlY2svc2NoZW1hLnppZw0KdGVzdC9lMmVfaGFybmVzcy56aWcNCnRlc3QvaHhkaWZmLnppZw0KdGVzdC9zbmFwc2hvdC56aWcNCnV1Y29kZV9jb25maWcuemlnDQobXTEzMztDBxtdMTMzO0QHG10xMzM7QwcbXTA7Z29ibGluQHBhcmRlczovaG9tZS9nb2JsaW4vMDAtcHJvamVjdHMvMHg0MjAwLmNhZmUvMDItcGFyZGVzLWNvZGUHG1s/MjAwNGgbXTEzMztBO2NsPWxpbmUHJCAbXTEzMztCBw==",
- .cursor = .{ .col = 2, .row = 21 },
+ .stream = "git ls-files --cached --others --exclude-standard -- '*.zig' | sort\nbuild.zig\nbuild/snap.zig\nmupdf.zig\nsrc/allocators.zig\nsrc/animation.zig\nsrc/builtins.zig\nsrc/config.zig\nsrc/dump.zig\nsrc/effect_sources.zig\nsrc/file_pane.zig\nsrc/fonts.zig\nsrc/grammar_manifest.zig\nsrc/gui/crt.zig\nsrc/gui/deck.zig\nsrc/gui/gui.zig\nsrc/image.zig\nsrc/image_pane.zig\nsrc/look.zig\nsrc/lsp/lsp.zig\nsrc/lsp/lsp_zls.zig\nsrc/macos.zig\nsrc/main.zig\nsrc/message.zig\nsrc/modal.zig\nsrc/nested.zig\nsrc/normal_input.zig\nsrc/output_pane.zig\nsrc/panel_animation.zig\nsrc/pardes.zig\nsrc/pdf.zig\nsrc/pdf_pane.zig\nsrc/pdf_pane_integration_test.zig\nsrc/petscii.zig\nsrc/runtime_config.zig\nsrc/selection_pipe.zig\nsrc/shell_bin.zig\nsrc/syntax.zig\nsrc/temp_file.zig\nsrc/term_pane.zig\nsrc/themes/acme.zig\nsrc/themes/dark.zig\nsrc/themes/helix.zig\nsrc/tracy.zig\nsrc/tty/panel_compositor.zig\nsrc/tty/tty.zig\nsrc/user_config.zig\nsrc/web.zig\nsrc/web/zstbi.zig\ntest/deck/replay.zig\ntest/deck/schema.zig\ntest/e2e_harness.zig\ntest/hxdiff.zig\ntest/image_harness.zig\ntest/lspbench.zig\ntest/lspfixture/broken.zig\ntest/lspfixture/dotcomplete.zig\ntest/lspfixture/dothalf.zig\ntest/pdf_bench.zig\ntest/pdf_scroll_bench.zig\ntest/pdf_sections_bench.zig\ntest/perf.zig\ntest/snapshot.zig\ntools/embed_zig_sources.zig\ntools/gen_themes.zig\nuucode_config.zig\n",
+ .stream_b64 = "G10xMzM7QwcbXTEzMztEBxtdMTMzO0MHG10wO2dvYmxpbkBwYXJkZXM6L3RtcC9wYXJkZXMtc25hcC9zb3VyY2UtbGlzdC1jYXB0dXJlL2N3ZAcbWz8yMDA0aBtdMTMzO0E7Y2w9bGluZQckIBtdMTMzO0IHDRtbSw0bXTEzMztBO2NsPWxpbmUHJCAbXTEzMztCB2NkIC9ob21lL2dvYmxpbi8wMC1wcm9qZWN0cy8weDQyMDAuY2FmZS8wMi1wYXJkZXMtY29kZQ0KG1s/MjAwNGwNG10xMzM7QwcbXTEzMztDBxtdMTMzO0QHG10xMzM7QwcbXTA7Z29ibGluQHBhcmRlczovaG9tZS9nb2JsaW4vMDAtcHJvamVjdHMvMHg0MjAwLmNhZmUvMDItcGFyZGVzLWNvZGUHG1s/MjAwNGgbXTEzMztBO2NsPWxpbmUHJCAbXTEzMztCBxtbS2NsZWFyDQobWz8yMDA0bA0bXTEzMztDBxtbSBtbMkobWzNKG10xMzM7QwcbXTEzMztEBxtdMTMzO0MHG10wO2dvYmxpbkBwYXJkZXM6L2hvbWUvZ29ibGluLzAwLXByb2plY3RzLzB4NDIwMC5jYWZlLzAyLXBhcmRlcy1jb2RlBxtbPzIwMDRoG10xMzM7QTtjbD1saW5lByQgG10xMzM7QgdnaXQgbHMtZmlsZXMgLS1jYWNoZWQgLS1vdGhlcnMgLS1leGNsdWRlLXN0YW5kYXJkIC0tICcqLnppZycgfCBzb3J0DQobWz8yMDA0bA0bXTEzMztDBxtdMTMzO0MHYnVpbGQuemlnDQpidWlsZC9zbmFwLnppZw0KbXVwZGYuemlnDQpzcmMvYWxsb2NhdG9ycy56aWcNCnNyYy9hbmltYXRpb24uemlnDQpzcmMvYnVpbHRpbnMuemlnDQpzcmMvY29uZmlnLnppZw0Kc3JjL2R1bXAuemlnDQpzcmMvZWZmZWN0X3NvdXJjZXMuemlnDQpzcmMvZmlsZV9wYW5lLnppZw0Kc3JjL2ZvbnRzLnppZw0Kc3JjL2dyYW1tYXJfbWFuaWZlc3QuemlnDQpzcmMvZ3VpL2NydC56aWcNCnNyYy9ndWkvZGVjay56aWcNCnNyYy9ndWkvZ3VpLnppZw0Kc3JjL2ltYWdlLnppZw0Kc3JjL2ltYWdlX3BhbmUuemlnDQpzcmMvbG9vay56aWcNCnNyYy9sc3AvbHNwLnppZw0Kc3JjL2xzcC9sc3BfemxzLnppZw0Kc3JjL21hY29zLnppZw0Kc3JjL21haW4uemlnDQpzcmMvbWVzc2FnZS56aWcNCnNyYy9tb2RhbC56aWcNCnNyYy9uZXN0ZWQuemlnDQpzcmMvbm9ybWFsX2lucHV0LnppZw0Kc3JjL291dHB1dF9wYW5lLnppZw0Kc3JjL3BhbmVsX2FuaW1hdGlvbi56aWcNCnNyYy9wYXJkZXMuemlnDQpzcmMvcGRmLnppZw0Kc3JjL3BkZl9wYW5lLnppZw0Kc3JjL3BkZl9wYW5lX2ludGVncmF0aW9uX3Rlc3QuemlnDQpzcmMvcGV0c2NpaS56aWcNCnNyYy9ydW50aW1lX2NvbmZpZy56aWcNCnNyYy9zZWxlY3Rpb25fcGlwZS56aWcNCnNyYy9zaGVsbF9iaW4uemlnDQpzcmMvc3ludGF4LnppZw0Kc3JjL3RlbXBfZmlsZS56aWcNCnNyYy90ZXJtX3BhbmUuemlnDQpzcmMvdGhlbWVzL2FjbWUuemlnDQpzcmMvdGhlbWVzL2RhcmsuemlnDQpzcmMvdGhlbWVzL2hlbGl4LnppZw0Kc3JjL3RyYWN5LnppZw0Kc3JjL3R0eS9wYW5lbF9jb21wb3NpdG9yLnppZw0Kc3JjL3R0eS90dHkuemlnDQpzcmMvdXNlcl9jb25maWcuemlnDQpzcmMvd2ViLnppZw0Kc3JjL3dlYi96c3RiaS56aWcNCnRlc3QvZGVjay9yZXBsYXkuemlnDQp0ZXN0L2RlY2svc2NoZW1hLnppZw0KdGVzdC9lMmVfaGFybmVzcy56aWcNCnRlc3QvaHhkaWZmLnppZw0KdGVzdC9pbWFnZV9oYXJuZXNzLnppZw0KdGVzdC9sc3BiZW5jaC56aWcNCnRlc3QvbHNwZml4dHVyZS9icm9rZW4uemlnDQp0ZXN0L2xzcGZpeHR1cmUvZG90Y29tcGxldGUuemlnDQp0ZXN0L2xzcGZpeHR1cmUvZG90aGFsZi56aWcNCnRlc3QvcGRmX2JlbmNoLnppZw0KdGVzdC9wZGZfc2Nyb2xsX2JlbmNoLnppZw0KdGVzdC9wZGZfc2VjdGlvbnNfYmVuY2guemlnDQp0ZXN0L3BlcmYuemlnDQp0ZXN0L3NuYXBzaG90LnppZw0KdG9vbHMvZW1iZWRfemlnX3NvdXJjZXMuemlnDQp0b29scy9nZW5fdGhlbWVzLnppZw0KdXVjb2RlX2NvbmZpZy56aWcNChtdMTMzO0MHG10xMzM7RAcbXTEzMztDBxtdMDtnb2JsaW5AcGFyZGVzOi9ob21lL2dvYmxpbi8wMC1wcm9qZWN0cy8weDQyMDAuY2FmZS8wMi1wYXJkZXMtY29kZQcbWz8yMDA0aBtdMTMzO0E7Y2w9bGluZQckIBtdMTMzO0IHG1tL",
+ .cursor = .{ .col = 2, .row = 27 },
},
.file = null,
.image = null,
}},
-} \ No newline at end of file
+}
diff --git a/test/web-snapshots/source-list.golden b/test/web-snapshots/source-list.golden
index 907b1bd5..afe1414b 100644
--- a/test/web-snapshots/source-list.golden
+++ b/test/web-snapshots/source-list.golden
@@ -1,190 +1,228 @@
-== snap launcher grid=120x37 cursor=4,23
+== snap launcher-bottom grid=120x37 cursor=4,36
|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill
-|$ /home/goblin/00-projects/0x4200.cafe/02-pardes-code New Del
-| $ git ls-files '*.zig'
-| build.zig
-| src/crt.zig
-| src/deck.zig
-| src/dump.zig
-| src/gui.zig
-| src/image.zig
-| src/look.zig
-| src/main.zig
-| src/modal.zig
-| src/pardes.zig
+| /home/goblin/00-projects/0x4200.cafe/02-pardes-code New Del
+| src/pdf_pane_integration_test.zig
| src/petscii.zig
+| src/runtime_config.zig
+| src/selection_pipe.zig
+| src/shell_bin.zig
| src/syntax.zig
+| src/temp_file.zig
+| src/term_pane.zig
+| src/themes/acme.zig
+| src/themes/dark.zig
+| src/themes/helix.zig
| src/tracy.zig
-| src/tty.zig
+| src/tty/panel_compositor.zig
+| src/tty/tty.zig
+| src/user_config.zig
+| src/web.zig
+| src/web/zstbi.zig
| test/deck/replay.zig
| test/deck/schema.zig
| test/e2e_harness.zig
| test/hxdiff.zig
+| test/image_harness.zig
+| test/lspbench.zig
+| test/lspfixture/broken.zig
+| test/lspfixture/dotcomplete.zig
+| test/lspfixture/dothalf.zig
+| test/pdf_bench.zig
+| test/pdf_scroll_bench.zig
+| test/pdf_sections_bench.zig
+| test/perf.zig
| test/snapshot.zig
+| tools/embed_zig_sources.zig
+| tools/gen_themes.zig
| uucode_config.zig
|
-|
-|
-|
-|
-|
-|
-|
-|
-|
-|
-|
-|
-|
+== snap launcher-top grid=120x37 cursor=4,36
+|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill
+| /home/goblin/00-projects/0x4200.cafe/02-pardes-code New Del
+| git ls-files --cached --others --exclude-standard -- '*.zig' | sort
+| build.zig
+| build/snap.zig
+| mupdf.zig
+| src/allocators.zig
+| src/animation.zig
+| src/builtins.zig
+| src/config.zig
+| src/dump.zig
+| src/effect_sources.zig
+| src/file_pane.zig
+| src/fonts.zig
+| src/grammar_manifest.zig
+| src/gui/crt.zig
+| src/gui/deck.zig
+| src/gui/gui.zig
+| src/image.zig
+| src/image_pane.zig
+| src/look.zig
+| src/lsp/lsp.zig
+| src/lsp/lsp_zls.zig
+| src/macos.zig
+| src/main.zig
+| src/message.zig
+| src/modal.zig
+| src/nested.zig
+| src/normal_input.zig
+| src/output_pane.zig
+| src/panel_animation.zig
+| src/pardes.zig
+| src/pdf.zig
+| src/pdf_pane.zig
+| src/pdf_pane_integration_test.zig
+| src/petscii.zig
+| src/runtime_config.zig
== snap source-open grid=120x37 cursor=7,2
|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill
-| build.zig Save New Del $ /home/goblin/00-projects/0x4200.cafe/02-pardes-code New De
-| 1 const std = @import("std"); $ git ls-files '*.zig'
-| 2 const snap_build = @import("build/snap.zig"); build.zig
-| 3 src/crt.zig
-| 4 pub const Platform = enum { tty, gui, web }; src/deck.zig
-| 5 src/dump.zig
-| 6 /// The ZLS the language backend links, spelled once. src/gui.zig
-| 7 /// build.zig.zon pins (0.16.x branch) and is passed src/image.zig
-| 8 /// `-Dversion-string` (its build.zig otherwise shell src/look.zig
-| 9 /// which fails on a fetched package that has no .git src/main.zig
-| 10 const zls_version = "0.16.1-dev+3e0d0820"; src/modal.zig
-| 11 pub const TreeSitterGrammars = enum { disabled, zig, src/pardes.zig
-| 12 src/petscii.zig
-| 13 pub fn build(b: *std.Build) void { src/syntax.zig
-| 14 // Default target is the Steam Deck (deckcap's tr src/tracy.zig
-| 15 // with the glibc version pinned low, so a binary src/tty.zig
-| 16 // release host runs on SteamOS — a native build test/deck/replay.zig
-| 17 // newer versioned libm/libc symbols and dies wit test/deck/schema.zig
-| 18 // on the deck. Override with -Dtarget= as usual. test/e2e_harness.zig
-| 19 const target = b.standardTargetOptions(.{ .defaul test/hxdiff.zig
-| 20 .cpu_arch = .x86_64, test/snapshot.zig
-| 21 .os_tag = .linux, uucode_config.zig
-| 22 .abi = .gnu,
-| 23 .glibc_version = .{ .major = 2, .minor = 38,
-| 24 } });
-| 25 const requested_optimize = b.standardOptimizeOpti
-| 26 const platform = b.option(Platform, "platform", "
-| 27 const static = b.option(bool, "static", "statical
-| 28 const dump_path = b.option([]const u8, "dump", "d
-| 29 const is_web = platform == .web;
-| 30 const is_web_target = target.result.cpu.arch == .
-| 31 // wasm: size is the budget
-| 32 const optimize = if (is_web) .ReleaseSmall else r
-| 33 // The vendored C is never what we are debugging,
-| 34 // the app: 90% of a Debug startup is tree-sitter
-| 35 // (perf: ts_query__perform_analysis + ts_lookahe
+| build.zig Save New Del /home/goblin/00-projects/0x4200.cafe/02-pardes-code New De
+| 1 const std = @import("std"); git ls-files --cached --others --exclude-standard -- '*.
+| 2 const builtin = @import("builtin"); zig' | sort
+| 3 const mupdf_build = @import("mupdf.zig"); build.zig
+| 4 const snap_build = @import("build/snap.zig"); build/snap.zig
+| 5 const grammar_manifest = @import("src/grammar_manife↩ mupdf.zig
+| st.zig"); src/allocators.zig
+| 6 src/animation.zig
+| 7 pub const Platform = enum { tty, gui, web, macos }; src/builtins.zig
+| 8 src/config.zig
+| 9 /// The oldest macOS pardes.app claims to run on, sp↩ src/dump.zig
+| elled ONCE. Three things src/effect_sources.zig
+| 10 /// have to agree about it or the bundle is a lie: t↩ src/file_pane.zig
+| he target this build gives src/fonts.zig
+| 11 /// the static library, the `-target` the app's swif↩ src/grammar_manifest.zig
+| tc link is given (which is src/gui/crt.zig
+| 12 /// what writes LC_BUILD_VERSION, the thing dyld act↩ src/gui/deck.zig
+| ually enforces), and the src/gui/gui.zig
+| 13 /// plist's LSMinimumSystemVersion. The macos branch↩ src/image.zig
+| below derives the last two src/image_pane.zig
+| 14 /// from this, so there is one string and no drift. src/look.zig
+| 15 pub const macos_min_version: std.SemanticVersion = .↩ src/lsp/lsp.zig
+| { .major = 13, .minor = 0, .patch = 0 }; src/lsp/lsp_zls.zig
+| 16 src/macos.zig
+| 17 /// The ZLS the language backend links, spelled once↩ src/main.zig
+| . It names the commit src/message.zig
+| 18 /// build.zig.zon pins (0.16.x branch) and is passed↩ src/modal.zig
+| BOTH to ZLS's own src/nested.zig
+| 19 /// `-Dversion-string` (its build.zig otherwise shel↩ src/normal_input.zig
+| ls out to `git describe`, src/output_pane.zig
+| 20 /// which fails on a fetched package that has no .gi↩ src/panel_animation.zig
+| t) and to `SPC l i`. src/pardes.zig
+| 21 const zls_version = "0.16.1-dev+3e0d0820"; src/pdf.zig
+| 22 pub const TreeSitterGrammars = enum { disabled, zig,↩ src/pdf_pane.zig
+| minimal, full }; src/pdf_pane_integration_test.zig
+| 23 src/petscii.zig
== style source-open
-|0: 0-56 #969696,#2c2a3e, 57-119 d,#2c2a3e,
-|1: 0-1 #ffffff,#6e4fd0, 2-23 #969696,#2c2a3e, 24-59 d,#2c2a3e, 60-61 #ffffff,#383c54, 62-119 #969696,#2c2a3e,
-|2: 0-0 d,#525252, 1-1 d,d, 2-6 #969696,#2c2a3e, 7-18 d,d, 19-25 #cc70d8,d,b 26-26 d,d, 27-31 #8ab87a,d, 32-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|3: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-25 d,d, 26-32 #cc70d8,d,b 33-33 d,d, 34-49 #8ab87a,d, 50-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|4: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|5: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-27 d,d, 28-31 #cc70d8,d,b 32-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|6: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|7: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|8: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|9: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|10: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|11: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-26 d,d, 27-47 #8ab87a,d, 48-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|12: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-37 d,d, 38-41 #cc70d8,d,b 42-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|13: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|14: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-12 #cc70d8,d,b 13-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|15: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|16: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|17: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|18: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|19: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|20: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|21: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|22: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|23: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|24: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-43 d,d, 44-44 #d0c070,d, 45-55 d,d, 56-57 #d0c070,d, 58-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|25: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|26: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|27: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-46 d,d, 47-56 #8ab87a,d, 57-58 d,d, 59-59 #8ab87a,d, 60-60 d,#525252, 61-119 d,d,
-|28: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-40 d,d, 41-48 #8ab87a,d, 49-50 d,d, 51-59 #8ab87a,d, 60-60 d,#525252, 61-119 d,d,
-|29: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-49 d,d, 50-55 #8ab87a,d, 56-57 d,d, 58-59 #8ab87a,d, 60-60 d,#525252, 61-119 d,d,
-|30: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|31: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|32: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-37 #f0f0f0,d,b 38-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|33: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-27 d,d, 28-29 #cc70d8,d,b 30-53 d,d, 54-57 #cc70d8,d,b 58-59 d,d, 60-60 d,#525252, 61-119 d,d,
-|34: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|35: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
-|36: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-10 d,d, 11-59 #f0f0f0,d,b 60-60 d,#525252, 61-119 d,d,
+|0: 0-56 #949494,#121212, 57-119 d,#121212,
+|1: 0-1 #ffffff,#626262, 2-39 #949494,#121212, 40-59 d,#121212, 60-61 #ffffff,#262626, 62-119 #949494,#121212,
+|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-18 #bdbdbd,#080808, 19-25 #cf87e8,#080808,b 26-26 #bdbdbd,#080808, 27-31 #e3c78a,#080808, 32-33 #bdbdbd,#080808, 34-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|3: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-22 #bdbdbd,#080808, 23-29 #cf87e8,#080808,b 30-30 #bdbdbd,#080808, 31-39 #e3c78a,#080808, 40-41 #bdbdbd,#080808, 42-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|4: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-26 #bdbdbd,#080808, 27-33 #cf87e8,#080808,b 34-34 #bdbdbd,#080808, 35-45 #e3c78a,#080808, 46-47 #bdbdbd,#080808, 48-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|5: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-25 #bdbdbd,#080808, 26-32 #cf87e8,#080808,b 33-33 #bdbdbd,#080808, 34-49 #e3c78a,#080808, 50-51 #bdbdbd,#080808, 52-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|6: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-31 #bdbdbd,#080808, 32-38 #cf87e8,#080808,b 39-39 #bdbdbd,#080808, 40-58 #e3c78a,#080808, 59-59 #626262,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|7: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #e3c78a,#080808, 14-15 #bdbdbd,#080808, 16-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|8: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|9: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-27 #bdbdbd,#080808, 28-31 #cf87e8,#080808,b 32-57 #bdbdbd,#080808, 58-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|10: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|11: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|12: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-30 #ffffff,#080808,b 31-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|13: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|14: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-32 #ffffff,#080808,b 33-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|15: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|16: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-32 #ffffff,#080808,b 33-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|17: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|18: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-30 #ffffff,#080808,b 31-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|19: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|20: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-33 #ffffff,#080808,b 34-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|21: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-57 #ffffff,#080808,b 58-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|22: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #bdbdbd,#080808, 59-59 #626262,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|23: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-19 #e3c78a,#080808, 20-30 #bdbdbd,#080808, 31-31 #e3c78a,#080808, 32-42 #bdbdbd,#080808, 43-43 #e3c78a,#080808, 44-46 #bdbdbd,#080808, 47-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|24: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|25: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|26: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-27 #ffffff,#080808,b 28-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|27: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|28: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-24 #ffffff,#080808,b 25-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|30: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-31 #ffffff,#080808,b 32-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|31: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-58 #ffffff,#080808,b 59-59 #626262,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|32: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-26 #ffffff,#080808,b 27-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|33: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-26 #bdbdbd,#080808, 27-47 #e3c78a,#080808, 48-48 #bdbdbd,#080808, 49-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|34: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-37 #bdbdbd,#080808, 38-41 #cf87e8,#080808,b 42-58 #bdbdbd,#080808, 59-59 #626262,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|35: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-23 #bdbdbd,#080808, 24-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
+|36: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#121212, 61-61 d,#080808, 62-119 #bdbdbd,#080808,
== snap separator-resized grid=120x37 cursor=7,2
|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill
-| build.zig Save New Del ╎$ /home/goblin/00-projects/0x4200.cafe/02-pardes-code New D
-| 1 const std = @import("std"); ╎ $ git ls-files '*.zig'
-| 2 const snap_build = @import("build/snap.zig"); ╎ build.zig
-| 3 ╎ src/crt.zig
-| 4 pub const Platform = enum { tty, gui, web }; ╎ src/deck.zig
-| 5 ╎ src/dump.zig
-| 6 /// The ZLS the language backend links, spelled once.╎ src/gui.zig
-| 7 /// build.zig.zon pins (0.16.x branch) and is passed ╎ src/image.zig
-| 8 /// `-Dversion-string` (its build.zig otherwise shell╎ src/look.zig
-| 9 /// which fails on a fetched package that has no .git╎ src/main.zig
-| 10 const zls_version = "0.16.1-dev+3e0d0820"; ╎ src/modal.zig
-| 11 pub const TreeSitterGrammars = enum { disabled, zig, ╎ src/pardes.zig
-| 12 ╎ src/petscii.zig
-| 13 pub fn build(b: *std.Build) void { ╎ src/syntax.zig
-| 14 // Default target is the Steam Deck (deckcap's tr╎ src/tracy.zig
-| 15 // with the glibc version pinned low, so a binary╎ src/tty.zig
-| 16 // release host runs on SteamOS — a native build ╎ test/deck/replay.zig
-| 17 // newer versioned libm/libc symbols and dies wit╎ test/deck/schema.zig
-| 18 // on the deck. Override with -Dtarget= as usual.╎ test/e2e_harness.zig
-| 19 const target = b.standardTargetOptions(.{ .defaul╎ test/hxdiff.zig
-| 20 .cpu_arch = .x86_64, ╎ test/snapshot.zig
-| 21 .os_tag = .linux, ╎ uucode_config.zig
-| 22 .abi = .gnu, ╎
-| 23 .glibc_version = .{ .major = 2, .minor = 38, ╎
-| 24 } }); ╎
-| 25 const requested_optimize = b.standardOptimizeOpti╎
-| 26 const platform = b.option(Platform, "platform", "╎
-| 27 const static = b.option(bool, "static", "statical╎
-| 28 const dump_path = b.option([]const u8, "dump", "d╎
-| 29 const is_web = platform == .web; ╎
-| 30 const is_web_target = target.result.cpu.arch == .╎
-| 31 // wasm: size is the budget ╎
-| 32 const optimize = if (is_web) .ReleaseSmall else r╎
-| 33 // The vendored C is never what we are debugging,╎
-| 34 // the app: 90% of a Debug startup is tree-sitter╎
-| 35 // (perf: ts_query__perform_analysis + ts_lookahe╎
+| build.zig Save New Del /home/goblin/00-projects/0x4200.cafe/02-pardes-code New D
+| 1 const std = @import("std"); git ls-files --cached --others --exclude-standard -- '*
+| 2 const builtin = @import("builtin"); .zig' | sort
+| 3 const mupdf_build = @import("mupdf.zig"); build.zig
+| 4 const snap_build = @import("build/snap.zig"); build/snap.zig
+| 5 const grammar_manifest = @import("src/grammar_manifes↩ mupdf.zig
+| t.zig"); src/allocators.zig
+| 6 src/animation.zig
+| 7 pub const Platform = enum { tty, gui, web, macos }; src/builtins.zig
+| 8 src/config.zig
+| 9 /// The oldest macOS pardes.app claims to run on, spe↩ src/dump.zig
+| lled ONCE. Three things src/effect_sources.zig
+| 10 /// have to agree about it or the bundle is a lie: th↩ src/file_pane.zig
+| e target this build gives src/fonts.zig
+| 11 /// the static library, the `-target` the app's swift↩ src/grammar_manifest.zig
+| c link is given (which is src/gui/crt.zig
+| 12 /// what writes LC_BUILD_VERSION, the thing dyld actu↩ src/gui/deck.zig
+| ally enforces), and the src/gui/gui.zig
+| 13 /// plist's LSMinimumSystemVersion. The macos branch ↩ src/image.zig
+| below derives the last two src/image_pane.zig
+| 14 /// from this, so there is one string and no drift. src/look.zig
+| 15 pub const macos_min_version: std.SemanticVersion = .{↩ src/lsp/lsp.zig
+| .major = 13, .minor = 0, .patch = 0 }; src/lsp/lsp_zls.zig
+| 16 src/macos.zig
+| 17 /// The ZLS the language backend links, spelled once.↩ src/main.zig
+| It names the commit src/message.zig
+| 18 /// build.zig.zon pins (0.16.x branch) and is passed ↩ src/modal.zig
+| BOTH to ZLS's own src/nested.zig
+| 19 /// `-Dversion-string` (its build.zig otherwise shell↩ src/normal_input.zig
+| s out to `git describe`, src/output_pane.zig
+| 20 /// which fails on a fetched package that has no .git↩ src/panel_animation.zig
+| ) and to `SPC l i`. src/pardes.zig
+| 21 const zls_version = "0.16.1-dev+3e0d0820"; src/pdf.zig
+| 22 pub const TreeSitterGrammars = enum { disabled, zig, ↩ src/pdf_pane.zig
+| minimal, full }; src/pdf_pane_integration_test.zig
+| 23 src/petscii.zig
== snap source-scrolled grid=120x37 cursor=7,2
|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill
-| build.zig Save New Del ╎$ /home/goblin/00-projects/0x4200.cafe/02-pardes-code New D
-| 1 const std = @import("std"); ╎ $ git ls-files '*.zig'
-| 2 const snap_build = @import("build/snap.zig"); ╎ build.zig
-| 3 ╎ src/crt.zig
-| 4 pub const Platform = enum { tty, gui, web }; ╎ src/deck.zig
-| 5 ╎ src/dump.zig
-| 6 /// The ZLS the language backend links, spelled once.╎ src/gui.zig
-| 7 /// build.zig.zon pins (0.16.x branch) and is passed ╎ src/image.zig
-| 8 /// `-Dversion-string` (its build.zig otherwise shell╎ src/look.zig
-| 9 /// which fails on a fetched package that has no .git╎ src/main.zig
-| 10 const zls_version = "0.16.1-dev+3e0d0820"; ╎ src/modal.zig
-| 11 pub const TreeSitterGrammars = enum { disabled, zig, ╎ src/pardes.zig
-| 12 ╎ src/petscii.zig
-| 13 pub fn build(b: *std.Build) void { ╎ src/syntax.zig
-| 14 // Default target is the Steam Deck (deckcap's tr╎ src/tracy.zig
-| 15 // with the glibc version pinned low, so a binary╎ src/tty.zig
-| 16 // release host runs on SteamOS — a native build ╎ test/deck/replay.zig
-| 17 // newer versioned libm/libc symbols and dies wit╎ test/deck/schema.zig
-| 18 // on the deck. Override with -Dtarget= as usual.╎ test/e2e_harness.zig
-| 19 const target = b.standardTargetOptions(.{ .defaul╎ test/hxdiff.zig
-| 20 .cpu_arch = .x86_64, ╎ test/snapshot.zig
-| 21 .os_tag = .linux, ╎ uucode_config.zig
-| 22 .abi = .gnu, ╎
-| 23 .glibc_version = .{ .major = 2, .minor = 38, ╎
-| 24 } }); ╎
-| 25 const requested_optimize = b.standardOptimizeOpti╎
-| 26 const platform = b.option(Platform, "platform", "╎
-| 27 const static = b.option(bool, "static", "statical╎
-| 28 const dump_path = b.option([]const u8, "dump", "d╎
-| 29 const is_web = platform == .web; ╎
-| 30 const is_web_target = target.result.cpu.arch == .╎
-| 31 // wasm: size is the budget ╎
-| 32 const optimize = if (is_web) .ReleaseSmall else r╎
-| 33 // The vendored C is never what we are debugging,╎
-| 34 // the app: 90% of a Debug startup is tree-sitter╎
-| 35 // (perf: ts_query__perform_analysis + ts_lookahe╎
+| build.zig Save New Del /home/goblin/00-projects/0x4200.cafe/02-pardes-code New D
+| 1 const std = @import("std"); git ls-files --cached --others --exclude-standard -- '*
+| 2 const builtin = @import("builtin"); .zig' | sort
+| 3 const mupdf_build = @import("mupdf.zig"); build.zig
+| 4 const snap_build = @import("build/snap.zig"); build/snap.zig
+| 5 const grammar_manifest = @import("src/grammar_manifes↩ mupdf.zig
+| t.zig"); src/allocators.zig
+| 6 src/animation.zig
+| 7 pub const Platform = enum { tty, gui, web, macos }; src/builtins.zig
+| 8 src/config.zig
+| 9 /// The oldest macOS pardes.app claims to run on, spe↩ src/dump.zig
+| lled ONCE. Three things src/effect_sources.zig
+| 10 /// have to agree about it or the bundle is a lie: th↩ src/file_pane.zig
+| e target this build gives src/fonts.zig
+| 11 /// the static library, the `-target` the app's swift↩ src/grammar_manifest.zig
+| c link is given (which is src/gui/crt.zig
+| 12 /// what writes LC_BUILD_VERSION, the thing dyld actu↩ src/gui/deck.zig
+| ally enforces), and the src/gui/gui.zig
+| 13 /// plist's LSMinimumSystemVersion. The macos branch ↩ src/image.zig
+| below derives the last two src/image_pane.zig
+| 14 /// from this, so there is one string and no drift. src/look.zig
+| 15 pub const macos_min_version: std.SemanticVersion = .{↩ src/lsp/lsp.zig
+| .major = 13, .minor = 0, .patch = 0 }; src/lsp/lsp_zls.zig
+| 16 src/macos.zig
+| 17 /// The ZLS the language backend links, spelled once.↩ src/main.zig
+| It names the commit src/message.zig
+| 18 /// build.zig.zon pins (0.16.x branch) and is passed ↩ src/modal.zig
+| BOTH to ZLS's own src/nested.zig
+| 19 /// `-Dversion-string` (its build.zig otherwise shell↩ src/normal_input.zig
+| s out to `git describe`, src/output_pane.zig
+| 20 /// which fails on a fetched package that has no .git↩ src/panel_animation.zig
+| ) and to `SPC l i`. src/pardes.zig
+| 21 const zls_version = "0.16.1-dev+3e0d0820"; src/pdf.zig
+| 22 pub const TreeSitterGrammars = enum { disabled, zig, ↩ src/pdf_pane.zig
+| minimal, full }; src/pdf_pane_integration_test.zig
+| 23 src/petscii.zig
diff --git a/test/web-snapshots/source-list.snap b/test/web-snapshots/source-list.snap
index 61cb94d3..3f1a2a20 100644
--- a/test/web-snapshots/source-list.snap
+++ b/test/web-snapshots/source-list.snap
@@ -1,16 +1,29 @@
# Browser-only .snap commands. The page is built from a dump made by a real
-# Pardes TTY after running `git ls-files '*.zig'`; touch events below are
-# injected through Chrome's real browser input path.
+# Pardes TTY after running the same tracked-plus-new/nonignored source selection
+# as the web archive generator; touch events below use Chrome's browser path.
wait 10000 uucode_config.zig
stable 100 5000
-snap launcher
+snap launcher-bottom
+
+# Replayed terminal state follows its live cursor at the bottom. Scroll to the
+# first half as an actual browser gesture: together these two snapshots cover
+# every path instead of silently testing only a stale suffix. The dump command
+# is sorted like the archive, leaving build.zig at row 3 once we reach the top.
+swipe 4 60 2 60 34 40
+wait 10000 build.zig
+stable 100 5000
+snap launcher-top
# A little sub-slop movement is still a tap. On web one-finger taps are LOOK,
-# so this opens build.zig from the archive generated from Git-tracked sources.
+# so this opens build.zig from the working-tree archive generated from Git's
+# tracked-plus-new/nonignored source view.
touch down 1 5 3
touch move 1 5.2 3.1
touch up 1 5.2 3.1
-wait 10000 build.zig Save New Del
+# The editable path and the right-aligned command tail deliberately have
+# layout-owned padding between them. Check the two semantic facts separately.
+wait 10000 Save New Del
+wait 10000 build.zig
stable 100 5000
snap source-open
snapstyle source-open