Renderer cost dominates theme, font and resize switches at 4x CPU #97

Open
opened 2026-10-08 11:51:17 +00:00 by kayg · 154 comments
Owner

The demo-preview work-timing audit (docs/perf/work-timing.md on demo-preview, 443d539) shows the remaining over-budget operations at 4x CPU are bound by the terminal renderer: theme switch about 44/74 ms p50/p95 (a style recalc of about 350 elements plus the renderer recolouring every row), cold font switch 42/99-124 ms and window-resize commit (cell re-measure and full redraw). Target per the owner's instant-work rule: our work at most 16 ms p95 at 4x CPU. Investigate renderer-side: recolour by palette swap without re-rasterising unchanged glyphs, an incremental re-measure, a glyph atlas reused across themes, and moving the recolour off the critical task. Measure on the perf VM and confirm on the macOS test VM (real GPU compositing). Codex job (performance work).

The demo-preview work-timing audit (docs/perf/work-timing.md on demo-preview, 443d539) shows the remaining over-budget operations at 4x CPU are bound by the terminal renderer: theme switch about 44/74 ms p50/p95 (a style recalc of about 350 elements plus the renderer recolouring every row), cold font switch 42/99-124 ms and window-resize commit (cell re-measure and full redraw). Target per the owner's instant-work rule: our work at most 16 ms p95 at 4x CPU. Investigate renderer-side: recolour by palette swap without re-rasterising unchanged glyphs, an incremental re-measure, a glyph atlas reused across themes, and moving the recolour off the critical task. Measure on the perf VM and confirm on the macOS test VM (real GPU compositing). Codex job (performance work).
Author
Owner

Launched renderer-cost (Codex GPT 6 Luna Max: scoped perf work with a measured repro). Branch renderer-cost from dev c0a0982.

Launched renderer-cost (Codex GPT 6 Luna Max: scoped perf work with a measured repro). Branch renderer-cost from dev c0a0982.
Author
Owner

Starting renderer-cost on branch renderer-cost, base c0a0982a0eca991fadfcc7bf597f2db6b5d36ccd. The issue and archived timing audit are read. fj issue view ... comments currently fails with InvalidContentType while listing the single comment; I’m resolving that before edits. No benchmark or code changes yet.

Starting renderer-cost on branch `renderer-cost`, base `c0a0982a0eca991fadfcc7bf597f2db6b5d36ccd`. The issue and archived timing audit are read. `fj issue view ... comments` currently fails with InvalidContentType while listing the single comment; I’m resolving that before edits. No benchmark or code changes yet.
Author
Owner

Baseline source evidence (git show 443d539:docs/perf/work-timing.md, n=14, 4x): theme switch 44.1/74.3 ms p50/p95, cold font 42.4/124.3 ms, resize commit 23.9/31.2 ms. infraternal-dev is the benchmark host (8 CPUs); current load average is 20.29/19.97/22.05.

Baseline source evidence (`git show 443d539:docs/perf/work-timing.md`, n=14, 4x): theme switch 44.1/74.3 ms p50/p95, cold font 42.4/124.3 ms, resize commit 23.9/31.2 ms. `infraternal-dev` is the benchmark host (8 CPUs); current load average is 20.29/19.97/22.05.
Author
Owner

Reproduced on infraternal-dev at base c0a0982, 4x CDP, n=14, CPUWeight=10000, TRACER_TEST_PORT=4497. Under host load 55.47→49.83 (1m load; 5m/15m 43.10/31.61→43.97/32.75), current harness measured our-work p50/p95: theme 83.7/181.4 ms, warm font 40.9/132.4 ms, cold font 154.1/421.1 ms, resize 47.8/63.6 ms. This run is load-contaminated versus the archived 44.1/74.3, 22.1/27.6, 42.4/124.3, and 23.9/31.2 ms.

Reproduced on `infraternal-dev` at base `c0a0982`, 4x CDP, `n=14`, `CPUWeight=10000`, `TRACER_TEST_PORT=4497`. Under host load 55.47→49.83 (1m load; 5m/15m 43.10/31.61→43.97/32.75), current harness measured our-work p50/p95: theme 83.7/181.4 ms, warm font 40.9/132.4 ms, cold font 154.1/421.1 ms, resize 47.8/63.6 ms. This run is load-contaminated versus the archived 44.1/74.3, 22.1/27.6, 42.4/124.3, and 23.9/31.2 ms.
Author
Owner

Benchmark harness finding: product canvas includes four static Settings windows, so global .ui-window counts overstate live terminals; the spec now scopes to Console. At 8 Console windows, all eight renderer metrics existed but only five surfaces were allocated after Escape, so the harness now invokes the explicit canvas:overview action and checks all eight surfaces before sampling. Diagnostic baseline (4x, n=2, CPUWeight=10000, host load 21.93/24.67/30.28): 1 terminal used 8.48 MiB WASM+canvas; theme first-window CPU 148.6 ms, warm font 54.6 ms, cold font 56.3/68.2 ms p50/p95, resize 52.8 ms. At 4 terminals, 24.61 MiB/session; theme 211.6 ms, warm font 85.7 ms, cold font 89.5/188.8 ms, resize 75.3 ms. These are harness diagnostics under concurrent host load, not final comparison values. 8-terminal run is being corrected and rerun.

Benchmark harness finding: product canvas includes four static Settings windows, so global `.ui-window` counts overstate live terminals; the spec now scopes to Console. At 8 Console windows, all eight renderer metrics existed but only five surfaces were allocated after Escape, so the harness now invokes the explicit `canvas:overview` action and checks all eight surfaces before sampling. Diagnostic baseline (4x, n=2, `CPUWeight=10000`, host load 21.93/24.67/30.28): 1 terminal used 8.48 MiB WASM+canvas; theme first-window CPU 148.6 ms, warm font 54.6 ms, cold font 56.3/68.2 ms p50/p95, resize 52.8 ms. At 4 terminals, 24.61 MiB/session; theme 211.6 ms, warm font 85.7 ms, cold font 89.5/188.8 ms, resize 75.3 ms. These are harness diagnostics under concurrent host load, not final comparison values. 8-terminal run is being corrected and rerun.
Author
Owner

The product-canvas bench now completes at 1/4/8 visible terminals (renderer-cost.spec.ts, Chromium CDP 4x, CPUWeight=10000, n=2; load average 25.92/27.67/30.37 -> 18.72/23.79/28.52). First-window CPU p50/p95, ms: theme 1/4/8 = 203.7/203.7, 111.9/111.9, 232.8/232.8; warm font = 28.2/28.2, 44.5/44.5, 90.8/90.8; cold font = 44.9/121.4, 59.8/95.1, 79.9/127.5; resize = 52.5/52.5, 63.3/63.3, 74.5/74.5. Low n and concurrent host load make these diagnostic only. The raw WASM memory counter increases across session counts; checking whether sessions share the reported memory before calculating the D170-scale estimate. The 8-terminal screenshot is attached by the spec.

The product-canvas bench now completes at 1/4/8 visible terminals (`renderer-cost.spec.ts`, Chromium CDP 4x, `CPUWeight=10000`, n=2; load average 25.92/27.67/30.37 -> 18.72/23.79/28.52). First-window CPU p50/p95, ms: theme 1/4/8 = 203.7/203.7, 111.9/111.9, 232.8/232.8; warm font = 28.2/28.2, 44.5/44.5, 90.8/90.8; cold font = 44.9/121.4, 59.8/95.1, 79.9/127.5; resize = 52.5/52.5, 63.3/63.3, 74.5/74.5. Low n and concurrent host load make these diagnostic only. The raw WASM memory counter increases across session counts; checking whether sessions share the reported memory before calculating the D170-scale estimate. The 8-terminal screenshot is attached by the spec.
Author
Owner

Memory correction from the benchmark identity check: all sessions in a page share one WASM memory object, so the earlier 24.61/46.12 MiB per-session figures were repeated module totals and are invalid. At n=2 the unique WASM allocation was 7.06/22.81/43.81 MiB for 1/4/8 terminals; canvas backing is 1.22 MiB per terminal. Amortized total is 8.29/6.93/6.70 MiB per terminal, or 1,060.5/886.5/857.5 MiB at 128 sessions. That scale uses the 128-session capacity in docs/S1-VT-GHOSTTY.md because D170 is absent from this checkout. The run load was 19.24/22.22/27.54 -> 35.82/29.76/29.47, so CPU timings remain diagnostic only.

Memory correction from the benchmark identity check: all sessions in a page share one WASM memory object, so the earlier 24.61/46.12 MiB per-session figures were repeated module totals and are invalid. At n=2 the unique WASM allocation was 7.06/22.81/43.81 MiB for 1/4/8 terminals; canvas backing is 1.22 MiB per terminal. Amortized total is 8.29/6.93/6.70 MiB per terminal, or 1,060.5/886.5/857.5 MiB at 128 sessions. That scale uses the 128-session capacity in `docs/S1-VT-GHOSTTY.md` because D170 is absent from this checkout. The run load was 19.24/22.22/27.54 -> 35.82/29.76/29.47, so CPU timings remain diagnostic only.
Author
Owner

Fast-gate setup finding: with CARGO_TARGET_DIR under the required scratch path, initial_attach_requires_explicit_credit_before_replay failed because scripts/verify-agent-attach-credit.py creates target/ac… relative to the worktree and that path did not exist. I mapped worktree target temporarily to the same scratch directory; the gate is rerunning. Its aarch64 Zig native build is still active; observed load was 40.46/33.33/29.99.

Fast-gate setup finding: with `CARGO_TARGET_DIR` under the required scratch path, `initial_attach_requires_explicit_credit_before_replay` failed because `scripts/verify-agent-attach-credit.py` creates `target/ac…` relative to the worktree and that path did not exist. I mapped worktree `target` temporarily to the same scratch directory; the gate is rerunning. Its aarch64 Zig native build is still active; observed load was 40.46/33.33/29.99.
Author
Owner

Finding: the first queued redraw called vendored renderer.render() after painting its slices. The renderer unconditionally marks every scrollback viewport row for painting (apps/tracer/vendor/ghostty-web/dist/ghostty-web.js), so a scrolled theme/font redraw repeated the full viewport in one synchronous task. The slice completion now updates only cursor and scrollbar state; git diff --check is clean. Measurement is pending on infraternal-dev after host load settles.

Finding: the first queued redraw called vendored `renderer.render()` after painting its slices. The renderer unconditionally marks every scrollback viewport row for painting (`apps/tracer/vendor/ghostty-web/dist/ghostty-web.js`), so a scrolled theme/font redraw repeated the full viewport in one synchronous task. The slice completion now updates only cursor and scrollbar state; `git diff --check` is clean. Measurement is pending on infraternal-dev after host load settles.
Author
Owner

Finding: moving appearance tokens to .terminal-screen left detached cl-summary and Mesh confirmation surfaces inheriting document defaults. The shared floating-token copier now feeds those surfaces from the scoped screen and refreshes them on appearance changes (packages/ui/src/tooltip.ts, apps/tracer/src/canvas/views/world.ts, apps/tracer/src/canvas/mesh/index.ts). No benchmark evidence yet; the production build/browser gate is pending.

Finding: moving appearance tokens to `.terminal-screen` left detached `cl-summary` and Mesh confirmation surfaces inheriting document defaults. The shared floating-token copier now feeds those surfaces from the scoped screen and refreshes them on appearance changes (`packages/ui/src/tooltip.ts`, `apps/tracer/src/canvas/views/world.ts`, `apps/tracer/src/canvas/mesh/index.ts`). No benchmark evidence yet; the production build/browser gate is pending.
Author
Owner

Finding: fast-gate Rust test vt_reconnect::snapshot_limits_never_close_live_reconnect failed waiting for reconnect (crates/infraternal/tests/vt_reconnect.rs:20) while infraternal-dev loadavg was 25.51/22.78/25.74. Other Rust tests shown in this run passed. I will rerun the unmodified gate once after load settles, as required; no test thresholds changed.

Finding: fast-gate Rust test `vt_reconnect::snapshot_limits_never_close_live_reconnect` failed waiting for reconnect (`crates/infraternal/tests/vt_reconnect.rs:20`) while infraternal-dev loadavg was 25.51/22.78/25.74. Other Rust tests shown in this run passed. I will rerun the unmodified gate once after load settles, as required; no test thresholds changed.
Author
Owner

The fast-gate retry passed through 100 Rust integration cases, then vt_credit::unaffordable_repaints_park_until_sufficient_credit failed: its 2 MiB producer did not finish within 1.5 s (target/review-vt3-fixes/t1-gate-approximate-16384.stdout.log). Host load was 15.41/12.57/17.74 before the run and 16.57/12.92/17.79 afterward. No gate threshold was changed; I will retry after load settles.

The fast-gate retry passed through 100 Rust integration cases, then `vt_credit::unaffordable_repaints_park_until_sufficient_credit` failed: its 2 MiB producer did not finish within 1.5 s (`target/review-vt3-fixes/t1-gate-approximate-16384.stdout.log`). Host load was 15.41/12.57/17.74 before the run and 16.57/12.92/17.79 afterward. No gate threshold was changed; I will retry after load settles.
Author
Owner

Harness review found the benchmark opened empty mock sessions, while the existing palette regression seeds 10,000 ANSI history rows (apps/tracer/test/mock-server.ts:950). I added that fixture before the first terminal connection and require every measured session to reach 10,000 scrollback rows. The 1/4/8 samples now exercise the archived renderer workload.

Harness review found the benchmark opened empty mock sessions, while the existing palette regression seeds 10,000 ANSI history rows (`apps/tracer/test/mock-server.ts:950`). I added that fixture before the first terminal connection and require every measured session to reach 10,000 scrollback rows. The 1/4/8 samples now exercise the archived renderer workload.
Author
Owner

The production font-picker regression now checks the scoped screen: after selecting Geist Mono, the renderer reports geist-mono but #terminal-screen computes to Maple Mono NF (test/font-picker.spec.ts:43). Moving --font-face off :root left inherited font-family and --font-ui stale. I am scoping those resolved tokens and shared UI type roles to the screen, with sans mode still inherited from the root.

The production font-picker regression now checks the scoped screen: after selecting Geist Mono, the renderer reports `geist-mono` but `#terminal-screen` computes to Maple Mono NF (`test/font-picker.spec.ts:43`). Moving `--font-face` off `:root` left inherited `font-family` and `--font-ui` stale. I am scoping those resolved tokens and shared UI type roles to the screen, with sans mode still inherited from the root.
Author
Owner

Committed screen-scoped theme/font tokens and shared floating-surface appearance at 50b23ef957e5a1166e1c8738c4dfe7016b8c4dfe. Production Chromium checks: font-picker.spec.ts + font-switch.spec.ts, 5/5 passed in 53.1 s; this also verifies interface text, terminal canvas and reload. Fast gate is next.

Committed screen-scoped theme/font tokens and shared floating-surface appearance at `50b23ef957e5a1166e1c8738c4dfe7016b8c4dfe`. Production Chromium checks: `font-picker.spec.ts` + `font-switch.spec.ts`, 5/5 passed in 53.1 s; this also verifies interface text, terminal canvas and reload. Fast gate is next.
Author
Owner

The production terminal-theme.spec.ts run failed its 16.67 ms click assertion: n=50, p50 0.800 ms, p99/max 59.600 ms, with 87 observed long tasks over 50 ms. Host load at completion was 45.59/36.21/28.44; palette setter p50 was 0.000 ms. This run is load-contaminated, so I will rerun the renderer suite under the requested CPU weight once load settles.

The production `terminal-theme.spec.ts` run failed its 16.67 ms click assertion: n=50, p50 0.800 ms, p99/max 59.600 ms, with 87 observed long tasks over 50 ms. Host load at completion was 45.59/36.21/28.44; palette setter p50 was 0.000 ms. This run is load-contaminated, so I will rerun the renderer suite under the requested CPU weight once load settles.
Author
Owner

The preview production bundle's transfer-budget.ts check reports critical JavaScript at 320,542 B gzip / 268,087 B brotli against 307,200 / 256,000 B; deferred is 44,454 / 39,405 B against 51,200 / 45,056 B. This dist was built by Playwright with INFRATERNAL_CLUSTERS_PREVIEW=1 and INFRATERNAL_RECOVERY_UI=preview; I am comparing the same build flags on baseline before attributing the critical overage to this renderer change.

The preview production bundle's `transfer-budget.ts` check reports critical JavaScript at 320,542 B gzip / 268,087 B brotli against 307,200 / 256,000 B; deferred is 44,454 / 39,405 B against 51,200 / 45,056 B. This dist was built by Playwright with `INFRATERNAL_CLUSTERS_PREVIEW=1` and `INFRATERNAL_RECOVERY_UI=preview`; I am comparing the same build flags on baseline before attributing the critical overage to this renderer change.
Author
Owner

Matched default production builds pass D188: baseline critical 281,247 B gzip / 233,253 B brotli; current 284,913 / 236,532 (delta +3,666 / +3,279), under the 307,200 / 256,000 caps. Deferred is 47,866 / 41,460 baseline and 47,929 / 41,513 current (delta +63 / +53), under 51,200 / 45,056. Preview-flag builds both exceed the critical cap (baseline 316,845 / 264,865; current 320,542 / 268,087), with a +3,697 / +3,222 delta. The fast gate's default production build is the shipping-budget check; I will report both configurations.

Matched default production builds pass D188: baseline critical 281,247 B gzip / 233,253 B brotli; current 284,913 / 236,532 (delta +3,666 / +3,279), under the 307,200 / 256,000 caps. Deferred is 47,866 / 41,460 baseline and 47,929 / 41,513 current (delta +63 / +53), under 51,200 / 45,056. Preview-flag builds both exceed the critical cap (baseline 316,845 / 264,865; current 320,542 / 268,087), with a +3,697 / +3,222 delta. The fast gate's default production build is the shipping-budget check; I will report both configurations.
Author
Owner

The first product-canvas baseline run timed out after 60 s waiting for the 10,000-row theme fixture; the live session had retained 1,250 rows. That fixture belongs to the exhaustive palette regression and makes the scale benchmark slow and load-sensitive. I am parameterizing the shared fixture and using 128 history rows plus its existing 64 busy rows for 1/4/8-session timing, while retaining the 10,000-row default in the palette regression.

The first product-canvas baseline run timed out after 60 s waiting for the 10,000-row theme fixture; the live session had retained 1,250 rows. That fixture belongs to the exhaustive palette regression and makes the scale benchmark slow and load-sensitive. I am parameterizing the shared fixture and using 128 history rows plus its existing 64 busy rows for 1/4/8-session timing, while retaining the 10,000-row default in the palette regression.
Author
Owner

Baseline scale finding: at 4 visible terminals the benchmark fixture check found one server session and three terminals with outputSequence=0/scrollbackRows=0. The test double handled only mux stream 1, while the product opens odd streams per terminal. The 1-terminal baseline run at 4x CPU on infraternal-dev (start load 24.92/24.98/26.55) measured theme first-window CPU p50/p95 104.5/211.7 ms, cold font 207.1/257.5 ms, warm font 61.6/117.1 ms, and resize 96.8/256.1 ms; memory was 10.6 MiB/terminal (1.32 GiB × 128). These high-load partial baseline figures are not the completed scale comparison. Extending the test double to track session/output state per mux stream before rerunning.

Baseline scale finding: at 4 visible terminals the benchmark fixture check found one server session and three terminals with outputSequence=0/scrollbackRows=0. The test double handled only mux stream 1, while the product opens odd streams per terminal. The 1-terminal baseline run at 4x CPU on infraternal-dev (start load 24.92/24.98/26.55) measured theme first-window CPU p50/p95 104.5/211.7 ms, cold font 207.1/257.5 ms, warm font 61.6/117.1 ms, and resize 96.8/256.1 ms; memory was 10.6 MiB/terminal (1.32 GiB × 128). These high-load partial baseline figures are not the completed scale comparison. Extending the test double to track session/output state per mux stream before rerunning.
Author
Owner

Current renderer cost run finding: at 1 terminal, theme input script/style/layout p95 was 327.3 ms, renderer slice p95 104.2 ms, and frame-gap p95 429.3 ms; the benchmark correctly failed the 16 ms/60 fps checks. The host started at load 31.11/29.81/28.62 and was 32.92/30.45/28.90 after. ps showed concurrent rustc at 133% and 73.5% CPU plus two zig jobs at 50.5%/43.7%, so this run is load-contaminated and stopped before the 4/8 terminal counts. Waiting for the host build load to clear before rerunning; no budget thresholds changed.

Current renderer cost run finding: at 1 terminal, theme input script/style/layout p95 was 327.3 ms, renderer slice p95 104.2 ms, and frame-gap p95 429.3 ms; the benchmark correctly failed the 16 ms/60 fps checks. The host started at load 31.11/29.81/28.62 and was 32.92/30.45/28.90 after. `ps` showed concurrent rustc at 133% and 73.5% CPU plus two zig jobs at 50.5%/43.7%, so this run is load-contaminated and stopped before the 4/8 terminal counts. Waiting for the host build load to clear before rerunning; no budget thresholds changed.
Author
Owner

Completed paired baseline harness step at 6382c0a. 14 samples, Chromium 4x on infraternal-dev, CPUWeight=10000; load 32.20/29.07/27.84 → 32.15/29.80/28.57. Baseline first-window script/style/layout p50/p95: theme 1/4/8 terminals 181.6/321.9, 184.2/241.7, 180.5/286.5 ms; cold font 175.5/236.4, 167.3/339.6, 152.8/449.9 ms; warm font 50.2/139.7, 62.9/122.5, 74.6/96.6 ms; resize 129.2/182.0, 95.9/174.0, 91.9/195.4 ms. Memory 10.60/7.11/6.87 MiB per terminal, ×128 = 1324.5/888.5/858.5 MiB. Fixture validation confirmed 4/4 and 8/8 visible terminals each received 13,527 bytes and retained 218 rows. Host load was high throughout; current-run comparison is pending a lower-load rerun.

Completed paired baseline harness step at 6382c0a. 14 samples, Chromium 4x on infraternal-dev, CPUWeight=10000; load 32.20/29.07/27.84 → 32.15/29.80/28.57. Baseline first-window script/style/layout p50/p95: theme 1/4/8 terminals 181.6/321.9, 184.2/241.7, 180.5/286.5 ms; cold font 175.5/236.4, 167.3/339.6, 152.8/449.9 ms; warm font 50.2/139.7, 62.9/122.5, 74.6/96.6 ms; resize 129.2/182.0, 95.9/174.0, 91.9/195.4 ms. Memory 10.60/7.11/6.87 MiB per terminal, ×128 = 1324.5/888.5/858.5 MiB. Fixture validation confirmed 4/4 and 8/8 visible terminals each received 13,527 bytes and retained 218 rows. Host load was high throughout; current-run comparison is pending a lower-load rerun.
Author
Owner

Gate finding after 6382c0a: scripts/verify fast latency self-test passed (p50=297.03 ms, p99=318.27 ms), but vt_credit::unaffordable_repaints_park_until_sufficient_credit failed after 11.04 s with credit probe failed: t1-gate-approximate-1. At 23:44:28 UTC host load was 43.48/40.19/34.06 with concurrent rustc and zig builds. No thresholds changed; one required gate retry remains.

Gate finding after 6382c0a: `scripts/verify fast` latency self-test passed (p50=297.03 ms, p99=318.27 ms), but `vt_credit::unaffordable_repaints_park_until_sufficient_credit` failed after 11.04 s with `credit probe failed: t1-gate-approximate-1`. At 23:44:28 UTC host load was 43.48/40.19/34.06 with concurrent rustc and zig builds. No thresholds changed; one required gate retry remains.
Author
Owner

Fast-gate retry for 6382c0a completed with no threshold changes. The latency self-test passed again (p50=301.25 ms, p99=315.66 ms); fmt, VT native fmt, clippy, cargo-deny, and static builds passed. The same vt_credit::unaffordable_repaints_park_until_sufficient_credit test failed again, this time after 5.14 s with credit probe failed: t1-gate-approximate-1. Full retry log: /home/kayg/.cache/codex-scratch/renderer-cost/fast-6382-retry.log. The gate remains red; the test is outside the browser renderer path.

Fast-gate retry for 6382c0a completed with no threshold changes. The latency self-test passed again (p50=301.25 ms, p99=315.66 ms); fmt, VT native fmt, clippy, cargo-deny, and static builds passed. The same `vt_credit::unaffordable_repaints_park_until_sufficient_credit` test failed again, this time after 5.14 s with `credit probe failed: t1-gate-approximate-1`. Full retry log: `/home/kayg/.cache/codex-scratch/renderer-cost/fast-6382-retry.log`. The gate remains red; the test is outside the browser renderer path.
Author
Owner

Amended the benchmark commit from 6382c0a to a70e788 to correct its scale projection: D170 extrapolation now multiplies terminal-local allocations and charges the shared glyph atlas once per page. The 14-sample baseline timing results and per-terminal local memory measurements are unchanged; the prior 128-session baseline totals do not include an atlas because the baseline renderer had none. Re-running the required gate for the amended head.

Amended the benchmark commit from 6382c0a to a70e788 to correct its scale projection: D170 extrapolation now multiplies terminal-local allocations and charges the shared glyph atlas once per page. The 14-sample baseline timing results and per-terminal local memory measurements are unchanged; the prior 128-session baseline totals do not include an atlas because the baseline renderer had none. Re-running the required gate for the amended head.
Author
Owner

Fast gate finding on a70e788: network RTT self-test passed (p50=306.81 ms, p99=310.53 ms); fmt, VT native fmt, clippy, cargo-deny, and static builds passed. vt_credit::unaffordable_repaints_park_until_sufficient_credit failed after 9.86 s with credit probe failed: t1-gate-approximate-1. Host load at 23:55 UTC was 43.12/40.01/36.43 with concurrent rustc/infraternal server builds. No threshold changes. One retry for this head remains.

Fast gate finding on a70e788: network RTT self-test passed (p50=306.81 ms, p99=310.53 ms); fmt, VT native fmt, clippy, cargo-deny, and static builds passed. `vt_credit::unaffordable_repaints_park_until_sufficient_credit` failed after 9.86 s with `credit probe failed: t1-gate-approximate-1`. Host load at 23:55 UTC was 43.12/40.01/36.43 with concurrent rustc/infraternal server builds. No threshold changes. One retry for this head remains.
Author
Owner

The one fast-gate retry for a70e788 completed. RTT self-test passed again (p50=320.51 ms, p99=327.27 ms); fmt, VT native fmt, clippy, cargo-deny, and static builds passed. This run failed agent_review::repeated_tiny_credit_pauses_preserve_shell_progress after 38.47 s at assert len(client.snapshots) == count and client.out == cursor; the prior run failed vt_credit::unaffordable_repaints_park_until_sufficient_credit after 9.86 s. Retry start load was 37.64/38.93/36.28 and load after was 51.20/43.49/38.34. No thresholds changed. Full outputs are retained at /home/kayg/.cache/codex-scratch/renderer-cost/fast-a70e788.log and fast-a70e788-retry.log.

The one fast-gate retry for a70e788 completed. RTT self-test passed again (p50=320.51 ms, p99=327.27 ms); fmt, VT native fmt, clippy, cargo-deny, and static builds passed. This run failed `agent_review::repeated_tiny_credit_pauses_preserve_shell_progress` after 38.47 s at `assert len(client.snapshots) == count and client.out == cursor`; the prior run failed `vt_credit::unaffordable_repaints_park_until_sufficient_credit` after 9.86 s. Retry start load was 37.64/38.93/36.28 and load after was 51.20/43.49/38.34. No thresholds changed. Full outputs are retained at `/home/kayg/.cache/codex-scratch/renderer-cost/fast-a70e788.log` and `fast-a70e788-retry.log`.
Author
Owner

Current timing status: the only current-renderer run stopped at 1 terminal under load 31.11/29.81/28.62 (theme input p95 327.3 ms, slice p95 104.2 ms, frame-gap p95 429.3 ms). Subsequent host load has climbed to 69.22/62.66/49.68 with active rustc, zig, and chrome-headless processes. These readings cannot establish the 4x renderer budget; 4/8 current counts and the owner screenshot remain pending a lower-load window. No benchmark thresholds were changed.

Current timing status: the only current-renderer run stopped at 1 terminal under load 31.11/29.81/28.62 (theme input p95 327.3 ms, slice p95 104.2 ms, frame-gap p95 429.3 ms). Subsequent host load has climbed to 69.22/62.66/49.68 with active rustc, zig, and chrome-headless processes. These readings cannot establish the 4x renderer budget; 4/8 current counts and the owner screenshot remain pending a lower-load window. No benchmark thresholds were changed.
Author
Owner

The weighted 14-sample post-change run again stopped at 1 terminal under high host load (infraternal-dev, load 53.63/56.80/54.75; concurrent Rust/Zig builds). Theme p50/p95: input script/style/layout 87.2/161.2 ms, input task 140.1/258.5 ms, renderer slice 32.6/71.0 ms, frame gap 151.1/275.5 ms; atlas hits/misses 56/0. The run fails its budget assertions and is not a valid low-load comparison. Log: /home/kayg/.cache/codex-scratch/renderer-cost/current-n14-load50.log.

The weighted 14-sample post-change run again stopped at 1 terminal under high host load (infraternal-dev, load 53.63/56.80/54.75; concurrent Rust/Zig builds). Theme p50/p95: input script/style/layout 87.2/161.2 ms, input task 140.1/258.5 ms, renderer slice 32.6/71.0 ms, frame gap 151.1/275.5 ms; atlas hits/misses 56/0. The run fails its budget assertions and is not a valid low-load comparison. Log: /home/kayg/.cache/codex-scratch/renderer-cost/current-n14-load50.log.
Author
Owner

Blocked on a usable timing window, not on code access: current load is 82.40/67.48/59.34 with several concurrent Rust/Zig builds, infraternal services, and headless Chromium processes. Two weighted post-change runs failed the p95/frame assertions under loads 31–54 and stopped at 1 terminal, so they do not establish 1/4/8 results. I will continue when the host load falls enough for a comparable run; no thresholds have been changed.

Blocked on a usable timing window, not on code access: current load is 82.40/67.48/59.34 with several concurrent Rust/Zig builds, infraternal services, and headless Chromium processes. Two weighted post-change runs failed the p95/frame assertions under loads 31–54 and stopped at 1 terminal, so they do not establish 1/4/8 results. I will continue when the host load falls enough for a comparable run; no thresholds have been changed.
Author
Owner

Finding: the existing production rule already has contain: style on .terminal-screen (apps/tracer/style.css:312), alongside the screen-scoped appearance tokens. A new production Chromium assertion passed 1/1 in 11.0 s on port 4497; this guards the containment invariant and requires no CSS or vendor patch.

Finding: the existing production rule already has `contain: style` on `.terminal-screen` (`apps/tracer/style.css:312`), alongside the screen-scoped appearance tokens. A new production Chromium assertion passed 1/1 in 11.0 s on port 4497; this guards the containment invariant and requires no CSS or vendor patch.
Author
Owner

The full-data weighted run started at load 79.63/76.81/68.67. It completed 1-terminal theme (input script/style/layout p50/p95 84.9/203.9 ms; input task 152.3/275.8 ms; slice 29.6/56.8 ms; frame gap 162.0/326.0 ms), cold font (85.9/161.8, 199.9/423.9, 23.0/97.2, 225.2/352.3 ms), and warm font (88.2/172.9, 205.1/363.6, 21.8/64.8, 178.3/337.0 ms). It then failed the resize fixture: the first east-edge drag left the grid at 53 columns for 8 seconds. The page snapshot shows the All views overview with unrelated Settings panes. I changed setup to focus the Console view; no budget threshold changed. No resize, 4/8-terminal, or memory result from this run is usable. Log: /home/kayg/.cache/codex-scratch/renderer-cost/current-n14-full-resizefix.log.

The full-data weighted run started at load 79.63/76.81/68.67. It completed 1-terminal theme (input script/style/layout p50/p95 84.9/203.9 ms; input task 152.3/275.8 ms; slice 29.6/56.8 ms; frame gap 162.0/326.0 ms), cold font (85.9/161.8, 199.9/423.9, 23.0/97.2, 225.2/352.3 ms), and warm font (88.2/172.9, 205.1/363.6, 21.8/64.8, 178.3/337.0 ms). It then failed the resize fixture: the first east-edge drag left the grid at 53 columns for 8 seconds. The page snapshot shows the All views overview with unrelated Settings panes. I changed setup to focus the Console view; no budget threshold changed. No resize, 4/8-terminal, or memory result from this run is usable. Log: /home/kayg/.cache/codex-scratch/renderer-cost/current-n14-full-resizefix.log.
Author
Owner

Completed a two-sample Chromium 4x sweep on infraternal-dev after switching the fixture to All views and viewport resize; all 1/4/8 canvases were live. Load average was 12.96/21.88/41.91 -> 8.06/16.32/36.82. Theme input task p50/p95 was 88.4/88.4 ms (1), 108.3/108.3 ms (4), and 121.6/121.6 ms (8); resize input was 16.4/16.4, 13.3/13.3, and 53.5/53.5 ms. Frame gaps and redraw timeouts also exceeded budget under this host load. The benchmark fails its unchanged 16 ms / 16.67 ms assertions. Results and full metrics are in apps/tracer/test-results/... and /home/kayg/.cache/codex-scratch/renderer-cost/current-n2-overview-resize.log. Shared atlas memory was 1.03 MiB; projected renderer-local + atlas memory at 128 sessions was 1319.6/1011.6/917.6 MiB for 1/4/8 terminal measurements. This is loaded-host evidence, not a clean pass.

Completed a two-sample Chromium 4x sweep on infraternal-dev after switching the fixture to All views and viewport resize; all 1/4/8 canvases were live. Load average was 12.96/21.88/41.91 -> 8.06/16.32/36.82. Theme input task p50/p95 was 88.4/88.4 ms (1), 108.3/108.3 ms (4), and 121.6/121.6 ms (8); resize input was 16.4/16.4, 13.3/13.3, and 53.5/53.5 ms. Frame gaps and redraw timeouts also exceeded budget under this host load. The benchmark fails its unchanged 16 ms / 16.67 ms assertions. Results and full metrics are in apps/tracer/test-results/... and /home/kayg/.cache/codex-scratch/renderer-cost/current-n2-overview-resize.log. Shared atlas memory was 1.03 MiB; projected renderer-local + atlas memory at 128 sessions was 1319.6/1011.6/917.6 MiB for 1/4/8 terminal measurements. This is loaded-host evidence, not a clean pass.
Author
Owner

Benchmark step: commits 3ce3317 (frame-sliced terminal appearance updates) and 2b637b4 (1/4/8 production Chromium bench). The renderer-cost smoke tests passed (2 passed, 6.1s). Five-sample 4x run on infraternal-dev used load average 9.46/9.57/25.89 -> 14.95/12.77/23.55. Input-task p95 by scale, theme/cold-font/warm-font/resize: 1 terminal 187.4/59.0/53.6/33.0 ms; 4 terminals 120.7/458.1/113.2/145.3 ms; 8 terminals 270.3/374.7/169.5/110.7 ms. Frame-gap p95 reached 390.0 ms; redraw timeouts occurred. The 16 ms and 16.67 ms assertions fail; this run does not meet the performance budget. Full table and memory projection are in docs/perf/renderer-cost.md.

scripts/verify fast output (verbatim):
METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=302.57 p99_ms=311.75 result=PASS
JavaScript transfer, critical: identity=926068 gzip=285011/307200 brotli=236646/256000 bytes
stream differential: 134 streams, 11439 schedules, zero divergences
7 pass
0 fail
Ran 7 tests across 2 files. [2.31s]

Benchmark step: commits 3ce3317 (frame-sliced terminal appearance updates) and 2b637b4 (1/4/8 production Chromium bench). The renderer-cost smoke tests passed (2 passed, 6.1s). Five-sample 4x run on infraternal-dev used load average 9.46/9.57/25.89 -> 14.95/12.77/23.55. Input-task p95 by scale, theme/cold-font/warm-font/resize: 1 terminal 187.4/59.0/53.6/33.0 ms; 4 terminals 120.7/458.1/113.2/145.3 ms; 8 terminals 270.3/374.7/169.5/110.7 ms. Frame-gap p95 reached 390.0 ms; redraw timeouts occurred. The 16 ms and 16.67 ms assertions fail; this run does not meet the performance budget. Full table and memory projection are in docs/perf/renderer-cost.md. `scripts/verify fast` output (verbatim): METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=302.57 p99_ms=311.75 result=PASS JavaScript transfer, critical: identity=926068 gzip=285011/307200 brotli=236646/256000 bytes stream differential: 134 streams, 11439 schedules, zero divergences 7 pass 0 fail Ran 7 tests across 2 files. [2.31s]
Author
Owner

The fast gate after docs commit 4ac851fc had RTT self-test PASS but the Rust test gate failed on four existing server WebSocket tests: review3_busy_logout, review3_pending_routes_and_idle_expiry_recovery, clean_control_close_is_not_an_internal_error, and recovery_subscription_updates_every_signed_in_socket. All panicked at the shared helper with server closed websocket unexpectedly: None. Cargo-deny and both static builds passed. Host load at gate end was 52.71/27.11/18.85. I am retrying the unchanged gate once; thresholds and tests remain untouched.

The fast gate after docs commit 4ac851fc had RTT self-test PASS but the Rust test gate failed on four existing server WebSocket tests: review3_busy_logout, review3_pending_routes_and_idle_expiry_recovery, clean_control_close_is_not_an_internal_error, and recovery_subscription_updates_every_signed_in_socket. All panicked at the shared helper with `server closed websocket unexpectedly: None`. Cargo-deny and both static builds passed. Host load at gate end was 52.71/27.11/18.85. I am retrying the unchanged gate once; thresholds and tests remain untouched.
Author
Owner

The unchanged fast-gate retry after 4ac851fc also failed. RTT self-test passed (p50_ms=296.80 p99_ms=347.26). Rust tests had one failure: repeated_tiny_credit_pauses_preserve_shell_progress, with scripts/verify-agent-snapshot.py asserting len(client.snapshots) == count and client.out == cursor; the preceding five agent_review tests passed. cargo-deny and both static builds passed. Final gate table:

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| clippy                    | PASS         |
| test                      | FAIL (101)   |
| cargo-deny                | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+

This is the one unchanged retry required after the first fast-gate failure; no tests or thresholds were changed. The renderer benchmark remains above the 16 ms p95 budget at every tested terminal count, as recorded in docs/perf/renderer-cost.md. Continuing the renderer investigation.

The unchanged fast-gate retry after 4ac851fc also failed. RTT self-test passed (`p50_ms=296.80 p99_ms=347.26`). Rust tests had one failure: `repeated_tiny_credit_pauses_preserve_shell_progress`, with `scripts/verify-agent-snapshot.py` asserting `len(client.snapshots) == count and client.out == cursor`; the preceding five `agent_review` tests passed. `cargo-deny` and both static builds passed. Final gate table: ``` +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | FAIL (101) | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ``` This is the one unchanged retry required after the first fast-gate failure; no tests or thresholds were changed. The renderer benchmark remains above the 16 ms p95 budget at every tested terminal count, as recorded in `docs/perf/renderer-cost.md`. Continuing the renderer investigation.
Author
Owner

Finding from the five-sample benchmark: the redraw queue is configured for a 4 ms page budget, but its callback renders one full terminal row synchronously (apps/tracer/src/terminal.ts, scheduleRendererRedraw, renderer.renderLine). The maximum renderer-slice p95 was 23.0 ms at 1 terminal, 33.2 ms at 4, and 51.2 ms at 8 (docs/perf/renderer-cost.md, table “P95 maximum renderer-slice and frame-gap times”). A single-row call is indivisible, so the scheduler cannot enforce its 4 ms budget; this explains why the associated frame-gap p95 reached 390.0 ms. I’m evaluating bounded column rendering in the pinned vendored renderer while keeping the same engine.

Finding from the five-sample benchmark: the redraw queue is configured for a 4 ms page budget, but its callback renders one full terminal row synchronously (`apps/tracer/src/terminal.ts`, `scheduleRendererRedraw`, `renderer.renderLine`). The maximum renderer-slice p95 was 23.0 ms at 1 terminal, 33.2 ms at 4, and 51.2 ms at 8 (`docs/perf/renderer-cost.md`, table “P95 maximum renderer-slice and frame-gap times”). A single-row call is indivisible, so the scheduler cannot enforce its 4 ms budget; this explains why the associated frame-gap p95 reached 390.0 ms. I’m evaluating bounded column rendering in the pinned vendored renderer while keeping the same engine.
Author
Owner

The rebuilt production renderer passed terminal palette pixel checks through the theme loop, but TRACER_TEST_PORT=4497 bun x playwright test test/terminal-theme.spec.ts test/renderer-cost.spec.ts --workers=1 failed the existing theme click latency assertion: n=50, p50=0.800 ms, p99/max=139.700 ms, with 139 long tasks over 50 ms. The failure is at apps/tracer/test/terminal-theme.spec.ts:289; it measures the synchronous theme action and ran without CPU throttling while the host was loaded. I’m keeping this as a host-contaminated smoke finding and will use the required 4x benchmark under the configured systemd scope for the comparison.

The rebuilt production renderer passed terminal palette pixel checks through the theme loop, but `TRACER_TEST_PORT=4497 bun x playwright test test/terminal-theme.spec.ts test/renderer-cost.spec.ts --workers=1` failed the existing theme click latency assertion: n=50, p50=0.800 ms, p99/max=139.700 ms, with 139 long tasks over 50 ms. The failure is at `apps/tracer/test/terminal-theme.spec.ts:289`; it measures the synchronous theme action and ran without CPU throttling while the host was loaded. I’m keeping this as a host-contaminated smoke finding and will use the required 4x benchmark under the configured systemd scope for the comparison.
Author
Owner

Correction: terminal-theme.spec.ts does not capture /proc/loadavg, so I cannot attribute its 139.7 ms p99 to host load. Treat the result as an observed failure; the required controlled 4x run will include load measurements.

Correction: `terminal-theme.spec.ts` does not capture `/proc/loadavg`, so I cannot attribute its 139.7 ms p99 to host load. Treat the result as an observed failure; the required controlled 4x run will include load measurements.
Author
Owner

The first systemd-scoped two-sample 4x matrix completed and failed the unchanged budgets at 1/4/8 terminals (sliced-columns-n2.log). At eight terminals, theme slice p95 was 41.2 ms, frame-gap p95 179.6 ms, and redraw timed out in 2/2 samples. Host load rose from 39.31/34.57/30.18 to 55.05/45.47/35.45. Inspection found the new column background API still called clearRect/fillRect over the full row on the first column range, so its work was not spatially bounded. I’m changing it to clear each bounded range and will keep the complete browser budget assertions unchanged.

The first systemd-scoped two-sample 4x matrix completed and failed the unchanged budgets at 1/4/8 terminals (`sliced-columns-n2.log`). At eight terminals, theme slice p95 was 41.2 ms, frame-gap p95 179.6 ms, and redraw timed out in 2/2 samples. Host load rose from 39.31/34.57/30.18 to 55.05/45.47/35.45. Inspection found the new column background API still called clearRect/fillRect over the full row on the first column range, so its work was not spatially bounded. I’m changing it to clear each bounded range and will keep the complete browser budget assertions unchanged.
Author
Owner

The bounded-range rerun’s first scale measured theme input-event latency p95 69.9 ms and handler p95 56.5 ms under 4x throttling; host load at start was 41.66/47.63/41.51. Inspection found an avoidable synchronous style read on the appearance event path: packages/ui/src/tooltip.ts::syncFloatingAppearance calls getComputedStyle(source) after applyTheme updates screen tokens, which can force the large terminal-screen tree to recalculate when a tooltip is open. I changed copyFloatingAppearance to copy inline values from the nearest #terminal-screen style scope and let root variables inherit into detached surfaces. The production tooltip/theme checks will verify that appearance is preserved, and the controlled benchmark will measure the effect.

The bounded-range rerun’s first scale measured theme input-event latency p95 69.9 ms and handler p95 56.5 ms under 4x throttling; host load at start was 41.66/47.63/41.51. Inspection found an avoidable synchronous style read on the appearance event path: `packages/ui/src/tooltip.ts::syncFloatingAppearance` calls `getComputedStyle(source)` after `applyTheme` updates screen tokens, which can force the large terminal-screen tree to recalculate when a tooltip is open. I changed `copyFloatingAppearance` to copy inline values from the nearest `#terminal-screen` style scope and let root variables inherit into detached surfaces. The production tooltip/theme checks will verify that appearance is preserved, and the controlled benchmark will measure the effect.
Author
Owner

Finding: the packages/ui shared confirmation still fails its production Chromium material assertion after the appearance-sync change. At 4x CPU, test/add-host-prototype.spec.ts --grep 'shared confirmation' reports expected transparent/16px blur but received rgba(28,28,30,0.7)/8px blur. The sync deferral alone does not preserve the nested confirmation surface contract; investigating source token selection before committing.

Finding: the `packages/ui` shared confirmation still fails its production Chromium material assertion after the appearance-sync change. At 4x CPU, `test/add-host-prototype.spec.ts --grep 'shared confirmation'` reports expected transparent/16px blur but received rgba(28,28,30,0.7)/8px blur. The sync deferral alone does not preserve the nested confirmation surface contract; investigating source token selection before committing.
Author
Owner

Correction: the prior confirmation finding was an incorrect test oracle, not a surface regression. The detached confirmation correctly carries the terminal-screen palette; the comparison probe was appended to document.body, outside the screen-scoped theme. The probe now sits inside .terminal-screen, and test/add-host-prototype.spec.ts --grep 'shared confirmation' passes (1/1, 4x CPUWeight run).

Correction: the prior confirmation finding was an incorrect test oracle, not a surface regression. The detached confirmation correctly carries the terminal-screen palette; the comparison probe was appended to `document.body`, outside the screen-scoped theme. The probe now sits inside `.terminal-screen`, and `test/add-host-prototype.spec.ts --grep 'shared confirmation'` passes (1/1, 4x CPUWeight run).
Author
Owner

Finding: the diagnostic run on infraternal-dev (4x CPU, n=2, start load 21.31/24.45/32.92) still exceeded budgets: theme input-handler p95 reached 192.9 ms at 8 terminals, and max redraw slice p95 reached 73.6 ms at 4 and 50.0 ms at 8. These loaded-host numbers are not clean comparisons. Source review found apps/tracer/src/canvas/views/world.ts still synchronously calls copyFloatingAppearance from tracer:appearance; that helper reads computed styles after screen token writes. I’m moving that path to the shared deferred appearance-copy scheduler, then will remeasure.

Finding: the diagnostic run on `infraternal-dev` (4x CPU, n=2, start load 21.31/24.45/32.92) still exceeded budgets: theme input-handler p95 reached 192.9 ms at 8 terminals, and max redraw slice p95 reached 73.6 ms at 4 and 50.0 ms at 8. These loaded-host numbers are not clean comparisons. Source review found `apps/tracer/src/canvas/views/world.ts` still synchronously calls `copyFloatingAppearance` from `tracer:appearance`; that helper reads computed styles after screen token writes. I’m moving that path to the shared deferred appearance-copy scheduler, then will remeasure.
Author
Owner

The completed 4x n=2 diagnostic on infraternal-dev ended at load 23.41/24.48/31.16 (start 21.31/24.45/32.92); all four operations still failed the 16 ms/frame checks. Theme input-handler p95 was 142.7/126.2/192.9 ms at 1/4/8 terminals; redraw-slice p95 was 20.9/73.6/50.0 ms; frame-gap p95 was 216.7/205.2/358.6 ms. Cold/warm font and resize also exceeded p95, with redraw timeouts at 4/8 terminals. These numbers are diagnostic under substantial host load, and the current run's screenshot is attached in Playwright output.

The completed 4x n=2 diagnostic on `infraternal-dev` ended at load 23.41/24.48/31.16 (start 21.31/24.45/32.92); all four operations still failed the 16 ms/frame checks. Theme input-handler p95 was 142.7/126.2/192.9 ms at 1/4/8 terminals; redraw-slice p95 was 20.9/73.6/50.0 ms; frame-gap p95 was 216.7/205.2/358.6 ms. Cold/warm font and resize also exceeded p95, with redraw timeouts at 4/8 terminals. These numbers are diagnostic under substantial host load, and the current run's screenshot is attached in Playwright output.
Author
Owner

Stopped the second 4x n=2 diagnostic before full scale collection when infraternal-dev load rose from 19.69/22.51/29.62 to 60.65/34.85/32.97. At 4 terminals the theme input-handler p95 reached 462.8 ms and redraw-slice p95 67.2 ms; this run is retained only as overload evidence, not as a performance comparison. The earlier completed n=2 run and browser screenshot remain available in the job scratch output.

Stopped the second 4x n=2 diagnostic before full scale collection when `infraternal-dev` load rose from 19.69/22.51/29.62 to 60.65/34.85/32.97. At 4 terminals the theme input-handler p95 reached 462.8 ms and redraw-slice p95 67.2 ms; this run is retained only as overload evidence, not as a performance comparison. The earlier completed n=2 run and browser screenshot remain available in the job scratch output.
Author
Owner

Step complete: 5c12d67f adds the minimal pinned renderer range API and generated artifact. The production palette pixel suite passed 3/3 with all curated themes; the 50-switch probe measured p50 0.5 ms, p99/max 3.4 ms, and zero >50 ms tasks.

scripts/verify fast after the commit stopped at the unchanged RTT self-test on both allowed attempts. Outputs verbatim:
latency proxy: configured 300 ms RTT did not arrive: p50=370.79 ms p99=587.75 ms
latency proxy: configured 300 ms RTT did not arrive: p50=480.00 ms p99=1035.58 ms
The retry observed host load 67.61/66.67/55.92. The Rust and TypeScript fast gates did not run; no threshold was changed.

Step complete: `5c12d67f` adds the minimal pinned renderer range API and generated artifact. The production palette pixel suite passed 3/3 with all curated themes; the 50-switch probe measured p50 0.5 ms, p99/max 3.4 ms, and zero >50 ms tasks. `scripts/verify fast` after the commit stopped at the unchanged RTT self-test on both allowed attempts. Outputs verbatim: `latency proxy: configured 300 ms RTT did not arrive: p50=370.79 ms p99=587.75 ms` `latency proxy: configured 300 ms RTT did not arrive: p50=480.00 ms p99=1035.58 ms` The retry observed host load 67.61/66.67/55.92. The Rust and TypeScript fast gates did not run; no threshold was changed.
Author
Owner

Production theme smoke after the deferred appearance scheduler and 8-column slice change: all curated-theme pixel assertions progressed, click-to-full-paint p99 was 7.7 ms, but the test failed its unchanged long-task assertion with two entries (64 ms, 59 ms). The last host load sample before the run was 18.65/41.11/49.68. This does not isolate whether those tasks came from renderer work or host contention; I’ll repeat after load falls, without changing the threshold.

Production theme smoke after the deferred appearance scheduler and 8-column slice change: all curated-theme pixel assertions progressed, click-to-full-paint p99 was 7.7 ms, but the test failed its unchanged long-task assertion with two entries (64 ms, 59 ms). The last host load sample before the run was 18.65/41.11/49.68. This does not isolate whether those tasks came from renderer work or host contention; I’ll repeat after load falls, without changing the threshold.
Author
Owner

The repeat production theme smoke still passed the palette pixel checks and measured p99 click-to-full-paint 7.2 ms, but failed the long-task assertion with seven entries: 52, 51, 77, 58, 67, 83, and 74 ms. Host load before the run was 14.71/34.22/46.46. The click threshold remains unchanged; the long tasks are not isolated to the palette handler, so I’m leaving the result recorded and will use the 4x operation harness for the scale attribution.

The repeat production theme smoke still passed the palette pixel checks and measured p99 click-to-full-paint 7.2 ms, but failed the long-task assertion with seven entries: 52, 51, 77, 58, 67, 83, and 74 ms. Host load before the run was 14.71/34.22/46.46. The click threshold remains unchanged; the long tasks are not isolated to the palette handler, so I’m leaving the result recorded and will use the 4x operation harness for the scale attribution.
Author
Owner

Step complete: runtime scheduler commit ecf3815c adds the page-shared fit/redraw queues, 8-column renderer slices, and deferred floating-token reads. TypeScript and the nested confirmation production test passed. The production theme pixel test passed all curated palettes and measured p99 click-to-paint 7.2 ms, but its long-task observer reported seven 52–83 ms entries under host load; that remains recorded without a threshold change.

scripts/verify fast passed after the commit. Relevant output verbatim:
METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=298.97 p99_ms=311.61 result=PASS
| fmt | PASS |
| VT native fmt | PASS |
| clippy | PASS |
| test | PASS |
| cargo-deny | PASS |
| static builds | PASS |
dist/ghostty-web.js: OK
dist/ghostty-vt.wasm: OK
dist/index.d.ts: OK
JavaScript transfer, critical: identity=927587 gzip=285462/307200 brotli=237022/256000 bytes
34 pass
7 pass

Step complete: runtime scheduler commit `ecf3815c` adds the page-shared fit/redraw queues, 8-column renderer slices, and deferred floating-token reads. TypeScript and the nested confirmation production test passed. The production theme pixel test passed all curated palettes and measured p99 click-to-paint 7.2 ms, but its long-task observer reported seven 52–83 ms entries under host load; that remains recorded without a threshold change. `scripts/verify fast` passed after the commit. Relevant output verbatim: `METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=298.97 p99_ms=311.61 result=PASS` `| fmt | PASS |` `| VT native fmt | PASS |` `| clippy | PASS |` `| test | PASS |` `| cargo-deny | PASS |` `| static builds | PASS |` `dist/ghostty-web.js: OK` `dist/ghostty-vt.wasm: OK` `dist/index.d.ts: OK` `JavaScript transfer, critical: identity=927587 gzip=285462/307200 brotli=237022/256000 bytes` `34 pass` `7 pass`
Author
Owner

efd18d09 fast gate completed with failure. RTT self-test passed: METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=304.01 p99_ms=317.35 result=PASS. Rust gate summary: | test | FAIL (101) |; four unrelated infraternal-server websocket socket tests failed after running under high host load (load average 30.09/19.19/24.76): clean_control_close_is_not_an_internal_error, fragmented_wire_frame_has_a_completion_deadline, incomplete_rfc_message_still_loses_authority_on_revocation, and recovery_subscription_updates_every_signed_in_socket. Other Rust gates, cargo-deny, and both static builds passed. No RTT retry was needed. Renderer browser and benchmark evidence remains separate.

efd18d09 fast gate completed with failure. RTT self-test passed: `METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=304.01 p99_ms=317.35 result=PASS`. Rust gate summary: `| test | FAIL (101) |`; four unrelated `infraternal-server` websocket socket tests failed after running under high host load (load average 30.09/19.19/24.76): `clean_control_close_is_not_an_internal_error`, `fragmented_wire_frame_has_a_completion_deadline`, `incomplete_rfc_message_still_loses_authority_on_revocation`, and `recovery_subscription_updates_every_signed_in_socket`. Other Rust gates, cargo-deny, and both static builds passed. No RTT retry was needed. Renderer browser and benchmark evidence remains separate.
Author
Owner

The final 14-sample 4x-CDP run completed on infraternal-dev at loadavg 20.06/20.18/23.69 -> 17.50/18.39/21.84. It failed the unchanged budgets at 1/4/8 terminals. Input event latency p95 (theme / cold font / warm font / resize) was 305.6/84.0/83.3/165.9 ms at 1, 229.5/179.0/89.8/40.5 ms at 4, and 106.5/236.6/91.1/146.0 ms at 8. Renderer slice p95 was 73.6/30.8/48.5/31.3 ms at 1, 50.3/36.1/27.6/27.1 ms at 4, and 14.1/11.5/20.4/33.7 ms at 8. Redraw timed out in 12/14, 2/8, 12/14, 7/14 samples at 1; 14/14, 8/8, 14/14, 14/14 at 4; and 14/14, 8/8, 14/14, 14/14 at 8 (theme/cold/warm/resize). The 8-terminal theme slice met 16 ms, but input latency and frame gaps failed throughout. Renderer-local scale projection (128 sessions, one shared atlas): 1319.6 MiB at 1, 883.6 MiB at 4, 981.6 MiB at 8. Log: $HOME/.cache/codex-scratch/renderer-cost/final-14.log; production screenshot: apps/tracer/test-results/renderer-cost-renderer-the-26839--the-visible-terminal-scale/attachments/renderer-cost-product-canvas-8-fea996108f700233c46fb43ce39e17485007c871.png. These are host-loaded diagnostic measurements and do not demonstrate the 16 ms/60 fps target.

The final 14-sample 4x-CDP run completed on `infraternal-dev` at loadavg 20.06/20.18/23.69 -> 17.50/18.39/21.84. It failed the unchanged budgets at 1/4/8 terminals. Input event latency p95 (theme / cold font / warm font / resize) was 305.6/84.0/83.3/165.9 ms at 1, 229.5/179.0/89.8/40.5 ms at 4, and 106.5/236.6/91.1/146.0 ms at 8. Renderer slice p95 was 73.6/30.8/48.5/31.3 ms at 1, 50.3/36.1/27.6/27.1 ms at 4, and 14.1/11.5/20.4/33.7 ms at 8. Redraw timed out in 12/14, 2/8, 12/14, 7/14 samples at 1; 14/14, 8/8, 14/14, 14/14 at 4; and 14/14, 8/8, 14/14, 14/14 at 8 (theme/cold/warm/resize). The 8-terminal theme slice met 16 ms, but input latency and frame gaps failed throughout. Renderer-local scale projection (128 sessions, one shared atlas): 1319.6 MiB at 1, 883.6 MiB at 4, 981.6 MiB at 8. Log: `$HOME/.cache/codex-scratch/renderer-cost/final-14.log`; production screenshot: `apps/tracer/test-results/renderer-cost-renderer-the-26839--the-visible-terminal-scale/attachments/renderer-cost-product-canvas-8-fea996108f700233c46fb43ce39e17485007c871.png`. These are host-loaded diagnostic measurements and do not demonstrate the 16 ms/60 fps target.
Author
Owner

The first RENDERER_COST_SAMPLES=2 spot-check after round-robin slicing did not improve theme input latency under host load 21.61/20.91/21.82: p95 was 91.7 ms at 1 terminal and 234.2 ms at 4; theme redraw timed out 2/2 at both. Renderer-slice p95 was 38.8 ms and 33.6 ms. The run is still collecting 4/8-terminal font and resize results; this is preliminary and not a clean-host comparison.

The first `RENDERER_COST_SAMPLES=2` spot-check after round-robin slicing did not improve theme input latency under host load 21.61/20.91/21.82: p95 was 91.7 ms at 1 terminal and 234.2 ms at 4; theme redraw timed out 2/2 at both. Renderer-slice p95 was 38.8 ms and 33.6 ms. The run is still collecting 4/8-terminal font and resize results; this is preliminary and not a clean-host comparison.
Author
Owner

After the redraw-queue rotation, viewport reuse, and deferred theme application, the 2-sample spot check (cold-font sweep covers 8 undeclared faces) ran on infraternal-dev at loadavg 15.12/18.06/20.34 -> 7.67/13.54/18.17. Theme input-handler p95 fell from the prior loaded 14-sample run's 221.3/195.5/76.7 ms at 1/4/8 terminals to 2.7/3.5/6.6 ms; theme renderer-slice p95 was 11.7/16.2/13.7 ms. Theme redraw completed 2/2 at 1 terminal, but timed out 2/2 at 4 and 8. Cold-font input-handler p95 remained 44.8/9.0/14.1 ms; this points to synchronous cold loadFont setup still on the click task at 1 terminal. Resize input-handler p95 was 0.1/0.0/0.4 ms. Event-latency and frame-gap budgets still fail in this loaded-host spot check, and it is not the final 14-sample evidence.

After the redraw-queue rotation, viewport reuse, and deferred theme application, the 2-sample spot check (cold-font sweep covers 8 undeclared faces) ran on `infraternal-dev` at loadavg 15.12/18.06/20.34 -> 7.67/13.54/18.17. Theme input-handler p95 fell from the prior loaded 14-sample run's 221.3/195.5/76.7 ms at 1/4/8 terminals to 2.7/3.5/6.6 ms; theme renderer-slice p95 was 11.7/16.2/13.7 ms. Theme redraw completed 2/2 at 1 terminal, but timed out 2/2 at 4 and 8. Cold-font input-handler p95 remained 44.8/9.0/14.1 ms; this points to synchronous cold `loadFont` setup still on the click task at 1 terminal. Resize input-handler p95 was 0.1/0.0/0.4 ms. Event-latency and frame-gap budgets still fail in this loaded-host spot check, and it is not the final 14-sample evidence.
Author
Owner

After deferring font loading to the next animation frame, the 2-sample scale sweep ran on infraternal-dev at loadavg 16.98/14.71/18.08 -> 9.03/11.89/16.37. Input-handler p95 (theme / cold font / warm font / resize) was 3.1/11.0/7.0/0.1 ms at 1 terminal, 3.2/10.6/9.9/0.1 ms at 4, and 4.8/11.7/7.1/0.4 ms at 8. Theme slice p95 was 6.3/8.3/13.4 ms. The work slices now stay near the 16 ms target, but redraw timeouts remained 1/2 at 4 terminals and 2/2 at 8; event latency and frame-gap p95 still exceeded budgets on this loaded host. This confirms responsive synchronous input handlers but does not yet establish 60 fps or completion at scale. Renderer-local 128-session projections were 1319.6/1011.6/917.6 MiB at 1/4/8 terminals. Full 2-sample log: $HOME/.cache/codex-scratch/renderer-cost/after-font-defer-2.log.

After deferring font loading to the next animation frame, the 2-sample scale sweep ran on `infraternal-dev` at loadavg 16.98/14.71/18.08 -> 9.03/11.89/16.37. Input-handler p95 (theme / cold font / warm font / resize) was 3.1/11.0/7.0/0.1 ms at 1 terminal, 3.2/10.6/9.9/0.1 ms at 4, and 4.8/11.7/7.1/0.4 ms at 8. Theme slice p95 was 6.3/8.3/13.4 ms. The work slices now stay near the 16 ms target, but redraw timeouts remained 1/2 at 4 terminals and 2/2 at 8; event latency and frame-gap p95 still exceeded budgets on this loaded host. This confirms responsive synchronous input handlers but does not yet establish 60 fps or completion at scale. Renderer-local 128-session projections were 1319.6/1011.6/917.6 MiB at 1/4/8 terminals. Full 2-sample log: `$HOME/.cache/codex-scratch/renderer-cost/after-font-defer-2.log`.
Author
Owner

With an 8 ms shared redraw budget, the 2-sample 4x run on infraternal-dev went from loadavg 3.63/9.64/15.24 to 3.69/7.56/13.63. At 4 terminals, theme and resize had 0/2 redraw timeouts; at 8 terminals, theme/warm-font/resize still timed out 2/2, while theme input latency p95 was 9.5 ms, handler p95 2.9 ms, and slice p95 16.0 ms. The 8 ms budget improves catch-up at 4 terminals without exceeding the slice threshold at 8, but does not finish the 8-terminal redraws in the current 1-second collection window. Next I am reducing the number of background ranges per row and measuring that separately.

With an 8 ms shared redraw budget, the 2-sample 4x run on `infraternal-dev` went from loadavg 3.63/9.64/15.24 to 3.69/7.56/13.63. At 4 terminals, theme and resize had 0/2 redraw timeouts; at 8 terminals, theme/warm-font/resize still timed out 2/2, while theme input latency p95 was 9.5 ms, handler p95 2.9 ms, and slice p95 16.0 ms. The 8 ms budget improves catch-up at 4 terminals without exceeding the slice threshold at 8, but does not finish the 8-terminal redraws in the current 1-second collection window. Next I am reducing the number of background ranges per row and measuring that separately.
Author
Owner

The 16-column background-range experiment failed at the 1-terminal theme slice budget: renderer-slice p95 was 25.1 ms (the prior 8-column result was 12.9 ms); redraw completed 2/2. Loadavg moved 6.38/7.04/12.86 -> 11.91/8.22/13.12. I am collecting the remaining scale output before choosing a narrower range.

The 16-column background-range experiment failed at the 1-terminal theme slice budget: renderer-slice p95 was 25.1 ms (the prior 8-column result was 12.9 ms); redraw completed 2/2. Loadavg moved 6.38/7.04/12.86 -> 11.91/8.22/13.12. I am collecting the remaining scale output before choosing a narrower range.
Author
Owner

The whole-canvas background reset experiment ran at loadavg 6.37/7.58/11.63 -> 8.35/7.72/10.94. At 8 terminals, renderer-slice p95 was 18.4 ms for theme and 38.2 ms for cold font; theme, warm-font and resize redraws timed out 2/2. The 4-terminal resize finished 2/2, but theme and both font classes timed out. I am reverting this reset path and restoring per-range clearing; it keeps slices shorter and had lower p95 in the earlier 8 ms run.

The whole-canvas background reset experiment ran at loadavg 6.37/7.58/11.63 -> 8.35/7.72/10.94. At 8 terminals, renderer-slice p95 was 18.4 ms for theme and 38.2 ms for cold font; theme, warm-font and resize redraws timed out 2/2. The 4-terminal resize finished 2/2, but theme and both font classes timed out. I am reverting this reset path and restoring per-range clearing; it keeps slices shorter and had lower p95 in the earlier 8 ms run.
Author
Owner

Renderer-cost 14-sample diagnostic completed on infraternal-dev, Chromium at 4x CPU. Host load was 11.04/9.17/10.75 at start and 10.36/12.10/11.79 at end, peaking at 19.62 during the run. The measurements failed the 16 ms / 60 fps budget and are not a clean-load comparison. p50/p95 input-event latency (ms), by theme / cold font / warm font / resize: 1 terminal 13.9/34.5, 10.7/31.5, 25.9/55.0, 11.0/39.8; 4 terminals 28.2/73.7, 39.6/238.2, 55.7/135.5, 45.1/56.4; 8 terminals 30.5/53.4, 26.1/30.9, 39.9/61.8, 27.2/101.8. Renderer max-slice p50/p95 (ms): 1 terminal 8.2/16.3, 2.5/8.5, 7.2/22.8, 3.7/8.8; 4 terminals 18.4/39.7, 9.3/20.0, 16.9/28.1, 9.7/52.8; 8 terminals 13.7/25.9, 4.3/8.4, 8.7/21.4, 9.0/15.8. Redraw timeouts were 0/0/2/1, 13/7/14/10, and 14/3/14/14 respectively. At 128 sessions, renderer-local projected memory was 1319.6/1011.6/853.6 MiB for 1/4/8 visible terminals (one shared glyph atlas). Full log: $HOME/.cache/codex-scratch/renderer-cost/final-selected-14.log. Next: repeat after host load falls.

Renderer-cost 14-sample diagnostic completed on infraternal-dev, Chromium at 4x CPU. Host load was 11.04/9.17/10.75 at start and 10.36/12.10/11.79 at end, peaking at 19.62 during the run. The measurements failed the 16 ms / 60 fps budget and are not a clean-load comparison. p50/p95 input-event latency (ms), by theme / cold font / warm font / resize: 1 terminal 13.9/34.5, 10.7/31.5, 25.9/55.0, 11.0/39.8; 4 terminals 28.2/73.7, 39.6/238.2, 55.7/135.5, 45.1/56.4; 8 terminals 30.5/53.4, 26.1/30.9, 39.9/61.8, 27.2/101.8. Renderer max-slice p50/p95 (ms): 1 terminal 8.2/16.3, 2.5/8.5, 7.2/22.8, 3.7/8.8; 4 terminals 18.4/39.7, 9.3/20.0, 16.9/28.1, 9.7/52.8; 8 terminals 13.7/25.9, 4.3/8.4, 8.7/21.4, 9.0/15.8. Redraw timeouts were 0/0/2/1, 13/7/14/10, and 14/3/14/14 respectively. At 128 sessions, renderer-local projected memory was 1319.6/1011.6/853.6 MiB for 1/4/8 visible terminals (one shared glyph atlas). Full log: $HOME/.cache/codex-scratch/renderer-cost/final-selected-14.log. Next: repeat after host load falls.
Author
Owner

Second 14-sample diagnostic completed on infraternal-dev, Chromium at 4x CPU under CPUWeight=10000. Loadavg was 7.72/9.89/10.97 at start and 9.55/13.62/12.54 at end, peaking at 25.55, so this remains a loaded-host diagnostic. p50/p95 input-event latency by theme / cold font / warm font / resize (ms): 1 terminal 8.3/16.5, 15.2/27.5, 11.7/35.1, 12.4/16.4; 4 terminals 14.7/63.6, 52.7/145.6, 42.6/76.6, 39.2/146.2; 8 terminals 28.3/60.9, 27.8/31.3, 37.2/47.3, 20.0/43.9. Renderer max-slice p50/p95 (ms): 1 terminal 4.6/7.8, 1.8/8.2, 2.1/4.2, 3.1/5.3; 4 terminals 13.8/31.6, 9.9/31.9, 18.2/28.0, 13.1/106.9; 8 terminals 15.0/45.2, 3.3/5.4, 4.6/8.2, 4.8/16.4. Redraw timeouts were 0/0/0/0, 7/3/14/11, and 14/3/14/14. Projected renderer-local memory at 128 sessions: 1319.6/1011.6/853.6 MiB at 1/4/8 terminals. Full output: $HOME/.cache/codex-scratch/renderer-cost/final-selected-repeat-14.log. All scale evidence is retained; no 16 ms / 60 fps claim is supported.

Second 14-sample diagnostic completed on infraternal-dev, Chromium at 4x CPU under CPUWeight=10000. Loadavg was 7.72/9.89/10.97 at start and 9.55/13.62/12.54 at end, peaking at 25.55, so this remains a loaded-host diagnostic. p50/p95 input-event latency by theme / cold font / warm font / resize (ms): 1 terminal 8.3/16.5, 15.2/27.5, 11.7/35.1, 12.4/16.4; 4 terminals 14.7/63.6, 52.7/145.6, 42.6/76.6, 39.2/146.2; 8 terminals 28.3/60.9, 27.8/31.3, 37.2/47.3, 20.0/43.9. Renderer max-slice p50/p95 (ms): 1 terminal 4.6/7.8, 1.8/8.2, 2.1/4.2, 3.1/5.3; 4 terminals 13.8/31.6, 9.9/31.9, 18.2/28.0, 13.1/106.9; 8 terminals 15.0/45.2, 3.3/5.4, 4.6/8.2, 4.8/16.4. Redraw timeouts were 0/0/0/0, 7/3/14/11, and 14/3/14/14. Projected renderer-local memory at 128 sessions: 1319.6/1011.6/853.6 MiB at 1/4/8 terminals. Full output: $HOME/.cache/codex-scratch/renderer-cost/final-selected-repeat-14.log. All scale evidence is retained; no 16 ms / 60 fps claim is supported.
Author
Owner

Deferred palette dismissal for theme and committed-font picks, and kept font loading in the next animation frame. apps/tracer bun run check and git diff --check pass. A 2-sample exploratory run (infraternal-dev, Chromium 4x, CPUWeight=10000) showed theme input-handler p95 0.8/2.7/1.1 ms at 1/4/8 terminals; corresponding input-event-latency p95 was 12.6/28.1/34.6 ms and max renderer-slice p95 was 9.5/13.8/10.3 ms. Other operations still exceed the 16 ms / 60 fps budgets; redraw timed out 2/2 for theme, warm font and resize at 4 and 8 terminals. Host load was 8.02/9.98/11.23 -> 13.97/12.51/12.01. This confirms the click handler is shorter but does not establish a passing switch or frame budget. Log: $HOME/.cache/codex-scratch/renderer-cost/final-deferred-close-2.log.

Deferred palette dismissal for theme and committed-font picks, and kept font loading in the next animation frame. apps/tracer `bun run check` and `git diff --check` pass. A 2-sample exploratory run (infraternal-dev, Chromium 4x, CPUWeight=10000) showed theme input-handler p95 0.8/2.7/1.1 ms at 1/4/8 terminals; corresponding input-event-latency p95 was 12.6/28.1/34.6 ms and max renderer-slice p95 was 9.5/13.8/10.3 ms. Other operations still exceed the 16 ms / 60 fps budgets; redraw timed out 2/2 for theme, warm font and resize at 4 and 8 terminals. Host load was 8.02/9.98/11.23 -> 13.97/12.51/12.01. This confirms the click handler is shorter but does not establish a passing switch or frame budget. Log: $HOME/.cache/codex-scratch/renderer-cost/final-deferred-close-2.log.
Author
Owner

Committed terminal redraw rotation and viewport-cell reuse as f837e637. The 14-sample Chromium 4x diagnostic under host load (7.72/9.89/10.97 -> 9.55/13.62/12.54; peak 25.55) measured input-event p50/p95 theme/cold/warm/resize of 8.3/16.5, 15.2/27.5, 11.7/35.1, 12.4/16.4 ms at 1 terminal; 14.7/63.6, 52.7/145.6, 42.6/76.6, 39.2/146.2 ms at 4; 28.3/60.9, 27.8/31.3, 37.2/47.3, 20.0/43.9 ms at 8. Redraw timeouts were 0/0/0/0, 7/3/14/11, 14/3/14/14. Projected renderer memory at 128 sessions: 1319.6/1011.6/853.6 MiB at 1/4/8. Loaded run does not meet or establish the budgets.

scripts/verify fast passed on the first run. Verbatim gate output excerpts:
METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=312.42 p99_ms=325.52 result=PASS
JavaScript transfer, critical: identity=928104 gzip=285571/307200 brotli=236982/256000 bytes
7 pass
0 fail
34390 expect() calls
Ran 7 tests across 2 files. [2.60s]

Committed terminal redraw rotation and viewport-cell reuse as f837e637. The 14-sample Chromium 4x diagnostic under host load (7.72/9.89/10.97 -> 9.55/13.62/12.54; peak 25.55) measured input-event p50/p95 theme/cold/warm/resize of 8.3/16.5, 15.2/27.5, 11.7/35.1, 12.4/16.4 ms at 1 terminal; 14.7/63.6, 52.7/145.6, 42.6/76.6, 39.2/146.2 ms at 4; 28.3/60.9, 27.8/31.3, 37.2/47.3, 20.0/43.9 ms at 8. Redraw timeouts were 0/0/0/0, 7/3/14/11, 14/3/14/14. Projected renderer memory at 128 sessions: 1319.6/1011.6/853.6 MiB at 1/4/8. Loaded run does not meet or establish the budgets. `scripts/verify fast` passed on the first run. Verbatim gate output excerpts: METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=312.42 p99_ms=325.52 result=PASS JavaScript transfer, critical: identity=928104 gzip=285571/307200 brotli=236982/256000 bytes 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.60s]
Author
Owner

Committed the screen selection path as 3246cb29. In the 2-sample exploratory run after deferring palette dismissal, theme input-handler p95 was 0.8/2.7/1.1 ms at 1/4/8 terminals; event-latency p95 remained 12.6/28.1/34.6 ms. The full 14-sample result before this final palette-close change and the 2-sample follow-up both miss overall frame/redraw budgets at multi-terminal scale; host load reached 13.97 during the follow-up.

scripts/verify fast returned exit 1. RTT passed (p50 313.11 ms, p99 320.87 ms); fmt, clippy, cargo-deny and static builds passed. At load 24.72, one timing-sensitive integration test failed:
test repeated_tiny_credit_pauses_preserve_shell_progress ... FAILED
catch-up 0: 12 MiB shell completed; 1-byte credit paused; funded Snapshot=481 bytes seq=12583542: PASS
assert len(client.snapshots) == count and client.out == cursor
The other five tests in agent_review passed. Full log: $HOME/.cache/codex-scratch/renderer-cost/verify-fast-3246.log. I’ll retry the gate once after the host load falls.

Committed the screen selection path as 3246cb29. In the 2-sample exploratory run after deferring palette dismissal, theme input-handler p95 was 0.8/2.7/1.1 ms at 1/4/8 terminals; event-latency p95 remained 12.6/28.1/34.6 ms. The full 14-sample result before this final palette-close change and the 2-sample follow-up both miss overall frame/redraw budgets at multi-terminal scale; host load reached 13.97 during the follow-up. `scripts/verify fast` returned exit 1. RTT passed (p50 313.11 ms, p99 320.87 ms); fmt, clippy, cargo-deny and static builds passed. At load 24.72, one timing-sensitive integration test failed: `test repeated_tiny_credit_pauses_preserve_shell_progress ... FAILED` `catch-up 0: 12 MiB shell completed; 1-byte credit paused; funded Snapshot=481 bytes seq=12583542: PASS` `assert len(client.snapshots) == count and client.out == cursor` The other five tests in `agent_review` passed. Full log: $HOME/.cache/codex-scratch/renderer-cost/verify-fast-3246.log. I’ll retry the gate once after the host load falls.
Author
Owner

The single retry of scripts/verify fast for 3246cb29 passed without changing thresholds or tests. RTT: METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=292.63 p99_ms=322.40 result=PASS. Rust server suite: test result: ok. 100 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 132.60s. Critical transfer: JavaScript transfer, critical: identity=928104 gzip=285567/307200 brotli=236937/256000 bytes. Protocol: 7 pass, 0 fail, 34390 expect() calls, Ran 7 tests across 2 files. [2.54s]. First-run-only shell-progress assertion is retained above with its load evidence. Retry log: $HOME/.cache/codex-scratch/renderer-cost/verify-fast-3246-retry.log.

The single retry of `scripts/verify fast` for 3246cb29 passed without changing thresholds or tests. RTT: `METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=292.63 p99_ms=322.40 result=PASS`. Rust server suite: `test result: ok. 100 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 132.60s`. Critical transfer: `JavaScript transfer, critical: identity=928104 gzip=285567/307200 brotli=236937/256000 bytes`. Protocol: `7 pass`, `0 fail`, `34390 expect() calls`, `Ran 7 tests across 2 files. [2.54s]`. First-run-only shell-progress assertion is retained above with its load evidence. Retry log: $HOME/.cache/codex-scratch/renderer-cost/verify-fast-3246-retry.log.
Author
Owner

Final committed-code 14-sample run completed on infraternal-dev, Chromium 4x, CPUWeight=10000. Loadavg start was 4.44/8.13/11.18; observed peak during the run was 21.12 and load at completion was 19.51. For theme/cold font/warm font/resize, p95 input-event latency, renderer max slice, frame gap, and click-to-redraw wall (ms) were:
1 terminal: event 24.8/33.6/103.7/127.2; slice 21.5/17.8/25.2/31.6; frame 191.2/318.5/248.3/286.9; wall 642.8/1514.6/1628.2/1538.5.
4 terminals: event 65.6/108.1/112.1/66.2; slice 33.5/16.1/31.6/16.1; frame 225.4/270.3/227.6/228.7; wall 1581.3/1627.2/1558.8/1946.2.
8 terminals: event 41.1/36.2/104.7/98.5; slice 33.2/8.1/29.9/21.6; frame 199.4/233.1/158.9/301.1; wall 1480.4/2578.0/1539.9/2915.0.
Redraw timeouts (theme/cold/warm/resize) were 0/1/5/13, 12/5/14/13, and 14/4/14/14 at 1/4/8 terminals. Theme atlas p95 hits were 210/869/1289 with zero misses. The run fails the 16 ms and 60 fps budgets. Renderer-local memory projected to 128 sessions was 1319.6/1011.6/725.6 MiB at 1/4/8 terminals. Log: $HOME/.cache/codex-scratch/renderer-cost/final-committed-14.log. Screenshot attachment: test-results/renderer-cost-renderer-the-26839--the-visible-terminal-scale/attachments/renderer-cost-product-canvas-8-fea996108f700233c46fb43ce39e17485007c871.png. Visual judgment and real-device frame-meter check remain with the owner.

Final committed-code 14-sample run completed on infraternal-dev, Chromium 4x, CPUWeight=10000. Loadavg start was 4.44/8.13/11.18; observed peak during the run was 21.12 and load at completion was 19.51. For theme/cold font/warm font/resize, p95 input-event latency, renderer max slice, frame gap, and click-to-redraw wall (ms) were: 1 terminal: event 24.8/33.6/103.7/127.2; slice 21.5/17.8/25.2/31.6; frame 191.2/318.5/248.3/286.9; wall 642.8/1514.6/1628.2/1538.5. 4 terminals: event 65.6/108.1/112.1/66.2; slice 33.5/16.1/31.6/16.1; frame 225.4/270.3/227.6/228.7; wall 1581.3/1627.2/1558.8/1946.2. 8 terminals: event 41.1/36.2/104.7/98.5; slice 33.2/8.1/29.9/21.6; frame 199.4/233.1/158.9/301.1; wall 1480.4/2578.0/1539.9/2915.0. Redraw timeouts (theme/cold/warm/resize) were 0/1/5/13, 12/5/14/13, and 14/4/14/14 at 1/4/8 terminals. Theme atlas p95 hits were 210/869/1289 with zero misses. The run fails the 16 ms and 60 fps budgets. Renderer-local memory projected to 128 sessions was 1319.6/1011.6/725.6 MiB at 1/4/8 terminals. Log: $HOME/.cache/codex-scratch/renderer-cost/final-committed-14.log. Screenshot attachment: test-results/renderer-cost-renderer-the-26839--the-visible-terminal-scale/attachments/renderer-cost-product-canvas-8-fea996108f700233c46fb43ce39e17485007c871.png. Visual judgment and real-device frame-meter check remain with the owner.
Author
Owner

Measured a 4-column redraw candidate after the 8-column final run. apps/tracer TypeScript check and git diff --check pass. Under infraternal-dev Chromium 4x, loadavg rose 7.62/10.49/12.74 -> 36.22/22.60/16.94. Theme renderer max-slice p50/p95 fell from 6.0/21.5, 17.5/33.5, 10.3/33.2 ms at 1/4/8 terminals to 5.8/6.7, 11.7/26.3, 12.4/18.6 ms. Theme input-handler p95 was 1.0/6.6/2.2 ms; redraw timeouts were 0/2/2 of 2 samples. This reduces the synchronous paint unit, but the sample still fails frame-gap and multi-terminal budgets and is heavily loaded. Exploratory log: $HOME/.cache/codex-scratch/renderer-cost/column-four-2.log.

Measured a 4-column redraw candidate after the 8-column final run. `apps/tracer` TypeScript check and `git diff --check` pass. Under infraternal-dev Chromium 4x, loadavg rose 7.62/10.49/12.74 -> 36.22/22.60/16.94. Theme renderer max-slice p50/p95 fell from 6.0/21.5, 17.5/33.5, 10.3/33.2 ms at 1/4/8 terminals to 5.8/6.7, 11.7/26.3, 12.4/18.6 ms. Theme input-handler p95 was 1.0/6.6/2.2 ms; redraw timeouts were 0/2/2 of 2 samples. This reduces the synchronous paint unit, but the sample still fails frame-gap and multi-terminal budgets and is heavily loaded. Exploratory log: $HOME/.cache/codex-scratch/renderer-cost/column-four-2.log.
Author
Owner

Committed the four-column synchronous range as cb09cbf1. The exploratory 2-sample p95 theme slice fell to 6.7/26.3/18.6 ms at 1/4/8, but host load rose to 36.22; frame and click latency budgets still fail.

The first scripts/verify fast exited 1 at loadavg 25.37/22.96/19.44. RTT passed: METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=315.85 p99_ms=318.05 result=PASS. fmt, VT fmt, clippy, cargo-deny and static builds passed. One unrelated timing-sensitive credit test failed:
test unaffordable_repaints_park_until_sufficient_credit ... FAILED
credit probe failed: t1-gate-approximate-1
The failure is in crates/infraternal/tests/vt_credit.rs:22; I’ll retry the full gate once after host load falls. Full log: $HOME/.cache/codex-scratch/renderer-cost/verify-fast-cb09.log.

Committed the four-column synchronous range as cb09cbf1. The exploratory 2-sample p95 theme slice fell to 6.7/26.3/18.6 ms at 1/4/8, but host load rose to 36.22; frame and click latency budgets still fail. The first `scripts/verify fast` exited 1 at loadavg 25.37/22.96/19.44. RTT passed: `METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=315.85 p99_ms=318.05 result=PASS`. fmt, VT fmt, clippy, cargo-deny and static builds passed. One unrelated timing-sensitive credit test failed: `test unaffordable_repaints_park_until_sufficient_credit ... FAILED` `credit probe failed: t1-gate-approximate-1` The failure is in `crates/infraternal/tests/vt_credit.rs:22`; I’ll retry the full gate once after host load falls. Full log: $HOME/.cache/codex-scratch/renderer-cost/verify-fast-cb09.log.
Author
Owner

The one retry after the credit-test failure stopped at the latency proxy: configured 300 ms RTT measured p50=348.30 ms, p99=406.03 ms. Host load average was 27.27/24.57/20.74. I will rerun the fast gate once after host load eases; thresholds remain unchanged.

The one retry after the credit-test failure stopped at the latency proxy: configured 300 ms RTT measured p50=348.30 ms, p99=406.03 ms. Host load average was 27.27/24.57/20.74. I will rerun the fast gate once after host load eases; thresholds remain unchanged.
Author
Owner

The final gate retry passed its RTT self-test (p50 307.84 ms, p99 312.50 ms) and the renderer-adjacent VT credit test, but the server suite ended 99 passed / 1 failed / 9 ignored. review3_pending_routes_and_idle_expiry_recovery panicked at crates/infraternal-server/src/auth/tests.rs:1711 with “server closed websocket unexpectedly: None”; it ran over 60 seconds. The full suite took 262.27 seconds; completion load was 9.43/12.88/15.97. No auth files were changed. I am checking load before deciding whether a clean gate rerun is useful.

The final gate retry passed its RTT self-test (p50 307.84 ms, p99 312.50 ms) and the renderer-adjacent VT credit test, but the server suite ended 99 passed / 1 failed / 9 ignored. `review3_pending_routes_and_idle_expiry_recovery` panicked at `crates/infraternal-server/src/auth/tests.rs:1711` with “server closed websocket unexpectedly: None”; it ran over 60 seconds. The full suite took 262.27 seconds; completion load was 9.43/12.88/15.97. No auth files were changed. I am checking load before deciding whether a clean gate rerun is useful.
Author
Owner

Four-column committed-code benchmark completed: Chromium CDP throttle 4x, 14 samples per warm operation and 8 cold faces per scale, infraternal-dev, CPUWeight=10000, TRACER_TEST_PORT=4497. Host loadavg 12.61/12.11/14.89 -> 15.92/14.52/15.19. Input-event latency p50/p95 (ms):

Terminals Theme Cold font Warm font Resize
1 13.7/57.9 18.2/36.9 40.4/130.2 70.2/210.7
4 37.9/113.4 43.8/262.8 29.5/52.0 19.4/52.1
8 23.5/66.3 39.8/140.7 39.9/67.4 49.0/152.3

All scales miss 16 ms p95. Frame-gap p95 ranges 111.2–566.8 ms; redraw completion timed out in 14/14 for warm font and resize at 4 and 8 terminals. Theme palette atlas had zero misses at all scales. Scale projection at 128 sessions: 1319.6/883.6/789.6 MiB at 1/4/8 visible terminals. These are loaded-host results; the previous 8-column 14-sample run started at 4.44/8.13/11.18 and reached 19.51 one-minute load, so cross-run deltas are not normalized. Full log: $HOME/.cache/codex-scratch/renderer-cost/committed-4col-14.log.

Four-column committed-code benchmark completed: Chromium CDP throttle 4x, 14 samples per warm operation and 8 cold faces per scale, `infraternal-dev`, CPUWeight=10000, TRACER_TEST_PORT=4497. Host loadavg 12.61/12.11/14.89 -> 15.92/14.52/15.19. Input-event latency p50/p95 (ms): | Terminals | Theme | Cold font | Warm font | Resize | | ---: | ---: | ---: | ---: | ---: | | 1 | 13.7/57.9 | 18.2/36.9 | 40.4/130.2 | 70.2/210.7 | | 4 | 37.9/113.4 | 43.8/262.8 | 29.5/52.0 | 19.4/52.1 | | 8 | 23.5/66.3 | 39.8/140.7 | 39.9/67.4 | 49.0/152.3 | All scales miss 16 ms p95. Frame-gap p95 ranges 111.2–566.8 ms; redraw completion timed out in 14/14 for warm font and resize at 4 and 8 terminals. Theme palette atlas had zero misses at all scales. Scale projection at 128 sessions: 1319.6/883.6/789.6 MiB at 1/4/8 visible terminals. These are loaded-host results; the previous 8-column 14-sample run started at 4.44/8.13/11.18 and reached 19.51 one-minute load, so cross-run deltas are not normalized. Full log: `$HOME/.cache/codex-scratch/renderer-cost/committed-4col-14.log`.
Author
Owner

Exploratory 16-column background batching run (2 warm samples, 8 cold faces/scale), Chromium CDP 4x on infraternal-dev under CPUWeight=10000, port 4497. Loadavg rose 9.48/13.94/15.28 -> 19.99/16.42/15.93. Renderer-slice p95 at n=1/4/8 terminals for theme/cold/warm/resize (ms): 9.6/7.7/8.6/14.0; 21.0/13.9/21.2/15.0; 23.0/40.7/32.0/55.5. Input-event p95 at n=4 was 21.4/320.9/31.6/121.1 ms; frame-gap p95 reached 405.5 ms. The narrower n=1 and selected n=4 slices are promising, but the run is too small and load changed during sampling; no budget pass is claimed. Full log: $HOME/.cache/codex-scratch/renderer-cost/background16-2.log.

Exploratory 16-column background batching run (2 warm samples, 8 cold faces/scale), Chromium CDP 4x on infraternal-dev under CPUWeight=10000, port 4497. Loadavg rose 9.48/13.94/15.28 -> 19.99/16.42/15.93. Renderer-slice p95 at n=1/4/8 terminals for theme/cold/warm/resize (ms): 9.6/7.7/8.6/14.0; 21.0/13.9/21.2/15.0; 23.0/40.7/32.0/55.5. Input-event p95 at n=4 was 21.4/320.9/31.6/121.1 ms; frame-gap p95 reached 405.5 ms. The narrower n=1 and selected n=4 slices are promising, but the run is too small and load changed during sampling; no budget pass is claimed. Full log: `$HOME/.cache/codex-scratch/renderer-cost/background16-2.log`.
Author
Owner

Exploratory run with 8-column background slices and a 4 ms page redraw budget (2 warm samples, 8 cold faces/scale), Chromium CDP 4x, port 4497. Loadavg 15.04/15.81/15.79 -> 9.79/12.66/14.51. Input-event p95 at n=1/4/8 terminals (theme/cold/warm/resize, ms): 9.5/35.0/24.3/17.4; 21.7/76.2/21.7/36.5; 28.9/43.4/45.6/82.8. Renderer-slice p95: 25.1/10.4/5.8/5.2; 8.4/24.0/5.4/8.4; 13.4/15.3/8.3/13.7. Frame-gap p95 stayed 77.5–309.9 ms, and redraw timed out in multiple samples. Several 8-terminal slices are now below 16 ms, but input and frame budgets still fail. Full log: $HOME/.cache/codex-scratch/renderer-cost/background8-budget4-2.log.

Exploratory run with 8-column background slices and a 4 ms page redraw budget (2 warm samples, 8 cold faces/scale), Chromium CDP 4x, port 4497. Loadavg 15.04/15.81/15.79 -> 9.79/12.66/14.51. Input-event p95 at n=1/4/8 terminals (theme/cold/warm/resize, ms): 9.5/35.0/24.3/17.4; 21.7/76.2/21.7/36.5; 28.9/43.4/45.6/82.8. Renderer-slice p95: 25.1/10.4/5.8/5.2; 8.4/24.0/5.4/8.4; 13.4/15.3/8.3/13.7. Frame-gap p95 stayed 77.5–309.9 ms, and redraw timed out in multiple samples. Several 8-terminal slices are now below 16 ms, but input and frame budgets still fail. Full log: `$HOME/.cache/codex-scratch/renderer-cost/background8-budget4-2.log`.
Author
Owner

Exploratory two-column text/four-column background run with a 4 ms redraw budget (2 warm samples, 8 cold faces/scale), Chromium CDP 4x, CPUWeight=10000, port 4497. Loadavg 7.60/11.58/14.04 -> 18.79/13.92/14.30. Renderer-slice p95 at n=1/4/8 terminals for theme/cold/warm/resize (ms): 27.6/9.0/13.1/27.5; 15.8/9.3/12.4/4.8; 16.4/25.4/16.3/24.1. n=4 slices improved, but n=1/8 theme or resize and n=8 cold font still exceed 16 ms. Input-event p95 reached 326.1 ms and frame-gap p95 653.4 ms; redraw timeouts persisted. This does not support shrinking every batch to two columns. Full log: $HOME/.cache/codex-scratch/renderer-cost/background4-text2-budget4-2.log.

Exploratory two-column text/four-column background run with a 4 ms redraw budget (2 warm samples, 8 cold faces/scale), Chromium CDP 4x, CPUWeight=10000, port 4497. Loadavg 7.60/11.58/14.04 -> 18.79/13.92/14.30. Renderer-slice p95 at n=1/4/8 terminals for theme/cold/warm/resize (ms): 27.6/9.0/13.1/27.5; 15.8/9.3/12.4/4.8; 16.4/25.4/16.3/24.1. n=4 slices improved, but n=1/8 theme or resize and n=8 cold font still exceed 16 ms. Input-event p95 reached 326.1 ms and frame-gap p95 653.4 ms; redraw timeouts persisted. This does not support shrinking every batch to two columns. Full log: `$HOME/.cache/codex-scratch/renderer-cost/background4-text2-budget4-2.log`.
Author
Owner

Final candidate benchmark completed: 4-column glyph ranges, 8-column background ranges, 4 ms page redraw budget. Chromium CDP 4x, 14 samples/warm operation and 8 cold faces/scale, infraternal-dev, CPUWeight=10000, port 4497. Host loadavg 10.52/12.62/13.79 -> 5.90/9.82/12.51. Input-event p50/p95 in ms:

Terminals Theme Cold font Warm font Resize
1 18.7/116.4 52.4/316.2 21.9/35.9 37.9/161.3
4 17.8/33.1 25.3/53.2 20.5/39.5 18.6/29.5
8 24.3/44.0 31.2/87.9 34.1/48.9 28.7/79.2

All input-event p95 values miss 16 ms. Frame-gap p95 is 64.5–649.2 ms; redraw timed out in all 14 samples for warm font and resize at 4/8 terminals. Palette redraw atlas misses were zero. 128-session memory projection: 1319.6/1011.6/917.6 MiB at 1/4/8 visible terminals. The browser assertions remain enabled and the run failed them. Full log: $HOME/.cache/codex-scratch/renderer-cost/final-bg8-budget4-14.log.

Final candidate benchmark completed: 4-column glyph ranges, 8-column background ranges, 4 ms page redraw budget. Chromium CDP 4x, 14 samples/warm operation and 8 cold faces/scale, `infraternal-dev`, CPUWeight=10000, port 4497. Host loadavg 10.52/12.62/13.79 -> 5.90/9.82/12.51. Input-event p50/p95 in ms: | Terminals | Theme | Cold font | Warm font | Resize | | ---: | ---: | ---: | ---: | ---: | | 1 | 18.7/116.4 | 52.4/316.2 | 21.9/35.9 | 37.9/161.3 | | 4 | 17.8/33.1 | 25.3/53.2 | 20.5/39.5 | 18.6/29.5 | | 8 | 24.3/44.0 | 31.2/87.9 | 34.1/48.9 | 28.7/79.2 | All input-event p95 values miss 16 ms. Frame-gap p95 is 64.5–649.2 ms; redraw timed out in all 14 samples for warm font and resize at 4/8 terminals. Palette redraw atlas misses were zero. 128-session memory projection: 1319.6/1011.6/917.6 MiB at 1/4/8 visible terminals. The browser assertions remain enabled and the run failed them. Full log: `$HOME/.cache/codex-scratch/renderer-cost/final-bg8-budget4-14.log`.
Author
Owner

Committed the renderer batching step as 09c7534d56f49ca02da73801c927edd73641ca08: four-column glyph ranges, eight-column background ranges, and a 4 ms page redraw budget. The 14-sample 4x run recorded input-event p95s of 116.4/316.2/35.9/161.3 ms at n=1; 33.1/53.2/39.5/29.5 ms at n=4; and 44.0/87.9/48.9/79.2 ms at n=8 (theme/cold/warm/resize). It does not meet the input budget. Running scripts/verify fast on this commit now.

Committed the renderer batching step as `09c7534d56f49ca02da73801c927edd73641ca08`: four-column glyph ranges, eight-column background ranges, and a 4 ms page redraw budget. The 14-sample 4x run recorded input-event p95s of 116.4/316.2/35.9/161.3 ms at n=1; 33.1/53.2/39.5/29.5 ms at n=4; and 44.0/87.9/48.9/79.2 ms at n=8 (theme/cold/warm/resize). It does not meet the input budget. Running `scripts/verify fast` on this commit now.
Author
Owner

Fast gate on source commit 09c7534d failed its Rust test phase: auth::tests::socket_tests::clean_control_close_is_not_an_internal_error panicked at crates/infraternal-server/src/auth/tests.rs:1711 with server closed websocket unexpectedly: None (99 passed, 1 failed, 9 ignored; 194.00s). The RTT self-test passed: p50 301.03 ms, p99 319.31 ms. Gate summary:

+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
| fmt | PASS |
| VT native fmt | PASS |
| clippy | PASS |
| test | FAIL (101) |
| cargo-deny | PASS |
| static builds | PASS |
+---------------------------+--------------+

Host load at follow-up: 18.42/11.99/12.06. The failure is outside the renderer changes; I am recording it without claiming the gate passed.

Fast gate on source commit 09c7534d failed its Rust test phase: `auth::tests::socket_tests::clean_control_close_is_not_an_internal_error` panicked at crates/infraternal-server/src/auth/tests.rs:1711 with `server closed websocket unexpectedly: None` (99 passed, 1 failed, 9 ignored; 194.00s). The RTT self-test passed: p50 301.03 ms, p99 319.31 ms. Gate summary: +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | FAIL (101) | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ Host load at follow-up: 18.42/11.99/12.06. The failure is outside the renderer changes; I am recording it without claiming the gate passed.
Author
Owner

Report step complete at head 3e41d34d41. docs/perf/renderer-cost.md now records p50/p95 input latency by operation at 1/4/8 terminals, the final frame/slice p95 and timeout counts, memory projected to 128 sessions, and current transfer measurements. Current production build and D188 transfer check passed: critical JavaScript 285,586 B gzip / 237,068 B Brotli; deferred 47,937 B / 41,577 B. The 14/8-sample browser run still misses all input-event p95 and frame-gap budgets; details and screenshot path are in the report.

Final scripts/verify fast output:
METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=322.47 p99_ms=351.69 result=PASS

+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
| fmt | PASS |
| VT native fmt | PASS |
| clippy | PASS |
| test | FAIL (101) |
| cargo-deny | PASS |
| static builds | PASS |
+---------------------------+--------------+

Rust test result: test result: FAILED. 97 passed; 3 failed; 9 ignored; 0 measured; 0 filtered out; finished in 361.68s. The three failures were websocket tests panicking at crates/infraternal-server/src/auth/tests.rs:1711 with server closed websocket unexpectedly: None. Load at completion was 20.24/18.02/15.49; observed peak one-minute load was 30.35. No thresholds were changed. The owner's real-device frame-meter and screenshot review remain pending.

Report step complete at head 3e41d34d4154b9d91b1cf05722f4d656edf986a3. `docs/perf/renderer-cost.md` now records p50/p95 input latency by operation at 1/4/8 terminals, the final frame/slice p95 and timeout counts, memory projected to 128 sessions, and current transfer measurements. Current production build and D188 transfer check passed: critical JavaScript 285,586 B gzip / 237,068 B Brotli; deferred 47,937 B / 41,577 B. The 14/8-sample browser run still misses all input-event p95 and frame-gap budgets; details and screenshot path are in the report. Final `scripts/verify fast` output: METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=322.47 p99_ms=351.69 result=PASS +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | FAIL (101) | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ Rust test result: `test result: FAILED. 97 passed; 3 failed; 9 ignored; 0 measured; 0 filtered out; finished in 361.68s`. The three failures were websocket tests panicking at `crates/infraternal-server/src/auth/tests.rs:1711` with `server closed websocket unexpectedly: None`. Load at completion was 20.24/18.02/15.49; observed peak one-minute load was 30.35. No thresholds were changed. The owner's real-device frame-meter and screenshot review remain pending.
Author
Owner

Independent verification review starts on branch review-renderer-cost, based on dev merge base c0a0982a0eca991fadfcc7bf597f2db6b5d36ccd, reviewing target 3e41d34d4154b9d91b1cf05722f4d656edf986a3. Read the issue history, job report, worktree contracts, and referenced decisions. No findings or edits yet.

Independent verification review starts on branch `review-renderer-cost`, based on `dev` merge base `c0a0982a0eca991fadfcc7bf597f2db6b5d36ccd`, reviewing target `3e41d34d4154b9d91b1cf05722f4d656edf986a3`. Read the issue history, job report, worktree contracts, and referenced decisions. No findings or edits yet.
Author
Owner

P1 finding RC-1, test committed as 9d5ae3ffa9b4aedb38d84e86db38b22b225eafd5. On one mock terminal starting on Ink, the test warms Geist Mono, dispatches theme:paper then font:geist-mono before the next frame, and waits for redraw completion. The screen ends on Paper/Geist Mono, but the renderer palette stays Ink: expected #f6f6f4, received #0d0e10. Repro: TRACER_TEST_PORT=4297 INFRATERAL_TEST_RTT=0 bun x playwright test test/renderer-appearance-order.spec.ts --workers=1. apps/tracer/src/core-screen.ts:327-341 cancels the prior appearance frame when scheduling the second update without composing the two independent changes.

P1 finding RC-1, test committed as `9d5ae3ffa9b4aedb38d84e86db38b22b225eafd5`. On one mock terminal starting on Ink, the test warms Geist Mono, dispatches `theme:paper` then `font:geist-mono` before the next frame, and waits for redraw completion. The screen ends on Paper/Geist Mono, but the renderer palette stays Ink: expected `#f6f6f4`, received `#0d0e10`. Repro: `TRACER_TEST_PORT=4297 INFRATERAL_TEST_RTT=0 bun x playwright test test/renderer-appearance-order.spec.ts --workers=1`. `apps/tracer/src/core-screen.ts:327-341` cancels the prior appearance frame when scheduling the second update without composing the two independent changes.
Author
Owner

P2 finding RC-2, test committed as 7e876acdcc11761c9885fe0ca9cc008e5b479c63. The renderer benchmark multiplies per-terminal memory by 128, while main:DECISIONS.md D170 sets 200 concurrent terminal sessions per server and requires per-unit budgets to use that count. The new guard fails: expected 200, received 128. The report's 128-session projections are 725.6–1319.6 MiB; using the same per-terminal measurements at 200 sessions gives 1132.0–2061.3 MiB, charging the shared atlas once.

P2 finding RC-2, test committed as `7e876acdcc11761c9885fe0ca9cc008e5b479c63`. The renderer benchmark multiplies per-terminal memory by 128, while `main:DECISIONS.md` D170 sets 200 concurrent terminal sessions per server and requires per-unit budgets to use that count. The new guard fails: expected 200, received 128. The report's 128-session projections are 725.6–1319.6 MiB; using the same per-terminal measurements at 200 sessions gives 1132.0–2061.3 MiB, charging the shared atlas once.
Author
Owner

Correction to the low end of RC-2's projected range: recalculating from the logged 8-terminal per-unit values gives 1133.2 MiB at 200 sessions (not 1132.0 MiB); the range is 1133.2–2061.3 MiB. The finding and local findings file now use the corrected value.

Correction to the low end of RC-2's projected range: recalculating from the logged 8-terminal per-unit values gives 1133.2 MiB at 200 sessions (not 1132.0 MiB); the range is 1133.2–2061.3 MiB. The finding and local findings file now use the corrected value.
Author
Owner

Independent renderer benchmark rerun completed on infraternal-dev with Chromium at 4x, 14 samples per operation and 8 cold fonts per scale, under systemd-run --user --scope -p CPUWeight=10000. Load average changed from 17.91/27.91/29.65 to 39.58/36.17/32.25. The benchmark failed its budgets at 1/4/8 terminals: theme input p95 was 69.3/74.4/318.5 ms, and maximum frame-gap p95 across operations was 473.2/664.5/1490.1 ms. At 8 terminals, redraw timed out in 14/14 theme, 8/8 cold-font, 14/14 warm-font and 14/14 resize samples. The author report already records budget failures; this rerun reproduces them under elevated host load. Full output: $HOME/.cache/codex-scratch/renderer-cost-review/renderer-benchmark.log.

Independent renderer benchmark rerun completed on infraternal-dev with Chromium at 4x, 14 samples per operation and 8 cold fonts per scale, under `systemd-run --user --scope -p CPUWeight=10000`. Load average changed from 17.91/27.91/29.65 to 39.58/36.17/32.25. The benchmark failed its budgets at 1/4/8 terminals: theme input p95 was 69.3/74.4/318.5 ms, and maximum frame-gap p95 across operations was 473.2/664.5/1490.1 ms. At 8 terminals, redraw timed out in 14/14 theme, 8/8 cold-font, 14/14 warm-font and 14/14 resize samples. The author report already records budget failures; this rerun reproduces them under elevated host load. Full output: `$HOME/.cache/codex-scratch/renderer-cost-review/renderer-benchmark.log`.
Author
Owner

Gate-load comparison for the auth socket timeout failures (target fast run started at load 21.88/26.87/29.22; detached dev baseline 459070fe3b75548382e8e19fba86af20439cf607 started at 21.26/20.58/25.45):

Target 3e41d34d:

authenticated_idle_socket_survives_the_former_read_timeout ... FAILED
incomplete_rfc_message_still_loses_authority_on_revocation ... FAILED
recovery_subscription_updates_every_signed_in_socket ... FAILED
test result: FAILED. 97 passed; 3 failed; 9 ignored; finished in 199.71s

Detached dev baseline, each exact test individually:

authenticated_idle_socket_survives_the_former_read_timeout ... ok
incomplete_rfc_message_still_loses_authority_on_revocation ... ok
recovery_subscription_updates_every_signed_in_socket ... ok
Each: 1 passed; 0 failed; 108 filtered out (0.81–1.48s).

The failures are not reproduced on dev, which contains the later #118 gate-stability changes. The target diff does not touch auth socket code. Full logs are retained under $HOME/.cache/codex-scratch/renderer-cost-review/.

Gate-load comparison for the auth socket timeout failures (target fast run started at load 21.88/26.87/29.22; detached `dev` baseline `459070fe3b75548382e8e19fba86af20439cf607` started at 21.26/20.58/25.45): Target `3e41d34d`: ```text authenticated_idle_socket_survives_the_former_read_timeout ... FAILED incomplete_rfc_message_still_loses_authority_on_revocation ... FAILED recovery_subscription_updates_every_signed_in_socket ... FAILED test result: FAILED. 97 passed; 3 failed; 9 ignored; finished in 199.71s ``` Detached `dev` baseline, each exact test individually: ```text authenticated_idle_socket_survives_the_former_read_timeout ... ok incomplete_rfc_message_still_loses_authority_on_revocation ... ok recovery_subscription_updates_every_signed_in_socket ... ok Each: 1 passed; 0 failed; 108 filtered out (0.81–1.48s). ``` The failures are not reproduced on `dev`, which contains the later #118 gate-stability changes. The target diff does not touch auth socket code. Full logs are retained under `$HOME/.cache/codex-scratch/renderer-cost-review/`.
Author
Owner

The Rust failure short-circuited scripts/verify fast before its TypeScript section, so I ran ts_verify_fast separately on 3e41d34d. The first run's differential stream test hit its 30 s timeout while the host was loaded; after the oracle was warm, the protocol suite passed 7/7 in 7.22 s and a full TypeScript-section rerun passed (exit 0): Ghostty checksums, TypeScript compiler, 34 tracer tests, production build/transfer budget, Rust oracle, and 7 protocol tests.

Measured transfer: critical JavaScript identity 928,133 B, gzip 285,585/307,200 B, Brotli 237,164/256,000 B; deferred identity 136,533 B, gzip 47,939/51,200 B, Brotli 41,585/45,056 B. Font transfer budgets passed. Full log: $HOME/.cache/codex-scratch/renderer-cost-review/job-head-ts-fast-retry.log.

The Rust failure short-circuited `scripts/verify fast` before its TypeScript section, so I ran `ts_verify_fast` separately on `3e41d34d`. The first run's differential stream test hit its 30 s timeout while the host was loaded; after the oracle was warm, the protocol suite passed 7/7 in 7.22 s and a full TypeScript-section rerun passed (exit 0): Ghostty checksums, TypeScript compiler, 34 tracer tests, production build/transfer budget, Rust oracle, and 7 protocol tests. Measured transfer: critical JavaScript identity 928,133 B, gzip 285,585/307,200 B, Brotli 237,164/256,000 B; deferred identity 136,533 B, gzip 47,939/51,200 B, Brotli 41,585/45,056 B. Font transfer budgets passed. Full log: `$HOME/.cache/codex-scratch/renderer-cost-review/job-head-ts-fast-retry.log`.
Author
Owner

Independent verification complete. Verdict: merge after fixes.

Findings: P0 0, P1 1, P2 1, P3 0. Reviewer branch review-renderer-cost head: 7e876acdcc11761c9885fe0ca9cc008e5b479c63. Evidence tests are committed in 9d5ae3ffa9b4aedb38d84e86db38b22b225eafd5 (RC-1) and 7e876acdcc11761c9885fe0ca9cc008e5b479c63 (RC-2). The full scenarios and outputs are recorded above and in findings.md.

scripts/verify fast ran on job head 3e41d34d4154b9d91b1cf05722f4d656edf986a3 and exited 1. Relevant output, verbatim:

METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=344.17 p99_ms=348.11 result=PASS
test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... FAILED
test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... FAILED
test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... FAILED
test result: FAILED. 97 passed; 3 failed; 9 ignored; 0 measured; 0 filtered out; finished in 199.71s
error: test failed, to rerun pass `-p infraternal-server --lib`

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| clippy                    | PASS         |
| test                      | FAIL (101)   |
| cargo-deny                | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+

All three socket tests passed individually on detached dev (459070fe3b75548382e8e19fba86af20439cf607) in the same load window. The standalone TypeScript gate passed on retry: 34 tracer tests and 7 protocol tests passed; bundle transfer budgets passed. The renderer benchmark rerun and scale projections are recorded in prior comments. Owner screenshot review and the real-device frame-meter check remain pending per the job report. No issue was closed.

Independent verification complete. Verdict: **merge after fixes**. Findings: P0 0, P1 1, P2 1, P3 0. Reviewer branch `review-renderer-cost` head: `7e876acdcc11761c9885fe0ca9cc008e5b479c63`. Evidence tests are committed in `9d5ae3ffa9b4aedb38d84e86db38b22b225eafd5` (RC-1) and `7e876acdcc11761c9885fe0ca9cc008e5b479c63` (RC-2). The full scenarios and outputs are recorded above and in `findings.md`. `scripts/verify fast` ran on job head `3e41d34d4154b9d91b1cf05722f4d656edf986a3` and exited 1. Relevant output, verbatim: ```text METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=344.17 p99_ms=348.11 result=PASS test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... FAILED test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... FAILED test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... FAILED test result: FAILED. 97 passed; 3 failed; 9 ignored; 0 measured; 0 filtered out; finished in 199.71s error: test failed, to rerun pass `-p infraternal-server --lib` +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | FAIL (101) | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ``` All three socket tests passed individually on detached `dev` (`459070fe3b75548382e8e19fba86af20439cf607`) in the same load window. The standalone TypeScript gate passed on retry: 34 tracer tests and 7 protocol tests passed; bundle transfer budgets passed. The renderer benchmark rerun and scale projections are recorded in prior comments. Owner screenshot review and the real-device frame-meter check remain pending per the job report. No issue was closed.
Author
Owner

Correction and final review record: RC-2's test-only evidence commit is f553a61cc7bd6e05594ea58e138c3f6fefa01804; this is a formatted amendment of the same test change. Reviewer branch review-renderer-cost now ends at that SHA, replacing the prior 7e876ac... reference.

Verdict: merge after fixes. Findings: P0 0, P1 1, P2 1, P3 0.

scripts/verify fast on job head 3e41d34d4154b9d91b1cf05722f4d656edf986a3 returned 1. Output, verbatim:

METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=344.17 p99_ms=348.11 result=PASS
test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... FAILED
test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... FAILED
test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... FAILED
test result: FAILED. 97 passed; 3 failed; 9 ignored; 0 measured; 0 filtered out; finished in 199.71s
error: test failed, to rerun pass `-p infraternal-server --lib`

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| clippy                    | PASS         |
| test                      | FAIL (101)   |
| cargo-deny                | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+

The three socket tests passed individually on detached dev; the TypeScript gate passed on retry (34 tracer tests, 7 protocol tests, bundle and font transfer budgets). The prior comments contain the baseline outputs and benchmark measurements. Owner screenshot review and the real-device frame-meter check remain pending per the job report. No issue was closed.

Correction and final review record: RC-2's test-only evidence commit is `f553a61cc7bd6e05594ea58e138c3f6fefa01804`; this is a formatted amendment of the same test change. Reviewer branch `review-renderer-cost` now ends at that SHA, replacing the prior `7e876ac...` reference. Verdict: **merge after fixes**. Findings: P0 0, P1 1, P2 1, P3 0. `scripts/verify fast` on job head `3e41d34d4154b9d91b1cf05722f4d656edf986a3` returned 1. Output, verbatim: ```text METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=344.17 p99_ms=348.11 result=PASS test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... FAILED test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... FAILED test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... FAILED test result: FAILED. 97 passed; 3 failed; 9 ignored; 0 measured; 0 filtered out; finished in 199.71s error: test failed, to rerun pass `-p infraternal-server --lib` +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | FAIL (101) | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ``` The three socket tests passed individually on detached `dev`; the TypeScript gate passed on retry (34 tracer tests, 7 protocol tests, bundle and font transfer budgets). The prior comments contain the baseline outputs and benchmark measurements. Owner screenshot review and the real-device frame-meter check remain pending per the job report. No issue was closed.
Author
Owner

Run 2 starts on renderer-cost, base 3e41d34d41. Read #97 history, #121 requirements, repo contracts and prior review/next-run findings. Merging local dev 7d6df447 first; then cherry-pick RC-1/RC-2 failing tests, fix and measure 1/4/8 visible plus hidden renderer cost under local CPUWeight=10000. Browser plugin unavailable; production Playwright on unique port 4497. No push/deploy or engine change.

Run 2 starts on renderer-cost, base 3e41d34d4154b9d91b1cf05722f4d656edf986a3. Read #97 history, #121 requirements, repo contracts and prior review/next-run findings. Merging local dev 7d6df447 first; then cherry-pick RC-1/RC-2 failing tests, fix and measure 1/4/8 visible plus hidden renderer cost under local CPUWeight=10000. Browser plugin unavailable; production Playwright on unique port 4497. No push/deploy or engine change.
Author
Owner

After merging dev source, both reviewer probes still fail: RC-1 expected Paper background #f6f6f4, received Ink #0d0e10; RC-2 expected D170 scale 200, received 128. Production Chromium, port 4497, RTT=0, CPUWeight=10000. Log: $HOME/.cache/codex-scratch/renderer-cost/repro-review.log. Merge conflicts preserve dev attribute-scoped levels/mesh APIs and our multi-stream fixture; fast gate compiling. Single-terminal CPU attribution is next.

After merging dev source, both reviewer probes still fail: RC-1 expected Paper background #f6f6f4, received Ink #0d0e10; RC-2 expected D170 scale 200, received 128. Production Chromium, port 4497, RTT=0, CPUWeight=10000. Log: $HOME/.cache/codex-scratch/renderer-cost/repro-review.log. Merge conflicts preserve dev attribute-scoped levels/mesh APIs and our multi-stream fixture; fast gate compiling. Single-terminal CPU attribution is next.
Author
Owner

Merge integration checks: font picker/font switch 5/5 passed; shared confirmation initially failed (transparent/none versus rgba(28,28,30,0.7)/8px blur). Cause: dev material tokens now live on attribute-selected surfaces, while the detached confirmation copied tokens from the screen. Resolving the scoped theme/card attributes in packages/ui/src/tooltip.ts restores the shared material; production Chromium regression then passed 1/1 (15.3s), TypeScript check passed. Merge fast gate hit pinned Zig dependency fetch HttpConnectionClosing, not an auth error; fetched the same immutable zigimg/uucode revisions through codeload into this job cache and zig fetch returned the expected package hashes. Gate continuing with no source/toolchain/threshold change.

Single-terminal readable profile (4x, n=2 under high host load) attributes forced synchronous layout to createCapsuleTabs.place -> render -> select -> Settings paint -> tracer:appearance. Theme Paper profiles sampled 145.1/279.1ms in place alone; tint/drawImage/canvas clear and font setters are the other large explicit native calls. Profiles are attribution evidence, not latency comparison (profiler overhead); $HOME/.cache/codex-scratch/renderer-cost/profile-*.json. Owner logs in ~/.local/state/infraternal-preview/perf/47401.jsonl include iPhone 120Hz build 2585fc57 (6 incidents, worst gap 169ms), plus older Mac builds; they predate this work and cannot validate it.

Merge integration checks: font picker/font switch 5/5 passed; shared confirmation initially failed (transparent/none versus rgba(28,28,30,0.7)/8px blur). Cause: dev material tokens now live on attribute-selected surfaces, while the detached confirmation copied tokens from the screen. Resolving the scoped theme/card attributes in packages/ui/src/tooltip.ts restores the shared material; production Chromium regression then passed 1/1 (15.3s), TypeScript check passed. Merge fast gate hit pinned Zig dependency fetch HttpConnectionClosing, not an auth error; fetched the same immutable zigimg/uucode revisions through codeload into this job cache and zig fetch returned the expected package hashes. Gate continuing with no source/toolchain/threshold change. Single-terminal readable profile (4x, n=2 under high host load) attributes forced synchronous layout to createCapsuleTabs.place -> render -> select -> Settings paint -> tracer:appearance. Theme Paper profiles sampled 145.1/279.1ms in place alone; tint/drawImage/canvas clear and font setters are the other large explicit native calls. Profiles are attribution evidence, not latency comparison (profiler overhead); $HOME/.cache/codex-scratch/renderer-cost/profile-*.json. Owner logs in ~/.local/state/infraternal-preview/perf/47401.jsonl include iPhone 120Hz build 2585fc57 (6 incidents, worst gap 169ms), plus older Mac builds; they predate this work and cannot validate it.
Author
Owner

Memory floor isolated on pinned browser engine (no canvas/atlas, empty 80x24, default 10000 scrollback, CPUWeight=10000, load 28.52/29.93/27.35): module 1,245,184 B; 1/4/8/200 terminals 6,946,816 / 22,675,456 / 43,646,976 / 1,052,508,160 B; fetching every viewport grows to 1,079,574,528 B; freeing all terminals does not shrink WebAssembly.Memory. Raw high-water memory is above the 2MiB hidden budget at actual D170 scale. Probe: $HOME/.cache/codex-scratch/renderer-cost/wasm-memory.mjs and .log. Source evidence: pinned ghostty src/terminal/PageList.zig preheats four page-aligned screen-page pool items. Measuring demand allocation within this SAME pinned engine/allocator next; no engine or foundational allocator choice.

The first before scale run failed before 8 terminals: locator.click retried 1399 times because the first split button moved outside the viewport under dev camera behavior (15m timeout). Test setup will dispatch that fixture split action directly; measured palette/resize input stays real browser input. Full failure: before-scale.log. Capsule regression also fails before its fix: unchanged selection performs one offsetLeft read (expected zero), capsule-red.log.

Memory floor isolated on pinned browser engine (no canvas/atlas, empty 80x24, default 10000 scrollback, CPUWeight=10000, load 28.52/29.93/27.35): module 1,245,184 B; 1/4/8/200 terminals 6,946,816 / 22,675,456 / 43,646,976 / 1,052,508,160 B; fetching every viewport grows to 1,079,574,528 B; freeing all terminals does not shrink WebAssembly.Memory. Raw high-water memory is above the 2MiB hidden budget at actual D170 scale. Probe: $HOME/.cache/codex-scratch/renderer-cost/wasm-memory.mjs and .log. Source evidence: pinned ghostty src/terminal/PageList.zig preheats four page-aligned screen-page pool items. Measuring demand allocation within this SAME pinned engine/allocator next; no engine or foundational allocator choice. The first before scale run failed before 8 terminals: locator.click retried 1399 times because the first split button moved outside the viewport under dev camera behavior (15m timeout). Test setup will dispatch that fixture split action directly; measured palette/resize input stays real browser input. Full failure: before-scale.log. Capsule regression also fails before its fix: unchanged selection performs one offsetLeft read (expected zero), capsule-red.log.
Author
Owner

Corrected fixture reproduces 8-terminal redraw timeout in EVERY category: theme 2/2, cold font 8/8, warm font 2/2, resize 2/2. Before sweep: Chromium 4x, CPUWeight=10000, 2 warm samples/8 cold faces per scale; load 31.48/29.99/29.07 -> 33.70/32.36/30.24. Input latency p95 theme/cold/warm/resize ms: n=1 24.6/105.0/41.6/54.9; n=4 67.9/148.2/55.6/37.0; n=8 27.4/215.5/110.5/82.6. Renderer slice p95 ms: n=1 12.7/13.0/9.6/10.2; n=4 146.1/23.1/13.8/10.9; n=8 18.1/18.3/34.6/39.7. This is a diagnostic before run under heavy host load, not a normalized comparison or pass. Full metrics/screenshot: $HOME/.cache/codex-scratch/renderer-cost/before-scale-fixed-fixture.log and Playwright test-results. Production code is still the merged baseline; prepared fixes remain separate patches until the integration gate completes.

Corrected fixture reproduces 8-terminal redraw timeout in EVERY category: theme 2/2, cold font 8/8, warm font 2/2, resize 2/2. Before sweep: Chromium 4x, CPUWeight=10000, 2 warm samples/8 cold faces per scale; load 31.48/29.99/29.07 -> 33.70/32.36/30.24. Input latency p95 theme/cold/warm/resize ms: n=1 24.6/105.0/41.6/54.9; n=4 67.9/148.2/55.6/37.0; n=8 27.4/215.5/110.5/82.6. Renderer slice p95 ms: n=1 12.7/13.0/9.6/10.2; n=4 146.1/23.1/13.8/10.9; n=8 18.1/18.3/34.6/39.7. This is a diagnostic before run under heavy host load, not a normalized comparison or pass. Full metrics/screenshot: $HOME/.cache/codex-scratch/renderer-cost/before-scale-fixed-fixture.log and Playwright test-results. Production code is still the merged baseline; prepared fixes remain separate patches until the integration gate completes.
Author
Owner

Additional real-engine/canvas regressions reproduced before fixes:

  • Shared capsule unchanged selection: one offsetLeft read instead of zero (capsule-red.log).
  • Cached glyph tint alternating run widths: 12 backing dimension assignments instead of zero. Last surface disposer: 1,056,864 bytes retained instead of zero (atlas-red.log).
  • 200 empty 80x24 VT sessions, scrollback limit 10,000: 5,256,314.88 retained WASM bytes/session before any canvas (memory-red.log). A demand-allocation experiment in the same pinned PageList pool yields 1,059,717.12 bytes/session; no engine, allocator or pin change. Full 200-session measurements: wasm-memory.log and wasm-memory-demand.log.
  • Single-terminal CDP timeline after authenticated setup (4x, diagnostic profiler overhead, load 4.32/5.96/11.92): cold Commit Mono has one 54.3 ms Layout event; shared capsule select/place stack forces layout after appearance writes. Theme timeline totals 107.3-132.9 ms UpdateLayoutTree. Do not compare these instrumented timings to the uninstrumented acceptance matrix.
    All evidence under /home/kayg/.cache/codex-scratch/renderer-cost/. Temporary diagnostic specs moved there so they cannot contaminate the merge compiler gate.
Additional real-engine/canvas regressions reproduced before fixes: - Shared capsule unchanged selection: one offsetLeft read instead of zero (capsule-red.log). - Cached glyph tint alternating run widths: 12 backing dimension assignments instead of zero. Last surface disposer: 1,056,864 bytes retained instead of zero (atlas-red.log). - 200 empty 80x24 VT sessions, scrollback limit 10,000: 5,256,314.88 retained WASM bytes/session before any canvas (memory-red.log). A demand-allocation experiment in the same pinned PageList pool yields 1,059,717.12 bytes/session; no engine, allocator or pin change. Full 200-session measurements: wasm-memory.log and wasm-memory-demand.log. - Single-terminal CDP timeline after authenticated setup (4x, diagnostic profiler overhead, load 4.32/5.96/11.92): cold Commit Mono has one 54.3 ms Layout event; shared capsule select/place stack forces layout after appearance writes. Theme timeline totals 107.3-132.9 ms UpdateLayoutTree. Do not compare these instrumented timings to the uninstrumented acceptance matrix. All evidence under /home/kayg/.cache/codex-scratch/renderer-cost/. Temporary diagnostic specs moved there so they cannot contaminate the merge compiler gate.
Author
Owner

Merge prerequisite updated to dev 42e50d42: dev advanced during the run with #127 details/sharing deferral commits. The earlier target 7d6df447 plus the renderer lane exceeded deferred transfer by 735 B gzip / 256 B Brotli. Current merged build is 47,034/51,200 B gzip and 41,474/45,056 B Brotli deferred, with no budget change. TypeScript check passes; shared detached confirmation production browser test 1/1 passes. Baseline vendored JS/WASM/declarations reproduced exactly from the pinned upstream commits.
Gate history: merge-clean had all six Rust rows PASS, then uncovered a remaining obsolete mesh block in conflict resolution; corrected against dev. One earlier expired_handshake_releases_user_permits failure was checked on detached dev: exact test PASS (0.81 s), and subsequent full workspace test PASS, so no load-only exception is claimed. Logs baseline-auth.log and gate-merge-clean.log.
Starting a full 14/8-sample before matrix on the updated merge. Subsequent fast checks use INFRATERNAL_TEST_RTT=0 (documented local debug mode); 300 ms RTT full Rust rows already passed. Scratch logs under /home/kayg/.cache/codex-scratch/renderer-cost/.

Merge prerequisite updated to dev 42e50d42: dev advanced during the run with #127 details/sharing deferral commits. The earlier target 7d6df447 plus the renderer lane exceeded deferred transfer by 735 B gzip / 256 B Brotli. Current merged build is 47,034/51,200 B gzip and 41,474/45,056 B Brotli deferred, with no budget change. TypeScript check passes; shared detached confirmation production browser test 1/1 passes. Baseline vendored JS/WASM/declarations reproduced exactly from the pinned upstream commits. Gate history: merge-clean had all six Rust rows PASS, then uncovered a remaining obsolete mesh block in conflict resolution; corrected against dev. One earlier expired_handshake_releases_user_permits failure was checked on detached dev: exact test PASS (0.81 s), and subsequent full workspace test PASS, so no load-only exception is claimed. Logs baseline-auth.log and gate-merge-clean.log. Starting a full 14/8-sample before matrix on the updated merge. Subsequent fast checks use INFRATERNAL_TEST_RTT=0 (documented local debug mode); 300 ms RTT full Rust rows already passed. Scratch logs under /home/kayg/.cache/codex-scratch/renderer-cost/.
Author
Owner

Completed merge 1cc4b4db (dev 42e50d42) and imported reviewer regression commits separately: 39d90526 (RC-1) and 9ca34400 (RC-2). RC-1 reproduced after merge: expected #f6f6f4, got #0d0e10. RC-2 reproduced earlier: 200 expected, 128 got. The RC-1 test uses the existing full renderer metric type because dev’s test-double declaration is narrower than the returned object. No behavior changed in the imported tests.

Full fast gate passed on the working tree containing the regression tests and pending independent fixes; RUST_TEST_THREADS=1, RTT=300 ms, CPUWeight=10000. All rows pass with no load exception. An earlier native restart oracle hit command-queue capacity, so it was rerun without an exemption; all 24 restart positions now pass. The first wrapper had been edited while it was running and returned 127 after a successful gate; wrapper fixed and this run exits 0. Evidence: gate-regressions-serial.log/.exit under /home/kayg/.cache/codex-scratch/renderer-cost/.

Gate summary, verbatim:

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+
7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [3.27s]
Completed merge 1cc4b4db (dev 42e50d42) and imported reviewer regression commits separately: 39d90526 (RC-1) and 9ca34400 (RC-2). RC-1 reproduced after merge: expected #f6f6f4, got #0d0e10. RC-2 reproduced earlier: 200 expected, 128 got. The RC-1 test uses the existing full renderer metric type because dev’s test-double declaration is narrower than the returned object. No behavior changed in the imported tests. Full fast gate passed on the working tree containing the regression tests and pending independent fixes; RUST_TEST_THREADS=1, RTT=300 ms, CPUWeight=10000. All rows pass with no load exception. An earlier native restart oracle hit command-queue capacity, so it was rerun without an exemption; all 24 restart positions now pass. The first wrapper had been edited while it was running and returned 127 after a successful gate; wrapper fixed and this run exits 0. Evidence: gate-regressions-serial.log/.exit under /home/kayg/.cache/codex-scratch/renderer-cost/. Gate summary, verbatim: ``` +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [3.27s] ```
Author
Owner

RC-1 fixed in 342ba632: each queued appearance slice reads both latest desired theme and font, preserving independent per-terminal font size. Browser regression passes both update orders with a real touch pinch (2 tests). Original red expected Paper #f6f6f4, received Ink #0d0e10.

Benchmark finding: filtering the palette to a font applied its preview before timing; a later click could be a no-op and report a false redraw-generation timeout. New regression failed (expected Maple, got Geist); preparation now leaves the committed face unchanged. Combined fixture/order tests: 3 passed (appearance-fixture-green.log). Subsequent samples include actual cold-font load; older cold/warm numbers are not directly comparable.

Real-engine regressions confirmed: 200 empty 80x24 terminals retain 5,256,314.88 bytes each before pixels; free() leaves a borrowed viewport array with 1920 cell objects (expected 0). Evidence: memory-release-red.log under CPUWeight=10000. Same pinned allocator with WASM-only demand allocation reduces the 200-terminal empty-state total to 213,188,608 bytes; repeated large resize still retains 1,079,181,312 bytes, so this alone does not meet the hidden budget. No foundational engine choice or scrollback reduction. Logs under /home/kayg/.cache/codex-scratch/renderer-cost/.

RC-1 fixed in 342ba632: each queued appearance slice reads both latest desired theme and font, preserving independent per-terminal font size. Browser regression passes both update orders with a real touch pinch (2 tests). Original red expected Paper #f6f6f4, received Ink #0d0e10. Benchmark finding: filtering the palette to a font applied its preview before timing; a later click could be a no-op and report a false redraw-generation timeout. New regression failed (expected Maple, got Geist); preparation now leaves the committed face unchanged. Combined fixture/order tests: 3 passed (appearance-fixture-green.log). Subsequent samples include actual cold-font load; older cold/warm numbers are not directly comparable. Real-engine regressions confirmed: 200 empty 80x24 terminals retain 5,256,314.88 bytes each before pixels; free() leaves a borrowed viewport array with 1920 cell objects (expected 0). Evidence: memory-release-red.log under CPUWeight=10000. Same pinned allocator with WASM-only demand allocation reduces the 200-terminal empty-state total to 213,188,608 bytes; repeated large resize still retains 1,079,181,312 bytes, so this alone does not meet the hidden budget. No foundational engine choice or scrollback reduction. Logs under /home/kayg/.cache/codex-scratch/renderer-cost/.
Author
Owner

1570d596: fix(tracer): project visible and hidden renderer memory at D170 scale. RC-2 red 128 versus 200; corrected fixture regression passed, and unique WASM identities plus one shared atlas determine the projections. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).

1570d596: fix(tracer): project visible and hidden renderer memory at D170 scale. RC-2 red 128 versus 200; corrected fixture regression passed, and unique WASM identities plus one shared atlas determine the projections. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).
Author
Owner

594eba2f: fix(ui): avoid layout for unchanged capsule selections. Real browser offsetLeft reads: 1 before, 0 after. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).

594eba2f: fix(ui): avoid layout for unchanged capsule selections. Real browser offsetLeft reads: 1 before, 0 after. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).
Author
Owner

7b1bcd50: test(ui): guard capsule selection layout. Red: 1 geometry read, expected 0. Green: 0. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).

7b1bcd50: test(ui): guard capsule selection layout. Red: 1 geometry read, expected 0. Green: 0. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).
Author
Owner

9feb28a3: fix(ui): write the page appearance scope marker once. Real browser root attribute mutations: 1 before, 0 after. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).

9feb28a3: fix(ui): write the page appearance scope marker once. Real browser root attribute mutations: 1 before, 0 after. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).
Author
Owner

1b24d44a: test(ui): guard stable appearance scope ownership. Red root mutation count 1; green 0. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).

1b24d44a: test(ui): guard stable appearance scope ownership. Red root mutation count 1; green 0. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).
Author
Owner

f7d74b92: fix(tracer): release idle atlas stores and reuse tint capacity. Alternating warm runs: 12 backing-store writes before, 0 after. Last release: 1,056,864 bytes before, 0 after. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).

f7d74b92: fix(tracer): release idle atlas stores and reuse tint capacity. Alternating warm runs: 12 backing-store writes before, 0 after. Last release: 1,056,864 bytes before, 0 after. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).
Author
Owner

8627ebe8: test(tracer): cover atlas capacity and last-surface release. Both red regressions pass: 0 warm reallocations and 0 bytes retained after last release. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).

8627ebe8: test(tracer): cover atlas capacity and last-surface release. Both red regressions pass: 0 warm reallocations and 0 bytes retained after last release. Fast gate exit 0: /home/kayg/.cache/codex-scratch/renderer-cost/gate-modules-final.log (all Rust rows PASS, TS/bundle/protocol PASS; 7 pass, 0 fail, 34390 expect calls).
Author
Owner

5990a5a7: pinned WASM-only demand allocation plus render-transfer parking. 200 empty terminals: 1,052,508,160 → 213,188,608 WASM bytes; exact viewport and joined graphemes survive parking; disposal clears borrowed cells. Fast gate all rows PASS (gate-modules-final.log, exit 0). Resize high-water remains over budget; no engine, allocator, geometry or scrollback choice changed.

5990a5a7: pinned WASM-only demand allocation plus render-transfer parking. 200 empty terminals: 1,052,508,160 → 213,188,608 WASM bytes; exact viewport and joined graphemes survive parking; disposal clears borrowed cells. Fast gate all rows PASS (gate-modules-final.log, exit 0). Resize high-water remains over budget; no engine, allocator, geometry or scrollback choice changed.
Author
Owner

d2ccf08e: test(tracer): verify real-engine memory and parked state fidelity. Instantiate the pinned WASM at D170’s 200-session scale. Verify borrowed-cell disposal and exact truecolor/Unicode restoration after another session reuses transfers. Reject mocked memory or ANSI replay compaction. Red: 5,256,314.88 bytes per empty terminal and 1920 borrowed cells after free. Green: below 2 MiB at 200 sessions; parked contents and joined graphemes restored exactly. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.

d2ccf08e: test(tracer): verify real-engine memory and parked state fidelity. Instantiate the pinned WASM at D170’s 200-session scale. Verify borrowed-cell disposal and exact truecolor/Unicode restoration after another session reuses transfers. Reject mocked memory or ANSI replay compaction. Red: 5,256,314.88 bytes per empty terminal and 1920 borrowed cells after free. Green: below 2 MiB at 200 sessions; parked contents and joined graphemes restored exactly. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.
Author
Owner

dd21856f: fix(tracer): fit observed boxes and preserve sliced redraw ownership. Use ResizeObserver content boxes instead of synchronous document measurements. Suppress full paints while fit or sliced redraw owns pixels, synchronize native invalidations before clearing dirty state, and resume dirty output after completion. Increase bounded ranges to reduce queue overhead, avoid repeated italic-face repaints, and park transfer cells and atlas. Reject engine replacement, disabling output or dropping dirty data. Preserve background-before-glyph ordering (D175, #121). Focused real browser/engine suite: 13 passed; TypeScript passed. Budget results are reported separately; no target success claimed. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.

dd21856f: fix(tracer): fit observed boxes and preserve sliced redraw ownership. Use ResizeObserver content boxes instead of synchronous document measurements. Suppress full paints while fit or sliced redraw owns pixels, synchronize native invalidations before clearing dirty state, and resume dirty output after completion. Increase bounded ranges to reduce queue overhead, avoid repeated italic-face repaints, and park transfer cells and atlas. Reject engine replacement, disabling output or dropping dirty data. Preserve background-before-glyph ordering (D175, #121). Focused real browser/engine suite: 13 passed; TypeScript passed. Budget results are reported separately; no target success claimed. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.
Author
Owner

57b861f4: test(tracer): cover both appearance orders and pinched font sizes. Extend RC-1 to both theme/font orders with an actual touch pinch. Reject resetting terminal-local sizes or checking only DOM appearance markers. Both orders pass and retain the increased terminal font size. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.

57b861f4: test(tracer): cover both appearance orders and pinched font sizes. Extend RC-1 to both theme/font orders with an actual touch pinch. Reject resetting terminal-local sizes or checking only DOM appearance markers. Both orders pass and retain the increased terminal font size. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.
Author
Owner

dfd5d70c: docs(tracer): document pinned browser memory patches and limits. Document reproducible patch order, WASM-only demand allocation and render-transfer lifetime at D170’s 200 sessions. Reject describing released stores as shrinking linear memory; history and resize high-water remain explicit limitations. Bun 1.4.2 / Zig 0.15.2 update and checked-in checksums pass. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.

dfd5d70c: docs(tracer): document pinned browser memory patches and limits. Document reproducible patch order, WASM-only demand allocation and render-transfer lifetime at D170’s 200 sessions. Reject describing released stores as shrinking linear memory; history and resize high-water remain explicit limitations. Bun 1.4.2 / Zig 0.15.2 update and checked-in checksums pass. Fast gate exit 0; all Rust rows PASS, TS/bundle/protocol PASS, 7 pass / 0 fail / 34390 expectations. Evidence: gate-modules-final.log, focused-fixes-green.log in /home/kayg/.cache/codex-scratch/renderer-cost/.
Author
Owner

Corrected 14/8-sample baseline on merged 1cc4b4db completed (infraternal-dev, Chromium 4×, CPUWeight=10000; load 6.18/9.19/8.55 → 15.00/16.36/12.01). Input p95 theme/cold/warm/resize: 1 terminal 12.8/125.7/15.2/44.7 ms; 4 terminals 21.4/372.6/75.5/152.8 ms; 8 terminals 79.6/448.9/163.0/27.1 ms. Eight terminals timed out in every sample/category (14/8/14/14). Screenshot: before-corrected-8.png; log: before-corrected-14.log in this job’s scratch directory.

Single-terminal tracing after dd21856f: theme style totals 104.9–196.5 ms, largest style pass 73.9–172.1 ms; 928 elements reported in the largest pass. Theme redraw completed in both measured samples (CPU p95 109.4 ms), but maximum slice 12.6 ms still misses #121. Load began 9.13/14.49/11.60.

Tested removing the 91 inactive root material rules from active stylesheets. Material behavior passed, but the largest style pass still reported 928 elements. Host load rose to 45.44/25.61/16.21 and measured theme cost worsened; no causal improvement or memory justification. Rejected and restored the committed single-sheet implementation. Diagnostic candidate and profiles retained under scratch; no candidate change shipped. Current public root marker and scoped appearance contract preserved.

Corrected 14/8-sample baseline on merged 1cc4b4db completed (infraternal-dev, Chromium 4×, CPUWeight=10000; load 6.18/9.19/8.55 → 15.00/16.36/12.01). Input p95 theme/cold/warm/resize: 1 terminal 12.8/125.7/15.2/44.7 ms; 4 terminals 21.4/372.6/75.5/152.8 ms; 8 terminals 79.6/448.9/163.0/27.1 ms. Eight terminals timed out in every sample/category (14/8/14/14). Screenshot: before-corrected-8.png; log: before-corrected-14.log in this job’s scratch directory. Single-terminal tracing after dd21856f: theme style totals 104.9–196.5 ms, largest style pass 73.9–172.1 ms; 928 elements reported in the largest pass. Theme redraw completed in both measured samples (CPU p95 109.4 ms), but maximum slice 12.6 ms still misses #121. Load began 9.13/14.49/11.60. Tested removing the 91 inactive root material rules from active stylesheets. Material behavior passed, but the largest style pass still reported 928 elements. Host load rose to 45.44/25.61/16.21 and measured theme cost worsened; no causal improvement or memory justification. Rejected and restored the committed single-sheet implementation. Diagnostic candidate and profiles retained under scratch; no candidate change shipped. Current public root marker and scoped appearance contract preserved.
Author
Owner

Additional verification found two regressions introduced by dd21856f/594eba2f: full-frame test hooks could be suppressed while a redraw owned the pixels (a measured redraw reported zero native font assignments), and keyboard End on the selected tab failed to stop an existing pointer glide. Red: cursor expected 144 accent pixels at DPR2, got 0; capsule expected transition none, got the 200 ms glide. Fixed probe geometry/ownership and awaited two stable frames plus styled faces before snapshot; all DPR1/2/3 cursor/glyph tests and both capsule tests pass (stable-paint-and-capsule-green.log: 5 passed).

Native font selection profile cost: 14–27 ms self time in theme recordings. The actual-renderer regression observed 33 redundant native setter calls per synchronous paint; caching within the synchronous callback reduces that to 0 while resetting on each new callback and checking native state after backing-store reset/save-restore. Real-renderer/font/Unicode/DPR fidelity suite: 45 passed (final-renderer-fidelity.log).

Also found an existing weight-hook bug: restoring its own native numeric descriptor (500 14px …) prepended a second weight, invalid CSS, leaving the canvas at 10px sans-serif after reset. Red in numeric-font-red.log. Preserve explicit numeric weights; do not alter engine or font registry choices. Final fidelity and timing verification in progress.

Additional verification found two regressions introduced by dd21856f/594eba2f: full-frame test hooks could be suppressed while a redraw owned the pixels (a measured redraw reported zero native font assignments), and keyboard End on the selected tab failed to stop an existing pointer glide. Red: cursor expected 144 accent pixels at DPR2, got 0; capsule expected transition none, got the 200 ms glide. Fixed probe geometry/ownership and awaited two stable frames plus styled faces before snapshot; all DPR1/2/3 cursor/glyph tests and both capsule tests pass (stable-paint-and-capsule-green.log: 5 passed). Native font selection profile cost: 14–27 ms self time in theme recordings. The actual-renderer regression observed 33 redundant native setter calls per synchronous paint; caching within the synchronous callback reduces that to 0 while resetting on each new callback and checking native state after backing-store reset/save-restore. Real-renderer/font/Unicode/DPR fidelity suite: 45 passed (final-renderer-fidelity.log). Also found an existing weight-hook bug: restoring its own native numeric descriptor (500 14px …) prepended a second weight, invalid CSS, leaving the canvas at 10px sans-serif after reset. Red in numeric-font-red.log. Preserve explicit numeric weights; do not alter engine or font registry choices. Final fidelity and timing verification in progress.
Author
Owner

Completed logical step 8a7ced1f / 2ebb0af8: Shared capsule same-tab Home/End stops an active pointer glide without measuring geometry. Red retained the 200 ms transition; both capsule cases pass.

scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.

Completed logical step 8a7ced1f / 2ebb0af8: Shared capsule same-tab Home/End stops an active pointer glide without measuring geometry. Red retained the 200 ms transition; both capsule cases pass. scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.
Author
Owner

Completed logical step b240c764 / 85ec37ca: Explicit full-paint probes now own the pixels, flush already observed geometry, and await styled faces/two quiet frames. DPR1/2/3 cursor pixels are 36/144/324, avoiding the previous DPR2 zero-pixel snapshot.

scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.

Completed logical step b240c764 / 85ec37ca: Explicit full-paint probes now own the pixels, flush already observed geometry, and await styled faces/two quiet frames. DPR1/2/3 cursor pixels are 36/144/324, avoiding the previous DPR2 zero-pixel snapshot. scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.
Author
Owner

Completed logical step 24407583: Numeric canvas font descriptors round-trip after reset. Red restored 500 14px to 10px sans-serif; actual-engine regression now passes.

scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.

Completed logical step 24407583: Numeric canvas font descriptors round-trip after reset. Red restored 500 14px to 10px sans-serif; actual-engine regression now passes. scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.
Author
Owner

Completed logical step d027a00b / 80e9ce14: Native font selections are reused only inside synchronous paint callbacks with native state readback. Duplicate native setter writes per full paint: 33 -> 0; backing-store reset remains correct. Final font/cursor/geometry/capsule suite: 39 passed (font-cache-final-fidelity.log).

scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.

Completed logical step d027a00b / 80e9ce14: Native font selections are reused only inside synchronous paint callbacks with native state readback. Duplicate native setter writes per full paint: 33 -> 0; backing-store reset remains correct. Final font/cursor/geometry/capsule suite: 39 passed (font-cache-final-fidelity.log). scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.
Author
Owner

Completed logical step a8a47fc7: Theme pixel caller now awaits the stable snapshot promise. All 18 registry-weight cases passed at DPR1/2 in the current run; theme timing checks are still being measured. Previous theme test failed p99 18.5 ms versus <16.67 ms (async-theme-probe-red.log); not claimed as an async snapshot failure.

scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.

Completed logical step a8a47fc7: Theme pixel caller now awaits the stable snapshot promise. All 18 registry-weight cases passed at DPR1/2 in the current run; theme timing checks are still being measured. Previous theme test failed p99 18.5 ms versus <16.67 ms (async-theme-probe-red.log); not claimed as an async snapshot failure. scripts/verify fast on the validated production source snapshot: exit 0; all six Rust rows PASS; TypeScript/build/transfer checks pass; protocol 7 pass, 0 fail, 34390 expect() calls (gate-font-final.log). Full cost acceptance remains pending/over budget; final 1/4/8 matrix follows serially.
Author
Owner

Additional existing theme gate after awaiting stable pixels: async-theme-and-weight.log reports 18 registry-weight tests passed (all nine fonts, DPR1/2); the theme/history test passes its recoloring checks and click p99 4.5 ms, but fails the unchanged zero-long-task assertion with 14 tasks >50 ms. Previous run p99 was 18.5 ms and 108 tasks >50 ms. Host load differs; these are not normalized speedup claims. Final 4x CPU 1/4/8 matrix is running on a8a47fc7. scripts/verify fast passed in full (gate-font-final.log, exit 0).

Additional existing theme gate after awaiting stable pixels: async-theme-and-weight.log reports 18 registry-weight tests passed (all nine fonts, DPR1/2); the theme/history test passes its recoloring checks and click p99 4.5 ms, but fails the unchanged zero-long-task assertion with 14 tasks >50 ms. Previous run p99 was 18.5 ms and 108 tasks >50 ms. Host load differs; these are not normalized speedup claims. Final 4x CPU 1/4/8 matrix is running on a8a47fc7. scripts/verify fast passed in full (gate-font-final.log, exit 0).
Author
Owner

Final corrected matrix on a8a47fc7: after-final-14.log; locally CPUWeight=10000, Chromium 4x, 14 warm/8 cold samples. Load 26.45/26.40/20.19 -> 20.57/20.94/19.68 (before 1cc4b4db load 6.18/9.19/8.55 -> 15.00/16.36/12.01; observational, not normalized speedups).

Input p95 theme/cold/warm/resize, ms: 1 terminal 69.6/165.9/27.7/41.1; 4 terminals 40.0/381.8/142.2/133.8; 8 terminals 28.9/153.7/150.8/50.0. All exceed 16 ms. Range p95: 1 terminal 81.8/13.0/12.4/9.4; 4 terminals 21.8/19.5/34.8/37.7; 8 terminals 27.2/13.3/41.6/24.2; all exceed 8 ms. This range metric also does not certify aggregate frame work or 120 fps.

Redraw timeouts theme/cold/warm/resize: before 1=7/3/0/0, 4=14/8/14/14, 8=14/8/14/14; after 1=2/1/0/0, 4=4/6/13/14, 8=14/3/14/14. Review failure reproduced; 8-terminal completion remains unresolved. Test result: 1 budget failure, 3 supporting tests passed, 7.6m.

Per-terminal WASM+canvas visible / hidden WASM MiB: 1=10.239/9.063; 4=5.880/4.703; 8=5.153/3.977, excluding JS and shared atlas. At 200 sessions visible/hidden MiB: 1=2048.8/1812.5; 4=1177.0/940.6; 8=1031.6/795.3. Hidden canvas and atlas both 0 bytes. Memory acceptance remains incomplete.

Evidence is being committed to docs/perf/renderer-cost.md and docs/perf/renderer-cost-run2/. The final matrix screenshot was overwritten by the subsequent browser invocation before archival; recreating the production 8-terminal fixture/parking capture separately and labeling it accordingly.

Final corrected matrix on a8a47fc7: after-final-14.log; locally CPUWeight=10000, Chromium 4x, 14 warm/8 cold samples. Load 26.45/26.40/20.19 -> 20.57/20.94/19.68 (before 1cc4b4db load 6.18/9.19/8.55 -> 15.00/16.36/12.01; observational, not normalized speedups). Input p95 theme/cold/warm/resize, ms: 1 terminal 69.6/165.9/27.7/41.1; 4 terminals 40.0/381.8/142.2/133.8; 8 terminals 28.9/153.7/150.8/50.0. All exceed 16 ms. Range p95: 1 terminal 81.8/13.0/12.4/9.4; 4 terminals 21.8/19.5/34.8/37.7; 8 terminals 27.2/13.3/41.6/24.2; all exceed 8 ms. This range metric also does not certify aggregate frame work or 120 fps. Redraw timeouts theme/cold/warm/resize: before 1=7/3/0/0, 4=14/8/14/14, 8=14/8/14/14; after 1=2/1/0/0, 4=4/6/13/14, 8=14/3/14/14. Review failure reproduced; 8-terminal completion remains unresolved. Test result: 1 budget failure, 3 supporting tests passed, 7.6m. Per-terminal WASM+canvas visible / hidden WASM MiB: 1=10.239/9.063; 4=5.880/4.703; 8=5.153/3.977, excluding JS and shared atlas. At 200 sessions visible/hidden MiB: 1=2048.8/1812.5; 4=1177.0/940.6; 8=1031.6/795.3. Hidden canvas and atlas both 0 bytes. Memory acceptance remains incomplete. Evidence is being committed to docs/perf/renderer-cost.md and docs/perf/renderer-cost-run2/. The final matrix screenshot was overwritten by the subsequent browser invocation before archival; recreating the production 8-terminal fixture/parking capture separately and labeling it accordingly.
Author
Owner

Paired 200-state workload (three before/after pairs, same local CPUWeight=10000 scope, Bun native WASM; no browser throttle), load 6.52/12.12/16.41 -> 8.03/12.25/16.41: memory initial 1003.75 -> 203.31 MiB, after 128 history rows 1023.375 -> 222.938 MiB; repeated resize high-water 1029.625 -> 1029.188 MiB, unchanged after free.

Median ms create/history/resize: before 257.8/396.8/646.1; demand allocation 254.9/453.6/1174.1. Median complete workload 1250.7 -> 1946.8 ms (observed +56%; resize +82%). This is a material latency cost for ~800 MiB initial/history reservation saved at 200 states; not a latency win, and resize memory still fails the hidden budget. Evidence: paired-before-{1,2,3}.log / paired-after-{1,2,3}.log; committing docs/perf/renderer-cost-run2/engine-200.json.

Final single-terminal native diagnostic: cold Geist / Commit Mono first terminal measureText 1.2/0.4 ms; normal load 277.6 / 374.3–374.6 ms, italic load 122.8 / 108.9–111.0 ms (parallel faces overlap, not summed). Initial 4x atlas: one 512x512 page, native dimensions/context submission below timer resolution, 13 mask fillText calls totaling 2.3 ms; deferred paint/GPU work is separate. Phase counters and trace partitions retain unattributed/waiting time rather than inventing exact CPU totals.

Recreated production 8-terminal capture passed (final-capture.log: 1 passed, 11.3s) and is preserved for independent review. Closing fast gate is running; performance acceptance remains incomplete.

Paired 200-state workload (three before/after pairs, same local CPUWeight=10000 scope, Bun native WASM; no browser throttle), load 6.52/12.12/16.41 -> 8.03/12.25/16.41: memory initial 1003.75 -> 203.31 MiB, after 128 history rows 1023.375 -> 222.938 MiB; repeated resize high-water 1029.625 -> 1029.188 MiB, unchanged after free. Median ms create/history/resize: before 257.8/396.8/646.1; demand allocation 254.9/453.6/1174.1. Median complete workload 1250.7 -> 1946.8 ms (observed +56%; resize +82%). This is a material latency cost for ~800 MiB initial/history reservation saved at 200 states; not a latency win, and resize memory still fails the hidden budget. Evidence: paired-before-{1,2,3}.log / paired-after-{1,2,3}.log; committing docs/perf/renderer-cost-run2/engine-200.json. Final single-terminal native diagnostic: cold Geist / Commit Mono first terminal measureText 1.2/0.4 ms; normal load 277.6 / 374.3–374.6 ms, italic load 122.8 / 108.9–111.0 ms (parallel faces overlap, not summed). Initial 4x atlas: one 512x512 page, native dimensions/context submission below timer resolution, 13 mask fillText calls totaling 2.3 ms; deferred paint/GPU work is separate. Phase counters and trace partitions retain unattributed/waiting time rather than inventing exact CPU totals. Recreated production 8-terminal capture passed (final-capture.log: 1 passed, 11.3s) and is preserved for independent review. Closing fast gate is running; performance acceptance remains incomplete.
Author
Owner

Renderer-cost run 2 ends at 6b75ae8c43, branch renderer-cost. No push/deploy; issue remains open.

Completed documentation steps: ea62d6b9 clarifies that independent queue limits do not establish #121 aggregate frame time; e2348440 commits full measurement/counter/gate evidence and production screenshots; 6b75ae8c replaces the obsolete cost report. Report: docs/perf/renderer-cost.md; artifacts: docs/perf/renderer-cost-run2/.

RC-1 and RC-2 are fixed and regression-tested, including both independent update orders and pinch sizing, with D170 200-session visible/hidden projections. Final font/cursor/geometry/capsule checks: 39 passed; registry weights: 18 passed at DPR1/2. Recreated production 8-terminal capture: 1 passed, supplied for independent visual review, not judged by this job. Author checklist is in the report.

Acceptance remains INCOMPLETE: final 4x matrix (14 warm/8 cold samples) failed all 12 input p95 and all 12 renderer-range p95 thresholds; aggregate 8 ms frame work/120 fps is not established. At 8 terminals redraw timeouts theme/cold/warm/resize are 14/3/14/14, versus baseline 14/8/14/14. Hidden WASM at 1/4/8 is 9.063/4.703/3.977 MiB, above 2 MiB; visible allocations also exclude native browser overhead. All loads, before/after values and 200 projections are committed in matrix-evidence.json.

Demand allocation saves ~800 MiB initial/history reservation at 200 engine states, but paired native workload median totals increased 1250.7 -> 1946.8 ms (+56%) and resize 646.1 -> 1174.1 ms (+82%); resize high-water remains ~1029 MiB. This is a material trade-off, not a latency win or memory acceptance. No foundational engine/allocator/renderer choice or page geometry changed. Native font cache removes 33 duplicate assignments per synchronous full paint while preserving numeric descriptor/context-reset correctness. Single-terminal style recalculation still touches 928 elements; exact timing, load/fetch, measurement, atlas and unattributed/waiting spans are retained.

Remaining work: reduce the full-document style/native-call cost and complete 8-terminal redraw within the collection window while establishing total frame work; reduce retained/resized engine memory without hiding the allocation latency cost. Owner real-device/frame-meter and independent visual review remain outstanding.

Closing scripts/verify fast: exit 0. Full output follows verbatim (also committed in docs/perf/renderer-cost-run2/verify-fast.md).

METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=307.44 p99_ms=310.44 result=PASS

==> fmt

==> VT native fmt

==> clippy
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.50s

==> test
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s
     Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal-e5690224bd303581)

running 2 tests
test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok
test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_daemon-c1009f458483aa8f)

running 1 test
test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 39.43s

     Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_queues-6c04c309be0957c1)

running 1 test
test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 34.90s

     Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_review-54f50cf057262edb)

running 6 tests
test initial_attach_requires_explicit_credit_before_replay ... ok
test last_typist_selects_its_own_real_pty_dimensions ... ok
test repeated_tiny_credit_pauses_preserve_shell_progress ... ok
test retained_unwritten_input_survives_interleaved_ack_restart ... ok
test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok
test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 26.35s

     Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_sessions-ff521b125a460892)

running 1 test
test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/idle_canary-f539ea7494e88d68)

running 1 test
test one_hertz_wakeup_is_detected_past_the_legacy_half_second_window ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s

     Running tests/shim.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/shim-ab657005a3347209)

running 7 tests
test attached_backpressure_and_detached_progress ... ok
test disallowed_signal_only_disconnects_peer ... ok
test double_fork_survives_parent_death ... ok
test real_shell_reconnect_resize_and_retained_exit ... ok
test replacement_connection_and_malformed_limit ... ok
test ring_wrap_snapshot_repaints_real_vim ... ok
test user_scope_survives_parent_unit_stop ... active
ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.88s

     Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/vt_credit-51d52cc011d1b6d3)

running 1 test
test unaffordable_repaints_park_until_sufficient_credit ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.06s

     Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/vt_reconnect-ebce90a6a196ada5)

running 1 test
test snapshot_limits_never_close_live_reconnect ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.77s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_agent-211380b0185e0960)

running 16 tests
test relay::tests::attachment_has_no_implicit_output_or_snapshot_credit ... ok
test relay::tests::expired_credit_resumes_retained_bytes_at_the_same_cursor ... ok
test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok
test relay::tests::output_partial_credit_and_dedup ... ok
test relay::tests::output_payload_move_measurement ... ignored, release ownership versus payload-copy measurement
test relay::tests::overflowing_ranges_never_mutate_cursors ... ok
test relay::tests::positive_insufficient_credit_arms_a_one_shot_deadline ... ok
test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok
test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok
test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok
test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok
test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok
test sessions::tests::reader_borrow_measurement ... ignored, release borrowed versus owned asynchronous receive measurement
test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok
test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok
test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok

test result: ok. 14 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.06s

     Running tests/transport.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/transport-a619415ba769b0e5)

running 2 tests
test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok
test oversized_header_and_truncated_frame_are_rejected ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_mesh-3f967587718407e9)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/default_arrow-312553ba19630584)

running 1 test
test omitted_arrow_ports_default_to_all_services ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/properties.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/properties-78f35bbe1b57dcd5)

running 14 tests
test addresses_are_unique_stable_and_not_recycled ... ok
test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok
test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok
test directional_grants_union_and_minimal_updates ... ok
test exhausted_versions_reject_mutations_without_changing_state ... ok
test join_to_same_tag_grants_both_initiation_directions ... ok
test names_versions_and_backend_status ... ok
test overlaps_are_reported_without_silent_range_changes ... ok
test private_material_never_enters_debug_or_coordination_serialization ... ok
test protocol_port_unions_never_grant_an_unlisted_service ... ok
test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok
test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... ok
test seeded_random_sequences_equal_full_compile_and_deny_without_grants ... ok
test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok

test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.62s

     Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/rotation_time-a58dd287253d611d)

running 1 test
test unrepresentable_rotation_overlap_rejects_before_mutation ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_protocol-67b9a310ef49abf9)

running 7 tests
test stream_tests::all_short_frame_splits_match_direct_decoding ... ok
test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok
test stream_tests::split_mux_header_preserves_trailing_close ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_server-1fc3be3a3786e8db)

running 109 tests
test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok
test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok
test auth::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::aaguid_migration_preserves_legacy_credentials_and_sessions ... ok
test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... ok
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok
test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok
test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok
test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok
test auth::tests::pending_unlock_expires_without_terminal_authority ... ok
test auth::tests::provider_labels_cover_the_cited_registry_without_guessing ... ok
test auth::tests::provider_session_latency_at_50_devices ... ignored, local auth session scale measurement; run without concurrent builds
test auth::tests::public_status_and_discoverable_http_login ... ok
test auth::tests::recovery_audit_commits_once_with_start_cancel_and_complete ... ok
test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::recovery_http_live_same_account_is_immediate ... ok
test auth::tests::recovery_http_other_expired_pending_and_missing_sessions_wait ... ok
test auth::tests::recovery_live_session_cannot_accelerate_an_active_delayed_request ... ok
test auth::tests::recovery_live_session_revoked_during_verification_cannot_waive_delay ... ok
test auth::tests::recovery_session_delay_latency_at_capacity ... ignored, release-only recovery measurement at 50 live sessions; run without concurrent compilation
test auth::tests::recovery_unknown_identity_pays_the_same_database_and_verifier_work ... ok
test auth::tests::recovery_username_identity_is_additive_and_ambiguous_forms_fail ... ok
test auth::tests::recovery_verifier_latency_at_capacity ... ignored, release-only v2 diagnostic at 50 live session rows; record host load separately
test auth::tests::redacted_unknown_and_failed_registrations_do_not_claim_a_provider ... ok
test auth::tests::registration_aaguid_survives_none_attestation_and_binds_session_provider ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok
test auth::tests::review3_tests::review3_busy_expiry ... ok
test auth::tests::review3_tests::review3_busy_logout ... ok
test auth::tests::review3_tests::review3_busy_recovery ... ok
test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok
test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok
test auth::tests::review3_tests::review3_unwrap_cannot_be_skipped ... ok
test auth::tests::review3_tests::review3_waiting_handshake_loses_authority ... ok
test auth::tests::review3_tests::review4_open_reply_and_revocation_preserve_authority ... ok
test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds
test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok
test auth::tests::review_old_words_race_rotation ... ok
test auth::tests::reviewer_tests::reviewer_disk_cancel_complete_races ... ok
test auth::tests::reviewer_tests::reviewer_disk_restart_and_concurrent_resume ... ok
test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok
test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok
test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok
test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... ok
test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok
test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch ... ok
test auth::tests::rotation_tests::recovery_rotation_denies_pending_expired_and_stale_sessions ... ok
test auth::tests::rotation_tests::recovery_rotation_requires_session_and_replaces_legacy_envelope ... ok
test auth::tests::rotation_tests::reviewer_concurrent_signed_in_rotations_commit_once ... ok
test auth::tests::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test auth::tests::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... ok
test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok
test auth::tests::setup_start_accepts_username_and_display_name ... ok
test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... ok
test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok
test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok
test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok
test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok
test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... ok
test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... ok
test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok
test embedded::regressions::credited_bulk_output_survives_forwarder_io_pause ... ok
test embedded::regressions::credited_output_queue_at_stream_capacity ... ignored, debug actor memory/scheduling measurement; run without concurrent builds
test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok
test embedded::regressions::healthy_receiver_survives_ready_native_output_burst ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok
test embedded::regressions::real_agent_canonical_uuid_result_is_accepted ... ok
test embedded::regressions::real_agent_open_uses_uid_and_character_dimensions ... ok
test embedded::regressions::reattach_must_restore_output_credit ... ok
test embedded::regressions::recovery_event_then_snapshot_keeps_embedded_connection_live ... ok
test embedded::regressions::recovery_notices_preserve_order_credit_and_session_isolation ... ok
test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok
test embedded::regressions::uncredited_output_or_repaint_is_rejected_before_queueing ... ok
test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok
test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok
test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test runtime::tests::setup_socket_cleanup_preserves_symlinks_and_regular_files ... ok
test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok
test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok
test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok
test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok
test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok

test result: ok. 100 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 130.76s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_shim-67ffc9c8d51fcf5c)

running 73 tests
test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok
test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok
test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok
test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement
test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok
test session::resize_checks::resize_refusal_session_probe ... ignored, isolated session probe invoked by its parent with a controlled shell profile
test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok
test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok
test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok
test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok
test session::sequenced_checks::writer_selection_has_a_frozen_little_endian_layout ... ok
test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok
test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok
test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok
test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok
test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok
test terminal::checks::tests::saved_origin_survives_changed_margins ... ok
test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok
test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_cursor ... ok
test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file
test terminal::fidelity::fidelity_edge ... ok
test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases
test terminal::fidelity::fidelity_extended_smoke ... ok
test terminal::fidelity::fidelity_f1_rep ... ok
test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_handwritten ... ok
test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok
test terminal::fidelity::fidelity_iso_protection_erase ... ok
test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok
test terminal::fidelity::fidelity_oracle_detects_hidden_state ... ok
test terminal::fidelity::fidelity_oracle_observes_archived_cells_with_equal_active_screens ... ok
test terminal::fidelity::fidelity_orphaned_spacer_head ... ok
test terminal::fidelity::fidelity_prompt_resize_requires_explicit_rejection ... ok
test terminal::fidelity::fidelity_recorded_corpus ... ok
test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok
test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok
test terminal::fidelity::fidelity_saved_modes_future_restore ... ok
test terminal::fidelity::fidelity_screen_entry_consumes_inherited_shift_before_saving ... ok
test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases
test terminal::fidelity::fidelity_seeded_smoke ... ok
test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok
test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... ok
test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... ok
test terminal::fidelity::fidelity_snapshot_resets_stale_viewer_color_overrides ... ok
test terminal::fidelity::fidelity_spacer_head_attributes ... ok
test terminal::fidelity::fidelity_variation_tail_attributes ... ok
test terminal::fidelity::fidelity_variation_wrap_attributes ... ok
test terminal::fidelity::fresh_captures::fidelity_fresh_real_program_captures ... ignored, manual fresh capture oracle; set VT_CAPTURE_DIR after real program capture
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::memory::measured_terminal_rss ... ignored, RSS measurement; run this filter alone in a fresh release process
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test terminal::recovery_measurements::measured_full_ring_reconstruction ... ignored, release reconstruction measurement; old healthy handles permit repeated cleanup
test terminal::resize_recovery::absent_ring_keeps_last_good_size_and_later_output_usable ... ok
test terminal::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok
test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok
test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok
test terminal_native::allocation::resize_allocation_refusal_retires_native_handle ... ok

test result: ok. 61 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 57.81s

     Running tests/detach.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/detach-c502cd554fb112ce)

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.92s

     Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/mouse-523bfdef43cc46cb)

running 1 test
test faithful_snapshot_preserves_public_mouse_encoder_reports ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s

   Doc-tests infraternal_agent

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_mesh

running 1 test
test crates/infraternal-mesh/src/model.rs - model::LocalPrivateKey (line 20) - compile fail ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s

   Doc-tests infraternal_plugin_api

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_plugin_ssh

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_protocol

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_server

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_shim

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s


==> cargo-deny
warning[duplicate]: found 2 duplicate entries for crate 'base64'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:24:1
   │  
24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index
25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰───────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ base64 v0.21.7
     ├── base64urlsafedata v0.5.5
     │   ├── webauthn-attestation-ca v0.5.5
     │   │   └── webauthn-rs-core v0.5.5
     │   │       └── webauthn-rs v0.5.5
     │   │           └── infraternal-server v0.1.0
     │   │               └── infraternal v0.1.0
     │   ├── webauthn-rs v0.5.5 (*)
     │   ├── webauthn-rs-core v0.5.5 (*)
     │   └── webauthn-rs-proto v0.5.5
     │       └── webauthn-rs-core v0.5.5 (*)
     ├── webauthn-rs-core v0.5.5 (*)
     └── webauthn-rs-proto v0.5.5 (*)
   ├ base64 v0.22.1
     ├── axum v0.8.9
     │   └── infraternal-server v0.1.0
     │       └── infraternal v0.1.0
     ├── infraternal-server v0.1.0 (*)
     └── sqlx-core v0.8.6
         ├── sqlx v0.8.6
         │   ├── infraternal v0.1.0 (*)
         │   └── infraternal-server v0.1.0 (*)
         ├── sqlx-macros v0.8.6
         │   └── sqlx v0.8.6 (*)
         ├── sqlx-macros-core v0.8.6
         │   └── sqlx-macros v0.8.6 (*)
         └── sqlx-sqlite v0.8.6
             ├── sqlx v0.8.6 (*)
             └── sqlx-macros-core v0.8.6 (*)

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:88:1
   │  
88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index
   │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ getrandom v0.2.17
     └── rand_core v0.6.4
         ├── bip39 v2.2.2
         │   └── infraternal-server v0.1.0
         │       └── infraternal v0.1.0
         ├── crypto-common v0.1.7
         │   ├── aead v0.5.2
         │   │   └── aes-gcm v0.10.3
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   ├── cipher v0.4.4
         │   │   ├── aes v0.8.4
         │   │   │   └── aes-gcm v0.10.3 (*)
         │   │   ├── aes-gcm v0.10.3 (*)
         │   │   └── ctr v0.9.2
         │   │       └── aes-gcm v0.10.3 (*)
         │   ├── digest v0.10.7
         │   │   ├── blake2 v0.10.6
         │   │   │   └── argon2 v0.5.3
         │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   ├── hmac v0.12.1
         │   │   │   └── hkdf v0.12.4
         │   │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   │   ├── sha1 v0.10.7
         │   │   │   ├── axum v0.8.9
         │   │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   │   └── tungstenite v0.29.0
         │   │   │       └── tokio-tungstenite v0.29.0
         │   │   │           ├── axum v0.8.9 (*)
         │   │   │           └── (dev) infraternal-server v0.1.0 (*)
         │   │   └── sha2 v0.10.9
         │   │       ├── infraternal-server v0.1.0 (*)
         │   │       ├── sqlx-core v0.8.6
         │   │       │   ├── sqlx v0.8.6
         │   │       │   │   ├── infraternal v0.1.0 (*)
         │   │       │   │   └── infraternal-server v0.1.0 (*)
         │   │       │   ├── sqlx-macros v0.8.6
         │   │       │   │   └── sqlx v0.8.6 (*)
         │   │       │   ├── sqlx-macros-core v0.8.6
         │   │       │   │   └── sqlx-macros v0.8.6 (*)
         │   │       │   └── sqlx-sqlite v0.8.6
         │   │       │       ├── sqlx v0.8.6 (*)
         │   │       │       └── sqlx-macros-core v0.8.6 (*)
         │   │       └── sqlx-macros-core v0.8.6 (*)
         │   └── universal-hash v0.5.1
         │       └── polyval v0.6.2
         │           └── ghash v0.5.1
         │               └── aes-gcm v0.10.3 (*)
         ├── password-hash v0.5.0
         │   └── argon2 v0.5.3 (*)
         ├── rand v0.8.8
         │   └── bip39 v2.2.2 (*)
         └── rand_chacha v0.3.1
             └── rand v0.8.8 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── infraternal-server v0.1.0
         │   │   └── infraternal v0.1.0
         │   ├── tungstenite v0.29.0
         │   │   └── tokio-tungstenite v0.29.0
         │   │       ├── axum v0.8.9
         │   │       │   └── infraternal-server v0.1.0 (*)
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   └── webauthn-rs-core v0.5.5
         │       └── webauthn-rs v0.5.5
         │           └── infraternal-server v0.1.0 (*)
         └── rand_chacha v0.9.0
             ├── rand v0.9.5 (*)
             └── webauthn-rs-core v0.5.5 (*)
   ├ getrandom v0.4.3
     ├── jobserver v0.1.35
     │   └── cc v1.6.0
     │       ├── (build) libfuzzer-sys v0.4.13
     │       │   └── infraternal-fuzz v0.1.0
     │       ├── (build) libsqlite3-sys v0.30.1
     │       │   └── sqlx-sqlite v0.8.6
     │       │       ├── sqlx v0.8.6
     │       │       │   ├── infraternal v0.1.0
     │       │       │   └── infraternal-server v0.1.0
     │       │       │       └── infraternal v0.1.0 (*)
     │       │       └── sqlx-macros-core v0.8.6
     │       │           └── sqlx-macros v0.8.6
     │       │               └── sqlx v0.8.6 (*)
     │       ├── openssl-src v300.6.1+3.6.3
     │       │   └── (build) openssl-sys v0.9.117
     │       │       ├── axum-server v0.8.0
     │       │       │   └── infraternal-server v0.1.0 (*)
     │       │       ├── openssl v0.10.81
     │       │       │   ├── axum-server v0.8.0 (*)
     │       │       │   ├── infraternal-server v0.1.0 (*)
     │       │       │   ├── tokio-openssl v0.6.5
     │       │       │   │   └── axum-server v0.8.0 (*)
     │       │       │   ├── webauthn-attestation-ca v0.5.5
     │       │       │   │   └── webauthn-rs-core v0.5.5
     │       │       │   │       └── webauthn-rs v0.5.5
     │       │       │   │           └── infraternal-server v0.1.0 (*)
     │       │       │   └── webauthn-rs-core v0.5.5 (*)
     │       │       ├── tokio-openssl v0.6.5 (*)
     │       │       ├── webauthn-attestation-ca v0.5.5 (*)
     │       │       └── webauthn-rs-core v0.5.5 (*)
     │       └── (build) openssl-sys v0.9.117 (*)
     └── uuid v1.27.0
         ├── infraternal-agent v0.1.0
         │   └── infraternal v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── webauthn-attestation-ca v0.5.5 (*)
         ├── webauthn-rs v0.5.5 (*)
         └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'hashbrown'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:94:1
   │  
94 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
95 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ hashbrown v0.15.5
     ├── hashlink v0.10.0
     │   └── sqlx-core v0.8.6
     │       ├── sqlx v0.8.6
     │       │   ├── infraternal v0.1.0
     │       │   └── infraternal-server v0.1.0
     │       │       └── infraternal v0.1.0 (*)
     │       ├── sqlx-macros v0.8.6
     │       │   └── sqlx v0.8.6 (*)
     │       ├── sqlx-macros-core v0.8.6
     │       │   └── sqlx-macros v0.8.6 (*)
     │       └── sqlx-sqlite v0.8.6
     │           ├── sqlx v0.8.6 (*)
     │           └── sqlx-macros-core v0.8.6 (*)
     └── sqlx-core v0.8.6 (*)
   ├ hashbrown v0.17.1
     └── indexmap v2.14.2
         ├── h2 v0.4.19
         │   └── hyper v1.11.1
         │       ├── axum v0.8.9
         │       │   └── infraternal-server v0.1.0
         │       │       └── infraternal v0.1.0
         │       ├── axum-server v0.8.0
         │       │   └── infraternal-server v0.1.0 (*)
         │       └── hyper-util v0.1.21
         │           ├── axum v0.8.9 (*)
         │           └── axum-server v0.8.0 (*)
         └── sqlx-core v0.8.6
             ├── sqlx v0.8.6
             │   ├── infraternal v0.1.0 (*)
             │   └── infraternal-server v0.1.0 (*)
             ├── sqlx-macros v0.8.6
             │   └── sqlx v0.8.6 (*)
             ├── sqlx-macros-core v0.8.6
             │   └── sqlx-macros v0.8.6 (*)
             └── sqlx-sqlite v0.8.6
                 ├── sqlx v0.8.6 (*)
                 └── sqlx-macros-core v0.8.6 (*)

warning[duplicate]: found 2 duplicate entries for crate 'r-efi'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:183:1
    │  
183 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index
184 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ r-efi v5.3.0
      └── getrandom v0.3.4
          └── rand_core v0.9.5
              ├── rand v0.9.5
              │   ├── infraternal-server v0.1.0
              │   │   └── infraternal v0.1.0
              │   ├── tungstenite v0.29.0
              │   │   └── tokio-tungstenite v0.29.0
              │   │       ├── axum v0.8.9
              │   │       │   └── infraternal-server v0.1.0 (*)
              │   │       └── (dev) infraternal-server v0.1.0 (*)
              │   └── webauthn-rs-core v0.5.5
              │       └── webauthn-rs v0.5.5
              │           └── infraternal-server v0.1.0 (*)
              └── rand_chacha v0.9.0
                  ├── rand v0.9.5 (*)
                  └── webauthn-rs-core v0.5.5 (*)
    ├ r-efi v6.0.0
      └── getrandom v0.4.3
          ├── jobserver v0.1.35
          │   └── cc v1.6.0
          │       ├── (build) libfuzzer-sys v0.4.13
          │       │   └── infraternal-fuzz v0.1.0
          │       ├── (build) libsqlite3-sys v0.30.1
          │       │   └── sqlx-sqlite v0.8.6
          │       │       ├── sqlx v0.8.6
          │       │       │   ├── infraternal v0.1.0
          │       │       │   └── infraternal-server v0.1.0
          │       │       │       └── infraternal v0.1.0 (*)
          │       │       └── sqlx-macros-core v0.8.6
          │       │           └── sqlx-macros v0.8.6
          │       │               └── sqlx v0.8.6 (*)
          │       ├── openssl-src v300.6.1+3.6.3
          │       │   └── (build) openssl-sys v0.9.117
          │       │       ├── axum-server v0.8.0
          │       │       │   └── infraternal-server v0.1.0 (*)
          │       │       ├── openssl v0.10.81
          │       │       │   ├── axum-server v0.8.0 (*)
          │       │       │   ├── infraternal-server v0.1.0 (*)
          │       │       │   ├── tokio-openssl v0.6.5
          │       │       │   │   └── axum-server v0.8.0 (*)
          │       │       │   ├── webauthn-attestation-ca v0.5.5
          │       │       │   │   └── webauthn-rs-core v0.5.5
          │       │       │   │       └── webauthn-rs v0.5.5
          │       │       │   │           └── infraternal-server v0.1.0 (*)
          │       │       │   └── webauthn-rs-core v0.5.5 (*)
          │       │       ├── tokio-openssl v0.6.5 (*)
          │       │       ├── webauthn-attestation-ca v0.5.5 (*)
          │       │       └── webauthn-rs-core v0.5.5 (*)
          │       └── (build) openssl-sys v0.9.117 (*)
          └── uuid v1.27.0
              ├── infraternal-agent v0.1.0
              │   └── infraternal v0.1.0 (*)
              ├── infraternal-server v0.1.0 (*)
              ├── webauthn-attestation-ca v0.5.5 (*)
              ├── webauthn-rs v0.5.5 (*)
              └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:185:1
    │  
185 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index
186 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand v0.8.8
      └── bip39 v2.2.2
          └── infraternal-server v0.1.0
              └── infraternal v0.1.0
    ├ rand v0.9.5
      ├── infraternal-server v0.1.0
      │   └── infraternal v0.1.0
      ├── tungstenite v0.29.0
      │   └── tokio-tungstenite v0.29.0
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       └── (dev) infraternal-server v0.1.0 (*)
      └── webauthn-rs-core v0.5.5
          └── webauthn-rs v0.5.5
              └── infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:187:1
    │  
187 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index
188 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand_chacha v0.3.1
      └── rand v0.8.8
          └── bip39 v2.2.2
              └── infraternal-server v0.1.0
                  └── infraternal v0.1.0
    ├ rand_chacha v0.9.0
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   └── infraternal v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   └── webauthn-rs-core v0.5.5
      │       └── webauthn-rs v0.5.5
      │           └── infraternal-server v0.1.0 (*)
      └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_core'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:189:1
    │  
189 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index
190 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand_core v0.6.4
      ├── bip39 v2.2.2
      │   └── infraternal-server v0.1.0
      │       └── infraternal v0.1.0
      ├── crypto-common v0.1.7
      │   ├── aead v0.5.2
      │   │   └── aes-gcm v0.10.3
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   ├── cipher v0.4.4
      │   │   ├── aes v0.8.4
      │   │   │   └── aes-gcm v0.10.3 (*)
      │   │   ├── aes-gcm v0.10.3 (*)
      │   │   └── ctr v0.9.2
      │   │       └── aes-gcm v0.10.3 (*)
      │   ├── digest v0.10.7
      │   │   ├── blake2 v0.10.6
      │   │   │   └── argon2 v0.5.3
      │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   ├── hmac v0.12.1
      │   │   │   └── hkdf v0.12.4
      │   │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   │   ├── sha1 v0.10.7
      │   │   │   ├── axum v0.8.9
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   └── tungstenite v0.29.0
      │   │   │       └── tokio-tungstenite v0.29.0
      │   │   │           ├── axum v0.8.9 (*)
      │   │   │           └── (dev) infraternal-server v0.1.0 (*)
      │   │   └── sha2 v0.10.9
      │   │       ├── infraternal-server v0.1.0 (*)
      │   │       ├── sqlx-core v0.8.6
      │   │       │   ├── sqlx v0.8.6
      │   │       │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   └── infraternal-server v0.1.0 (*)
      │   │       │   ├── sqlx-macros v0.8.6
      │   │       │   │   └── sqlx v0.8.6 (*)
      │   │       │   ├── sqlx-macros-core v0.8.6
      │   │       │   │   └── sqlx-macros v0.8.6 (*)
      │   │       │   └── sqlx-sqlite v0.8.6
      │   │       │       ├── sqlx v0.8.6 (*)
      │   │       │       └── sqlx-macros-core v0.8.6 (*)
      │   │       └── sqlx-macros-core v0.8.6 (*)
      │   └── universal-hash v0.5.1
      │       └── polyval v0.6.2
      │           └── ghash v0.5.1
      │               └── aes-gcm v0.10.3 (*)
      ├── password-hash v0.5.0
      │   └── argon2 v0.5.3 (*)
      ├── rand v0.8.8
      │   └── bip39 v2.2.2 (*)
      └── rand_chacha v0.3.1
          └── rand v0.8.8 (*)
    ├ rand_core v0.9.5
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   └── infraternal v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   └── webauthn-rs-core v0.5.5
      │       └── webauthn-rs v0.5.5
      │           └── infraternal-server v0.1.0 (*)
      └── rand_chacha v0.9.0
          ├── rand v0.9.5 (*)
          └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:226:1
    │  
226 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
227 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ syn v2.0.119
      ├── asn1-rs-derive v0.5.1
      │   └── asn1-rs v0.6.2
      │       ├── der-parser v9.0.0
      │       │   ├── webauthn-rs-core v0.5.5
      │       │   │   └── webauthn-rs v0.5.5
      │       │   │       └── infraternal-server v0.1.0
      │       │   │           └── infraternal v0.1.0
      │       │   └── x509-parser v0.16.0
      │       │       └── webauthn-rs-core v0.5.5 (*)
      │       ├── oid-registry v0.7.1
      │       │   └── x509-parser v0.16.0 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── asn1-rs-impl v0.2.0
      │   └── asn1-rs v0.6.2 (*)
      ├── openssl-macros v0.1.1
      │   └── openssl v0.10.81
      │       ├── axum-server v0.8.0
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5
      │       │   └── webauthn-rs-core v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      ├── sqlx-macros v0.8.6
      │   └── sqlx v0.8.6
      │       ├── infraternal v0.1.0 (*)
      │       └── infraternal-server v0.1.0 (*)
      ├── sqlx-macros-core v0.8.6
      │   └── sqlx-macros v0.8.6 (*)
      ├── synstructure v0.13.2
      │   └── asn1-rs-derive v0.5.1 (*)
      ├── thiserror-impl v1.0.69
      │   └── thiserror v1.0.69
      │       ├── asn1-rs v0.6.2 (*)
      │       ├── webauthn-rs-core v0.5.5 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── tracing-attributes v0.1.31
      │   └── tracing v0.1.44
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── axum-core v0.5.6
      │       │   └── axum v0.8.9 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6
      │       │   ├── sqlx v0.8.6 (*)
      │       │   ├── sqlx-macros v0.8.6 (*)
      │       │   ├── sqlx-macros-core v0.8.6 (*)
      │       │   └── sqlx-sqlite v0.8.6
      │       │       ├── sqlx v0.8.6 (*)
      │       │       └── sqlx-macros-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tracing-subscriber v0.3.23
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5 (*)
      │       ├── webauthn-rs v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      └── zerocopy-derive v0.8.60
          └── zerocopy v0.8.60
              ├── half v2.7.1
              │   ├── ciborium-ll v0.2.2
              │   │   └── ciborium v0.2.2
              │   │       └── criterion v0.7.0
              │   │           └── (dev) infraternal-protocol v0.1.0
              │   │               ├── infraternal-agent v0.1.0
              │   │               │   └── infraternal v0.1.0 (*)
              │   │               ├── infraternal-fuzz v0.1.0
              │   │               └── infraternal-server v0.1.0 (*)
              │   └── serde_cbor_2 v0.13.0
              │       ├── infraternal-server v0.1.0 (*)
              │       └── webauthn-rs-core v0.5.5 (*)
              └── ppv-lite86 v0.2.21
                  ├── rand_chacha v0.3.1
                  │   └── rand v0.8.8
                  │       └── bip39 v2.2.2
                  │           └── infraternal-server v0.1.0 (*)
                  └── rand_chacha v0.9.0
                      ├── rand v0.9.5
                      │   ├── infraternal-server v0.1.0 (*)
                      │   ├── tungstenite v0.29.0
                      │   │   └── tokio-tungstenite v0.29.0
                      │   │       ├── axum v0.8.9 (*)
                      │   │       └── (dev) infraternal-server v0.1.0 (*)
                      │   └── webauthn-rs-core v0.5.5 (*)
                      └── webauthn-rs-core v0.5.5 (*)
    ├ syn v3.0.6
      ├── clap_derive v4.6.7
      │   └── clap v4.6.7
      │       ├── criterion v0.7.0
      │       │   └── (dev) infraternal-protocol v0.1.0
      │       │       ├── infraternal-agent v0.1.0
      │       │       │   └── infraternal v0.1.0
      │       │       ├── infraternal-fuzz v0.1.0
      │       │       └── infraternal-server v0.1.0
      │       │           └── infraternal v0.1.0 (*)
      │       └── infraternal v0.1.0 (*)
      ├── displaydoc v0.2.7
      │   ├── asn1-rs v0.6.2
      │   │   ├── der-parser v9.0.0
      │   │   │   ├── webauthn-rs-core v0.5.5
      │   │   │   │   └── webauthn-rs v0.5.5
      │   │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   │   └── x509-parser v0.16.0
      │   │   │       └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── oid-registry v0.7.1
      │   │   │   └── x509-parser v0.16.0 (*)
      │   │   └── x509-parser v0.16.0 (*)
      │   ├── der-parser v9.0.0 (*)
      │   ├── icu_collections v2.3.0
      │   │   ├── icu_normalizer v2.3.0
      │   │   │   └── idna_adapter v1.2.2
      │   │   │       └── idna v1.1.0
      │   │   │           └── url v2.5.8
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   └── infraternal-server v0.1.0 (*)
      │   │   │               │   ├── sqlx-macros v0.8.6
      │   │   │               │   │   └── sqlx v0.8.6 (*)
      │   │   │               │   ├── sqlx-macros-core v0.8.6
      │   │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │   │   │               │   └── sqlx-sqlite v0.8.6
      │   │   │               │       ├── sqlx v0.8.6 (*)
      │   │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-sqlite v0.8.6 (*)
      │   │   │               ├── webauthn-rs v0.5.5 (*)
      │   │   │               ├── webauthn-rs-core v0.5.5 (*)
      │   │   │               └── webauthn-rs-proto v0.5.5
      │   │   │                   └── webauthn-rs-core v0.5.5 (*)
      │   │   └── icu_properties v2.3.0
      │   │       └── idna_adapter v1.2.2 (*)
      │   ├── icu_locale_core v2.3.0
      │   │   ├── icu_properties v2.3.0 (*)
      │   │   └── icu_provider v2.3.1
      │   │       ├── icu_normalizer v2.3.0 (*)
      │   │       └── icu_properties v2.3.0 (*)
      │   ├── icu_properties v2.3.0 (*)
      │   ├── icu_provider v2.3.1 (*)
      │   ├── tinystr v0.8.4
      │   │   └── icu_locale_core v2.3.0 (*)
      │   └── zerotrie v0.2.5
      │       ├── icu_properties v2.3.0 (*)
      │       └── icu_provider v2.3.1 (*)
      ├── futures-macro v0.3.34
      │   └── futures-util v0.3.34
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── futures-executor v0.3.34
      │       │   └── sqlx-sqlite v0.8.6 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── js-sys v0.3.106
      │       │   └── web-sys v0.3.106
      │       │       └── plotters v0.3.7
      │       │           └── criterion v0.7.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       └── tower-http v0.6.11
      │           └── infraternal-server v0.1.0 (*)
      ├── serde_derive v1.0.229
      │   ├── serde v1.0.229
      │   │   ├── base64urlsafedata v0.5.5
      │   │   │   ├── webauthn-attestation-ca v0.5.5
      │   │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2
      │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── axum-server v0.8.0
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   ├── itertools v0.13.0
      │   │   │   │   ├── criterion v0.7.0 (*)
      │   │   │   │   └── criterion-plot v0.6.0
      │   │   │   │       └── criterion v0.7.0 (*)
      │   │   │   ├── rayon v1.12.0
      │   │   │   │   └── criterion v0.7.0 (*)
      │   │   │   ├── sqlx-core v0.8.6 (*)
      │   │   │   └── sqlx-macros-core v0.8.6 (*)
      │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   ├── infraternal-mesh v0.1.0
      │   │   ├── infraternal-server v0.1.0 (*)
      │   │   ├── serde_cbor_2 v0.13.0
      │   │   │   ├── infraternal-server v0.1.0 (*)
      │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── serde_urlencoded v0.7.1
      │   │   │   ├── axum v0.8.9 (*)
      │   │   │   └── sqlx-sqlite v0.8.6 (*)
      │   │   ├── sqlx-core v0.8.6 (*)
      │   │   ├── sqlx-macros-core v0.8.6 (*)
      │   │   ├── sqlx-sqlite v0.8.6 (*)
      │   │   ├── tinytemplate v1.2.1
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── tracing-serde v0.2.0
      │   │   │   └── tracing-subscriber v0.3.23
      │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   ├── tracing-subscriber v0.3.23 (*)
      │   │   ├── url v2.5.8 (*)
      │   │   ├── webauthn-attestation-ca v0.5.5 (*)
      │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   └── url v2.5.8 (*)
      ├── synstructure v0.14.0
      │   ├── yoke-derive v0.8.4
      │   │   └── yoke v0.8.3
      │   │       ├── icu_collections v2.3.0 (*)
      │   │       ├── icu_provider v2.3.1 (*)
      │   │       ├── zerotrie v0.2.5 (*)
      │   │       └── zerovec v0.11.8
      │   │           ├── icu_collections v2.3.0 (*)
      │   │           ├── icu_locale_core v2.3.0 (*)
      │   │           ├── icu_normalizer v2.3.0 (*)
      │   │           ├── icu_properties v2.3.0 (*)
      │   │           ├── icu_provider v2.3.1 (*)
      │   │           ├── potential_utf v0.1.6
      │   │           │   └── icu_collections v2.3.0 (*)
      │   │           └── tinystr v0.8.4 (*)
      │   └── zerofrom-derive v0.1.8
      │       └── zerofrom v0.1.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── yoke v0.8.3 (*)
      │           ├── zerotrie v0.2.5 (*)
      │           └── zerovec v0.11.8 (*)
      ├── thiserror-impl v2.0.21
      │   └── thiserror v2.0.21
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-mesh v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       └── tungstenite v0.29.0
      │           └── tokio-tungstenite v0.29.0 (*)
      ├── tokio-macros v2.7.2
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9 (*)
      │       ├── axum-server v0.8.0 (*)
      │       ├── fs-err v3.3.2
      │       │   └── axum-server v0.8.0 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── hyper v1.11.1 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── (dev) infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── sqlx-core v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0 (*)
      │       ├── tokio-util v0.7.19
      │       │   ├── h2 v0.4.19 (*)
      │       │   └── tower-http v0.6.11 (*)
      │       ├── tower v0.5.3 (*)
      │       └── tower-http v0.6.11 (*)
      ├── wasm-bindgen-macro-support v0.2.129
      │   └── wasm-bindgen-macro v0.2.129
      │       └── wasm-bindgen v0.2.129
      │           ├── js-sys v0.3.106 (*)
      │           ├── plotters v0.3.7 (*)
      │           └── web-sys v0.3.106 (*)
      ├── yoke-derive v0.8.4 (*)
      ├── zerofrom-derive v0.1.8 (*)
      └── zerovec-derive v0.11.6
          └── zerovec v0.11.8 (*)

warning[duplicate]: found 2 duplicate entries for crate 'synstructure'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:229:1
    │  
229 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index
230 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ synstructure v0.13.2
      └── asn1-rs-derive v0.5.1
          └── asn1-rs v0.6.2
              ├── der-parser v9.0.0
              │   ├── webauthn-rs-core v0.5.5
              │   │   └── webauthn-rs v0.5.5
              │   │       └── infraternal-server v0.1.0
              │   │           └── infraternal v0.1.0
              │   └── x509-parser v0.16.0
              │       └── webauthn-rs-core v0.5.5 (*)
              ├── oid-registry v0.7.1
              │   └── x509-parser v0.16.0 (*)
              └── x509-parser v0.16.0 (*)
    ├ synstructure v0.14.0
      ├── yoke-derive v0.8.4
      │   └── yoke v0.8.3
      │       ├── icu_collections v2.3.0
      │       │   ├── icu_normalizer v2.3.0
      │       │   │   └── idna_adapter v1.2.2
      │       │   │       └── idna v1.1.0
      │       │   │           └── url v2.5.8
      │       │   │               ├── infraternal-server v0.1.0
      │       │   │               │   └── infraternal v0.1.0
      │       │   │               ├── sqlx-core v0.8.6
      │       │   │               │   ├── sqlx v0.8.6
      │       │   │               │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   └── infraternal-server v0.1.0 (*)
      │       │   │               │   ├── sqlx-macros v0.8.6
      │       │   │               │   │   └── sqlx v0.8.6 (*)
      │       │   │               │   ├── sqlx-macros-core v0.8.6
      │       │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │       │   │               │   └── sqlx-sqlite v0.8.6
      │       │   │               │       ├── sqlx v0.8.6 (*)
      │       │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │       │   │               ├── sqlx-macros-core v0.8.6 (*)
      │       │   │               ├── sqlx-sqlite v0.8.6 (*)
      │       │   │               ├── webauthn-rs v0.5.5
      │       │   │               │   └── infraternal-server v0.1.0 (*)
      │       │   │               ├── webauthn-rs-core v0.5.5
      │       │   │               │   └── webauthn-rs v0.5.5 (*)
      │       │   │               └── webauthn-rs-proto v0.5.5
      │       │   │                   └── webauthn-rs-core v0.5.5 (*)
      │       │   └── icu_properties v2.3.0
      │       │       └── idna_adapter v1.2.2 (*)
      │       ├── icu_provider v2.3.1
      │       │   ├── icu_normalizer v2.3.0 (*)
      │       │   └── icu_properties v2.3.0 (*)
      │       ├── zerotrie v0.2.5
      │       │   ├── icu_properties v2.3.0 (*)
      │       │   └── icu_provider v2.3.1 (*)
      │       └── zerovec v0.11.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_locale_core v2.3.0
      │           │   ├── icu_properties v2.3.0 (*)
      │           │   └── icu_provider v2.3.1 (*)
      │           ├── icu_normalizer v2.3.0 (*)
      │           ├── icu_properties v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── potential_utf v0.1.6
      │           │   └── icu_collections v2.3.0 (*)
      │           └── tinystr v0.8.4
      │               └── icu_locale_core v2.3.0 (*)
      └── zerofrom-derive v0.1.8
          └── zerofrom v0.1.8
              ├── icu_collections v2.3.0 (*)
              ├── icu_provider v2.3.1 (*)
              ├── yoke v0.8.3 (*)
              ├── zerotrie v0.2.5 (*)
              └── zerovec v0.11.8 (*)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:231:1
    │  
231 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index
232 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index
    │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror v1.0.69
      ├── asn1-rs v0.6.2
      │   ├── der-parser v9.0.0
      │   │   ├── webauthn-rs-core v0.5.5
      │   │   │   └── webauthn-rs v0.5.5
      │   │   │       └── infraternal-server v0.1.0
      │   │   │           └── infraternal v0.1.0
      │   │   └── x509-parser v0.16.0
      │   │       └── webauthn-rs-core v0.5.5 (*)
      │   ├── oid-registry v0.7.1
      │   │   └── x509-parser v0.16.0 (*)
      │   └── x509-parser v0.16.0 (*)
      ├── webauthn-rs-core v0.5.5 (*)
      └── x509-parser v0.16.0 (*)
    ├ thiserror v2.0.21
      ├── infraternal v0.1.0
      ├── infraternal-mesh v0.1.0
      ├── infraternal-server v0.1.0
      │   └── infraternal v0.1.0 (*)
      ├── sqlx-core v0.8.6
      │   ├── sqlx v0.8.6
      │   │   ├── infraternal v0.1.0 (*)
      │   │   └── infraternal-server v0.1.0 (*)
      │   ├── sqlx-macros v0.8.6
      │   │   └── sqlx v0.8.6 (*)
      │   ├── sqlx-macros-core v0.8.6
      │   │   └── sqlx-macros v0.8.6 (*)
      │   └── sqlx-sqlite v0.8.6
      │       ├── sqlx v0.8.6 (*)
      │       └── sqlx-macros-core v0.8.6 (*)
      ├── sqlx-sqlite v0.8.6 (*)
      └── tungstenite v0.29.0
          └── tokio-tungstenite v0.29.0
              ├── axum v0.8.9
              │   └── infraternal-server v0.1.0 (*)
              └── (dev) infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:233:1
    │  
233 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index
234 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror-impl v1.0.69
      └── thiserror v1.0.69
          ├── asn1-rs v0.6.2
          │   ├── der-parser v9.0.0
          │   │   ├── webauthn-rs-core v0.5.5
          │   │   │   └── webauthn-rs v0.5.5
          │   │   │       └── infraternal-server v0.1.0
          │   │   │           └── infraternal v0.1.0
          │   │   └── x509-parser v0.16.0
          │   │       └── webauthn-rs-core v0.5.5 (*)
          │   ├── oid-registry v0.7.1
          │   │   └── x509-parser v0.16.0 (*)
          │   └── x509-parser v0.16.0 (*)
          ├── webauthn-rs-core v0.5.5 (*)
          └── x509-parser v0.16.0 (*)
    ├ thiserror-impl v2.0.21
      └── thiserror v2.0.21
          ├── infraternal v0.1.0
          ├── infraternal-mesh v0.1.0
          ├── infraternal-server v0.1.0
          │   └── infraternal v0.1.0 (*)
          ├── sqlx-core v0.8.6
          │   ├── sqlx v0.8.6
          │   │   ├── infraternal v0.1.0 (*)
          │   │   └── infraternal-server v0.1.0 (*)
          │   ├── sqlx-macros v0.8.6
          │   │   └── sqlx v0.8.6 (*)
          │   ├── sqlx-macros-core v0.8.6
          │   │   └── sqlx-macros v0.8.6 (*)
          │   └── sqlx-sqlite v0.8.6
          │       ├── sqlx v0.8.6 (*)
          │       └── sqlx-macros-core v0.8.6 (*)
          ├── sqlx-sqlite v0.8.6 (*)
          └── tungstenite v0.29.0
              └── tokio-tungstenite v0.29.0
                  ├── axum v0.8.9
                  │   └── infraternal-server v0.1.0 (*)
                  └── (dev) infraternal-server v0.1.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Finished `release` profile [optimized] target(s) in 0.50s
/home/kayg/.cache/codex-scratch/renderer-cost/target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped
PT_INTERP: absent; size: 15965392 bytes (baseline 16142672 + allowance 262144 = max 16404816)
    Finished `release` profile [optimized] target(s) in 0.37s
/home/kayg/.cache/codex-scratch/renderer-cost/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 13426064 bytes (baseline 13555672 + allowance 262144 = max 13817816)
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+

==> Vendored Ghostty artifact checksums
dist/ghostty-web.js: OK
dist/ghostty-vt.wasm: OK
dist/index.d.ts: OK

==> TypeScript protocol compiler

==> Tracer compiler, precompression and bundle transfer budget
bun install v1.4.2 (744846f84)

Checked 38 installs across 69 packages (no changes) [36.00ms]
$ bun x tsc --project tsconfig.json
bun test v1.4.2 (744846f84)

browser-build.test.ts:
(pass) the browser renderer has no unresolved Vite Node-file shim request [21.83ms]

chunk-classes.test.ts:
(pass) the first screen is critical, the canvas product module and what only it uses are deferred [1.81ms]
(pass) a chunk that both sides use stays critical [0.44ms]
(pass) code only an action loads is on demand, even when the lazy canvas is what loads it [0.44ms]

precompress.test.ts:
(pass) text sidecars round-trip deterministically; compressed formats remain identity [36.95ms]

test/recovery-ui.test.ts:
(pass) compiled recovery UI mode off obeys its URL boundary [3.52ms]
(pass) compiled recovery UI mode preview obeys its URL boundary [3.86ms]
(pass) compiled recovery UI mode 1 obeys its URL boundary [3.42ms]

test/recovery-crypto.test.ts:
(pass) HKDF siblings match independent implementation and bind unwrap to domain, account, kind and version [21.10ms]
(pass) 100 repeated wrapping operations generate independent salts and nonces [22.34ms]

test/recovery-wait.test.ts:
(pass) server remaining wait 0s is accepted through the capability policy maximum [3.82ms]
(pass) server remaining wait 86400s is accepted through the capability policy maximum [2.01ms]
(pass) server remaining wait 90000s is accepted through the capability policy maximum [4.19ms]
(pass) server remaining wait 172800s is accepted through the capability policy maximum [1.38ms]
(pass) malformed or excessive remaining wait -1 is denied [1.80ms]
(pass) malformed or excessive remaining wait 0.5 is denied [2.31ms]
(pass) malformed or excessive remaining wait 172801 is denied [2.18ms]
(pass) malformed or excessive remaining wait 9007199254740992 is denied [1.73ms]
(pass) malformed or excessive remaining wait 90000 is denied [1.44ms]

test/recovery-rotation.test.ts:
(pass) signed-in rotation sends only a local envelope and verifier after acknowledgement [9.62ms]
(pass) abandoned word acknowledgement uploads nothing [2.35ms]
(pass) settled acknowledgement cannot upload later (dismissed) [2.96ms]
(pass) settled acknowledgement cannot upload later (no acknowledgement) [2.48ms]

src/canvas/mesh/protocol.test.ts:
(pass) the server's own list becomes nodes, tags and grants, by name [0.69ms]
(pass) without `access` (today's server) the person may view and may not edit [0.29ms]
(pass) fields the server does not send are absent, never invented [0.13ms]
(pass) anything that is not a list is refused, whole [12.04ms]
(pass) a node's own tag list and the tag table agree even when a server sends only one [0.35ms]
(pass) the subscription's events: a pushed list, a revision that invalidates, and the end of the subscription [0.24ms]
(pass) answers carry the new revision, and a create the new arrow's id [0.06ms]
(pass) endpoints go out as the server writes them: a node by id, a tag by name [0.09ms]

src/canvas/mesh/layout.test.ts:
(pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [0.90ms]
(pass) the layout is deterministic and does not depend on input order [2.94ms]
(pass) no two cards overlap, and every card lies inside the graph [7.12ms]
(pass) the sheet is wider than tall, roughly 16:10 [1.39ms]
(pass) a pinned node stays where it was put and the others do not move [2.20ms]
(pass) a pin beyond the sheet grows the graph [0.39ms]
(pass) a host's other tags do not move it; a tag nobody carries still has its node [0.21ms]
(pass) 1,000 nodes lay out in a few milliseconds [5.50ms]

src/canvas/layout/stops.test.ts:
(pass) a view that fits the viewport has one stop, centred [0.28ms]
(pass) a wide view has one stop per column and the last stop ends at the right edge [0.23ms]
(pass) a view taller than the viewport is scaled down so it fits [0.03ms]
(pass) nearestStop picks the stop whose centre is closest [0.10ms]
(pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.11ms]
(pass) a small graph keeps one stop per node column [0.05ms]
(pass) on a narrow screen a big graph does not shrink past where its names can be read: it starts at the top left [0.05ms]

src/canvas/layout/geometry.test.ts:
(pass) a dropped view pushes the one it lands on along the axis of least overlap, never itself [0.48ms]
(pass) a chain of neighbours is pushed in turn [0.08ms]
(pass) snapping rounds to whole cells [0.11ms]
(pass) reach follows grants through tags and keeps the relay [0.32ms]

src/canvas/model/document.test.ts:
(pass) a document holds references and layout, never content [0.39ms]
(pass) a document survives JSON and rebuilds the same columns [0.69ms]
(pass) a target that no longer exists is dropped, and an emptied column with it [0.09ms]
(pass) parseDocument rejects anything that is not a document of this format [0.29ms]

 54 pass
 0 fail
 9930 expect() calls
Ran 54 tests across 12 files. [286.00ms]
$ bun run build.ts
built chunk-dmw9hvbw.js, chunk-115m173h.js, chunk-rjwnx33q.js, main.js, chunk-x70hvm19.js, chunk-j81s3yfg.js, chunk-70vhy3hy.js, chunk-yspm5mth.js, chunk-mkfn532b.js, chunk-qegkg8dz.js, chunk-j291gbaq.js, chunk-axbkkqp1.js, chunk-en6mw0nm.js, chunk-6aqnsf78.js, chunk-xxx9hpcw.js, chunk-aq83zysa.js, chunk-1hfqw9kz.js, chunk-smaxpsn7.js, chunk-3pppp89v.js, chunk-fhqvca7q.js, chunk-fn79z7rx.js, chunk-6xb05v6k.js, chunk-wvtj5y92.js, chunk-v6mn7kwd.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b9k5c5vv.js, chunk-0bj0xtqc.js, chunk-eg140vcg.js, chunk-y667rdh9.js, chunk-cmc3x3e5.js
critical chunk-cmc3x3e5.js: identity=39 gzip=39 brotli=39 bytes
critical chunk-dmw9hvbw.js: identity=20074 gzip=6378 brotli=5694 bytes
deferred chunk-115m173h.js: identity=37378 gzip=14600 brotli=12776 bytes
deferred chunk-aq83zysa.js: identity=93593 gzip=32437 brotli=28705 bytes
critical faulty-terminal.worker.js: identity=1086 gzip=559 brotli=481 bytes
critical backdrop.worker.js: identity=243 gzip=215 brotli=186 bytes
onDemand chunk-xxx9hpcw.js: identity=2274 gzip=1095 brotli=978 bytes
critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes
critical chunk-70vhy3hy.js: identity=8172 gzip=3515 brotli=3110 bytes
onDemand chunk-wvtj5y92.js: identity=4007 gzip=1681 brotli=1493 bytes
critical chunk-j81s3yfg.js: identity=6483 gzip=3113 brotli=2823 bytes
onDemand chunk-fn79z7rx.js: identity=538 gzip=353 brotli=314 bytes
critical chunk-6aqnsf78.js: identity=708460 gzip=205361 brotli=166671 bytes
onDemand chunk-qegkg8dz.js: identity=14856 gzip=5465 brotli=4890 bytes
critical chunk-0bj0xtqc.js: identity=199 gzip=162 brotli=139 bytes
onDemand chunk-3pppp89v.js: identity=20875 gzip=8489 brotli=7638 bytes
onDemand chunk-fhqvca7q.js: identity=4351 gzip=1720 brotli=1494 bytes
critical chunk-1hfqw9kz.js: identity=49 gzip=49 brotli=49 bytes
critical chunk-b9k5c5vv.js: identity=9810 gzip=4016 brotli=3467 bytes
critical chunk-eg140vcg.js: identity=58451 gzip=19120 brotli=17132 bytes
onDemand chunk-rjwnx33q.js: identity=2163 gzip=1058 brotli=891 bytes
critical chunk-en6mw0nm.js: identity=6456 gzip=2342 brotli=2085 bytes
critical chunk-y667rdh9.js: identity=39 gzip=39 brotli=39 bytes
onDemand chunk-6xb05v6k.js: identity=5327 gzip=2570 brotli=2290 bytes
critical chunk-x70hvm19.js: identity=8377 gzip=3574 brotli=3186 bytes
onDemand chunk-smaxpsn7.js: identity=5749 gzip=2762 brotli=2497 bytes
critical main.js: identity=107252 gzip=38906 brotli=33781 bytes
critical chunk-yspm5mth.js: identity=1916 gzip=843 brotli=722 bytes
onDemand chunk-v6mn7kwd.js: identity=11538 gzip=4877 brotli=4312 bytes
onDemand chunk-j291gbaq.js: identity=1026 gzip=624 brotli=499 bytes
critical chunk-mkfn532b.js: identity=386 gzip=237 brotli=195 bytes
JavaScript transfer, critical: identity=937582 gzip=288558/307200 brotli=239877/256000 bytes
JavaScript transfer, deferred: identity=130971 gzip=47037/51200 brotli=41481/45056 bytes
JavaScript transfer, onDemand: identity=72704 gzip=30694/20480 brotli=27296/18432 bytes
JavaScript transfer, onDemand largest chunk chunk-3pppp89v.js: gzip=8489/20480 brotli=7638/18432 bytes (class total gzip=30694 brotli=27296, not limited)
fonts/monaspace-neon/italic.latin.woff2: identity=44324 gzip=44324 brotli=44324 bytes
fonts/monaspace-neon/roman.latin.woff2: identity=40016 gzip=40016 brotli=40016 bytes
fonts/jetbrains-mono/italic.latin.woff2: identity=36316 gzip=36316 brotli=36316 bytes
fonts/jetbrains-mono/roman.latin.woff2: identity=34068 gzip=34068 brotli=34068 bytes
fonts/source-code-pro/italic.latin.woff2: identity=23612 gzip=23612 brotli=23612 bytes
fonts/source-code-pro/roman.latin.woff2: identity=22872 gzip=22872 brotli=22872 bytes
fonts/geist-mono/italic.latin.woff2: identity=21380 gzip=21380 brotli=21380 bytes
fonts/geist-mono/roman.latin.woff2: identity=19984 gzip=19984 brotli=19981 bytes
fonts/ibm-plex-mono/italic.latin.woff2: identity=22296 gzip=22296 brotli=22296 bytes
fonts/ibm-plex-mono/roman.latin.woff2: identity=19048 gzip=19048 brotli=19047 bytes
fonts/cascadia-code/italic.latin.woff2: identity=44404 gzip=44404 brotli=44404 bytes
fonts/cascadia-code/roman.latin.woff2: identity=40604 gzip=40604 brotli=40604 bytes
fonts/maple-mono-nf/italic.latin.woff2: identity=53444 gzip=53444 brotli=53444 bytes
fonts/maple-mono-nf/roman.latin.woff2: identity=46432 gzip=46432 brotli=46432 bytes
fonts/nerd-symbols.woff2: identity=223748 gzip=223748 brotli=223748 bytes
fonts/fira-code/roman.latin.woff2: identity=36756 gzip=36756 brotli=36756 bytes
fonts/commit-mono/italic-400.latin.woff2: identity=18716 gzip=18716 brotli=18716 bytes
fonts/commit-mono/italic-700.latin.woff2: identity=18352 gzip=18352 brotli=18352 bytes
fonts/commit-mono/roman-400.latin.woff2: identity=17484 gzip=17484 brotli=17484 bytes
fonts/commit-mono/roman-700.latin.woff2: identity=17260 gzip=17260 brotli=17260 bytes
Font transfer: monaspace-neon=84340/88064 jetbrains-mono=70384/75776 source-code-pro=46484/49152 geist-mono=41364/45056 ibm-plex-mono=41344/45056 cascadia-code=85008/88064 maple-mono-nf=99876/106496 (critical 46432/51200) symbols=223748/235520 fira-code=36756/40960 commit-mono=71812/75776 bytes

==> Rust stream oracle (for the differential test)

==> TypeScript protocol tests
bun test v1.4.2 (744846f84)

src/codec.test.ts:
(pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [9.49ms]
(pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.28ms]
(pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [1.24ms]
(pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.32ms]
(pass) split mux header preserves trailing Close [0.17ms]

src/stream.test.ts:
stream differential: 134 streams, 11439 schedules, zero divergences
(pass) Rust and TypeScript preserve every frame at all boundaries and random multi-splits [2710.27ms]
(pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [9.91ms]

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.74s]
Renderer-cost run 2 ends at 6b75ae8c432004e77ee970ef674d1bbfe01192e5, branch renderer-cost. No push/deploy; issue remains open. Completed documentation steps: ea62d6b9 clarifies that independent queue limits do not establish #121 aggregate frame time; e2348440 commits full measurement/counter/gate evidence and production screenshots; 6b75ae8c replaces the obsolete cost report. Report: docs/perf/renderer-cost.md; artifacts: docs/perf/renderer-cost-run2/. RC-1 and RC-2 are fixed and regression-tested, including both independent update orders and pinch sizing, with D170 200-session visible/hidden projections. Final font/cursor/geometry/capsule checks: 39 passed; registry weights: 18 passed at DPR1/2. Recreated production 8-terminal capture: 1 passed, supplied for independent visual review, not judged by this job. Author checklist is in the report. Acceptance remains INCOMPLETE: final 4x matrix (14 warm/8 cold samples) failed all 12 input p95 and all 12 renderer-range p95 thresholds; aggregate 8 ms frame work/120 fps is not established. At 8 terminals redraw timeouts theme/cold/warm/resize are 14/3/14/14, versus baseline 14/8/14/14. Hidden WASM at 1/4/8 is 9.063/4.703/3.977 MiB, above 2 MiB; visible allocations also exclude native browser overhead. All loads, before/after values and 200 projections are committed in matrix-evidence.json. Demand allocation saves ~800 MiB initial/history reservation at 200 engine states, but paired native workload median totals increased 1250.7 -> 1946.8 ms (+56%) and resize 646.1 -> 1174.1 ms (+82%); resize high-water remains ~1029 MiB. This is a material trade-off, not a latency win or memory acceptance. No foundational engine/allocator/renderer choice or page geometry changed. Native font cache removes 33 duplicate assignments per synchronous full paint while preserving numeric descriptor/context-reset correctness. Single-terminal style recalculation still touches 928 elements; exact timing, load/fetch, measurement, atlas and unattributed/waiting spans are retained. Remaining work: reduce the full-document style/native-call cost and complete 8-terminal redraw within the collection window while establishing total frame work; reduce retained/resized engine memory without hiding the allocation latency cost. Owner real-device/frame-meter and independent visual review remain outstanding. Closing scripts/verify fast: exit 0. Full output follows verbatim (also committed in docs/perf/renderer-cost-run2/verify-fast.md). ```text METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=307.44 p99_ms=310.44 result=PASS ==> fmt ==> VT native fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.50s ==> test Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal-e5690224bd303581) running 2 tests test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_daemon-c1009f458483aa8f) running 1 test test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 39.43s Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_queues-6c04c309be0957c1) running 1 test test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 34.90s Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_review-54f50cf057262edb) running 6 tests test initial_attach_requires_explicit_credit_before_replay ... ok test last_typist_selects_its_own_real_pty_dimensions ... ok test repeated_tiny_credit_pauses_preserve_shell_progress ... ok test retained_unwritten_input_survives_interleaved_ack_restart ... ok test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 26.35s Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/agent_sessions-ff521b125a460892) running 1 test test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/idle_canary-f539ea7494e88d68) running 1 test test one_hertz_wakeup_is_detected_past_the_legacy_half_second_window ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s Running tests/shim.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/shim-ab657005a3347209) running 7 tests test attached_backpressure_and_detached_progress ... ok test disallowed_signal_only_disconnects_peer ... ok test double_fork_survives_parent_death ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test replacement_connection_and_malformed_limit ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test user_scope_survives_parent_unit_stop ... active ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.88s Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/vt_credit-51d52cc011d1b6d3) running 1 test test unaffordable_repaints_park_until_sufficient_credit ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.06s Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/vt_reconnect-ebce90a6a196ada5) running 1 test test snapshot_limits_never_close_live_reconnect ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.77s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_agent-211380b0185e0960) running 16 tests test relay::tests::attachment_has_no_implicit_output_or_snapshot_credit ... ok test relay::tests::expired_credit_resumes_retained_bytes_at_the_same_cursor ... ok test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok test relay::tests::output_partial_credit_and_dedup ... ok test relay::tests::output_payload_move_measurement ... ignored, release ownership versus payload-copy measurement test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test relay::tests::positive_insufficient_credit_arms_a_one_shot_deadline ... ok test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok test sessions::tests::reader_borrow_measurement ... ignored, release borrowed versus owned asynchronous receive measurement test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok test result: ok. 14 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.06s Running tests/transport.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/transport-a619415ba769b0e5) running 2 tests test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok test oversized_header_and_truncated_frame_are_rejected ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_mesh-3f967587718407e9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/default_arrow-312553ba19630584) running 1 test test omitted_arrow_ports_default_to_all_services ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/properties.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/properties-78f35bbe1b57dcd5) running 14 tests test addresses_are_unique_stable_and_not_recycled ... ok test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok test directional_grants_union_and_minimal_updates ... ok test exhausted_versions_reject_mutations_without_changing_state ... ok test join_to_same_tag_grants_both_initiation_directions ... ok test names_versions_and_backend_status ... ok test overlaps_are_reported_without_silent_range_changes ... ok test private_material_never_enters_debug_or_coordination_serialization ... ok test protocol_port_unions_never_grant_an_unlisted_service ... ok test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... ok test seeded_random_sequences_equal_full_compile_and_deny_without_grants ... ok test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.62s Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/rotation_time-a58dd287253d611d) running 1 test test unrepresentable_rotation_overlap_rejects_before_mutation ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_protocol-67b9a310ef49abf9) running 7 tests test stream_tests::all_short_frame_splits_match_direct_decoding ... ok test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok test stream_tests::split_mux_header_preserves_trailing_close ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_server-1fc3be3a3786e8db) running 109 tests test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok test auth::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::aaguid_migration_preserves_legacy_credentials_and_sessions ... ok test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... ok test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok test auth::tests::pending_unlock_expires_without_terminal_authority ... ok test auth::tests::provider_labels_cover_the_cited_registry_without_guessing ... ok test auth::tests::provider_session_latency_at_50_devices ... ignored, local auth session scale measurement; run without concurrent builds test auth::tests::public_status_and_discoverable_http_login ... ok test auth::tests::recovery_audit_commits_once_with_start_cancel_and_complete ... ok test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::recovery_http_live_same_account_is_immediate ... ok test auth::tests::recovery_http_other_expired_pending_and_missing_sessions_wait ... ok test auth::tests::recovery_live_session_cannot_accelerate_an_active_delayed_request ... ok test auth::tests::recovery_live_session_revoked_during_verification_cannot_waive_delay ... ok test auth::tests::recovery_session_delay_latency_at_capacity ... ignored, release-only recovery measurement at 50 live sessions; run without concurrent compilation test auth::tests::recovery_unknown_identity_pays_the_same_database_and_verifier_work ... ok test auth::tests::recovery_username_identity_is_additive_and_ambiguous_forms_fail ... ok test auth::tests::recovery_verifier_latency_at_capacity ... ignored, release-only v2 diagnostic at 50 live session rows; record host load separately test auth::tests::redacted_unknown_and_failed_registrations_do_not_claim_a_provider ... ok test auth::tests::registration_aaguid_survives_none_attestation_and_binds_session_provider ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok test auth::tests::review3_tests::review3_busy_expiry ... ok test auth::tests::review3_tests::review3_busy_logout ... ok test auth::tests::review3_tests::review3_busy_recovery ... ok test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok test auth::tests::review3_tests::review3_unwrap_cannot_be_skipped ... ok test auth::tests::review3_tests::review3_waiting_handshake_loses_authority ... ok test auth::tests::review3_tests::review4_open_reply_and_revocation_preserve_authority ... ok test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok test auth::tests::review_old_words_race_rotation ... ok test auth::tests::reviewer_tests::reviewer_disk_cancel_complete_races ... ok test auth::tests::reviewer_tests::reviewer_disk_restart_and_concurrent_resume ... ok test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... ok test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch ... ok test auth::tests::rotation_tests::recovery_rotation_denies_pending_expired_and_stale_sessions ... ok test auth::tests::rotation_tests::recovery_rotation_requires_session_and_replaces_legacy_envelope ... ok test auth::tests::rotation_tests::reviewer_concurrent_signed_in_rotations_commit_once ... ok test auth::tests::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test auth::tests::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok test auth::tests::setup_identity_validation_and_uniqueness ... ok test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok test auth::tests::setup_start_accepts_username_and_display_name ... ok test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... ok test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... ok test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... ok test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test embedded::regressions::credited_bulk_output_survives_forwarder_io_pause ... ok test embedded::regressions::credited_output_queue_at_stream_capacity ... ignored, debug actor memory/scheduling measurement; run without concurrent builds test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok test embedded::regressions::healthy_receiver_survives_ready_native_output_burst ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok test embedded::regressions::real_agent_canonical_uuid_result_is_accepted ... ok test embedded::regressions::real_agent_open_uses_uid_and_character_dimensions ... ok test embedded::regressions::reattach_must_restore_output_credit ... ok test embedded::regressions::recovery_event_then_snapshot_keeps_embedded_connection_live ... ok test embedded::regressions::recovery_notices_preserve_order_credit_and_session_isolation ... ok test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok test embedded::regressions::uncredited_output_or_repaint_is_rejected_before_queueing ... ok test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test runtime::tests::setup_socket_cleanup_preserves_symlinks_and_regular_files ... ok test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test result: ok. 100 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 130.76s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/infraternal_shim-67ffc9c8d51fcf5c) running 73 tests test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement test frame::checks::golden::every_frozen_message ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test frame::checks::tests::golden_and_fragmented ... ok test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok test session::resize_checks::resize_refusal_session_probe ... ignored, isolated session probe invoked by its parent with a controlled shell profile test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok test session::sequenced_checks::writer_selection_has_a_frozen_little_endian_layout ... ok test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok test terminal::checks::tests::saved_origin_survives_changed_margins ... ok test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_cursor ... ok test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file test terminal::fidelity::fidelity_edge ... ok test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases test terminal::fidelity::fidelity_extended_smoke ... ok test terminal::fidelity::fidelity_f1_rep ... ok test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_handwritten ... ok test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok test terminal::fidelity::fidelity_iso_protection_erase ... ok test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok test terminal::fidelity::fidelity_oracle_detects_hidden_state ... ok test terminal::fidelity::fidelity_oracle_observes_archived_cells_with_equal_active_screens ... ok test terminal::fidelity::fidelity_orphaned_spacer_head ... ok test terminal::fidelity::fidelity_prompt_resize_requires_explicit_rejection ... ok test terminal::fidelity::fidelity_recorded_corpus ... ok test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok test terminal::fidelity::fidelity_saved_modes_future_restore ... ok test terminal::fidelity::fidelity_screen_entry_consumes_inherited_shift_before_saving ... ok test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases test terminal::fidelity::fidelity_seeded_smoke ... ok test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... ok test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... ok test terminal::fidelity::fidelity_snapshot_resets_stale_viewer_color_overrides ... ok test terminal::fidelity::fidelity_spacer_head_attributes ... ok test terminal::fidelity::fidelity_variation_tail_attributes ... ok test terminal::fidelity::fidelity_variation_wrap_attributes ... ok test terminal::fidelity::fresh_captures::fidelity_fresh_real_program_captures ... ignored, manual fresh capture oracle; set VT_CAPTURE_DIR after real program capture test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::memory::measured_terminal_rss ... ignored, RSS measurement; run this filter alone in a fresh release process test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::recovery_measurements::measured_full_ring_reconstruction ... ignored, release reconstruction measurement; old healthy handles permit repeated cleanup test terminal::resize_recovery::absent_ring_keeps_last_good_size_and_later_output_usable ... ok test terminal::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok test terminal_native::allocation::resize_allocation_refusal_retires_native_handle ... ok test result: ok. 61 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 57.81s Running tests/detach.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/detach-c502cd554fb112ce) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.92s Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/renderer-cost/target/debug/deps/mouse-523bfdef43cc46cb) running 1 test test faithful_snapshot_preserves_public_mouse_encoder_reports ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s Doc-tests infraternal_agent running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_mesh running 1 test test crates/infraternal-mesh/src/model.rs - model::LocalPrivateKey (line 20) - compile fail ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s Doc-tests infraternal_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:24:1 │ 24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:88:1 │ 88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'hashbrown' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:94:1 │ 94 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 95 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 ├── h2 v0.4.19 │ └── hyper v1.11.1 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ └── hyper-util v0.1.21 │ ├── axum v0.8.9 (*) │ └── axum-server v0.8.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:183:1 │ 183 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 184 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:185:1 │ 185 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 186 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:187:1 │ 187 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 188 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:189:1 │ 189 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 190 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:226:1 │ 226 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 227 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ ├── sqlx-macros v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tracing-subscriber v0.3.23 │ │ └── infraternal-server v0.1.0 (*) │ ├── webauthn-attestation-ca v0.5.5 (*) │ ├── webauthn-rs v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) └── zerocopy-derive v0.8.60 └── zerocopy v0.8.60 ├── half v2.7.1 │ ├── ciborium-ll v0.2.2 │ │ └── ciborium v0.2.2 │ │ └── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-agent v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 (*) │ └── serde_cbor_2 v0.13.0 │ ├── infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 (*) └── ppv-lite86 v0.2.21 ├── rand_chacha v0.3.1 │ └── rand v0.8.8 │ └── bip39 v2.2.2 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 (*) │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ syn v3.0.6 ├── clap_derive v4.6.7 │ └── clap v4.6.7 │ ├── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-agent v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ └── infraternal v0.1.0 (*) ├── displaydoc v0.2.7 │ ├── asn1-rs v0.6.2 │ │ ├── der-parser v9.0.0 │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── futures-macro v0.3.34 │ └── futures-util v0.3.34 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 │ └── infraternal-server v0.1.0 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.0 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── itertools v0.13.0 │ │ │ │ ├── criterion v0.7.0 (*) │ │ │ │ └── criterion-plot v0.6.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── rayon v1.12.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── sqlx-core v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── serde_urlencoded v0.7.1 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── sqlx-sqlite v0.8.6 (*) │ │ ├── sqlx-core v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ ├── tinytemplate v1.2.1 │ │ │ └── criterion v0.7.0 (*) │ │ ├── tracing-serde v0.2.0 │ │ │ └── tracing-subscriber v0.3.23 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── tracing-subscriber v0.3.23 (*) │ │ ├── url v2.5.8 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-mesh v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ └── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── axum-server v0.8.0 (*) │ ├── fs-err v3.3.2 │ │ └── axum-server v0.8.0 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── (dev) infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 (*) │ ├── tower v0.5.3 (*) │ └── tower-http v0.6.11 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:229:1 │ 229 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 230 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:231:1 │ 231 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 232 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-mesh v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:233:1 │ 233 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 234 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-mesh v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Finished `release` profile [optimized] target(s) in 0.50s /home/kayg/.cache/codex-scratch/renderer-cost/target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped PT_INTERP: absent; size: 15965392 bytes (baseline 16142672 + allowance 262144 = max 16404816) Finished `release` profile [optimized] target(s) in 0.37s /home/kayg/.cache/codex-scratch/renderer-cost/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 13426064 bytes (baseline 13555672 + allowance 262144 = max 13817816) server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> Vendored Ghostty artifact checksums dist/ghostty-web.js: OK dist/ghostty-vt.wasm: OK dist/index.d.ts: OK ==> TypeScript protocol compiler ==> Tracer compiler, precompression and bundle transfer budget bun install v1.4.2 (744846f84) Checked 38 installs across 69 packages (no changes) [36.00ms] $ bun x tsc --project tsconfig.json bun test v1.4.2 (744846f84) browser-build.test.ts: (pass) the browser renderer has no unresolved Vite Node-file shim request [21.83ms] chunk-classes.test.ts: (pass) the first screen is critical, the canvas product module and what only it uses are deferred [1.81ms] (pass) a chunk that both sides use stays critical [0.44ms] (pass) code only an action loads is on demand, even when the lazy canvas is what loads it [0.44ms] precompress.test.ts: (pass) text sidecars round-trip deterministically; compressed formats remain identity [36.95ms] test/recovery-ui.test.ts: (pass) compiled recovery UI mode off obeys its URL boundary [3.52ms] (pass) compiled recovery UI mode preview obeys its URL boundary [3.86ms] (pass) compiled recovery UI mode 1 obeys its URL boundary [3.42ms] test/recovery-crypto.test.ts: (pass) HKDF siblings match independent implementation and bind unwrap to domain, account, kind and version [21.10ms] (pass) 100 repeated wrapping operations generate independent salts and nonces [22.34ms] test/recovery-wait.test.ts: (pass) server remaining wait 0s is accepted through the capability policy maximum [3.82ms] (pass) server remaining wait 86400s is accepted through the capability policy maximum [2.01ms] (pass) server remaining wait 90000s is accepted through the capability policy maximum [4.19ms] (pass) server remaining wait 172800s is accepted through the capability policy maximum [1.38ms] (pass) malformed or excessive remaining wait -1 is denied [1.80ms] (pass) malformed or excessive remaining wait 0.5 is denied [2.31ms] (pass) malformed or excessive remaining wait 172801 is denied [2.18ms] (pass) malformed or excessive remaining wait 9007199254740992 is denied [1.73ms] (pass) malformed or excessive remaining wait 90000 is denied [1.44ms] test/recovery-rotation.test.ts: (pass) signed-in rotation sends only a local envelope and verifier after acknowledgement [9.62ms] (pass) abandoned word acknowledgement uploads nothing [2.35ms] (pass) settled acknowledgement cannot upload later (dismissed) [2.96ms] (pass) settled acknowledgement cannot upload later (no acknowledgement) [2.48ms] src/canvas/mesh/protocol.test.ts: (pass) the server's own list becomes nodes, tags and grants, by name [0.69ms] (pass) without `access` (today's server) the person may view and may not edit [0.29ms] (pass) fields the server does not send are absent, never invented [0.13ms] (pass) anything that is not a list is refused, whole [12.04ms] (pass) a node's own tag list and the tag table agree even when a server sends only one [0.35ms] (pass) the subscription's events: a pushed list, a revision that invalidates, and the end of the subscription [0.24ms] (pass) answers carry the new revision, and a create the new arrow's id [0.06ms] (pass) endpoints go out as the server writes them: a node by id, a tag by name [0.09ms] src/canvas/mesh/layout.test.ts: (pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [0.90ms] (pass) the layout is deterministic and does not depend on input order [2.94ms] (pass) no two cards overlap, and every card lies inside the graph [7.12ms] (pass) the sheet is wider than tall, roughly 16:10 [1.39ms] (pass) a pinned node stays where it was put and the others do not move [2.20ms] (pass) a pin beyond the sheet grows the graph [0.39ms] (pass) a host's other tags do not move it; a tag nobody carries still has its node [0.21ms] (pass) 1,000 nodes lay out in a few milliseconds [5.50ms] src/canvas/layout/stops.test.ts: (pass) a view that fits the viewport has one stop, centred [0.28ms] (pass) a wide view has one stop per column and the last stop ends at the right edge [0.23ms] (pass) a view taller than the viewport is scaled down so it fits [0.03ms] (pass) nearestStop picks the stop whose centre is closest [0.10ms] (pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.11ms] (pass) a small graph keeps one stop per node column [0.05ms] (pass) on a narrow screen a big graph does not shrink past where its names can be read: it starts at the top left [0.05ms] src/canvas/layout/geometry.test.ts: (pass) a dropped view pushes the one it lands on along the axis of least overlap, never itself [0.48ms] (pass) a chain of neighbours is pushed in turn [0.08ms] (pass) snapping rounds to whole cells [0.11ms] (pass) reach follows grants through tags and keeps the relay [0.32ms] src/canvas/model/document.test.ts: (pass) a document holds references and layout, never content [0.39ms] (pass) a document survives JSON and rebuilds the same columns [0.69ms] (pass) a target that no longer exists is dropped, and an emptied column with it [0.09ms] (pass) parseDocument rejects anything that is not a document of this format [0.29ms] 54 pass 0 fail 9930 expect() calls Ran 54 tests across 12 files. [286.00ms] $ bun run build.ts built chunk-dmw9hvbw.js, chunk-115m173h.js, chunk-rjwnx33q.js, main.js, chunk-x70hvm19.js, chunk-j81s3yfg.js, chunk-70vhy3hy.js, chunk-yspm5mth.js, chunk-mkfn532b.js, chunk-qegkg8dz.js, chunk-j291gbaq.js, chunk-axbkkqp1.js, chunk-en6mw0nm.js, chunk-6aqnsf78.js, chunk-xxx9hpcw.js, chunk-aq83zysa.js, chunk-1hfqw9kz.js, chunk-smaxpsn7.js, chunk-3pppp89v.js, chunk-fhqvca7q.js, chunk-fn79z7rx.js, chunk-6xb05v6k.js, chunk-wvtj5y92.js, chunk-v6mn7kwd.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b9k5c5vv.js, chunk-0bj0xtqc.js, chunk-eg140vcg.js, chunk-y667rdh9.js, chunk-cmc3x3e5.js critical chunk-cmc3x3e5.js: identity=39 gzip=39 brotli=39 bytes critical chunk-dmw9hvbw.js: identity=20074 gzip=6378 brotli=5694 bytes deferred chunk-115m173h.js: identity=37378 gzip=14600 brotli=12776 bytes deferred chunk-aq83zysa.js: identity=93593 gzip=32437 brotli=28705 bytes critical faulty-terminal.worker.js: identity=1086 gzip=559 brotli=481 bytes critical backdrop.worker.js: identity=243 gzip=215 brotli=186 bytes onDemand chunk-xxx9hpcw.js: identity=2274 gzip=1095 brotli=978 bytes critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes critical chunk-70vhy3hy.js: identity=8172 gzip=3515 brotli=3110 bytes onDemand chunk-wvtj5y92.js: identity=4007 gzip=1681 brotli=1493 bytes critical chunk-j81s3yfg.js: identity=6483 gzip=3113 brotli=2823 bytes onDemand chunk-fn79z7rx.js: identity=538 gzip=353 brotli=314 bytes critical chunk-6aqnsf78.js: identity=708460 gzip=205361 brotli=166671 bytes onDemand chunk-qegkg8dz.js: identity=14856 gzip=5465 brotli=4890 bytes critical chunk-0bj0xtqc.js: identity=199 gzip=162 brotli=139 bytes onDemand chunk-3pppp89v.js: identity=20875 gzip=8489 brotli=7638 bytes onDemand chunk-fhqvca7q.js: identity=4351 gzip=1720 brotli=1494 bytes critical chunk-1hfqw9kz.js: identity=49 gzip=49 brotli=49 bytes critical chunk-b9k5c5vv.js: identity=9810 gzip=4016 brotli=3467 bytes critical chunk-eg140vcg.js: identity=58451 gzip=19120 brotli=17132 bytes onDemand chunk-rjwnx33q.js: identity=2163 gzip=1058 brotli=891 bytes critical chunk-en6mw0nm.js: identity=6456 gzip=2342 brotli=2085 bytes critical chunk-y667rdh9.js: identity=39 gzip=39 brotli=39 bytes onDemand chunk-6xb05v6k.js: identity=5327 gzip=2570 brotli=2290 bytes critical chunk-x70hvm19.js: identity=8377 gzip=3574 brotli=3186 bytes onDemand chunk-smaxpsn7.js: identity=5749 gzip=2762 brotli=2497 bytes critical main.js: identity=107252 gzip=38906 brotli=33781 bytes critical chunk-yspm5mth.js: identity=1916 gzip=843 brotli=722 bytes onDemand chunk-v6mn7kwd.js: identity=11538 gzip=4877 brotli=4312 bytes onDemand chunk-j291gbaq.js: identity=1026 gzip=624 brotli=499 bytes critical chunk-mkfn532b.js: identity=386 gzip=237 brotli=195 bytes JavaScript transfer, critical: identity=937582 gzip=288558/307200 brotli=239877/256000 bytes JavaScript transfer, deferred: identity=130971 gzip=47037/51200 brotli=41481/45056 bytes JavaScript transfer, onDemand: identity=72704 gzip=30694/20480 brotli=27296/18432 bytes JavaScript transfer, onDemand largest chunk chunk-3pppp89v.js: gzip=8489/20480 brotli=7638/18432 bytes (class total gzip=30694 brotli=27296, not limited) fonts/monaspace-neon/italic.latin.woff2: identity=44324 gzip=44324 brotli=44324 bytes fonts/monaspace-neon/roman.latin.woff2: identity=40016 gzip=40016 brotli=40016 bytes fonts/jetbrains-mono/italic.latin.woff2: identity=36316 gzip=36316 brotli=36316 bytes fonts/jetbrains-mono/roman.latin.woff2: identity=34068 gzip=34068 brotli=34068 bytes fonts/source-code-pro/italic.latin.woff2: identity=23612 gzip=23612 brotli=23612 bytes fonts/source-code-pro/roman.latin.woff2: identity=22872 gzip=22872 brotli=22872 bytes fonts/geist-mono/italic.latin.woff2: identity=21380 gzip=21380 brotli=21380 bytes fonts/geist-mono/roman.latin.woff2: identity=19984 gzip=19984 brotli=19981 bytes fonts/ibm-plex-mono/italic.latin.woff2: identity=22296 gzip=22296 brotli=22296 bytes fonts/ibm-plex-mono/roman.latin.woff2: identity=19048 gzip=19048 brotli=19047 bytes fonts/cascadia-code/italic.latin.woff2: identity=44404 gzip=44404 brotli=44404 bytes fonts/cascadia-code/roman.latin.woff2: identity=40604 gzip=40604 brotli=40604 bytes fonts/maple-mono-nf/italic.latin.woff2: identity=53444 gzip=53444 brotli=53444 bytes fonts/maple-mono-nf/roman.latin.woff2: identity=46432 gzip=46432 brotli=46432 bytes fonts/nerd-symbols.woff2: identity=223748 gzip=223748 brotli=223748 bytes fonts/fira-code/roman.latin.woff2: identity=36756 gzip=36756 brotli=36756 bytes fonts/commit-mono/italic-400.latin.woff2: identity=18716 gzip=18716 brotli=18716 bytes fonts/commit-mono/italic-700.latin.woff2: identity=18352 gzip=18352 brotli=18352 bytes fonts/commit-mono/roman-400.latin.woff2: identity=17484 gzip=17484 brotli=17484 bytes fonts/commit-mono/roman-700.latin.woff2: identity=17260 gzip=17260 brotli=17260 bytes Font transfer: monaspace-neon=84340/88064 jetbrains-mono=70384/75776 source-code-pro=46484/49152 geist-mono=41364/45056 ibm-plex-mono=41344/45056 cascadia-code=85008/88064 maple-mono-nf=99876/106496 (critical 46432/51200) symbols=223748/235520 fira-code=36756/40960 commit-mono=71812/75776 bytes ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [9.49ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.28ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [1.24ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.32ms] (pass) split mux header preserves trailing Close [0.17ms] src/stream.test.ts: stream differential: 134 streams, 11439 schedules, zero divergences (pass) Rust and TypeScript preserve every frame at all boundaries and random multi-splits [2710.27ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [9.91ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.74s] ```
Author
Owner

Independent verification run 2 starts on review-renderer-cost at target 6b75ae8c43; merge base with dev is 42e50d42c5. Prior reviewer branch preserved locally as review-renderer-cost-run1 (f553a61c). RC-1/RC-2 history read; recheck fixes and test rendering, lifecycle, scale and remaining budget failures. Browser plugin unavailable; production Playwright uses unique port 4397. No implementation fixes, push, deployment or remote benchmarks.

Independent verification run 2 starts on review-renderer-cost at target 6b75ae8c432004e77ee970ef674d1bbfe01192e5; merge base with dev is 42e50d42c5e43dabc3da89de4b01dd92329bf030. Prior reviewer branch preserved locally as review-renderer-cost-run1 (f553a61c). RC-1/RC-2 history read; recheck fixes and test rendering, lifecycle, scale and remaining budget failures. Browser plugin unavailable; production Playwright uses unique port 4397. No implementation fixes, push, deployment or remote benchmarks.
Author
Owner

Independent step complete at 73f695a654. RC-1 (both appearance orders + touch pinch) and RC-2 pass; focused production Chromium suite 13/13 passed. RC-3 P2 records the acknowledged remaining hidden-memory gap as a new failing real-engine test: 200 states, 150x40→80x24→200x50→80x24, then render-buffer release, retain 1,131,282,432 WASM bytes = 5.394 MiB/session vs ≤2 MiB, before JS/native overhead. CPUWeight=10000, infraternal-dev load 28.58/22.90/18.63→29.92/23.87/19.12. Test: apps/tracer/test/renderer-retained-memory-review.spec.ts. Evidence: $HOME/.cache/codex-scratch/renderer-cost-review/run2/retained-memory.log. No implementation change; this is not claimed as a new regression versus dev.

Independent step complete at 73f695a654668546ec7af4a4bc06dff53a32a0a3. RC-1 (both appearance orders + touch pinch) and RC-2 pass; focused production Chromium suite 13/13 passed. RC-3 P2 records the acknowledged remaining hidden-memory gap as a new failing real-engine test: 200 states, 150x40→80x24→200x50→80x24, then render-buffer release, retain 1,131,282,432 WASM bytes = 5.394 MiB/session vs ≤2 MiB, before JS/native overhead. CPUWeight=10000, infraternal-dev load 28.58/22.90/18.63→29.92/23.87/19.12. Test: apps/tracer/test/renderer-retained-memory-review.spec.ts. Evidence: $HOME/.cache/codex-scratch/renderer-cost-review/run2/retained-memory.log. No implementation change; this is not claimed as a new regression versus dev.
Author
Owner

P1 RC-4 committed at 6278916232: appearance work suppresses output while paint callbacks advance. Production Chromium, 4x, CPUWeight=10000, RTT=0, port 4401; populated viewport → Paper selection → echoed home-position RGB background cell through normal mux Input/Output. outputSequence advances to 7771, but after two additional frames (115.6 ms) pixel remains old Ink [13,14,16,255], expected [18,52,86,255]; redrawPending=true. Empty-viewport control passes. Test: apps/tracer/test/renderer-output-paint-review.spec.ts. Cause: terminal.ts:1493 skips renderer.render during queued work, while terminal.ts:1212 still reports paint/advances sequence and prediction callbacks. This delays visible echo and makes paint latency evidence inaccurate during appearance work (D130). Log/screenshot: $HOME/.cache/codex-scratch/renderer-cost-review/run2/output-paint-echo.log and run2/output-artifacts/*/reported-output.png. No implementation fix.

P1 RC-4 committed at 62789162324b25163cab0b3d70b8a9c1dba62610: appearance work suppresses output while paint callbacks advance. Production Chromium, 4x, CPUWeight=10000, RTT=0, port 4401; populated viewport → Paper selection → echoed home-position RGB background cell through normal mux Input/Output. outputSequence advances to 7771, but after two additional frames (115.6 ms) pixel remains old Ink [13,14,16,255], expected [18,52,86,255]; redrawPending=true. Empty-viewport control passes. Test: apps/tracer/test/renderer-output-paint-review.spec.ts. Cause: terminal.ts:1493 skips renderer.render during queued work, while terminal.ts:1212 still reports paint/advances sequence and prediction callbacks. This delays visible echo and makes paint latency evidence inaccurate during appearance work (D130). Log/screenshot: $HOME/.cache/codex-scratch/renderer-cost-review/run2/output-paint-echo.log and run2/output-artifacts/*/reported-output.png. No implementation fix.
Author
Owner

Independent full matrix finished on the reviewed implementation: Chromium 4x, 14 theme/warm/resize and 8 cold-face samples, default RTT=300 ms, CPUWeight=10000, port 4397, load 33.75/26.16/20.36→22.51/28.41/25.50. Result: 3 supporting tests passed; budget spec failed. Input p95 theme/cold/warm/resize ms: 1=87.9/240.6/139.3/100.5; 4=48.6/579.7/255.0/159.4; 8=93.6/178.0/95.9/128.3. All 12 input/range checks fail; at 8 terminals timeouts are 14/3/14/14. Source/runtime unchanged apart from About build metadata as evidence commits landed; concurrent host/build load means no normalized speedup claim. Log and production screenshot: $HOME/.cache/codex-scratch/renderer-cost-review/run2/matrix.log and matrix-artifacts/renderer-cost-renderer-the-26839--the-visible-terminal-scale/renderer-cost-product-canvas-8.png.

Three alternating-order native 200-state before/after pairs confirm initial 1003.75→203.3125 MiB and history 1023.375→222.9375 MiB; resize high-water ~1105 MiB in both. Median workload 7771.2→7858.7 ms and resize 5904.9→6151.1 ms under load 43.85–48.10 do not establish the author's precise +56% observation. Evidence: run2/engine-pairs.mjs and engine-pairs.jsonl. Fast and latency gates continue on exact 6b75ae8c in local review-renderer-cost-gate; evidence commits remain on review-renderer-cost.

Independent full matrix finished on the reviewed implementation: Chromium 4x, 14 theme/warm/resize and 8 cold-face samples, default RTT=300 ms, CPUWeight=10000, port 4397, load 33.75/26.16/20.36→22.51/28.41/25.50. Result: 3 supporting tests passed; budget spec failed. Input p95 theme/cold/warm/resize ms: 1=87.9/240.6/139.3/100.5; 4=48.6/579.7/255.0/159.4; 8=93.6/178.0/95.9/128.3. All 12 input/range checks fail; at 8 terminals timeouts are 14/3/14/14. Source/runtime unchanged apart from About build metadata as evidence commits landed; concurrent host/build load means no normalized speedup claim. Log and production screenshot: $HOME/.cache/codex-scratch/renderer-cost-review/run2/matrix.log and matrix-artifacts/renderer-cost-renderer-the-26839--the-visible-terminal-scale/renderer-cost-product-canvas-8.png. Three alternating-order native 200-state before/after pairs confirm initial 1003.75→203.3125 MiB and history 1023.375→222.9375 MiB; resize high-water ~1105 MiB in both. Median workload 7771.2→7858.7 ms and resize 5904.9→6151.1 ms under load 43.85–48.10 do not establish the author's precise +56% observation. Evidence: run2/engine-pairs.mjs and engine-pairs.jsonl. Fast and latency gates continue on exact 6b75ae8c in local review-renderer-cost-gate; evidence commits remain on review-renderer-cost.
Author
Owner

Independent review progress at job head 6b75ae8c: native latency retry runs after the fast gate staged the musl wrapper. Baseline echo p99=329.02 ms and separate-session flood echo p99=307.94 ms pass the 334 ms budget. Same-session flood echo p99=430.76 ms fails; flood growth=101.74 ms exceeds 16.67 ms. Rust crates and this native harness are unchanged against merge base; this is gate evidence, not a renderer regression finding. Evidence: run2/native-latency-retry.log.

Browser oracle checks: merge-base wizard also fails expecting blur(16px) but receiving blur(8px). Merge-base canvas and two flow-card material tests pass; job head fails their root/body probes after theme scoping. The changed confirmation oracle scopes its probe correctly. Full suite and fast gate continue.

Independent review progress at job head 6b75ae8c: native latency retry runs after the fast gate staged the musl wrapper. Baseline echo p99=329.02 ms and separate-session flood echo p99=307.94 ms pass the 334 ms budget. Same-session flood echo p99=430.76 ms fails; flood growth=101.74 ms exceeds 16.67 ms. Rust crates and this native harness are unchanged against merge base; this is gate evidence, not a renderer regression finding. Evidence: run2/native-latency-retry.log. Browser oracle checks: merge-base wizard also fails expecting blur(16px) but receiving blur(8px). Merge-base canvas and two flow-card material tests pass; job head fails their root/body probes after theme scoping. The changed confirmation oracle scopes its probe correctly. Full suite and fast gate continue.
Author
Owner

Review progress: fast gate on exact job head 6b75ae8c exits 0; all six Rust rows pass, seven protocol tests pass with 34,390 assertions. Static binaries 15,965,392 B x86_64 / 13,426,064 B aarch64. Review commits only add failing tests (no binary/dependency change). Full output preserved at run2/fast.log and will accompany the final verdict.

The initial browser suite was interrupted because the concurrent fast bundle build overwrote its shared dist without the preview flag. Later cluster failures from that run are invalid evidence. Restarted all 358 browser tests in isolated detached 6b75ae8c scratch checkout, CPUWeight=10000, port 4405, RTT300. Native retry same-session flood metrics remain red; unchanged Rust/harness diff. RC-3 and RC-4 reproductions are separate completed runs and unaffected.

Review progress: fast gate on exact job head 6b75ae8c exits 0; all six Rust rows pass, seven protocol tests pass with 34,390 assertions. Static binaries 15,965,392 B x86_64 / 13,426,064 B aarch64. Review commits only add failing tests (no binary/dependency change). Full output preserved at run2/fast.log and will accompany the final verdict. The initial browser suite was interrupted because the concurrent fast bundle build overwrote its shared dist without the preview flag. Later cluster failures from that run are invalid evidence. Restarted all 358 browser tests in isolated detached 6b75ae8c scratch checkout, CPUWeight=10000, port 4405, RTT300. Native retry same-session flood metrics remain red; unchanged Rust/harness diff. RC-3 and RC-4 reproductions are separate completed runs and unaffected.
Author
Owner

Lower-load native repeat: three alternating before/after pairs, 200 retained states and the same history plus four-grid-change workload, CPUWeight=10000 on infraternal-dev. One-minute load 4.43–6.39. Median total 3240.63→3452.80 ms (+6.55%); resize 2531.09→2753.06 ms (+8.77%). Initial/history/resized committed memory remains identical to the earlier pair measurements. This corroborates a smaller cost for this workload, not the author’s precise +56% result. Evidence: run2/engine-pairs-lowload.jsonl. Isolated full browser suite continues.

Lower-load native repeat: three alternating before/after pairs, 200 retained states and the same history plus four-grid-change workload, CPUWeight=10000 on infraternal-dev. One-minute load 4.43–6.39. Median total 3240.63→3452.80 ms (+6.55%); resize 2531.09→2753.06 ms (+8.77%). Initial/history/resized committed memory remains identical to the earlier pair measurements. This corroborates a smaller cost for this workload, not the author’s precise +56% result. Evidence: run2/engine-pairs-lowload.jsonl. Isolated full browser suite continues.
Author
Owner

Isolated browser suite is past the mesh reconnect/idempotency checks. Repeats: desktop split, toolbar drag, container shell, and all three font cell-metric DPR variants pass on reviewed implementation in standalone runs; camera flights fail at both head and merge base in current load window. Core-screen repeats fail on its obsolete documentElement material-token oracle after scoping. Ink level4/DPR3 and Paper level3+4/DPR3 ghosting fail at merge base too. No additional confirmed renderer defect from these gate failures. Logs: timing-repeat.log, core-repeat.log, shell-repeat.log, baseline-timing-repeat.log, baseline-ghost.log, baseline-paper-ghost.log. Full suite continues; RC-3 P2 / RC-4 P1 remain reproducible and committed.

Isolated browser suite is past the mesh reconnect/idempotency checks. Repeats: desktop split, toolbar drag, container shell, and all three font cell-metric DPR variants pass on reviewed implementation in standalone runs; camera flights fail at both head and merge base in current load window. Core-screen repeats fail on its obsolete documentElement material-token oracle after scoping. Ink level4/DPR3 and Paper level3+4/DPR3 ghosting fail at merge base too. No additional confirmed renderer defect from these gate failures. Logs: timing-repeat.log, core-repeat.log, shell-repeat.log, baseline-timing-repeat.log, baseline-ghost.log, baseline-paper-ghost.log. Full suite continues; RC-3 P2 / RC-4 P1 remain reproducible and committed.
Author
Owner

RC-5 P2 — Mesh confirmation loses selected scoped material. Location packages/ui/src/tooltip.ts:250 mounts on document.body; packages/ui/src/themes.ts:160/166 now limits selected material to terminal-screen descendants. Clear/Ink production confirmation actual rgba(28,28,30,0.7), blur8; shared owning-screen material rgba(28,28,30,0.4), blur24. insideScreen=false. Existing Mesh material test passes at merge base, fails reviewed head. New focused normal test Mesh confirmation retains the selected screen material fails and is committed at 747bdfdb3b, apps/tracer/test/mesh.spec.ts. No implementation fix. Evidence run2/mesh-scoped-review.log and mesh-scoped-review-artifacts/*/mesh-confirmation.png; CPUWeight10000, unique4415, default300RTT. This is a real portal appearance gap, distinct from obsolete root-probe oracles. Current unresolved counts P0=0/P1=1/P2=2/P3=0.

RC-5 P2 — Mesh confirmation loses selected scoped material. Location packages/ui/src/tooltip.ts:250 mounts on document.body; packages/ui/src/themes.ts:160/166 now limits selected material to terminal-screen descendants. Clear/Ink production confirmation actual rgba(28,28,30,0.7), blur8; shared owning-screen material rgba(28,28,30,0.4), blur24. insideScreen=false. Existing Mesh material test passes at merge base, fails reviewed head. New focused normal test Mesh confirmation retains the selected screen material fails and is committed at 747bdfdb3b912087681c6bdbb8ae9416cbe9cdd7, apps/tracer/test/mesh.spec.ts. No implementation fix. Evidence run2/mesh-scoped-review.log and mesh-scoped-review-artifacts/*/mesh-confirmation.png; CPUWeight10000, unique4415, default300RTT. This is a real portal appearance gap, distinct from obsolete root-probe oracles. Current unresolved counts P0=0/P1=1/P2=2/P3=0.
Author
Owner

Independent verification verdict: merge after fixes.

Reviewed renderer-cost at 6b75ae8c43 against merge base 42e50d42c5. Evidence branch review-renderer-cost head 747bdfdb3b. No implementation fixes, push, deployment or remote benchmark.

Unresolved confirmed findings: P0=0, P1=1, P2=2, P3=0. Earlier RC-1/RC-2 are fixed and their production tests pass.

  • RC-4 P1 (62789162): outputSequence and paint callbacks advance while appearance work suppresses normal rendering. Populated production canvas still shows old Ink [13,14,16,255] instead of echoed RGB [18,52,86,255] after two additional frames, with redrawPending=true. Reproduced at default 300 ms RTT. Test apps/tracer/test/renderer-output-paint-review.spec.ts.
  • RC-3 P2 (73f695a6): 200 retained, returned-to-80x24 VT states after ordinary grid changes and releaseRenderBuffers retain 1,131,282,432 WASM bytes (5.394 MiB/session), excluding JS/native memory, above the 2 MiB hidden budget. This records the known acceptance gap. Test apps/tracer/test/renderer-retained-memory-review.spec.ts.
  • RC-5 P2 (747bdfdb): Mesh grant confirmation mounted on document.body escapes the scoped appearance. Clear/Ink selected screen material is rgba(28,28,30,0.4), blur24; confirmation gets rgba(28,28,30,0.7), blur8. New focused test apps/tracer/test/mesh.spec.ts:614 fails; old Mesh material test passes at merge base and fails at reviewed head.

Production screenshot evidence under $HOME/.cache/codex-scratch/renderer-cost-review/run2/: output-rtt-artifacts//reported-output.png; mesh-scoped-review-artifacts//mesh-confirmation.png; capture-clean-artifacts/*/settled-overview.png. Full suite artifacts preserved in full-browser-artifacts. Findings appended as they were confirmed to $HOME/.local/state/codex-jobs/infraternal/review-renderer-cost/findings.md.

Performance acceptance remains red. Default-300-RTT, 4x-CPU 14/8-sample real production matrix: all 12 input and range p95 limits fail; eight-terminal theme/warm-font/resize time out 14/14, cold-font 3/8. Actual 200-session projections at 1/4/8 visible: 2048.8/1577.0/1231.6 MiB. Native three-pair lower-load engine workload at 200 retained states confirms initial 1003.75→203.3125 MiB and after-history 1023.375→222.9375 MiB; after resize high-water ~1105 MiB both. Under one-minute load 4.43–6.39, median total 3240.63→3452.80 ms (+6.55%), resize 2531.09→2753.06 ms (+8.77%). This workload does not independently reproduce the author's exact +56% observation. Benchmarks ran locally on infraternal-dev under CPUWeight=10000; matrix loads 33.75/26.16/20.36→22.51/28.41/25.50. No load generators. Logs matrix.log, engine-pairs.jsonl, engine-pairs-lowload.jsonl.

Gates: scripts/verify fast on exact job head exits 0; complete output below verbatim. Fast gate also exits 0 on final review head with all three finding tests. Each architecture has the same binary size on job and review heads: x86_64 15,965,392 B / aarch64 13,426,064 B (review commit set delta 0 B; no new dependency or Rust implementation). All reviewer tests compile, and git diff --check passes.

Latency components are red. Initial native build attempted before compiler-wrapper staging; retried successfully after staging. Real infraternal agent PTY baseline p99 329.02 ms and other-session flood 307.94 ms pass 334 ms; same-session flood 430.76 ms and growth 101.74 ms fail. Rust/harness paths are unchanged in this diff. Auth-browser components passed. Full isolated production browser suite on exact 6b75ae8c finishes 299 passed, 27 skipped, 32 failed (1.1h); no attempt to present this as a passing latency gate. The first browser run was interrupted because a concurrent fast build replaced its shared dist; later results from that interrupted run were discarded, and the entire browser suite reran in an isolated checkout, port 4405.

Browser failure classification: obsolete root/body theme probes in flow cards, canvas, core-screen, contrast; wizard blur16 assertion fails at merge base too. Camera-flight ceiling, four DPR3 ghosting cases, motion audit, pending-glyph capture and four sign-in snapshot holds have baseline failures. Cell metrics, split focus, toolbar drag, container shell, predictive cursor gating/first-key cost, rename and empty/loading/error states pass in standalone reviewed-head repeats. First-run head fails returning-signin p99 5134.80 ms versus 5000; baseline run fails earlier at connection wait (different assertion). Setup-screen p99 2376.20 ms versus 1000; baseline also exceeds 1000 at 1819.70. Throughput head shows prediction penalty 5.26% versus 5% allowance; separate baseline shows+14.45%; not a controlled proof of a new regression. These failed gate rows stay recorded, not excused. Main failure log browser-isolated.log; baseline/repeat logs beside it. Shared-host load varied; no normalized browser speedup claim.

Reviewer checklist: contracts/wire/auth are unchanged; no new decoder requiring fuzz target, migration or foundational dependency. Verified real pinned WASM, production canvases, retained state, appearance ordering, native font setters, atlas lifetime, protocol differential tests and scale 200. Three logical test commits, module role comments, issue history and evidence retained. Actual iPhone/Safari/120 Hz owner validation remains outstanding.

scripts/verify fast — reviewed job head 6b75ae8c — exit 0, verbatim:

METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=307.27 p99_ms=316.33 result=PASS

==> fmt

==> VT native fmt

==> clippy
   Compiling proc-macro2 v1.0.107
   Compiling quote v1.0.47
   Compiling unicode-ident v1.0.26
   Compiling libc v0.2.190
    Checking cfg-if v1.0.5
   Compiling autocfg v1.5.1
   Compiling serde v1.0.229
    Checking memchr v2.8.3
   Compiling serde_core v1.0.229
   Compiling version_check v0.9.5
    Checking itoa v1.0.18
   Compiling find-msvc-tools v0.1.14
   Compiling shlex v2.0.1
    Checking pin-project-lite v0.2.17
   Compiling generic-array v0.14.7
   Compiling zmij v1.0.23
    Checking typenum v1.20.1
    Checking bytes v1.12.1
    Checking bitflags v2.13.2
   Compiling pkg-config v0.3.34
   Compiling vcpkg v0.2.15
   Compiling icu_properties_data v2.3.0
   Compiling jobserver v0.1.35
   Compiling zerocopy v0.8.60
   Compiling icu_normalizer_data v2.3.0
   Compiling serde_json v1.0.151
    Checking futures-core v0.3.34
   Compiling memoffset v0.9.1
    Checking getrandom v0.2.17
    Checking errno v0.3.14
    Checking mio v1.2.4
   Compiling cc v1.6.0
    Checking socket2 v0.6.5
    Checking stable_deref_trait v1.2.1
    Checking rand_core v0.6.4
   Compiling thiserror v2.0.21
   Compiling cfg_aliases v0.2.2
    Checking signal-hook-registry v1.4.8
   Compiling syn v3.0.6
   Compiling syn v2.0.119
    Checking crypto-common v0.1.7
   Compiling num-traits v0.2.19
   Compiling nix v0.30.1
    Checking subtle v2.6.1
    Checking smallvec v1.16.2
    Checking once_cell v1.21.4
    Checking log v0.4.34
    Checking futures-sink v0.3.34
    Checking arrayvec v0.7.8
    Checking tracing-core v0.1.36
   Compiling parking_lot_core v0.9.12
   Compiling crossbeam-utils v0.8.23
   Compiling openssl-src v300.6.1+3.6.3
    Checking block-buffer v0.10.4
    Checking slab v0.4.12
    Checking cpufeatures v0.2.17
    Checking writeable v0.6.4
    Checking litemap v0.8.3
   Compiling openssl-sys v0.9.117
    Checking digest v0.10.7
    Checking utf8_iter v1.0.4
   Compiling tracing-attributes v0.1.31
   Compiling zerocopy-derive v0.8.60
    Checking http v1.5.0
   Compiling serde_derive v1.0.229
   Compiling synstructure v0.14.0
   Compiling displaydoc v0.2.7
   Compiling zerovec-derive v0.11.6
   Compiling tokio-macros v2.7.2
   Compiling zerofrom-derive v0.1.8
   Compiling yoke-derive v0.8.4
   Compiling thiserror-impl v2.0.21
    Checking tokio v1.53.2
    Checking tracing v0.1.44
    Checking percent-encoding v2.3.2
    Checking zerofrom v0.1.8
    Checking either v1.18.0
   Compiling yoke v0.8.3
    Checking equivalent v1.0.2
   Compiling zerovec v0.11.8
    Checking zerotrie v0.2.5
    Checking tinystr v0.8.4
    Checking potential_utf v0.1.6
    Checking icu_collections v2.3.0
    Checking icu_locale_core v2.3.0
   Compiling getrandom v0.3.4
   Compiling scopeguard v1.2.0
    Checking ppv-lite86 v0.2.21
    Checking half v2.7.1
   Compiling lock_api v0.4.14
    Checking icu_provider v2.3.1
    Checking icu_properties v2.3.0
    Checking icu_normalizer v2.3.0
    Checking form_urlencoded v1.2.2
   Compiling futures-macro v0.3.34
    Checking vte v0.15.0
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim)
    Checking futures-task v0.3.34
   Compiling getrandom v0.4.3
    Checking hashbrown v0.17.1
   Compiling heck v0.5.0
    Checking futures-io v0.3.34
    Checking idna_adapter v1.2.2
    Checking futures-util v0.3.34
    Checking indexmap v2.14.2
   Compiling libsqlite3-sys v0.30.1
   Compiling httparse v1.10.1
    Checking regex-syntax v0.8.11
   Compiling num-conv v0.2.2
   Compiling time-core v0.1.9
    Checking minimal-lexical v0.2.1
   Compiling thiserror v1.0.69
    Checking infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol)
   Compiling time-macros v0.2.32
    Checking nom v7.1.3
    Checking regex-automata v0.4.18
    Checking rand_core v0.9.5
    Checking idna v1.1.0
    Checking http-body v1.1.0
   Compiling thiserror-impl v1.0.69
   Compiling synstructure v0.13.2
   Compiling openssl v0.10.81
   Compiling foldhash v0.1.5
    Checking deranged v0.5.8
   Compiling allocator-api2 v0.2.21
    Checking powerfmt v0.2.1
    Checking foreign-types-shared v0.1.1
   Compiling hashbrown v0.15.5
    Checking foreign-types v0.3.2
    Checking time v0.3.55
   Compiling asn1-rs-derive v0.5.1
    Checking rusticata-macros v4.1.0
   Compiling parking_lot v0.12.5
    Checking url v2.5.8
    Checking uuid v1.27.0
    Checking rand_chacha v0.9.0
    Checking tokio-util v0.7.19
   Compiling asn1-rs-impl v0.2.0
   Compiling openssl-macros v0.1.1
    Checking futures-channel v0.3.34
   Compiling parking v2.2.1
    Checking tower-service v0.3.3
    Checking data-encoding v2.11.1
   Compiling crc-catalog v2.5.0
   Compiling crossbeam-queue v0.3.14
   Compiling crc v3.4.0
   Compiling sha2 v0.10.9
   Compiling event-listener v5.4.2
   Compiling tokio-stream v0.1.19
    Checking asn1-rs v0.6.2
    Checking rand v0.9.5
   Compiling futures-intrusive v0.5.0
   Compiling hashlink v0.10.0
   Compiling spin v0.9.9
    Checking num-integer v0.1.47
   Compiling pastey v0.1.1
    Checking utf8parse v0.2.2
   Compiling oid-registry v0.7.1
   Compiling ryu v1.0.23
    Checking httpdate v1.0.3
    Checking fnv v1.0.7
   Compiling base64 v0.22.1
    Checking base64 v0.21.7
    Checking atomic-waker v1.1.2
    Checking lazy_static v1.5.1
   Compiling serde_urlencoded v0.7.1
    Checking anstyle-parse v1.0.0
    Checking h2 v0.4.19
    Checking base64urlsafedata v0.5.5
   Compiling sqlx-core v0.8.6
   Compiling atoi v2.0.0
    Checking num-bigint v0.4.8
   Compiling flume v0.11.1
   Compiling futures-executor v0.3.34
   Compiling unicase v2.10.0
   Compiling webauthn-attestation-ca v0.5.5
    Checking anstyle-query v1.1.5
    Checking tower-layer v0.3.3
    Checking colorchoice v1.0.5
    Checking mime v0.3.17
   Compiling rustversion v1.0.23
    Checking anstyle v1.0.14
    Checking is_terminal_polyfill v1.70.2
    Checking hyper v1.11.1
    Checking anstream v1.0.0
   Compiling sqlx-sqlite v0.8.6
   Compiling mime_guess v2.0.5
    Checking der-parser v9.0.0
    Checking http-body-util v0.1.5
    Checking sha1 v0.10.7
   Compiling fs-err v3.3.2
   Compiling webauthn-rs-core v0.5.5
   Compiling tokio-openssl v0.6.5
    Checking strsim v0.11.1
   Compiling dotenvy v0.15.7
    Checking clap_lex v1.1.1
    Checking sync_wrapper v1.0.2
   Compiling hex v0.4.3
    Checking clap_builder v4.6.7
    Checking tungstenite v0.29.0
    Checking x509-parser v0.16.0
   Compiling sqlx-macros-core v0.8.6
    Checking hyper-util v0.1.21
    Checking webauthn-rs-proto v0.5.5
   Compiling clap_derive v4.6.7
    Checking serde_cbor_2 v0.13.0
    Checking rand_chacha v0.3.1
    Checking hex-conservative v0.2.3
    Checking tinyvec v1.13.3
    Checking base64ct v1.8.3
    Checking rand v0.8.8
    Checking clap v4.6.7
    Checking unicode-normalization v0.1.25
    Checking password-hash v0.5.0
    Checking bitcoin_hashes v0.14.101
   Compiling sqlx-macros v0.8.6
    Checking arc-swap v1.9.2
    Checking tokio-tungstenite v0.29.0
    Checking axum-core v0.5.6
    Checking tower v0.5.3
    Checking sharded-slab v0.1.7
    Checking matchers v0.2.0
    Checking tracing-serde v0.2.0
    Checking blake2 v0.10.6
    Checking tracing-log v0.2.0
    Checking serde_path_to_error v0.1.20
    Checking thread_local v1.1.10
    Checking http-range-header v0.4.2
    Checking nu-ansi-term v0.50.3
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server)
    Checking matchit v0.8.4
    Checking tower-http v0.6.11
    Checking argon2 v0.5.3
    Checking bip39 v2.2.2
    Checking tracing-subscriber v0.3.23
    Checking sqlx v0.8.6
    Checking unicode-width v0.2.2
    Checking axum v0.8.9
   Compiling crossbeam-epoch v0.9.21
   Compiling crossbeam-deque v0.8.8
   Compiling rayon-core v1.13.0
    Checking inout v0.1.4
    Checking ciborium-io v0.2.2
    Checking vt100 v0.16.2
    Checking plotters-backend v0.3.7
    Checking ciborium-ll v0.2.2
    Checking cipher v0.4.4
    Checking itertools v0.13.0
    Checking plotters-svg v0.3.7
    Checking universal-hash v0.5.1
   Compiling libfuzzer-sys v0.4.13
    Checking opaque-debug v0.3.1
    Checking same-file v1.0.6
    Checking cast v0.3.0
    Checking polyval v0.6.2
    Checking plotters v0.3.7
    Checking walkdir v2.5.0
    Checking rayon v1.12.0
    Checking criterion-plot v0.6.0
    Checking ciborium v0.2.2
    Checking regex v1.13.1
    Checking infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-mesh)
    Checking tinytemplate v1.2.1
    Checking oorandom v11.1.5
    Checking arbitrary v1.4.2
    Checking anes v0.1.6
    Checking ghash v0.5.1
    Checking aes v0.8.4
    Checking ctr v0.9.2
    Checking hmac v0.12.1
    Checking aead v0.5.2
    Checking hkdf v0.12.4
    Checking criterion v0.7.0
    Checking aes-gcm v0.10.3
    Checking infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/plugins/ssh)
    Checking infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-plugin-api)
    Checking infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent)
    Checking infraternal-fuzz v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/fuzz)
    Checking axum-server v0.8.0
    Checking webauthn-rs v0.5.5
    Checking infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 56s

==> test
   Compiling cfg-if v1.0.5
   Compiling memchr v2.8.3
   Compiling itoa v1.0.18
   Compiling libc v0.2.190
   Compiling pin-project-lite v0.2.17
   Compiling serde_core v1.0.229
   Compiling typenum v1.20.1
   Compiling bytes v1.12.1
   Compiling futures-core v0.3.34
   Compiling zerofrom v0.1.8
   Compiling stable_deref_trait v1.2.1
   Compiling zmij v1.0.23
   Compiling once_cell v1.21.4
   Compiling generic-array v0.14.7
   Compiling yoke v0.8.3
   Compiling bitflags v2.13.2
   Compiling writeable v0.6.4
   Compiling litemap v0.8.3
   Compiling utf8_iter v1.0.4
   Compiling zerocopy v0.8.60
   Compiling block-buffer v0.10.4
   Compiling icu_normalizer_data v2.3.0
   Compiling cpufeatures v0.2.17
   Compiling log v0.4.34
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling getrandom v0.2.17
   Compiling errno v0.3.14
   Compiling mio v1.2.4
   Compiling socket2 v0.6.5
   Compiling smallvec v1.16.2
   Compiling signal-hook-registry v1.4.8
   Compiling rand_core v0.6.4
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling subtle v2.6.1
   Compiling thiserror v2.0.21
   Compiling tokio v1.53.2
   Compiling icu_locale_core v2.3.0
   Compiling icu_collections v2.3.0
   Compiling memoffset v0.9.1
   Compiling crypto-common v0.1.7
   Compiling serde v1.0.229
   Compiling serde_json v1.0.151
   Compiling icu_properties_data v2.3.0
   Compiling tracing-core v0.1.36
   Compiling percent-encoding v2.3.2
   Compiling nix v0.30.1
   Compiling icu_provider v2.3.1
   Compiling num-traits v0.2.19
   Compiling futures-sink v0.3.34
   Compiling form_urlencoded v1.2.2
   Compiling futures-io v0.3.34
   Compiling arrayvec v0.7.8
   Compiling icu_properties v2.3.0
   Compiling equivalent v1.0.2
   Compiling futures-task v0.3.34
   Compiling scopeguard v1.2.0
   Compiling tracing v0.1.44
   Compiling slab v0.4.12
   Compiling hashbrown v0.17.1
   Compiling crossbeam-utils v0.8.23
   Compiling lock_api v0.4.14
   Compiling digest v0.10.7
   Compiling either v1.18.0
   Compiling http v1.5.0
   Compiling ppv-lite86 v0.2.21
   Compiling indexmap v2.14.2
   Compiling half v2.7.1
   Compiling icu_normalizer v2.3.0
   Compiling foldhash v0.1.5
   Compiling allocator-api2 v0.2.21
   Compiling futures-util v0.3.34
   Compiling idna_adapter v1.2.2
   Compiling getrandom v0.3.4
   Compiling getrandom v0.4.3
   Compiling num-conv v0.2.2
   Compiling parking v2.2.1
   Compiling hashbrown v0.15.5
   Compiling minimal-lexical v0.2.1
   Compiling ryu v1.0.23
   Compiling crc-catalog v2.5.0
   Compiling regex-syntax v0.8.11
   Compiling time-core v0.1.9
   Compiling crc v3.4.0
   Compiling hashlink v0.10.0
   Compiling nom v7.1.3
   Compiling event-listener v5.4.2
   Compiling time-macros v0.2.32
   Compiling http-body v1.1.0
   Compiling rand_core v0.9.5
   Compiling idna v1.1.0
   Compiling uuid v1.27.0
   Compiling spin v0.9.9
   Compiling parking_lot_core v0.9.12
   Compiling vte v0.15.0
   Compiling foreign-types-shared v0.1.1
   Compiling deranged v0.5.8
   Compiling powerfmt v0.2.1
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim)
   Compiling regex-automata v0.4.18
   Compiling rusticata-macros v4.1.0
   Compiling foreign-types v0.3.2
   Compiling parking_lot v0.12.5
   Compiling thiserror v1.0.69
   Compiling url v2.5.8
   Compiling rand_chacha v0.9.0
   Compiling httparse v1.10.1
   Compiling tokio-util v0.7.19
   Compiling time v0.3.55
   Compiling openssl-sys v0.9.117
   Compiling futures-channel v0.3.34
   Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol)
   Compiling data-encoding v2.11.1
   Compiling tower-service v0.3.3
   Compiling rand v0.9.5
   Compiling openssl v0.10.81
   Compiling crossbeam-queue v0.3.14
   Compiling futures-intrusive v0.5.0
   Compiling libsqlite3-sys v0.30.1
   Compiling asn1-rs v0.6.2
   Compiling sha2 v0.10.9
   Compiling num-integer v0.1.47
   Compiling hex v0.4.3
   Compiling atomic-waker v1.1.2
   Compiling httpdate v1.0.3
   Compiling base64 v0.21.7
   Compiling lazy_static v1.5.1
   Compiling fnv v1.0.7
   Compiling num-bigint v0.4.8
   Compiling base64urlsafedata v0.5.5
   Compiling atoi v2.0.0
   Compiling h2 v0.4.19
   Compiling futures-executor v0.3.34
   Compiling flume v0.11.1
   Compiling serde_urlencoded v0.7.1
   Compiling tokio-stream v0.1.19
   Compiling unicase v2.10.0
   Compiling tower-layer v0.3.3
   Compiling utf8parse v0.2.2
   Compiling sqlx-core v0.8.6
   Compiling mime v0.3.17
   Compiling base64 v0.22.1
   Compiling mime_guess v2.0.5
   Compiling anstyle-parse v1.0.0
   Compiling der-parser v9.0.0
   Compiling oid-registry v0.7.1
   Compiling http-body-util v0.1.5
   Compiling sha1 v0.10.7
   Compiling sqlx-sqlite v0.8.6
   Compiling anstyle-query v1.1.5
   Compiling is_terminal_polyfill v1.70.2
   Compiling anstyle v1.0.14
   Compiling sync_wrapper v1.0.2
   Compiling colorchoice v1.0.5
   Compiling tungstenite v0.29.0
   Compiling x509-parser v0.16.0
   Compiling webauthn-attestation-ca v0.5.5
   Compiling webauthn-rs-proto v0.5.5
   Compiling anstream v1.0.0
   Compiling hyper v1.11.1
   Compiling serde_cbor_2 v0.13.0
   Compiling rand_chacha v0.3.1
   Compiling hex-conservative v0.2.3
   Compiling base64ct v1.8.3
   Compiling clap_lex v1.1.1
   Compiling sqlx-macros-core v0.8.6
   Compiling tinyvec v1.13.3
   Compiling strsim v0.11.1
   Compiling rand v0.8.8
   Compiling password-hash v0.5.0
   Compiling bitcoin_hashes v0.14.101
   Compiling hyper-util v0.1.21
   Compiling clap_builder v4.6.7
   Compiling webauthn-rs-core v0.5.5
   Compiling unicode-normalization v0.1.25
   Compiling tokio-tungstenite v0.29.0
   Compiling sqlx-macros v0.8.6
   Compiling arc-swap v1.9.2
   Compiling tower v0.5.3
   Compiling axum-core v0.5.6
   Compiling fs-err v3.3.2
   Compiling tokio-openssl v0.6.5
   Compiling sharded-slab v0.1.7
   Compiling matchers v0.2.0
   Compiling blake2 v0.10.6
   Compiling tracing-serde v0.2.0
   Compiling tracing-log v0.2.0
   Compiling serde_path_to_error v0.1.20
   Compiling thread_local v1.1.10
   Compiling http-range-header v0.4.2
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server)
   Compiling matchit v0.8.4
   Compiling nu-ansi-term v0.50.3
   Compiling clap v4.6.7
   Compiling axum-server v0.8.0
   Compiling webauthn-rs v0.5.5
   Compiling tower-http v0.6.11
   Compiling bip39 v2.2.2
   Compiling argon2 v0.5.3
   Compiling tracing-subscriber v0.3.23
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent)
   Compiling axum v0.8.9
   Compiling unicode-width v0.2.2
   Compiling sqlx v0.8.6
   Compiling crossbeam-epoch v0.9.21
   Compiling inout v0.1.4
   Compiling universal-hash v0.5.1
   Compiling ciborium-io v0.2.2
   Compiling cipher v0.4.4
   Compiling vt100 v0.16.2
   Compiling plotters-backend v0.3.7
   Compiling opaque-debug v0.3.1
   Compiling ciborium-ll v0.2.2
   Compiling crossbeam-deque v0.8.8
   Compiling itertools v0.13.0
   Compiling polyval v0.6.2
   Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-mesh)
   Compiling cast v0.3.0
   Compiling plotters-svg v0.3.7
   Compiling rayon-core v1.13.0
   Compiling same-file v1.0.6
   Compiling plotters v0.3.7
   Compiling ghash v0.5.1
   Compiling walkdir v2.5.0
   Compiling rayon v1.12.0
   Compiling ciborium v0.2.2
   Compiling criterion-plot v0.6.0
   Compiling ctr v0.9.2
   Compiling aes v0.8.4
   Compiling regex v1.13.1
   Compiling hmac v0.12.1
   Compiling tinytemplate v1.2.1
   Compiling aead v0.5.2
   Compiling oorandom v11.1.5
   Compiling anes v0.1.6
   Compiling hkdf v0.12.4
   Compiling aes-gcm v0.10.3
   Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/plugins/ssh)
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-plugin-api)
   Compiling criterion v0.7.0
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 54s
     Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal-e5690224bd303581)

running 2 tests
test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok
test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_daemon-c1009f458483aa8f)

running 1 test
test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 42.20s

     Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_queues-6c04c309be0957c1)

running 1 test
test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 35.75s

     Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_review-54f50cf057262edb)

running 6 tests
test initial_attach_requires_explicit_credit_before_replay ... ok
test last_typist_selects_its_own_real_pty_dimensions ... ok
test repeated_tiny_credit_pauses_preserve_shell_progress ... ok
test retained_unwritten_input_survives_interleaved_ack_restart ... ok
test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok
test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 29.42s

     Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_sessions-ff521b125a460892)

running 1 test
test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s

     Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/idle_canary-f539ea7494e88d68)

running 1 test
test one_hertz_wakeup_is_detected_past_the_legacy_half_second_window ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s

     Running tests/shim.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/shim-ab657005a3347209)

running 7 tests
test attached_backpressure_and_detached_progress ... ok
test disallowed_signal_only_disconnects_peer ... ok
test double_fork_survives_parent_death ... ok
test real_shell_reconnect_resize_and_retained_exit ... ok
test replacement_connection_and_malformed_limit ... ok
test ring_wrap_snapshot_repaints_real_vim ... ok
test user_scope_survives_parent_unit_stop ... active
ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.70s

     Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/vt_credit-51d52cc011d1b6d3)

running 1 test
test unaffordable_repaints_park_until_sufficient_credit ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.67s

     Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/vt_reconnect-ebce90a6a196ada5)

running 1 test
test snapshot_limits_never_close_live_reconnect ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.24s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_agent-211380b0185e0960)

running 16 tests
test relay::tests::attachment_has_no_implicit_output_or_snapshot_credit ... ok
test relay::tests::expired_credit_resumes_retained_bytes_at_the_same_cursor ... ok
test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok
test relay::tests::output_partial_credit_and_dedup ... ok
test relay::tests::output_payload_move_measurement ... ignored, release ownership versus payload-copy measurement
test relay::tests::overflowing_ranges_never_mutate_cursors ... ok
test relay::tests::positive_insufficient_credit_arms_a_one_shot_deadline ... ok
test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok
test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok
test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok
test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok
test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok
test sessions::tests::reader_borrow_measurement ... ignored, release borrowed versus owned asynchronous receive measurement
test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok
test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok
test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok

test result: ok. 14 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.07s

     Running tests/transport.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/transport-a619415ba769b0e5)

running 2 tests
test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok
test oversized_header_and_truncated_frame_are_rejected ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_mesh-3f967587718407e9)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/default_arrow-312553ba19630584)

running 1 test
test omitted_arrow_ports_default_to_all_services ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/properties.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/properties-78f35bbe1b57dcd5)

running 14 tests
test addresses_are_unique_stable_and_not_recycled ... ok
test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok
test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok
test directional_grants_union_and_minimal_updates ... ok
test exhausted_versions_reject_mutations_without_changing_state ... ok
test join_to_same_tag_grants_both_initiation_directions ... ok
test names_versions_and_backend_status ... ok
test overlaps_are_reported_without_silent_range_changes ... ok
test private_material_never_enters_debug_or_coordination_serialization ... ok
test protocol_port_unions_never_grant_an_unlisted_service ... ok
test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok
test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... ok
test seeded_random_sequences_equal_full_compile_and_deny_without_grants ... ok
test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok

test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.03s

     Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/rotation_time-a58dd287253d611d)

running 1 test
test unrepresentable_rotation_overlap_rejects_before_mutation ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_protocol-67b9a310ef49abf9)

running 7 tests
test stream_tests::all_short_frame_splits_match_direct_decoding ... ok
test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok
test stream_tests::split_mux_header_preserves_trailing_close ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_server-1fc3be3a3786e8db)

running 109 tests
test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok
test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok
test auth::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::aaguid_migration_preserves_legacy_credentials_and_sessions ... ok
test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... ok
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok
test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok
test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok
test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok
test auth::tests::pending_unlock_expires_without_terminal_authority ... ok
test auth::tests::provider_labels_cover_the_cited_registry_without_guessing ... ok
test auth::tests::provider_session_latency_at_50_devices ... ignored, local auth session scale measurement; run without concurrent builds
test auth::tests::public_status_and_discoverable_http_login ... ok
test auth::tests::recovery_audit_commits_once_with_start_cancel_and_complete ... ok
test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::recovery_http_live_same_account_is_immediate ... ok
test auth::tests::recovery_http_other_expired_pending_and_missing_sessions_wait ... ok
test auth::tests::recovery_live_session_cannot_accelerate_an_active_delayed_request ... ok
test auth::tests::recovery_live_session_revoked_during_verification_cannot_waive_delay ... ok
test auth::tests::recovery_session_delay_latency_at_capacity ... ignored, release-only recovery measurement at 50 live sessions; run without concurrent compilation
test auth::tests::recovery_unknown_identity_pays_the_same_database_and_verifier_work ... ok
test auth::tests::recovery_username_identity_is_additive_and_ambiguous_forms_fail ... ok
test auth::tests::recovery_verifier_latency_at_capacity ... ignored, release-only v2 diagnostic at 50 live session rows; record host load separately
test auth::tests::redacted_unknown_and_failed_registrations_do_not_claim_a_provider ... ok
test auth::tests::registration_aaguid_survives_none_attestation_and_binds_session_provider ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok
test auth::tests::review3_tests::review3_busy_expiry ... ok
test auth::tests::review3_tests::review3_busy_logout ... ok
test auth::tests::review3_tests::review3_busy_recovery ... ok
test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok
test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok
test auth::tests::review3_tests::review3_unwrap_cannot_be_skipped ... ok
test auth::tests::review3_tests::review3_waiting_handshake_loses_authority ... ok
test auth::tests::review3_tests::review4_open_reply_and_revocation_preserve_authority ... ok
test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds
test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok
test auth::tests::review_old_words_race_rotation ... ok
test auth::tests::reviewer_tests::reviewer_disk_cancel_complete_races ... ok
test auth::tests::reviewer_tests::reviewer_disk_restart_and_concurrent_resume ... ok
test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok
test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok
test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok
test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... ok
test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok
test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch ... ok
test auth::tests::rotation_tests::recovery_rotation_denies_pending_expired_and_stale_sessions ... ok
test auth::tests::rotation_tests::recovery_rotation_requires_session_and_replaces_legacy_envelope ... ok
test auth::tests::rotation_tests::reviewer_concurrent_signed_in_rotations_commit_once ... ok
test auth::tests::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test auth::tests::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... ok
test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok
test auth::tests::setup_start_accepts_username_and_display_name ... ok
test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... ok
test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok
test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok
test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok
test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok
test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... ok
test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... ok
test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok
test embedded::regressions::credited_bulk_output_survives_forwarder_io_pause ... ok
test embedded::regressions::credited_output_queue_at_stream_capacity ... ignored, debug actor memory/scheduling measurement; run without concurrent builds
test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok
test embedded::regressions::healthy_receiver_survives_ready_native_output_burst ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok
test embedded::regressions::real_agent_canonical_uuid_result_is_accepted ... ok
test embedded::regressions::real_agent_open_uses_uid_and_character_dimensions ... ok
test embedded::regressions::reattach_must_restore_output_credit ... ok
test embedded::regressions::recovery_event_then_snapshot_keeps_embedded_connection_live ... ok
test embedded::regressions::recovery_notices_preserve_order_credit_and_session_isolation ... ok
test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok
test embedded::regressions::uncredited_output_or_repaint_is_rejected_before_queueing ... ok
test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok
test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok
test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test runtime::tests::setup_socket_cleanup_preserves_symlinks_and_regular_files ... ok
test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok
test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok
test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok
test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok
test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok

test result: ok. 100 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 154.05s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_shim-67ffc9c8d51fcf5c)

running 73 tests
test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok
test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok
test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok
test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement
test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok
test session::resize_checks::resize_refusal_session_probe ... ignored, isolated session probe invoked by its parent with a controlled shell profile
test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok
test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok
test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok
test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok
test session::sequenced_checks::writer_selection_has_a_frozen_little_endian_layout ... ok
test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok
test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok
test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok
test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok
test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok
test terminal::checks::tests::saved_origin_survives_changed_margins ... ok
test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok
test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_cursor ... ok
test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file
test terminal::fidelity::fidelity_edge ... ok
test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases
test terminal::fidelity::fidelity_extended_smoke ... ok
test terminal::fidelity::fidelity_f1_rep ... ok
test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_handwritten ... ok
test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok
test terminal::fidelity::fidelity_iso_protection_erase ... ok
test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok
test terminal::fidelity::fidelity_oracle_detects_hidden_state ... ok
test terminal::fidelity::fidelity_oracle_observes_archived_cells_with_equal_active_screens ... ok
test terminal::fidelity::fidelity_orphaned_spacer_head ... ok
test terminal::fidelity::fidelity_prompt_resize_requires_explicit_rejection ... ok
test terminal::fidelity::fidelity_recorded_corpus ... ok
test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok
test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok
test terminal::fidelity::fidelity_saved_modes_future_restore ... ok
test terminal::fidelity::fidelity_screen_entry_consumes_inherited_shift_before_saving ... ok
test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases
test terminal::fidelity::fidelity_seeded_smoke ... ok
test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok
test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... ok
test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... ok
test terminal::fidelity::fidelity_snapshot_resets_stale_viewer_color_overrides ... ok
test terminal::fidelity::fidelity_spacer_head_attributes ... ok
test terminal::fidelity::fidelity_variation_tail_attributes ... ok
test terminal::fidelity::fidelity_variation_wrap_attributes ... ok
test terminal::fidelity::fresh_captures::fidelity_fresh_real_program_captures ... ignored, manual fresh capture oracle; set VT_CAPTURE_DIR after real program capture
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::memory::measured_terminal_rss ... ignored, RSS measurement; run this filter alone in a fresh release process
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test terminal::recovery_measurements::measured_full_ring_reconstruction ... ignored, release reconstruction measurement; old healthy handles permit repeated cleanup
test terminal::resize_recovery::absent_ring_keeps_last_good_size_and_later_output_usable ... ok
test terminal::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok
test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok
test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok
test terminal_native::allocation::resize_allocation_refusal_retires_native_handle ... ok

test result: ok. 61 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 67.94s

     Running tests/detach.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/detach-c502cd554fb112ce)

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.16s

     Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/mouse-523bfdef43cc46cb)

running 1 test
test faithful_snapshot_preserves_public_mouse_encoder_reports ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s

   Doc-tests infraternal_agent

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_mesh

running 1 test
test crates/infraternal-mesh/src/model.rs - model::LocalPrivateKey (line 20) - compile fail ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s

   Doc-tests infraternal_plugin_api

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_plugin_ssh

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_protocol

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_server

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests infraternal_shim

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s


==> cargo-deny
warning[duplicate]: found 2 duplicate entries for crate 'base64'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:24:1
   │  
24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index
25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰───────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ base64 v0.21.7
     ├── base64urlsafedata v0.5.5
     │   ├── webauthn-attestation-ca v0.5.5
     │   │   └── webauthn-rs-core v0.5.5
     │   │       └── webauthn-rs v0.5.5
     │   │           └── infraternal-server v0.1.0
     │   │               └── infraternal v0.1.0
     │   ├── webauthn-rs v0.5.5 (*)
     │   ├── webauthn-rs-core v0.5.5 (*)
     │   └── webauthn-rs-proto v0.5.5
     │       └── webauthn-rs-core v0.5.5 (*)
     ├── webauthn-rs-core v0.5.5 (*)
     └── webauthn-rs-proto v0.5.5 (*)
   ├ base64 v0.22.1
     ├── axum v0.8.9
     │   └── infraternal-server v0.1.0
     │       └── infraternal v0.1.0
     ├── infraternal-server v0.1.0 (*)
     └── sqlx-core v0.8.6
         ├── sqlx v0.8.6
         │   ├── infraternal v0.1.0 (*)
         │   └── infraternal-server v0.1.0 (*)
         ├── sqlx-macros v0.8.6
         │   └── sqlx v0.8.6 (*)
         ├── sqlx-macros-core v0.8.6
         │   └── sqlx-macros v0.8.6 (*)
         └── sqlx-sqlite v0.8.6
             ├── sqlx v0.8.6 (*)
             └── sqlx-macros-core v0.8.6 (*)

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:88:1
   │  
88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index
   │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ getrandom v0.2.17
     └── rand_core v0.6.4
         ├── bip39 v2.2.2
         │   └── infraternal-server v0.1.0
         │       └── infraternal v0.1.0
         ├── crypto-common v0.1.7
         │   ├── aead v0.5.2
         │   │   └── aes-gcm v0.10.3
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   ├── cipher v0.4.4
         │   │   ├── aes v0.8.4
         │   │   │   └── aes-gcm v0.10.3 (*)
         │   │   ├── aes-gcm v0.10.3 (*)
         │   │   └── ctr v0.9.2
         │   │       └── aes-gcm v0.10.3 (*)
         │   ├── digest v0.10.7
         │   │   ├── blake2 v0.10.6
         │   │   │   └── argon2 v0.5.3
         │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   ├── hmac v0.12.1
         │   │   │   └── hkdf v0.12.4
         │   │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   │   ├── sha1 v0.10.7
         │   │   │   ├── axum v0.8.9
         │   │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   │   └── tungstenite v0.29.0
         │   │   │       └── tokio-tungstenite v0.29.0
         │   │   │           ├── axum v0.8.9 (*)
         │   │   │           └── (dev) infraternal-server v0.1.0 (*)
         │   │   └── sha2 v0.10.9
         │   │       ├── infraternal-server v0.1.0 (*)
         │   │       ├── sqlx-core v0.8.6
         │   │       │   ├── sqlx v0.8.6
         │   │       │   │   ├── infraternal v0.1.0 (*)
         │   │       │   │   └── infraternal-server v0.1.0 (*)
         │   │       │   ├── sqlx-macros v0.8.6
         │   │       │   │   └── sqlx v0.8.6 (*)
         │   │       │   ├── sqlx-macros-core v0.8.6
         │   │       │   │   └── sqlx-macros v0.8.6 (*)
         │   │       │   └── sqlx-sqlite v0.8.6
         │   │       │       ├── sqlx v0.8.6 (*)
         │   │       │       └── sqlx-macros-core v0.8.6 (*)
         │   │       └── sqlx-macros-core v0.8.6 (*)
         │   └── universal-hash v0.5.1
         │       └── polyval v0.6.2
         │           └── ghash v0.5.1
         │               └── aes-gcm v0.10.3 (*)
         ├── password-hash v0.5.0
         │   └── argon2 v0.5.3 (*)
         ├── rand v0.8.8
         │   └── bip39 v2.2.2 (*)
         └── rand_chacha v0.3.1
             └── rand v0.8.8 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── infraternal-server v0.1.0
         │   │   └── infraternal v0.1.0
         │   ├── tungstenite v0.29.0
         │   │   └── tokio-tungstenite v0.29.0
         │   │       ├── axum v0.8.9
         │   │       │   └── infraternal-server v0.1.0 (*)
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   └── webauthn-rs-core v0.5.5
         │       └── webauthn-rs v0.5.5
         │           └── infraternal-server v0.1.0 (*)
         └── rand_chacha v0.9.0
             ├── rand v0.9.5 (*)
             └── webauthn-rs-core v0.5.5 (*)
   ├ getrandom v0.4.3
     ├── jobserver v0.1.35
     │   └── cc v1.6.0
     │       ├── (build) libfuzzer-sys v0.4.13
     │       │   └── infraternal-fuzz v0.1.0
     │       ├── (build) libsqlite3-sys v0.30.1
     │       │   └── sqlx-sqlite v0.8.6
     │       │       ├── sqlx v0.8.6
     │       │       │   ├── infraternal v0.1.0
     │       │       │   └── infraternal-server v0.1.0
     │       │       │       └── infraternal v0.1.0 (*)
     │       │       └── sqlx-macros-core v0.8.6
     │       │           └── sqlx-macros v0.8.6
     │       │               └── sqlx v0.8.6 (*)
     │       ├── openssl-src v300.6.1+3.6.3
     │       │   └── (build) openssl-sys v0.9.117
     │       │       ├── axum-server v0.8.0
     │       │       │   └── infraternal-server v0.1.0 (*)
     │       │       ├── openssl v0.10.81
     │       │       │   ├── axum-server v0.8.0 (*)
     │       │       │   ├── infraternal-server v0.1.0 (*)
     │       │       │   ├── tokio-openssl v0.6.5
     │       │       │   │   └── axum-server v0.8.0 (*)
     │       │       │   ├── webauthn-attestation-ca v0.5.5
     │       │       │   │   └── webauthn-rs-core v0.5.5
     │       │       │   │       └── webauthn-rs v0.5.5
     │       │       │   │           └── infraternal-server v0.1.0 (*)
     │       │       │   └── webauthn-rs-core v0.5.5 (*)
     │       │       ├── tokio-openssl v0.6.5 (*)
     │       │       ├── webauthn-attestation-ca v0.5.5 (*)
     │       │       └── webauthn-rs-core v0.5.5 (*)
     │       └── (build) openssl-sys v0.9.117 (*)
     └── uuid v1.27.0
         ├── infraternal-agent v0.1.0
         │   └── infraternal v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── webauthn-attestation-ca v0.5.5 (*)
         ├── webauthn-rs v0.5.5 (*)
         └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'hashbrown'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:94:1
   │  
94 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
95 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ hashbrown v0.15.5
     ├── hashlink v0.10.0
     │   └── sqlx-core v0.8.6
     │       ├── sqlx v0.8.6
     │       │   ├── infraternal v0.1.0
     │       │   └── infraternal-server v0.1.0
     │       │       └── infraternal v0.1.0 (*)
     │       ├── sqlx-macros v0.8.6
     │       │   └── sqlx v0.8.6 (*)
     │       ├── sqlx-macros-core v0.8.6
     │       │   └── sqlx-macros v0.8.6 (*)
     │       └── sqlx-sqlite v0.8.6
     │           ├── sqlx v0.8.6 (*)
     │           └── sqlx-macros-core v0.8.6 (*)
     └── sqlx-core v0.8.6 (*)
   ├ hashbrown v0.17.1
     └── indexmap v2.14.2
         ├── h2 v0.4.19
         │   └── hyper v1.11.1
         │       ├── axum v0.8.9
         │       │   └── infraternal-server v0.1.0
         │       │       └── infraternal v0.1.0
         │       ├── axum-server v0.8.0
         │       │   └── infraternal-server v0.1.0 (*)
         │       └── hyper-util v0.1.21
         │           ├── axum v0.8.9 (*)
         │           └── axum-server v0.8.0 (*)
         └── sqlx-core v0.8.6
             ├── sqlx v0.8.6
             │   ├── infraternal v0.1.0 (*)
             │   └── infraternal-server v0.1.0 (*)
             ├── sqlx-macros v0.8.6
             │   └── sqlx v0.8.6 (*)
             ├── sqlx-macros-core v0.8.6
             │   └── sqlx-macros v0.8.6 (*)
             └── sqlx-sqlite v0.8.6
                 ├── sqlx v0.8.6 (*)
                 └── sqlx-macros-core v0.8.6 (*)

warning[duplicate]: found 2 duplicate entries for crate 'r-efi'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:183:1
    │  
183 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index
184 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ r-efi v5.3.0
      └── getrandom v0.3.4
          └── rand_core v0.9.5
              ├── rand v0.9.5
              │   ├── infraternal-server v0.1.0
              │   │   └── infraternal v0.1.0
              │   ├── tungstenite v0.29.0
              │   │   └── tokio-tungstenite v0.29.0
              │   │       ├── axum v0.8.9
              │   │       │   └── infraternal-server v0.1.0 (*)
              │   │       └── (dev) infraternal-server v0.1.0 (*)
              │   └── webauthn-rs-core v0.5.5
              │       └── webauthn-rs v0.5.5
              │           └── infraternal-server v0.1.0 (*)
              └── rand_chacha v0.9.0
                  ├── rand v0.9.5 (*)
                  └── webauthn-rs-core v0.5.5 (*)
    ├ r-efi v6.0.0
      └── getrandom v0.4.3
          ├── jobserver v0.1.35
          │   └── cc v1.6.0
          │       ├── (build) libfuzzer-sys v0.4.13
          │       │   └── infraternal-fuzz v0.1.0
          │       ├── (build) libsqlite3-sys v0.30.1
          │       │   └── sqlx-sqlite v0.8.6
          │       │       ├── sqlx v0.8.6
          │       │       │   ├── infraternal v0.1.0
          │       │       │   └── infraternal-server v0.1.0
          │       │       │       └── infraternal v0.1.0 (*)
          │       │       └── sqlx-macros-core v0.8.6
          │       │           └── sqlx-macros v0.8.6
          │       │               └── sqlx v0.8.6 (*)
          │       ├── openssl-src v300.6.1+3.6.3
          │       │   └── (build) openssl-sys v0.9.117
          │       │       ├── axum-server v0.8.0
          │       │       │   └── infraternal-server v0.1.0 (*)
          │       │       ├── openssl v0.10.81
          │       │       │   ├── axum-server v0.8.0 (*)
          │       │       │   ├── infraternal-server v0.1.0 (*)
          │       │       │   ├── tokio-openssl v0.6.5
          │       │       │   │   └── axum-server v0.8.0 (*)
          │       │       │   ├── webauthn-attestation-ca v0.5.5
          │       │       │   │   └── webauthn-rs-core v0.5.5
          │       │       │   │       └── webauthn-rs v0.5.5
          │       │       │   │           └── infraternal-server v0.1.0 (*)
          │       │       │   └── webauthn-rs-core v0.5.5 (*)
          │       │       ├── tokio-openssl v0.6.5 (*)
          │       │       ├── webauthn-attestation-ca v0.5.5 (*)
          │       │       └── webauthn-rs-core v0.5.5 (*)
          │       └── (build) openssl-sys v0.9.117 (*)
          └── uuid v1.27.0
              ├── infraternal-agent v0.1.0
              │   └── infraternal v0.1.0 (*)
              ├── infraternal-server v0.1.0 (*)
              ├── webauthn-attestation-ca v0.5.5 (*)
              ├── webauthn-rs v0.5.5 (*)
              └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:185:1
    │  
185 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index
186 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand v0.8.8
      └── bip39 v2.2.2
          └── infraternal-server v0.1.0
              └── infraternal v0.1.0
    ├ rand v0.9.5
      ├── infraternal-server v0.1.0
      │   └── infraternal v0.1.0
      ├── tungstenite v0.29.0
      │   └── tokio-tungstenite v0.29.0
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       └── (dev) infraternal-server v0.1.0 (*)
      └── webauthn-rs-core v0.5.5
          └── webauthn-rs v0.5.5
              └── infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:187:1
    │  
187 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index
188 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand_chacha v0.3.1
      └── rand v0.8.8
          └── bip39 v2.2.2
              └── infraternal-server v0.1.0
                  └── infraternal v0.1.0
    ├ rand_chacha v0.9.0
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   └── infraternal v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   └── webauthn-rs-core v0.5.5
      │       └── webauthn-rs v0.5.5
      │           └── infraternal-server v0.1.0 (*)
      └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_core'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:189:1
    │  
189 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index
190 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand_core v0.6.4
      ├── bip39 v2.2.2
      │   └── infraternal-server v0.1.0
      │       └── infraternal v0.1.0
      ├── crypto-common v0.1.7
      │   ├── aead v0.5.2
      │   │   └── aes-gcm v0.10.3
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   ├── cipher v0.4.4
      │   │   ├── aes v0.8.4
      │   │   │   └── aes-gcm v0.10.3 (*)
      │   │   ├── aes-gcm v0.10.3 (*)
      │   │   └── ctr v0.9.2
      │   │       └── aes-gcm v0.10.3 (*)
      │   ├── digest v0.10.7
      │   │   ├── blake2 v0.10.6
      │   │   │   └── argon2 v0.5.3
      │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   ├── hmac v0.12.1
      │   │   │   └── hkdf v0.12.4
      │   │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   │   ├── sha1 v0.10.7
      │   │   │   ├── axum v0.8.9
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   └── tungstenite v0.29.0
      │   │   │       └── tokio-tungstenite v0.29.0
      │   │   │           ├── axum v0.8.9 (*)
      │   │   │           └── (dev) infraternal-server v0.1.0 (*)
      │   │   └── sha2 v0.10.9
      │   │       ├── infraternal-server v0.1.0 (*)
      │   │       ├── sqlx-core v0.8.6
      │   │       │   ├── sqlx v0.8.6
      │   │       │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   └── infraternal-server v0.1.0 (*)
      │   │       │   ├── sqlx-macros v0.8.6
      │   │       │   │   └── sqlx v0.8.6 (*)
      │   │       │   ├── sqlx-macros-core v0.8.6
      │   │       │   │   └── sqlx-macros v0.8.6 (*)
      │   │       │   └── sqlx-sqlite v0.8.6
      │   │       │       ├── sqlx v0.8.6 (*)
      │   │       │       └── sqlx-macros-core v0.8.6 (*)
      │   │       └── sqlx-macros-core v0.8.6 (*)
      │   └── universal-hash v0.5.1
      │       └── polyval v0.6.2
      │           └── ghash v0.5.1
      │               └── aes-gcm v0.10.3 (*)
      ├── password-hash v0.5.0
      │   └── argon2 v0.5.3 (*)
      ├── rand v0.8.8
      │   └── bip39 v2.2.2 (*)
      └── rand_chacha v0.3.1
          └── rand v0.8.8 (*)
    ├ rand_core v0.9.5
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   └── infraternal v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   └── webauthn-rs-core v0.5.5
      │       └── webauthn-rs v0.5.5
      │           └── infraternal-server v0.1.0 (*)
      └── rand_chacha v0.9.0
          ├── rand v0.9.5 (*)
          └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:226:1
    │  
226 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
227 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ syn v2.0.119
      ├── asn1-rs-derive v0.5.1
      │   └── asn1-rs v0.6.2
      │       ├── der-parser v9.0.0
      │       │   ├── webauthn-rs-core v0.5.5
      │       │   │   └── webauthn-rs v0.5.5
      │       │   │       └── infraternal-server v0.1.0
      │       │   │           └── infraternal v0.1.0
      │       │   └── x509-parser v0.16.0
      │       │       └── webauthn-rs-core v0.5.5 (*)
      │       ├── oid-registry v0.7.1
      │       │   └── x509-parser v0.16.0 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── asn1-rs-impl v0.2.0
      │   └── asn1-rs v0.6.2 (*)
      ├── openssl-macros v0.1.1
      │   └── openssl v0.10.81
      │       ├── axum-server v0.8.0
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5
      │       │   └── webauthn-rs-core v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      ├── sqlx-macros v0.8.6
      │   └── sqlx v0.8.6
      │       ├── infraternal v0.1.0 (*)
      │       └── infraternal-server v0.1.0 (*)
      ├── sqlx-macros-core v0.8.6
      │   └── sqlx-macros v0.8.6 (*)
      ├── synstructure v0.13.2
      │   └── asn1-rs-derive v0.5.1 (*)
      ├── thiserror-impl v1.0.69
      │   └── thiserror v1.0.69
      │       ├── asn1-rs v0.6.2 (*)
      │       ├── webauthn-rs-core v0.5.5 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── tracing-attributes v0.1.31
      │   └── tracing v0.1.44
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── axum-core v0.5.6
      │       │   └── axum v0.8.9 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6
      │       │   ├── sqlx v0.8.6 (*)
      │       │   ├── sqlx-macros v0.8.6 (*)
      │       │   ├── sqlx-macros-core v0.8.6 (*)
      │       │   └── sqlx-sqlite v0.8.6
      │       │       ├── sqlx v0.8.6 (*)
      │       │       └── sqlx-macros-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tracing-subscriber v0.3.23
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5 (*)
      │       ├── webauthn-rs v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      └── zerocopy-derive v0.8.60
          └── zerocopy v0.8.60
              ├── half v2.7.1
              │   ├── ciborium-ll v0.2.2
              │   │   └── ciborium v0.2.2
              │   │       └── criterion v0.7.0
              │   │           └── (dev) infraternal-protocol v0.1.0
              │   │               ├── infraternal-agent v0.1.0
              │   │               │   └── infraternal v0.1.0 (*)
              │   │               ├── infraternal-fuzz v0.1.0
              │   │               └── infraternal-server v0.1.0 (*)
              │   └── serde_cbor_2 v0.13.0
              │       ├── infraternal-server v0.1.0 (*)
              │       └── webauthn-rs-core v0.5.5 (*)
              └── ppv-lite86 v0.2.21
                  ├── rand_chacha v0.3.1
                  │   └── rand v0.8.8
                  │       └── bip39 v2.2.2
                  │           └── infraternal-server v0.1.0 (*)
                  └── rand_chacha v0.9.0
                      ├── rand v0.9.5
                      │   ├── infraternal-server v0.1.0 (*)
                      │   ├── tungstenite v0.29.0
                      │   │   └── tokio-tungstenite v0.29.0
                      │   │       ├── axum v0.8.9 (*)
                      │   │       └── (dev) infraternal-server v0.1.0 (*)
                      │   └── webauthn-rs-core v0.5.5 (*)
                      └── webauthn-rs-core v0.5.5 (*)
    ├ syn v3.0.6
      ├── clap_derive v4.6.7
      │   └── clap v4.6.7
      │       ├── criterion v0.7.0
      │       │   └── (dev) infraternal-protocol v0.1.0
      │       │       ├── infraternal-agent v0.1.0
      │       │       │   └── infraternal v0.1.0
      │       │       ├── infraternal-fuzz v0.1.0
      │       │       └── infraternal-server v0.1.0
      │       │           └── infraternal v0.1.0 (*)
      │       └── infraternal v0.1.0 (*)
      ├── displaydoc v0.2.7
      │   ├── asn1-rs v0.6.2
      │   │   ├── der-parser v9.0.0
      │   │   │   ├── webauthn-rs-core v0.5.5
      │   │   │   │   └── webauthn-rs v0.5.5
      │   │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   │   └── x509-parser v0.16.0
      │   │   │       └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── oid-registry v0.7.1
      │   │   │   └── x509-parser v0.16.0 (*)
      │   │   └── x509-parser v0.16.0 (*)
      │   ├── der-parser v9.0.0 (*)
      │   ├── icu_collections v2.3.0
      │   │   ├── icu_normalizer v2.3.0
      │   │   │   └── idna_adapter v1.2.2
      │   │   │       └── idna v1.1.0
      │   │   │           └── url v2.5.8
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   └── infraternal-server v0.1.0 (*)
      │   │   │               │   ├── sqlx-macros v0.8.6
      │   │   │               │   │   └── sqlx v0.8.6 (*)
      │   │   │               │   ├── sqlx-macros-core v0.8.6
      │   │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │   │   │               │   └── sqlx-sqlite v0.8.6
      │   │   │               │       ├── sqlx v0.8.6 (*)
      │   │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-sqlite v0.8.6 (*)
      │   │   │               ├── webauthn-rs v0.5.5 (*)
      │   │   │               ├── webauthn-rs-core v0.5.5 (*)
      │   │   │               └── webauthn-rs-proto v0.5.5
      │   │   │                   └── webauthn-rs-core v0.5.5 (*)
      │   │   └── icu_properties v2.3.0
      │   │       └── idna_adapter v1.2.2 (*)
      │   ├── icu_locale_core v2.3.0
      │   │   ├── icu_properties v2.3.0 (*)
      │   │   └── icu_provider v2.3.1
      │   │       ├── icu_normalizer v2.3.0 (*)
      │   │       └── icu_properties v2.3.0 (*)
      │   ├── icu_properties v2.3.0 (*)
      │   ├── icu_provider v2.3.1 (*)
      │   ├── tinystr v0.8.4
      │   │   └── icu_locale_core v2.3.0 (*)
      │   └── zerotrie v0.2.5
      │       ├── icu_properties v2.3.0 (*)
      │       └── icu_provider v2.3.1 (*)
      ├── futures-macro v0.3.34
      │   └── futures-util v0.3.34
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── futures-executor v0.3.34
      │       │   └── sqlx-sqlite v0.8.6 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── js-sys v0.3.106
      │       │   └── web-sys v0.3.106
      │       │       └── plotters v0.3.7
      │       │           └── criterion v0.7.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       └── tower-http v0.6.11
      │           └── infraternal-server v0.1.0 (*)
      ├── serde_derive v1.0.229
      │   ├── serde v1.0.229
      │   │   ├── base64urlsafedata v0.5.5
      │   │   │   ├── webauthn-attestation-ca v0.5.5
      │   │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2
      │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── axum-server v0.8.0
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   ├── itertools v0.13.0
      │   │   │   │   ├── criterion v0.7.0 (*)
      │   │   │   │   └── criterion-plot v0.6.0
      │   │   │   │       └── criterion v0.7.0 (*)
      │   │   │   ├── rayon v1.12.0
      │   │   │   │   └── criterion v0.7.0 (*)
      │   │   │   ├── sqlx-core v0.8.6 (*)
      │   │   │   └── sqlx-macros-core v0.8.6 (*)
      │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   ├── infraternal-mesh v0.1.0
      │   │   ├── infraternal-server v0.1.0 (*)
      │   │   ├── serde_cbor_2 v0.13.0
      │   │   │   ├── infraternal-server v0.1.0 (*)
      │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── serde_urlencoded v0.7.1
      │   │   │   ├── axum v0.8.9 (*)
      │   │   │   └── sqlx-sqlite v0.8.6 (*)
      │   │   ├── sqlx-core v0.8.6 (*)
      │   │   ├── sqlx-macros-core v0.8.6 (*)
      │   │   ├── sqlx-sqlite v0.8.6 (*)
      │   │   ├── tinytemplate v1.2.1
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── tracing-serde v0.2.0
      │   │   │   └── tracing-subscriber v0.3.23
      │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   ├── tracing-subscriber v0.3.23 (*)
      │   │   ├── url v2.5.8 (*)
      │   │   ├── webauthn-attestation-ca v0.5.5 (*)
      │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   └── url v2.5.8 (*)
      ├── synstructure v0.14.0
      │   ├── yoke-derive v0.8.4
      │   │   └── yoke v0.8.3
      │   │       ├── icu_collections v2.3.0 (*)
      │   │       ├── icu_provider v2.3.1 (*)
      │   │       ├── zerotrie v0.2.5 (*)
      │   │       └── zerovec v0.11.8
      │   │           ├── icu_collections v2.3.0 (*)
      │   │           ├── icu_locale_core v2.3.0 (*)
      │   │           ├── icu_normalizer v2.3.0 (*)
      │   │           ├── icu_properties v2.3.0 (*)
      │   │           ├── icu_provider v2.3.1 (*)
      │   │           ├── potential_utf v0.1.6
      │   │           │   └── icu_collections v2.3.0 (*)
      │   │           └── tinystr v0.8.4 (*)
      │   └── zerofrom-derive v0.1.8
      │       └── zerofrom v0.1.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── yoke v0.8.3 (*)
      │           ├── zerotrie v0.2.5 (*)
      │           └── zerovec v0.11.8 (*)
      ├── thiserror-impl v2.0.21
      │   └── thiserror v2.0.21
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-mesh v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       └── tungstenite v0.29.0
      │           └── tokio-tungstenite v0.29.0 (*)
      ├── tokio-macros v2.7.2
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9 (*)
      │       ├── axum-server v0.8.0 (*)
      │       ├── fs-err v3.3.2
      │       │   └── axum-server v0.8.0 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── hyper v1.11.1 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── (dev) infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── sqlx-core v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0 (*)
      │       ├── tokio-util v0.7.19
      │       │   ├── h2 v0.4.19 (*)
      │       │   └── tower-http v0.6.11 (*)
      │       ├── tower v0.5.3 (*)
      │       └── tower-http v0.6.11 (*)
      ├── wasm-bindgen-macro-support v0.2.129
      │   └── wasm-bindgen-macro v0.2.129
      │       └── wasm-bindgen v0.2.129
      │           ├── js-sys v0.3.106 (*)
      │           ├── plotters v0.3.7 (*)
      │           └── web-sys v0.3.106 (*)
      ├── yoke-derive v0.8.4 (*)
      ├── zerofrom-derive v0.1.8 (*)
      └── zerovec-derive v0.11.6
          └── zerovec v0.11.8 (*)

warning[duplicate]: found 2 duplicate entries for crate 'synstructure'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:229:1
    │  
229 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index
230 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ synstructure v0.13.2
      └── asn1-rs-derive v0.5.1
          └── asn1-rs v0.6.2
              ├── der-parser v9.0.0
              │   ├── webauthn-rs-core v0.5.5
              │   │   └── webauthn-rs v0.5.5
              │   │       └── infraternal-server v0.1.0
              │   │           └── infraternal v0.1.0
              │   └── x509-parser v0.16.0
              │       └── webauthn-rs-core v0.5.5 (*)
              ├── oid-registry v0.7.1
              │   └── x509-parser v0.16.0 (*)
              └── x509-parser v0.16.0 (*)
    ├ synstructure v0.14.0
      ├── yoke-derive v0.8.4
      │   └── yoke v0.8.3
      │       ├── icu_collections v2.3.0
      │       │   ├── icu_normalizer v2.3.0
      │       │   │   └── idna_adapter v1.2.2
      │       │   │       └── idna v1.1.0
      │       │   │           └── url v2.5.8
      │       │   │               ├── infraternal-server v0.1.0
      │       │   │               │   └── infraternal v0.1.0
      │       │   │               ├── sqlx-core v0.8.6
      │       │   │               │   ├── sqlx v0.8.6
      │       │   │               │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   └── infraternal-server v0.1.0 (*)
      │       │   │               │   ├── sqlx-macros v0.8.6
      │       │   │               │   │   └── sqlx v0.8.6 (*)
      │       │   │               │   ├── sqlx-macros-core v0.8.6
      │       │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │       │   │               │   └── sqlx-sqlite v0.8.6
      │       │   │               │       ├── sqlx v0.8.6 (*)
      │       │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │       │   │               ├── sqlx-macros-core v0.8.6 (*)
      │       │   │               ├── sqlx-sqlite v0.8.6 (*)
      │       │   │               ├── webauthn-rs v0.5.5
      │       │   │               │   └── infraternal-server v0.1.0 (*)
      │       │   │               ├── webauthn-rs-core v0.5.5
      │       │   │               │   └── webauthn-rs v0.5.5 (*)
      │       │   │               └── webauthn-rs-proto v0.5.5
      │       │   │                   └── webauthn-rs-core v0.5.5 (*)
      │       │   └── icu_properties v2.3.0
      │       │       └── idna_adapter v1.2.2 (*)
      │       ├── icu_provider v2.3.1
      │       │   ├── icu_normalizer v2.3.0 (*)
      │       │   └── icu_properties v2.3.0 (*)
      │       ├── zerotrie v0.2.5
      │       │   ├── icu_properties v2.3.0 (*)
      │       │   └── icu_provider v2.3.1 (*)
      │       └── zerovec v0.11.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_locale_core v2.3.0
      │           │   ├── icu_properties v2.3.0 (*)
      │           │   └── icu_provider v2.3.1 (*)
      │           ├── icu_normalizer v2.3.0 (*)
      │           ├── icu_properties v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── potential_utf v0.1.6
      │           │   └── icu_collections v2.3.0 (*)
      │           └── tinystr v0.8.4
      │               └── icu_locale_core v2.3.0 (*)
      └── zerofrom-derive v0.1.8
          └── zerofrom v0.1.8
              ├── icu_collections v2.3.0 (*)
              ├── icu_provider v2.3.1 (*)
              ├── yoke v0.8.3 (*)
              ├── zerotrie v0.2.5 (*)
              └── zerovec v0.11.8 (*)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:231:1
    │  
231 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index
232 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index
    │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror v1.0.69
      ├── asn1-rs v0.6.2
      │   ├── der-parser v9.0.0
      │   │   ├── webauthn-rs-core v0.5.5
      │   │   │   └── webauthn-rs v0.5.5
      │   │   │       └── infraternal-server v0.1.0
      │   │   │           └── infraternal v0.1.0
      │   │   └── x509-parser v0.16.0
      │   │       └── webauthn-rs-core v0.5.5 (*)
      │   ├── oid-registry v0.7.1
      │   │   └── x509-parser v0.16.0 (*)
      │   └── x509-parser v0.16.0 (*)
      ├── webauthn-rs-core v0.5.5 (*)
      └── x509-parser v0.16.0 (*)
    ├ thiserror v2.0.21
      ├── infraternal v0.1.0
      ├── infraternal-mesh v0.1.0
      ├── infraternal-server v0.1.0
      │   └── infraternal v0.1.0 (*)
      ├── sqlx-core v0.8.6
      │   ├── sqlx v0.8.6
      │   │   ├── infraternal v0.1.0 (*)
      │   │   └── infraternal-server v0.1.0 (*)
      │   ├── sqlx-macros v0.8.6
      │   │   └── sqlx v0.8.6 (*)
      │   ├── sqlx-macros-core v0.8.6
      │   │   └── sqlx-macros v0.8.6 (*)
      │   └── sqlx-sqlite v0.8.6
      │       ├── sqlx v0.8.6 (*)
      │       └── sqlx-macros-core v0.8.6 (*)
      ├── sqlx-sqlite v0.8.6 (*)
      └── tungstenite v0.29.0
          └── tokio-tungstenite v0.29.0
              ├── axum v0.8.9
              │   └── infraternal-server v0.1.0 (*)
              └── (dev) infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:233:1
    │  
233 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index
234 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror-impl v1.0.69
      └── thiserror v1.0.69
          ├── asn1-rs v0.6.2
          │   ├── der-parser v9.0.0
          │   │   ├── webauthn-rs-core v0.5.5
          │   │   │   └── webauthn-rs v0.5.5
          │   │   │       └── infraternal-server v0.1.0
          │   │   │           └── infraternal v0.1.0
          │   │   └── x509-parser v0.16.0
          │   │       └── webauthn-rs-core v0.5.5 (*)
          │   ├── oid-registry v0.7.1
          │   │   └── x509-parser v0.16.0 (*)
          │   └── x509-parser v0.16.0 (*)
          ├── webauthn-rs-core v0.5.5 (*)
          └── x509-parser v0.16.0 (*)
    ├ thiserror-impl v2.0.21
      └── thiserror v2.0.21
          ├── infraternal v0.1.0
          ├── infraternal-mesh v0.1.0
          ├── infraternal-server v0.1.0
          │   └── infraternal v0.1.0 (*)
          ├── sqlx-core v0.8.6
          │   ├── sqlx v0.8.6
          │   │   ├── infraternal v0.1.0 (*)
          │   │   └── infraternal-server v0.1.0 (*)
          │   ├── sqlx-macros v0.8.6
          │   │   └── sqlx v0.8.6 (*)
          │   ├── sqlx-macros-core v0.8.6
          │   │   └── sqlx-macros v0.8.6 (*)
          │   └── sqlx-sqlite v0.8.6
          │       ├── sqlx v0.8.6 (*)
          │       └── sqlx-macros-core v0.8.6 (*)
          ├── sqlx-sqlite v0.8.6 (*)
          └── tungstenite v0.29.0
              └── tokio-tungstenite v0.29.0
                  ├── axum v0.8.9
                  │   └── infraternal-server v0.1.0 (*)
                  └── (dev) infraternal-server v0.1.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
   Compiling openssl-sys v0.9.117
   Compiling crossbeam-utils v0.8.23
   Compiling zmij v1.0.23
   Compiling memoffset v0.9.1
   Compiling base64 v0.21.7
   Compiling foldhash v0.1.5
   Compiling lazy_static v1.5.1
   Compiling fnv v1.0.7
   Compiling serde_json v1.0.151
   Compiling base64 v0.22.1
   Compiling pastey v0.1.1
   Compiling oid-registry v0.7.1
   Compiling httpdate v1.0.3
   Compiling ryu v1.0.23
   Compiling atomic-waker v1.1.2
   Compiling allocator-api2 v0.2.21
   Compiling cfg_aliases v0.2.2
   Compiling heck v0.5.0
   Compiling nix v0.30.1
   Compiling h2 v0.4.19
   Compiling sqlx-core v0.8.6
   Compiling base64urlsafedata v0.5.5
   Compiling serde_urlencoded v0.7.1
   Compiling libsqlite3-sys v0.30.1
   Compiling hashbrown v0.15.5
   Compiling num-bigint v0.4.8
   Compiling flume v0.11.1
   Compiling uuid v1.27.0
   Compiling atoi v2.0.0
   Compiling parking_lot v0.12.5
   Compiling futures-executor v0.3.34
   Compiling futures-channel v0.3.34
   Compiling either v1.18.0
   Compiling crc-catalog v2.5.0
   Compiling rustversion v1.0.23
   Compiling webauthn-attestation-ca v0.5.5
   Compiling parking v2.2.1
   Compiling unicase v2.10.0
   Compiling tower-layer v0.3.3
   Compiling mime v0.3.17
   Compiling der-parser v9.0.0
   Compiling mime_guess v2.0.5
   Compiling sqlx-sqlite v0.8.6
   Compiling event-listener v5.4.2
   Compiling crc v3.4.0
   Compiling futures-intrusive v0.5.0
   Compiling crossbeam-queue v0.3.14
   Compiling hashlink v0.10.0
   Compiling http-body-util v0.1.5
   Compiling spin v0.9.9
   Compiling sha1 v0.10.7
   Compiling sha2 v0.10.9
   Compiling half v2.7.1
   Compiling tokio-stream v0.1.19
   Compiling fs-err v3.3.2
   Compiling tokio-openssl v0.6.5
   Compiling sync_wrapper v1.0.2
   Compiling hex v0.4.3
   Compiling regex-syntax v0.8.11
   Compiling webauthn-rs-core v0.5.5
   Compiling utf8parse v0.2.2
   Compiling dotenvy v0.15.7
   Compiling anstyle-parse v1.0.0
   Compiling serde_cbor_2 v0.13.0
   Compiling hyper v1.11.1
   Compiling sqlx-macros-core v0.8.6
   Compiling tungstenite v0.29.0
   Compiling x509-parser v0.16.0
   Compiling webauthn-rs-proto v0.5.5
   Compiling rand_chacha v0.3.1
   Compiling hyper-util v0.1.21
   Compiling regex-automata v0.4.18
   Compiling hex-conservative v0.2.3
   Compiling anstyle v1.0.14
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim)
   Compiling is_terminal_polyfill v1.70.2
   Compiling base64ct v1.8.3
   Compiling colorchoice v1.0.5
   Compiling tinyvec v1.13.3
   Compiling anstyle-query v1.1.5
   Compiling password-hash v0.5.0
   Compiling anstream v1.0.0
   Compiling unicode-normalization v0.1.25
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling arc-swap v1.9.2
   Compiling tokio-tungstenite v0.29.0
   Compiling sqlx-macros v0.8.6
   Compiling tower v0.5.3
   Compiling axum-core v0.5.6
   Compiling sharded-slab v0.1.7
   Compiling vte v0.15.0
   Compiling blake2 v0.10.6
   Compiling tracing-log v0.2.0
   Compiling tracing-serde v0.2.0
   Compiling serde_path_to_error v0.1.20
   Compiling thread_local v1.1.10
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server)
   Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol)
   Compiling matchit v0.8.4
   Compiling strsim v0.11.1
   Compiling matchers v0.2.0
   Compiling nu-ansi-term v0.50.3
   Compiling http-range-header v0.4.2
   Compiling clap_lex v1.1.1
   Compiling axum v0.8.9
   Compiling tracing-subscriber v0.3.23
   Compiling tower-http v0.6.11
   Compiling argon2 v0.5.3
   Compiling clap_builder v4.6.7
   Compiling bip39 v2.2.2
   Compiling clap_derive v4.6.7
   Compiling sqlx v0.8.6
   Compiling clap v4.6.7
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent)
   Compiling openssl v0.10.81
   Compiling axum-server v0.8.0
   Compiling webauthn-rs v0.5.5
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 8m 38s
/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped
PT_INTERP: absent; size: 15965392 bytes (baseline 16142672 + allowance 262144 = max 16404816)
   Compiling cfg-if v1.0.5
   Compiling pin-project-lite v0.2.17
   Compiling libc v0.2.190
   Compiling serde_core v1.0.229
   Compiling memchr v2.8.3
   Compiling bytes v1.12.1
   Compiling itoa v1.0.18
   Compiling futures-core v0.3.34
   Compiling zerofrom v0.1.8
   Compiling serde v1.0.229
   Compiling stable_deref_trait v1.2.1
   Compiling log v0.4.34
   Compiling smallvec v1.16.2
   Compiling once_cell v1.21.4
   Compiling futures-sink v0.3.34
   Compiling zerocopy v0.8.60
   Compiling generic-array v0.14.7
   Compiling typenum v1.20.1
   Compiling yoke v0.8.3
   Compiling litemap v0.8.3
   Compiling slab v0.4.12
   Compiling tracing-core v0.1.36
   Compiling zerovec v0.11.8
   Compiling writeable v0.6.4
   Compiling errno v0.3.14
   Compiling socket2 v0.6.5
   Compiling mio v1.2.4
   Compiling tracing v0.1.44
   Compiling signal-hook-registry v1.4.8
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling zerotrie v0.2.5
   Compiling num-traits v0.2.19
   Compiling subtle v2.6.1
   Compiling icu_locale_core v2.3.0
   Compiling utf8_iter v1.0.4
   Compiling tokio v1.53.2
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling openssl-sys v0.9.117
   Compiling icu_collections v2.3.0
   Compiling http v1.5.0
   Compiling icu_properties_data v2.3.0
   Compiling icu_normalizer_data v2.3.0
   Compiling equivalent v1.0.2
   Compiling percent-encoding v2.3.2
   Compiling icu_provider v2.3.1
   Compiling digest v0.10.7
   Compiling bitflags v2.13.2
   Compiling getrandom v0.3.4
   Compiling form_urlencoded v1.2.2
   Compiling icu_normalizer v2.3.0
   Compiling icu_properties v2.3.0
   Compiling hashbrown v0.17.1
   Compiling futures-io v0.3.34
   Compiling futures-task v0.3.34
   Compiling indexmap v2.14.2
   Compiling futures-util v0.3.34
   Compiling cpufeatures v0.2.17
   Compiling ppv-lite86 v0.2.21
   Compiling zmij v1.0.23
   Compiling scopeguard v1.2.0
   Compiling minimal-lexical v0.2.1
   Compiling serde_json v1.0.151
   Compiling thiserror v1.0.69
   Compiling httparse v1.10.1
   Compiling lock_api v0.4.14
   Compiling idna_adapter v1.2.2
   Compiling rand_core v0.9.5
   Compiling nom v7.1.3
   Compiling http-body v1.1.0
   Compiling idna v1.1.0
   Compiling thiserror v2.0.21
   Compiling time-core v0.1.9
   Compiling num-conv v0.2.2
   Compiling foreign-types-shared v0.1.1
   Compiling deranged v0.5.8
   Compiling powerfmt v0.2.1
   Compiling rusticata-macros v4.1.0
   Compiling foreign-types v0.3.2
   Compiling getrandom v0.4.3
   Compiling url v2.5.8
   Compiling rand_chacha v0.9.0
   Compiling time v0.3.55
   Compiling getrandom v0.2.17
   Compiling futures-channel v0.3.34
   Compiling parking_lot_core v0.9.12
   Compiling arrayvec v0.7.8
   Compiling tower-service v0.3.3
   Compiling data-encoding v2.11.1
   Compiling rand_core v0.6.4
   Compiling rand v0.9.5
   Compiling tokio-util v0.7.19
   Compiling num-integer v0.1.47
   Compiling crossbeam-utils v0.8.23
   Compiling allocator-api2 v0.2.21
   Compiling fnv v1.0.7
   Compiling httpdate v1.0.3
   Compiling atomic-waker v1.1.2
   Compiling base64 v0.21.7
   Compiling foldhash v0.1.5
   Compiling lazy_static v1.5.1
   Compiling num-bigint v0.4.8
   Compiling hashbrown v0.15.5
   Compiling h2 v0.4.19
   Compiling uuid v1.27.0
   Compiling asn1-rs v0.6.2
   Compiling oid-registry v0.7.1
   Compiling memoffset v0.9.1
   Compiling base64urlsafedata v0.5.5
   Compiling parking_lot v0.12.5
   Compiling either v1.18.0
   Compiling parking v2.2.1
   Compiling ryu v1.0.23
   Compiling tower-layer v0.3.3
   Compiling base64 v0.22.1
   Compiling mime v0.3.17
   Compiling crc-catalog v2.5.0
   Compiling futures-intrusive v0.5.0
   Compiling serde_urlencoded v0.7.1
   Compiling event-listener v5.4.2
   Compiling crc v3.4.0
   Compiling hashlink v0.10.0
   Compiling der-parser v9.0.0
   Compiling crossbeam-queue v0.3.14
   Compiling nix v0.30.1
   Compiling tokio-stream v0.1.19
   Compiling http-body-util v0.1.5
   Compiling spin v0.9.9
   Compiling sha1 v0.10.7
   Compiling sha2 v0.10.9
   Compiling half v2.7.1
   Compiling libsqlite3-sys v0.30.1
   Compiling regex-syntax v0.8.11
   Compiling utf8parse v0.2.2
   Compiling sync_wrapper v1.0.2
   Compiling sqlx-core v0.8.6
   Compiling tungstenite v0.29.0
   Compiling serde_cbor_2 v0.13.0
   Compiling anstyle-parse v1.0.0
   Compiling x509-parser v0.16.0
   Compiling hyper v1.11.1
   Compiling fs-err v3.3.2
   Compiling flume v0.11.1
   Compiling mime_guess v2.0.5
   Compiling webauthn-rs-proto v0.5.5
   Compiling regex-automata v0.4.18
   Compiling rand_chacha v0.3.1
   Compiling hex-conservative v0.2.3
   Compiling futures-executor v0.3.34
   Compiling hyper-util v0.1.21
   Compiling atoi v2.0.0
   Compiling tinyvec v1.13.3
   Compiling is_terminal_polyfill v1.70.2
   Compiling unicase v2.10.0
   Compiling colorchoice v1.0.5
   Compiling base64ct v1.8.3
   Compiling anstyle-query v1.1.5
   Compiling anstyle v1.0.14
   Compiling hex v0.4.3
   Compiling unicode-normalization v0.1.25
   Compiling password-hash v0.5.0
   Compiling matchers v0.2.0
   Compiling sqlx-sqlite v0.8.6
   Compiling anstream v1.0.0
   Compiling rand v0.8.8
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim)
   Compiling bitcoin_hashes v0.14.101
   Compiling arc-swap v1.9.2
   Compiling tokio-tungstenite v0.29.0
   Compiling tower v0.5.3
   Compiling axum-core v0.5.6
   Compiling sharded-slab v0.1.7
   Compiling vte v0.15.0
   Compiling blake2 v0.10.6
   Compiling tracing-serde v0.2.0
   Compiling serde_path_to_error v0.1.20
   Compiling tracing-log v0.2.0
   Compiling thread_local v1.1.10
   Compiling matchit v0.8.4
   Compiling nu-ansi-term v0.50.3
   Compiling http-range-header v0.4.2
   Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol)
   Compiling strsim v0.11.1
   Compiling clap_lex v1.1.1
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server)
   Compiling tracing-subscriber v0.3.23
   Compiling tower-http v0.6.11
   Compiling axum v0.8.9
   Compiling argon2 v0.5.3
   Compiling clap_builder v4.6.7
   Compiling bip39 v2.2.2
   Compiling sqlx v0.8.6
   Compiling clap v4.6.7
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent)
   Compiling openssl v0.10.81
   Compiling webauthn-attestation-ca v0.5.5
   Compiling tokio-openssl v0.6.5
   Compiling webauthn-rs-core v0.5.5
   Compiling axum-server v0.8.0
   Compiling webauthn-rs v0.5.5
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 12m 13s
/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 13426064 bytes (baseline 13555672 + allowance 262144 = max 13817816)
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+

==> Vendored Ghostty artifact checksums
dist/ghostty-web.js: OK
dist/ghostty-vt.wasm: OK
dist/index.d.ts: OK

==> TypeScript protocol compiler

==> Tracer compiler, precompression and bundle transfer budget
bun install v1.4.2 (744846f84)

Checked 38 installs across 69 packages (no changes) [45.00ms]
$ bun x tsc --project tsconfig.json
bun test v1.4.2 (744846f84)

browser-build.test.ts:
(pass) the browser renderer has no unresolved Vite Node-file shim request [19.86ms]

chunk-classes.test.ts:
(pass) the first screen is critical, the canvas product module and what only it uses are deferred [1.78ms]
(pass) a chunk that both sides use stays critical [0.39ms]
(pass) code only an action loads is on demand, even when the lazy canvas is what loads it [0.41ms]

precompress.test.ts:
(pass) text sidecars round-trip deterministically; compressed formats remain identity [26.62ms]

test/recovery-ui.test.ts:
(pass) compiled recovery UI mode off obeys its URL boundary [2.69ms]
(pass) compiled recovery UI mode preview obeys its URL boundary [2.62ms]
(pass) compiled recovery UI mode 1 obeys its URL boundary [2.80ms]

test/recovery-crypto.test.ts:
(pass) HKDF siblings match independent implementation and bind unwrap to domain, account, kind and version [18.82ms]
(pass) 100 repeated wrapping operations generate independent salts and nonces [25.56ms]

test/recovery-wait.test.ts:
(pass) server remaining wait 0s is accepted through the capability policy maximum [3.04ms]
(pass) server remaining wait 86400s is accepted through the capability policy maximum [1.00ms]
(pass) server remaining wait 90000s is accepted through the capability policy maximum [0.71ms]
(pass) server remaining wait 172800s is accepted through the capability policy maximum [1.18ms]
(pass) malformed or excessive remaining wait -1 is denied [1.50ms]
(pass) malformed or excessive remaining wait 0.5 is denied [1.22ms]
(pass) malformed or excessive remaining wait 172801 is denied [1.54ms]
(pass) malformed or excessive remaining wait 9007199254740992 is denied [1.99ms]
(pass) malformed or excessive remaining wait 90000 is denied [1.16ms]

test/recovery-rotation.test.ts:
(pass) signed-in rotation sends only a local envelope and verifier after acknowledgement [10.54ms]
(pass) abandoned word acknowledgement uploads nothing [2.65ms]
(pass) settled acknowledgement cannot upload later (dismissed) [2.81ms]
(pass) settled acknowledgement cannot upload later (no acknowledgement) [2.55ms]

src/canvas/mesh/protocol.test.ts:
(pass) the server's own list becomes nodes, tags and grants, by name [0.54ms]
(pass) without `access` (today's server) the person may view and may not edit [0.22ms]
(pass) fields the server does not send are absent, never invented [0.16ms]
(pass) anything that is not a list is refused, whole [6.38ms]
(pass) a node's own tag list and the tag table agree even when a server sends only one [0.20ms]
(pass) the subscription's events: a pushed list, a revision that invalidates, and the end of the subscription [0.37ms]
(pass) answers carry the new revision, and a create the new arrow's id [0.10ms]
(pass) endpoints go out as the server writes them: a node by id, a tag by name [0.10ms]

src/canvas/mesh/layout.test.ts:
(pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [1.06ms]
(pass) the layout is deterministic and does not depend on input order [3.72ms]
(pass) no two cards overlap, and every card lies inside the graph [7.36ms]
(pass) the sheet is wider than tall, roughly 16:10 [1.85ms]
(pass) a pinned node stays where it was put and the others do not move [2.00ms]
(pass) a pin beyond the sheet grows the graph [0.32ms]
(pass) a host's other tags do not move it; a tag nobody carries still has its node [0.23ms]
(pass) 1,000 nodes lay out in a few milliseconds [11.62ms]

src/canvas/layout/stops.test.ts:
(pass) a view that fits the viewport has one stop, centred [0.34ms]
(pass) a wide view has one stop per column and the last stop ends at the right edge [0.23ms]
(pass) a view taller than the viewport is scaled down so it fits [0.05ms]
(pass) nearestStop picks the stop whose centre is closest [0.21ms]
(pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.20ms]
(pass) a small graph keeps one stop per node column [0.07ms]
(pass) on a narrow screen a big graph does not shrink past where its names can be read: it starts at the top left [0.08ms]

src/canvas/layout/geometry.test.ts:
(pass) a dropped view pushes the one it lands on along the axis of least overlap, never itself [0.57ms]
(pass) a chain of neighbours is pushed in turn [0.15ms]
(pass) snapping rounds to whole cells [0.05ms]
(pass) reach follows grants through tags and keeps the relay [0.35ms]

src/canvas/model/document.test.ts:
(pass) a document holds references and layout, never content [0.79ms]
(pass) a document survives JSON and rebuilds the same columns [0.65ms]
(pass) a target that no longer exists is dropped, and an emptied column with it [0.12ms]
(pass) parseDocument rejects anything that is not a document of this format [0.43ms]

 54 pass
 0 fail
 9930 expect() calls
Ran 54 tests across 12 files. [251.00ms]
$ bun run build.ts
built chunk-dmw9hvbw.js, chunk-mzawrpms.js, chunk-rjwnx33q.js, main.js, chunk-x70hvm19.js, chunk-j81s3yfg.js, chunk-0aprbqyh.js, chunk-g1erzt3f.js, chunk-mkfn532b.js, chunk-vjr6zkdw.js, chunk-c9ggrp2m.js, chunk-axbkkqp1.js, chunk-en6mw0nm.js, chunk-5nbac54d.js, chunk-xxx9hpcw.js, chunk-1k4c0d4h.js, chunk-1hfqw9kz.js, chunk-kjcns4nx.js, chunk-fqd0xkpy.js, chunk-emhf6w55.js, chunk-b7va5ve0.js, chunk-bs3y68hh.js, chunk-rvp10an0.js, chunk-ekh9vhgw.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-t453nxjq.js, chunk-0bj0xtqc.js, chunk-s78197ww.js, chunk-y667rdh9.js, chunk-cmc3x3e5.js
critical chunk-cmc3x3e5.js: identity=39 gzip=39 brotli=39 bytes
critical chunk-dmw9hvbw.js: identity=20074 gzip=6378 brotli=5694 bytes
critical chunk-5nbac54d.js: identity=708460 gzip=205361 brotli=166671 bytes
critical chunk-t453nxjq.js: identity=9810 gzip=4016 brotli=3467 bytes
critical chunk-g1erzt3f.js: identity=1916 gzip=843 brotli=722 bytes
onDemand chunk-rvp10an0.js: identity=4007 gzip=1679 brotli=1463 bytes
onDemand chunk-emhf6w55.js: identity=4351 gzip=1719 brotli=1494 bytes
deferred chunk-mzawrpms.js: identity=37378 gzip=14599 brotli=12793 bytes
onDemand chunk-kjcns4nx.js: identity=5749 gzip=2762 brotli=2497 bytes
onDemand chunk-fqd0xkpy.js: identity=20875 gzip=8487 brotli=7633 bytes
critical chunk-0aprbqyh.js: identity=8172 gzip=3515 brotli=3110 bytes
critical faulty-terminal.worker.js: identity=1086 gzip=559 brotli=481 bytes
critical backdrop.worker.js: identity=243 gzip=215 brotli=186 bytes
onDemand chunk-c9ggrp2m.js: identity=1026 gzip=621 brotli=496 bytes
onDemand chunk-xxx9hpcw.js: identity=2274 gzip=1095 brotli=978 bytes
critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes
critical chunk-j81s3yfg.js: identity=6483 gzip=3113 brotli=2823 bytes
onDemand chunk-ekh9vhgw.js: identity=11538 gzip=4875 brotli=4313 bytes
deferred chunk-1k4c0d4h.js: identity=93593 gzip=32430 brotli=28683 bytes
onDemand chunk-vjr6zkdw.js: identity=14856 gzip=5464 brotli=4891 bytes
critical chunk-0bj0xtqc.js: identity=199 gzip=162 brotli=139 bytes
onDemand chunk-bs3y68hh.js: identity=5327 gzip=2566 brotli=2284 bytes
critical chunk-1hfqw9kz.js: identity=49 gzip=49 brotli=49 bytes
onDemand chunk-rjwnx33q.js: identity=2163 gzip=1058 brotli=891 bytes
critical chunk-en6mw0nm.js: identity=6456 gzip=2342 brotli=2085 bytes
critical chunk-y667rdh9.js: identity=39 gzip=39 brotli=39 bytes
critical chunk-x70hvm19.js: identity=8377 gzip=3574 brotli=3186 bytes
critical main.js: identity=107252 gzip=38901 brotli=33805 bytes
onDemand chunk-b7va5ve0.js: identity=538 gzip=350 brotli=310 bytes
critical chunk-mkfn532b.js: identity=386 gzip=237 brotli=195 bytes
critical chunk-s78197ww.js: identity=58451 gzip=19119 brotli=17122 bytes
JavaScript transfer, critical: identity=937582 gzip=288552/307200 brotli=239891/256000 bytes
JavaScript transfer, deferred: identity=130971 gzip=47029/51200 brotli=41476/45056 bytes
JavaScript transfer, onDemand: identity=72704 gzip=30676/20480 brotli=27250/18432 bytes
JavaScript transfer, onDemand largest chunk chunk-fqd0xkpy.js: gzip=8487/20480 brotli=7633/18432 bytes (class total gzip=30676 brotli=27250, not limited)
fonts/monaspace-neon/italic.latin.woff2: identity=44324 gzip=44324 brotli=44324 bytes
fonts/monaspace-neon/roman.latin.woff2: identity=40016 gzip=40016 brotli=40016 bytes
fonts/jetbrains-mono/italic.latin.woff2: identity=36316 gzip=36316 brotli=36316 bytes
fonts/jetbrains-mono/roman.latin.woff2: identity=34068 gzip=34068 brotli=34068 bytes
fonts/source-code-pro/italic.latin.woff2: identity=23612 gzip=23612 brotli=23612 bytes
fonts/source-code-pro/roman.latin.woff2: identity=22872 gzip=22872 brotli=22872 bytes
fonts/geist-mono/italic.latin.woff2: identity=21380 gzip=21380 brotli=21380 bytes
fonts/geist-mono/roman.latin.woff2: identity=19984 gzip=19984 brotli=19981 bytes
fonts/ibm-plex-mono/italic.latin.woff2: identity=22296 gzip=22296 brotli=22296 bytes
fonts/ibm-plex-mono/roman.latin.woff2: identity=19048 gzip=19048 brotli=19047 bytes
fonts/cascadia-code/italic.latin.woff2: identity=44404 gzip=44404 brotli=44404 bytes
fonts/cascadia-code/roman.latin.woff2: identity=40604 gzip=40604 brotli=40604 bytes
fonts/maple-mono-nf/italic.latin.woff2: identity=53444 gzip=53444 brotli=53444 bytes
fonts/maple-mono-nf/roman.latin.woff2: identity=46432 gzip=46432 brotli=46432 bytes
fonts/nerd-symbols.woff2: identity=223748 gzip=223748 brotli=223748 bytes
fonts/fira-code/roman.latin.woff2: identity=36756 gzip=36756 brotli=36756 bytes
fonts/commit-mono/italic-400.latin.woff2: identity=18716 gzip=18716 brotli=18716 bytes
fonts/commit-mono/italic-700.latin.woff2: identity=18352 gzip=18352 brotli=18352 bytes
fonts/commit-mono/roman-400.latin.woff2: identity=17484 gzip=17484 brotli=17484 bytes
fonts/commit-mono/roman-700.latin.woff2: identity=17260 gzip=17260 brotli=17260 bytes
Font transfer: monaspace-neon=84340/88064 jetbrains-mono=70384/75776 source-code-pro=46484/49152 geist-mono=41364/45056 ibm-plex-mono=41344/45056 cascadia-code=85008/88064 maple-mono-nf=99876/106496 (critical 46432/51200) symbols=223748/235520 fira-code=36756/40960 commit-mono=71812/75776 bytes

==> Rust stream oracle (for the differential test)

==> TypeScript protocol tests
bun test v1.4.2 (744846f84)

src/codec.test.ts:
(pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [11.71ms]
(pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.32ms]
(pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [1.45ms]
(pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.35ms]
(pass) split mux header preserves trailing Close [0.34ms]

src/stream.test.ts:
stream differential: 134 streams, 11439 schedules, zero divergences
(pass) Rust and TypeScript preserve every frame at all boundaries and random multi-splits [2836.50ms]
(pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [10.75ms]

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.87s]
Independent verification verdict: **merge after fixes**. Reviewed renderer-cost at 6b75ae8c432004e77ee970ef674d1bbfe01192e5 against merge base 42e50d42c5e43dabc3da89de4b01dd92329bf030. Evidence branch review-renderer-cost head 747bdfdb3b912087681c6bdbb8ae9416cbe9cdd7. No implementation fixes, push, deployment or remote benchmark. Unresolved confirmed findings: P0=0, P1=1, P2=2, P3=0. Earlier RC-1/RC-2 are fixed and their production tests pass. - RC-4 P1 (62789162): outputSequence and paint callbacks advance while appearance work suppresses normal rendering. Populated production canvas still shows old Ink [13,14,16,255] instead of echoed RGB [18,52,86,255] after two additional frames, with redrawPending=true. Reproduced at default 300 ms RTT. Test apps/tracer/test/renderer-output-paint-review.spec.ts. - RC-3 P2 (73f695a6): 200 retained, returned-to-80x24 VT states after ordinary grid changes and releaseRenderBuffers retain 1,131,282,432 WASM bytes (5.394 MiB/session), excluding JS/native memory, above the 2 MiB hidden budget. This records the known acceptance gap. Test apps/tracer/test/renderer-retained-memory-review.spec.ts. - RC-5 P2 (747bdfdb): Mesh grant confirmation mounted on document.body escapes the scoped appearance. Clear/Ink selected screen material is rgba(28,28,30,0.4), blur24; confirmation gets rgba(28,28,30,0.7), blur8. New focused test apps/tracer/test/mesh.spec.ts:614 fails; old Mesh material test passes at merge base and fails at reviewed head. Production screenshot evidence under $HOME/.cache/codex-scratch/renderer-cost-review/run2/: output-rtt-artifacts/*/reported-output.png; mesh-scoped-review-artifacts/*/mesh-confirmation.png; capture-clean-artifacts/*/settled-overview.png. Full suite artifacts preserved in full-browser-artifacts. Findings appended as they were confirmed to $HOME/.local/state/codex-jobs/infraternal/review-renderer-cost/findings.md. Performance acceptance remains red. Default-300-RTT, 4x-CPU 14/8-sample real production matrix: all 12 input and range p95 limits fail; eight-terminal theme/warm-font/resize time out 14/14, cold-font 3/8. Actual 200-session projections at 1/4/8 visible: 2048.8/1577.0/1231.6 MiB. Native three-pair lower-load engine workload at 200 retained states confirms initial 1003.75→203.3125 MiB and after-history 1023.375→222.9375 MiB; after resize high-water ~1105 MiB both. Under one-minute load 4.43–6.39, median total 3240.63→3452.80 ms (+6.55%), resize 2531.09→2753.06 ms (+8.77%). This workload does not independently reproduce the author's exact +56% observation. Benchmarks ran locally on infraternal-dev under CPUWeight=10000; matrix loads 33.75/26.16/20.36→22.51/28.41/25.50. No load generators. Logs matrix.log, engine-pairs.jsonl, engine-pairs-lowload.jsonl. Gates: scripts/verify fast on exact job head exits 0; complete output below verbatim. Fast gate also exits 0 on final review head with all three finding tests. Each architecture has the same binary size on job and review heads: x86_64 15,965,392 B / aarch64 13,426,064 B (review commit set delta 0 B; no new dependency or Rust implementation). All reviewer tests compile, and git diff --check passes. Latency components are red. Initial native build attempted before compiler-wrapper staging; retried successfully after staging. Real infraternal agent PTY baseline p99 329.02 ms and other-session flood 307.94 ms pass 334 ms; same-session flood 430.76 ms and growth 101.74 ms fail. Rust/harness paths are unchanged in this diff. Auth-browser components passed. Full isolated production browser suite on exact 6b75ae8c finishes 299 passed, 27 skipped, 32 failed (1.1h); no attempt to present this as a passing latency gate. The first browser run was interrupted because a concurrent fast build replaced its shared dist; later results from that interrupted run were discarded, and the entire browser suite reran in an isolated checkout, port 4405. Browser failure classification: obsolete root/body theme probes in flow cards, canvas, core-screen, contrast; wizard blur16 assertion fails at merge base too. Camera-flight ceiling, four DPR3 ghosting cases, motion audit, pending-glyph capture and four sign-in snapshot holds have baseline failures. Cell metrics, split focus, toolbar drag, container shell, predictive cursor gating/first-key cost, rename and empty/loading/error states pass in standalone reviewed-head repeats. First-run head fails returning-signin p99 5134.80 ms versus 5000; baseline run fails earlier at connection wait (different assertion). Setup-screen p99 2376.20 ms versus 1000; baseline also exceeds 1000 at 1819.70. Throughput head shows prediction penalty 5.26% versus 5% allowance; separate baseline shows+14.45%; not a controlled proof of a new regression. These failed gate rows stay recorded, not excused. Main failure log browser-isolated.log; baseline/repeat logs beside it. Shared-host load varied; no normalized browser speedup claim. Reviewer checklist: contracts/wire/auth are unchanged; no new decoder requiring fuzz target, migration or foundational dependency. Verified real pinned WASM, production canvases, retained state, appearance ordering, native font setters, atlas lifetime, protocol differential tests and scale 200. Three logical test commits, module role comments, issue history and evidence retained. Actual iPhone/Safari/120 Hz owner validation remains outstanding. scripts/verify fast — reviewed job head 6b75ae8c — exit 0, verbatim: ``` METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=307.27 p99_ms=316.33 result=PASS ==> fmt ==> VT native fmt ==> clippy Compiling proc-macro2 v1.0.107 Compiling quote v1.0.47 Compiling unicode-ident v1.0.26 Compiling libc v0.2.190 Checking cfg-if v1.0.5 Compiling autocfg v1.5.1 Compiling serde v1.0.229 Checking memchr v2.8.3 Compiling serde_core v1.0.229 Compiling version_check v0.9.5 Checking itoa v1.0.18 Compiling find-msvc-tools v0.1.14 Compiling shlex v2.0.1 Checking pin-project-lite v0.2.17 Compiling generic-array v0.14.7 Compiling zmij v1.0.23 Checking typenum v1.20.1 Checking bytes v1.12.1 Checking bitflags v2.13.2 Compiling pkg-config v0.3.34 Compiling vcpkg v0.2.15 Compiling icu_properties_data v2.3.0 Compiling jobserver v0.1.35 Compiling zerocopy v0.8.60 Compiling icu_normalizer_data v2.3.0 Compiling serde_json v1.0.151 Checking futures-core v0.3.34 Compiling memoffset v0.9.1 Checking getrandom v0.2.17 Checking errno v0.3.14 Checking mio v1.2.4 Compiling cc v1.6.0 Checking socket2 v0.6.5 Checking stable_deref_trait v1.2.1 Checking rand_core v0.6.4 Compiling thiserror v2.0.21 Compiling cfg_aliases v0.2.2 Checking signal-hook-registry v1.4.8 Compiling syn v3.0.6 Compiling syn v2.0.119 Checking crypto-common v0.1.7 Compiling num-traits v0.2.19 Compiling nix v0.30.1 Checking subtle v2.6.1 Checking smallvec v1.16.2 Checking once_cell v1.21.4 Checking log v0.4.34 Checking futures-sink v0.3.34 Checking arrayvec v0.7.8 Checking tracing-core v0.1.36 Compiling parking_lot_core v0.9.12 Compiling crossbeam-utils v0.8.23 Compiling openssl-src v300.6.1+3.6.3 Checking block-buffer v0.10.4 Checking slab v0.4.12 Checking cpufeatures v0.2.17 Checking writeable v0.6.4 Checking litemap v0.8.3 Compiling openssl-sys v0.9.117 Checking digest v0.10.7 Checking utf8_iter v1.0.4 Compiling tracing-attributes v0.1.31 Compiling zerocopy-derive v0.8.60 Checking http v1.5.0 Compiling serde_derive v1.0.229 Compiling synstructure v0.14.0 Compiling displaydoc v0.2.7 Compiling zerovec-derive v0.11.6 Compiling tokio-macros v2.7.2 Compiling zerofrom-derive v0.1.8 Compiling yoke-derive v0.8.4 Compiling thiserror-impl v2.0.21 Checking tokio v1.53.2 Checking tracing v0.1.44 Checking percent-encoding v2.3.2 Checking zerofrom v0.1.8 Checking either v1.18.0 Compiling yoke v0.8.3 Checking equivalent v1.0.2 Compiling zerovec v0.11.8 Checking zerotrie v0.2.5 Checking tinystr v0.8.4 Checking potential_utf v0.1.6 Checking icu_collections v2.3.0 Checking icu_locale_core v2.3.0 Compiling getrandom v0.3.4 Compiling scopeguard v1.2.0 Checking ppv-lite86 v0.2.21 Checking half v2.7.1 Compiling lock_api v0.4.14 Checking icu_provider v2.3.1 Checking icu_properties v2.3.0 Checking icu_normalizer v2.3.0 Checking form_urlencoded v1.2.2 Compiling futures-macro v0.3.34 Checking vte v0.15.0 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim) Checking futures-task v0.3.34 Compiling getrandom v0.4.3 Checking hashbrown v0.17.1 Compiling heck v0.5.0 Checking futures-io v0.3.34 Checking idna_adapter v1.2.2 Checking futures-util v0.3.34 Checking indexmap v2.14.2 Compiling libsqlite3-sys v0.30.1 Compiling httparse v1.10.1 Checking regex-syntax v0.8.11 Compiling num-conv v0.2.2 Compiling time-core v0.1.9 Checking minimal-lexical v0.2.1 Compiling thiserror v1.0.69 Checking infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol) Compiling time-macros v0.2.32 Checking nom v7.1.3 Checking regex-automata v0.4.18 Checking rand_core v0.9.5 Checking idna v1.1.0 Checking http-body v1.1.0 Compiling thiserror-impl v1.0.69 Compiling synstructure v0.13.2 Compiling openssl v0.10.81 Compiling foldhash v0.1.5 Checking deranged v0.5.8 Compiling allocator-api2 v0.2.21 Checking powerfmt v0.2.1 Checking foreign-types-shared v0.1.1 Compiling hashbrown v0.15.5 Checking foreign-types v0.3.2 Checking time v0.3.55 Compiling asn1-rs-derive v0.5.1 Checking rusticata-macros v4.1.0 Compiling parking_lot v0.12.5 Checking url v2.5.8 Checking uuid v1.27.0 Checking rand_chacha v0.9.0 Checking tokio-util v0.7.19 Compiling asn1-rs-impl v0.2.0 Compiling openssl-macros v0.1.1 Checking futures-channel v0.3.34 Compiling parking v2.2.1 Checking tower-service v0.3.3 Checking data-encoding v2.11.1 Compiling crc-catalog v2.5.0 Compiling crossbeam-queue v0.3.14 Compiling crc v3.4.0 Compiling sha2 v0.10.9 Compiling event-listener v5.4.2 Compiling tokio-stream v0.1.19 Checking asn1-rs v0.6.2 Checking rand v0.9.5 Compiling futures-intrusive v0.5.0 Compiling hashlink v0.10.0 Compiling spin v0.9.9 Checking num-integer v0.1.47 Compiling pastey v0.1.1 Checking utf8parse v0.2.2 Compiling oid-registry v0.7.1 Compiling ryu v1.0.23 Checking httpdate v1.0.3 Checking fnv v1.0.7 Compiling base64 v0.22.1 Checking base64 v0.21.7 Checking atomic-waker v1.1.2 Checking lazy_static v1.5.1 Compiling serde_urlencoded v0.7.1 Checking anstyle-parse v1.0.0 Checking h2 v0.4.19 Checking base64urlsafedata v0.5.5 Compiling sqlx-core v0.8.6 Compiling atoi v2.0.0 Checking num-bigint v0.4.8 Compiling flume v0.11.1 Compiling futures-executor v0.3.34 Compiling unicase v2.10.0 Compiling webauthn-attestation-ca v0.5.5 Checking anstyle-query v1.1.5 Checking tower-layer v0.3.3 Checking colorchoice v1.0.5 Checking mime v0.3.17 Compiling rustversion v1.0.23 Checking anstyle v1.0.14 Checking is_terminal_polyfill v1.70.2 Checking hyper v1.11.1 Checking anstream v1.0.0 Compiling sqlx-sqlite v0.8.6 Compiling mime_guess v2.0.5 Checking der-parser v9.0.0 Checking http-body-util v0.1.5 Checking sha1 v0.10.7 Compiling fs-err v3.3.2 Compiling webauthn-rs-core v0.5.5 Compiling tokio-openssl v0.6.5 Checking strsim v0.11.1 Compiling dotenvy v0.15.7 Checking clap_lex v1.1.1 Checking sync_wrapper v1.0.2 Compiling hex v0.4.3 Checking clap_builder v4.6.7 Checking tungstenite v0.29.0 Checking x509-parser v0.16.0 Compiling sqlx-macros-core v0.8.6 Checking hyper-util v0.1.21 Checking webauthn-rs-proto v0.5.5 Compiling clap_derive v4.6.7 Checking serde_cbor_2 v0.13.0 Checking rand_chacha v0.3.1 Checking hex-conservative v0.2.3 Checking tinyvec v1.13.3 Checking base64ct v1.8.3 Checking rand v0.8.8 Checking clap v4.6.7 Checking unicode-normalization v0.1.25 Checking password-hash v0.5.0 Checking bitcoin_hashes v0.14.101 Compiling sqlx-macros v0.8.6 Checking arc-swap v1.9.2 Checking tokio-tungstenite v0.29.0 Checking axum-core v0.5.6 Checking tower v0.5.3 Checking sharded-slab v0.1.7 Checking matchers v0.2.0 Checking tracing-serde v0.2.0 Checking blake2 v0.10.6 Checking tracing-log v0.2.0 Checking serde_path_to_error v0.1.20 Checking thread_local v1.1.10 Checking http-range-header v0.4.2 Checking nu-ansi-term v0.50.3 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server) Checking matchit v0.8.4 Checking tower-http v0.6.11 Checking argon2 v0.5.3 Checking bip39 v2.2.2 Checking tracing-subscriber v0.3.23 Checking sqlx v0.8.6 Checking unicode-width v0.2.2 Checking axum v0.8.9 Compiling crossbeam-epoch v0.9.21 Compiling crossbeam-deque v0.8.8 Compiling rayon-core v1.13.0 Checking inout v0.1.4 Checking ciborium-io v0.2.2 Checking vt100 v0.16.2 Checking plotters-backend v0.3.7 Checking ciborium-ll v0.2.2 Checking cipher v0.4.4 Checking itertools v0.13.0 Checking plotters-svg v0.3.7 Checking universal-hash v0.5.1 Compiling libfuzzer-sys v0.4.13 Checking opaque-debug v0.3.1 Checking same-file v1.0.6 Checking cast v0.3.0 Checking polyval v0.6.2 Checking plotters v0.3.7 Checking walkdir v2.5.0 Checking rayon v1.12.0 Checking criterion-plot v0.6.0 Checking ciborium v0.2.2 Checking regex v1.13.1 Checking infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-mesh) Checking tinytemplate v1.2.1 Checking oorandom v11.1.5 Checking arbitrary v1.4.2 Checking anes v0.1.6 Checking ghash v0.5.1 Checking aes v0.8.4 Checking ctr v0.9.2 Checking hmac v0.12.1 Checking aead v0.5.2 Checking hkdf v0.12.4 Checking criterion v0.7.0 Checking aes-gcm v0.10.3 Checking infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/plugins/ssh) Checking infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-plugin-api) Checking infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent) Checking infraternal-fuzz v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/fuzz) Checking axum-server v0.8.0 Checking webauthn-rs v0.5.5 Checking infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 56s ==> test Compiling cfg-if v1.0.5 Compiling memchr v2.8.3 Compiling itoa v1.0.18 Compiling libc v0.2.190 Compiling pin-project-lite v0.2.17 Compiling serde_core v1.0.229 Compiling typenum v1.20.1 Compiling bytes v1.12.1 Compiling futures-core v0.3.34 Compiling zerofrom v0.1.8 Compiling stable_deref_trait v1.2.1 Compiling zmij v1.0.23 Compiling once_cell v1.21.4 Compiling generic-array v0.14.7 Compiling yoke v0.8.3 Compiling bitflags v2.13.2 Compiling writeable v0.6.4 Compiling litemap v0.8.3 Compiling utf8_iter v1.0.4 Compiling zerocopy v0.8.60 Compiling block-buffer v0.10.4 Compiling icu_normalizer_data v2.3.0 Compiling cpufeatures v0.2.17 Compiling log v0.4.34 Compiling zerovec v0.11.8 Compiling zerotrie v0.2.5 Compiling getrandom v0.2.17 Compiling errno v0.3.14 Compiling mio v1.2.4 Compiling socket2 v0.6.5 Compiling smallvec v1.16.2 Compiling signal-hook-registry v1.4.8 Compiling rand_core v0.6.4 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling subtle v2.6.1 Compiling thiserror v2.0.21 Compiling tokio v1.53.2 Compiling icu_locale_core v2.3.0 Compiling icu_collections v2.3.0 Compiling memoffset v0.9.1 Compiling crypto-common v0.1.7 Compiling serde v1.0.229 Compiling serde_json v1.0.151 Compiling icu_properties_data v2.3.0 Compiling tracing-core v0.1.36 Compiling percent-encoding v2.3.2 Compiling nix v0.30.1 Compiling icu_provider v2.3.1 Compiling num-traits v0.2.19 Compiling futures-sink v0.3.34 Compiling form_urlencoded v1.2.2 Compiling futures-io v0.3.34 Compiling arrayvec v0.7.8 Compiling icu_properties v2.3.0 Compiling equivalent v1.0.2 Compiling futures-task v0.3.34 Compiling scopeguard v1.2.0 Compiling tracing v0.1.44 Compiling slab v0.4.12 Compiling hashbrown v0.17.1 Compiling crossbeam-utils v0.8.23 Compiling lock_api v0.4.14 Compiling digest v0.10.7 Compiling either v1.18.0 Compiling http v1.5.0 Compiling ppv-lite86 v0.2.21 Compiling indexmap v2.14.2 Compiling half v2.7.1 Compiling icu_normalizer v2.3.0 Compiling foldhash v0.1.5 Compiling allocator-api2 v0.2.21 Compiling futures-util v0.3.34 Compiling idna_adapter v1.2.2 Compiling getrandom v0.3.4 Compiling getrandom v0.4.3 Compiling num-conv v0.2.2 Compiling parking v2.2.1 Compiling hashbrown v0.15.5 Compiling minimal-lexical v0.2.1 Compiling ryu v1.0.23 Compiling crc-catalog v2.5.0 Compiling regex-syntax v0.8.11 Compiling time-core v0.1.9 Compiling crc v3.4.0 Compiling hashlink v0.10.0 Compiling nom v7.1.3 Compiling event-listener v5.4.2 Compiling time-macros v0.2.32 Compiling http-body v1.1.0 Compiling rand_core v0.9.5 Compiling idna v1.1.0 Compiling uuid v1.27.0 Compiling spin v0.9.9 Compiling parking_lot_core v0.9.12 Compiling vte v0.15.0 Compiling foreign-types-shared v0.1.1 Compiling deranged v0.5.8 Compiling powerfmt v0.2.1 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim) Compiling regex-automata v0.4.18 Compiling rusticata-macros v4.1.0 Compiling foreign-types v0.3.2 Compiling parking_lot v0.12.5 Compiling thiserror v1.0.69 Compiling url v2.5.8 Compiling rand_chacha v0.9.0 Compiling httparse v1.10.1 Compiling tokio-util v0.7.19 Compiling time v0.3.55 Compiling openssl-sys v0.9.117 Compiling futures-channel v0.3.34 Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol) Compiling data-encoding v2.11.1 Compiling tower-service v0.3.3 Compiling rand v0.9.5 Compiling openssl v0.10.81 Compiling crossbeam-queue v0.3.14 Compiling futures-intrusive v0.5.0 Compiling libsqlite3-sys v0.30.1 Compiling asn1-rs v0.6.2 Compiling sha2 v0.10.9 Compiling num-integer v0.1.47 Compiling hex v0.4.3 Compiling atomic-waker v1.1.2 Compiling httpdate v1.0.3 Compiling base64 v0.21.7 Compiling lazy_static v1.5.1 Compiling fnv v1.0.7 Compiling num-bigint v0.4.8 Compiling base64urlsafedata v0.5.5 Compiling atoi v2.0.0 Compiling h2 v0.4.19 Compiling futures-executor v0.3.34 Compiling flume v0.11.1 Compiling serde_urlencoded v0.7.1 Compiling tokio-stream v0.1.19 Compiling unicase v2.10.0 Compiling tower-layer v0.3.3 Compiling utf8parse v0.2.2 Compiling sqlx-core v0.8.6 Compiling mime v0.3.17 Compiling base64 v0.22.1 Compiling mime_guess v2.0.5 Compiling anstyle-parse v1.0.0 Compiling der-parser v9.0.0 Compiling oid-registry v0.7.1 Compiling http-body-util v0.1.5 Compiling sha1 v0.10.7 Compiling sqlx-sqlite v0.8.6 Compiling anstyle-query v1.1.5 Compiling is_terminal_polyfill v1.70.2 Compiling anstyle v1.0.14 Compiling sync_wrapper v1.0.2 Compiling colorchoice v1.0.5 Compiling tungstenite v0.29.0 Compiling x509-parser v0.16.0 Compiling webauthn-attestation-ca v0.5.5 Compiling webauthn-rs-proto v0.5.5 Compiling anstream v1.0.0 Compiling hyper v1.11.1 Compiling serde_cbor_2 v0.13.0 Compiling rand_chacha v0.3.1 Compiling hex-conservative v0.2.3 Compiling base64ct v1.8.3 Compiling clap_lex v1.1.1 Compiling sqlx-macros-core v0.8.6 Compiling tinyvec v1.13.3 Compiling strsim v0.11.1 Compiling rand v0.8.8 Compiling password-hash v0.5.0 Compiling bitcoin_hashes v0.14.101 Compiling hyper-util v0.1.21 Compiling clap_builder v4.6.7 Compiling webauthn-rs-core v0.5.5 Compiling unicode-normalization v0.1.25 Compiling tokio-tungstenite v0.29.0 Compiling sqlx-macros v0.8.6 Compiling arc-swap v1.9.2 Compiling tower v0.5.3 Compiling axum-core v0.5.6 Compiling fs-err v3.3.2 Compiling tokio-openssl v0.6.5 Compiling sharded-slab v0.1.7 Compiling matchers v0.2.0 Compiling blake2 v0.10.6 Compiling tracing-serde v0.2.0 Compiling tracing-log v0.2.0 Compiling serde_path_to_error v0.1.20 Compiling thread_local v1.1.10 Compiling http-range-header v0.4.2 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server) Compiling matchit v0.8.4 Compiling nu-ansi-term v0.50.3 Compiling clap v4.6.7 Compiling axum-server v0.8.0 Compiling webauthn-rs v0.5.5 Compiling tower-http v0.6.11 Compiling bip39 v2.2.2 Compiling argon2 v0.5.3 Compiling tracing-subscriber v0.3.23 Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent) Compiling axum v0.8.9 Compiling unicode-width v0.2.2 Compiling sqlx v0.8.6 Compiling crossbeam-epoch v0.9.21 Compiling inout v0.1.4 Compiling universal-hash v0.5.1 Compiling ciborium-io v0.2.2 Compiling cipher v0.4.4 Compiling vt100 v0.16.2 Compiling plotters-backend v0.3.7 Compiling opaque-debug v0.3.1 Compiling ciborium-ll v0.2.2 Compiling crossbeam-deque v0.8.8 Compiling itertools v0.13.0 Compiling polyval v0.6.2 Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-mesh) Compiling cast v0.3.0 Compiling plotters-svg v0.3.7 Compiling rayon-core v1.13.0 Compiling same-file v1.0.6 Compiling plotters v0.3.7 Compiling ghash v0.5.1 Compiling walkdir v2.5.0 Compiling rayon v1.12.0 Compiling ciborium v0.2.2 Compiling criterion-plot v0.6.0 Compiling ctr v0.9.2 Compiling aes v0.8.4 Compiling regex v1.13.1 Compiling hmac v0.12.1 Compiling tinytemplate v1.2.1 Compiling aead v0.5.2 Compiling oorandom v11.1.5 Compiling anes v0.1.6 Compiling hkdf v0.12.4 Compiling aes-gcm v0.10.3 Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/plugins/ssh) Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-plugin-api) Compiling criterion v0.7.0 Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 54s Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal-e5690224bd303581) running 2 tests test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_daemon-c1009f458483aa8f) running 1 test test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 42.20s Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_queues-6c04c309be0957c1) running 1 test test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 35.75s Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_review-54f50cf057262edb) running 6 tests test initial_attach_requires_explicit_credit_before_replay ... ok test last_typist_selects_its_own_real_pty_dimensions ... ok test repeated_tiny_credit_pauses_preserve_shell_progress ... ok test retained_unwritten_input_survives_interleaved_ack_restart ... ok test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 29.42s Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/agent_sessions-ff521b125a460892) running 1 test test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/idle_canary-f539ea7494e88d68) running 1 test test one_hertz_wakeup_is_detected_past_the_legacy_half_second_window ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s Running tests/shim.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/shim-ab657005a3347209) running 7 tests test attached_backpressure_and_detached_progress ... ok test disallowed_signal_only_disconnects_peer ... ok test double_fork_survives_parent_death ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test replacement_connection_and_malformed_limit ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test user_scope_survives_parent_unit_stop ... active ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.70s Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/vt_credit-51d52cc011d1b6d3) running 1 test test unaffordable_repaints_park_until_sufficient_credit ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.67s Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/vt_reconnect-ebce90a6a196ada5) running 1 test test snapshot_limits_never_close_live_reconnect ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.24s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_agent-211380b0185e0960) running 16 tests test relay::tests::attachment_has_no_implicit_output_or_snapshot_credit ... ok test relay::tests::expired_credit_resumes_retained_bytes_at_the_same_cursor ... ok test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok test relay::tests::output_partial_credit_and_dedup ... ok test relay::tests::output_payload_move_measurement ... ignored, release ownership versus payload-copy measurement test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test relay::tests::positive_insufficient_credit_arms_a_one_shot_deadline ... ok test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok test sessions::tests::reader_borrow_measurement ... ignored, release borrowed versus owned asynchronous receive measurement test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok test result: ok. 14 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.07s Running tests/transport.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/transport-a619415ba769b0e5) running 2 tests test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok test oversized_header_and_truncated_frame_are_rejected ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_mesh-3f967587718407e9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/default_arrow-312553ba19630584) running 1 test test omitted_arrow_ports_default_to_all_services ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/properties.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/properties-78f35bbe1b57dcd5) running 14 tests test addresses_are_unique_stable_and_not_recycled ... ok test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok test directional_grants_union_and_minimal_updates ... ok test exhausted_versions_reject_mutations_without_changing_state ... ok test join_to_same_tag_grants_both_initiation_directions ... ok test names_versions_and_backend_status ... ok test overlaps_are_reported_without_silent_range_changes ... ok test private_material_never_enters_debug_or_coordination_serialization ... ok test protocol_port_unions_never_grant_an_unlisted_service ... ok test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... ok test seeded_random_sequences_equal_full_compile_and_deny_without_grants ... ok test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.03s Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/rotation_time-a58dd287253d611d) running 1 test test unrepresentable_rotation_overlap_rejects_before_mutation ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_protocol-67b9a310ef49abf9) running 7 tests test stream_tests::all_short_frame_splits_match_direct_decoding ... ok test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok test stream_tests::split_mux_header_preserves_trailing_close ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_server-1fc3be3a3786e8db) running 109 tests test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok test auth::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::aaguid_migration_preserves_legacy_credentials_and_sessions ... ok test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... ok test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok test auth::tests::pending_unlock_expires_without_terminal_authority ... ok test auth::tests::provider_labels_cover_the_cited_registry_without_guessing ... ok test auth::tests::provider_session_latency_at_50_devices ... ignored, local auth session scale measurement; run without concurrent builds test auth::tests::public_status_and_discoverable_http_login ... ok test auth::tests::recovery_audit_commits_once_with_start_cancel_and_complete ... ok test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::recovery_http_live_same_account_is_immediate ... ok test auth::tests::recovery_http_other_expired_pending_and_missing_sessions_wait ... ok test auth::tests::recovery_live_session_cannot_accelerate_an_active_delayed_request ... ok test auth::tests::recovery_live_session_revoked_during_verification_cannot_waive_delay ... ok test auth::tests::recovery_session_delay_latency_at_capacity ... ignored, release-only recovery measurement at 50 live sessions; run without concurrent compilation test auth::tests::recovery_unknown_identity_pays_the_same_database_and_verifier_work ... ok test auth::tests::recovery_username_identity_is_additive_and_ambiguous_forms_fail ... ok test auth::tests::recovery_verifier_latency_at_capacity ... ignored, release-only v2 diagnostic at 50 live session rows; record host load separately test auth::tests::redacted_unknown_and_failed_registrations_do_not_claim_a_provider ... ok test auth::tests::registration_aaguid_survives_none_attestation_and_binds_session_provider ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok test auth::tests::review3_tests::review3_busy_expiry ... ok test auth::tests::review3_tests::review3_busy_logout ... ok test auth::tests::review3_tests::review3_busy_recovery ... ok test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok test auth::tests::review3_tests::review3_unwrap_cannot_be_skipped ... ok test auth::tests::review3_tests::review3_waiting_handshake_loses_authority ... ok test auth::tests::review3_tests::review4_open_reply_and_revocation_preserve_authority ... ok test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok test auth::tests::review_old_words_race_rotation ... ok test auth::tests::reviewer_tests::reviewer_disk_cancel_complete_races ... ok test auth::tests::reviewer_tests::reviewer_disk_restart_and_concurrent_resume ... ok test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... ok test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch ... ok test auth::tests::rotation_tests::recovery_rotation_denies_pending_expired_and_stale_sessions ... ok test auth::tests::rotation_tests::recovery_rotation_requires_session_and_replaces_legacy_envelope ... ok test auth::tests::rotation_tests::reviewer_concurrent_signed_in_rotations_commit_once ... ok test auth::tests::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test auth::tests::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok test auth::tests::setup_identity_validation_and_uniqueness ... ok test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok test auth::tests::setup_start_accepts_username_and_display_name ... ok test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... ok test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... ok test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... ok test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test embedded::regressions::credited_bulk_output_survives_forwarder_io_pause ... ok test embedded::regressions::credited_output_queue_at_stream_capacity ... ignored, debug actor memory/scheduling measurement; run without concurrent builds test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok test embedded::regressions::healthy_receiver_survives_ready_native_output_burst ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok test embedded::regressions::real_agent_canonical_uuid_result_is_accepted ... ok test embedded::regressions::real_agent_open_uses_uid_and_character_dimensions ... ok test embedded::regressions::reattach_must_restore_output_credit ... ok test embedded::regressions::recovery_event_then_snapshot_keeps_embedded_connection_live ... ok test embedded::regressions::recovery_notices_preserve_order_credit_and_session_isolation ... ok test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok test embedded::regressions::uncredited_output_or_repaint_is_rejected_before_queueing ... ok test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test runtime::tests::setup_socket_cleanup_preserves_symlinks_and_regular_files ... ok test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test result: ok. 100 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 154.05s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/infraternal_shim-67ffc9c8d51fcf5c) running 73 tests test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement test frame::checks::golden::every_frozen_message ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test frame::checks::tests::golden_and_fragmented ... ok test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok test session::resize_checks::resize_refusal_session_probe ... ignored, isolated session probe invoked by its parent with a controlled shell profile test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok test session::sequenced_checks::writer_selection_has_a_frozen_little_endian_layout ... ok test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok test terminal::checks::tests::saved_origin_survives_changed_margins ... ok test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_cursor ... ok test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file test terminal::fidelity::fidelity_edge ... ok test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases test terminal::fidelity::fidelity_extended_smoke ... ok test terminal::fidelity::fidelity_f1_rep ... ok test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_handwritten ... ok test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok test terminal::fidelity::fidelity_iso_protection_erase ... ok test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok test terminal::fidelity::fidelity_oracle_detects_hidden_state ... ok test terminal::fidelity::fidelity_oracle_observes_archived_cells_with_equal_active_screens ... ok test terminal::fidelity::fidelity_orphaned_spacer_head ... ok test terminal::fidelity::fidelity_prompt_resize_requires_explicit_rejection ... ok test terminal::fidelity::fidelity_recorded_corpus ... ok test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok test terminal::fidelity::fidelity_saved_modes_future_restore ... ok test terminal::fidelity::fidelity_screen_entry_consumes_inherited_shift_before_saving ... ok test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases test terminal::fidelity::fidelity_seeded_smoke ... ok test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... ok test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... ok test terminal::fidelity::fidelity_snapshot_resets_stale_viewer_color_overrides ... ok test terminal::fidelity::fidelity_spacer_head_attributes ... ok test terminal::fidelity::fidelity_variation_tail_attributes ... ok test terminal::fidelity::fidelity_variation_wrap_attributes ... ok test terminal::fidelity::fresh_captures::fidelity_fresh_real_program_captures ... ignored, manual fresh capture oracle; set VT_CAPTURE_DIR after real program capture test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::memory::measured_terminal_rss ... ignored, RSS measurement; run this filter alone in a fresh release process test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::recovery_measurements::measured_full_ring_reconstruction ... ignored, release reconstruction measurement; old healthy handles permit repeated cleanup test terminal::resize_recovery::absent_ring_keeps_last_good_size_and_later_output_usable ... ok test terminal::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok test terminal_native::allocation::resize_allocation_refusal_retires_native_handle ... ok test result: ok. 61 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 67.94s Running tests/detach.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/detach-c502cd554fb112ce) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.16s Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/debug/deps/mouse-523bfdef43cc46cb) running 1 test test faithful_snapshot_preserves_public_mouse_encoder_reports ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s Doc-tests infraternal_agent running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_mesh running 1 test test crates/infraternal-mesh/src/model.rs - model::LocalPrivateKey (line 20) - compile fail ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s Doc-tests infraternal_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:24:1 │ 24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:88:1 │ 88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'hashbrown' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:94:1 │ 94 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 95 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 ├── h2 v0.4.19 │ └── hyper v1.11.1 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ └── hyper-util v0.1.21 │ ├── axum v0.8.9 (*) │ └── axum-server v0.8.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:183:1 │ 183 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 184 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:185:1 │ 185 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 186 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:187:1 │ 187 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 188 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:189:1 │ 189 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 190 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:226:1 │ 226 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 227 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ ├── sqlx-macros v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tracing-subscriber v0.3.23 │ │ └── infraternal-server v0.1.0 (*) │ ├── webauthn-attestation-ca v0.5.5 (*) │ ├── webauthn-rs v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) └── zerocopy-derive v0.8.60 └── zerocopy v0.8.60 ├── half v2.7.1 │ ├── ciborium-ll v0.2.2 │ │ └── ciborium v0.2.2 │ │ └── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-agent v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 (*) │ └── serde_cbor_2 v0.13.0 │ ├── infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 (*) └── ppv-lite86 v0.2.21 ├── rand_chacha v0.3.1 │ └── rand v0.8.8 │ └── bip39 v2.2.2 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 (*) │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ syn v3.0.6 ├── clap_derive v4.6.7 │ └── clap v4.6.7 │ ├── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-agent v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ └── infraternal v0.1.0 (*) ├── displaydoc v0.2.7 │ ├── asn1-rs v0.6.2 │ │ ├── der-parser v9.0.0 │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── futures-macro v0.3.34 │ └── futures-util v0.3.34 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 │ └── infraternal-server v0.1.0 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.0 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── itertools v0.13.0 │ │ │ │ ├── criterion v0.7.0 (*) │ │ │ │ └── criterion-plot v0.6.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── rayon v1.12.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── sqlx-core v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── serde_urlencoded v0.7.1 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── sqlx-sqlite v0.8.6 (*) │ │ ├── sqlx-core v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ ├── tinytemplate v1.2.1 │ │ │ └── criterion v0.7.0 (*) │ │ ├── tracing-serde v0.2.0 │ │ │ └── tracing-subscriber v0.3.23 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── tracing-subscriber v0.3.23 (*) │ │ ├── url v2.5.8 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-mesh v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ └── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── axum-server v0.8.0 (*) │ ├── fs-err v3.3.2 │ │ └── axum-server v0.8.0 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── (dev) infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 (*) │ ├── tower v0.5.3 (*) │ └── tower-http v0.6.11 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:229:1 │ 229 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 230 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:231:1 │ 231 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 232 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-mesh v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/Cargo.lock:233:1 │ 233 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 234 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-mesh v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Compiling openssl-sys v0.9.117 Compiling crossbeam-utils v0.8.23 Compiling zmij v1.0.23 Compiling memoffset v0.9.1 Compiling base64 v0.21.7 Compiling foldhash v0.1.5 Compiling lazy_static v1.5.1 Compiling fnv v1.0.7 Compiling serde_json v1.0.151 Compiling base64 v0.22.1 Compiling pastey v0.1.1 Compiling oid-registry v0.7.1 Compiling httpdate v1.0.3 Compiling ryu v1.0.23 Compiling atomic-waker v1.1.2 Compiling allocator-api2 v0.2.21 Compiling cfg_aliases v0.2.2 Compiling heck v0.5.0 Compiling nix v0.30.1 Compiling h2 v0.4.19 Compiling sqlx-core v0.8.6 Compiling base64urlsafedata v0.5.5 Compiling serde_urlencoded v0.7.1 Compiling libsqlite3-sys v0.30.1 Compiling hashbrown v0.15.5 Compiling num-bigint v0.4.8 Compiling flume v0.11.1 Compiling uuid v1.27.0 Compiling atoi v2.0.0 Compiling parking_lot v0.12.5 Compiling futures-executor v0.3.34 Compiling futures-channel v0.3.34 Compiling either v1.18.0 Compiling crc-catalog v2.5.0 Compiling rustversion v1.0.23 Compiling webauthn-attestation-ca v0.5.5 Compiling parking v2.2.1 Compiling unicase v2.10.0 Compiling tower-layer v0.3.3 Compiling mime v0.3.17 Compiling der-parser v9.0.0 Compiling mime_guess v2.0.5 Compiling sqlx-sqlite v0.8.6 Compiling event-listener v5.4.2 Compiling crc v3.4.0 Compiling futures-intrusive v0.5.0 Compiling crossbeam-queue v0.3.14 Compiling hashlink v0.10.0 Compiling http-body-util v0.1.5 Compiling spin v0.9.9 Compiling sha1 v0.10.7 Compiling sha2 v0.10.9 Compiling half v2.7.1 Compiling tokio-stream v0.1.19 Compiling fs-err v3.3.2 Compiling tokio-openssl v0.6.5 Compiling sync_wrapper v1.0.2 Compiling hex v0.4.3 Compiling regex-syntax v0.8.11 Compiling webauthn-rs-core v0.5.5 Compiling utf8parse v0.2.2 Compiling dotenvy v0.15.7 Compiling anstyle-parse v1.0.0 Compiling serde_cbor_2 v0.13.0 Compiling hyper v1.11.1 Compiling sqlx-macros-core v0.8.6 Compiling tungstenite v0.29.0 Compiling x509-parser v0.16.0 Compiling webauthn-rs-proto v0.5.5 Compiling rand_chacha v0.3.1 Compiling hyper-util v0.1.21 Compiling regex-automata v0.4.18 Compiling hex-conservative v0.2.3 Compiling anstyle v1.0.14 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim) Compiling is_terminal_polyfill v1.70.2 Compiling base64ct v1.8.3 Compiling colorchoice v1.0.5 Compiling tinyvec v1.13.3 Compiling anstyle-query v1.1.5 Compiling password-hash v0.5.0 Compiling anstream v1.0.0 Compiling unicode-normalization v0.1.25 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling arc-swap v1.9.2 Compiling tokio-tungstenite v0.29.0 Compiling sqlx-macros v0.8.6 Compiling tower v0.5.3 Compiling axum-core v0.5.6 Compiling sharded-slab v0.1.7 Compiling vte v0.15.0 Compiling blake2 v0.10.6 Compiling tracing-log v0.2.0 Compiling tracing-serde v0.2.0 Compiling serde_path_to_error v0.1.20 Compiling thread_local v1.1.10 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server) Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol) Compiling matchit v0.8.4 Compiling strsim v0.11.1 Compiling matchers v0.2.0 Compiling nu-ansi-term v0.50.3 Compiling http-range-header v0.4.2 Compiling clap_lex v1.1.1 Compiling axum v0.8.9 Compiling tracing-subscriber v0.3.23 Compiling tower-http v0.6.11 Compiling argon2 v0.5.3 Compiling clap_builder v4.6.7 Compiling bip39 v2.2.2 Compiling clap_derive v4.6.7 Compiling sqlx v0.8.6 Compiling clap v4.6.7 Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent) Compiling openssl v0.10.81 Compiling axum-server v0.8.0 Compiling webauthn-rs v0.5.5 Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal) Finished `release` profile [optimized] target(s) in 8m 38s /home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped PT_INTERP: absent; size: 15965392 bytes (baseline 16142672 + allowance 262144 = max 16404816) Compiling cfg-if v1.0.5 Compiling pin-project-lite v0.2.17 Compiling libc v0.2.190 Compiling serde_core v1.0.229 Compiling memchr v2.8.3 Compiling bytes v1.12.1 Compiling itoa v1.0.18 Compiling futures-core v0.3.34 Compiling zerofrom v0.1.8 Compiling serde v1.0.229 Compiling stable_deref_trait v1.2.1 Compiling log v0.4.34 Compiling smallvec v1.16.2 Compiling once_cell v1.21.4 Compiling futures-sink v0.3.34 Compiling zerocopy v0.8.60 Compiling generic-array v0.14.7 Compiling typenum v1.20.1 Compiling yoke v0.8.3 Compiling litemap v0.8.3 Compiling slab v0.4.12 Compiling tracing-core v0.1.36 Compiling zerovec v0.11.8 Compiling writeable v0.6.4 Compiling errno v0.3.14 Compiling socket2 v0.6.5 Compiling mio v1.2.4 Compiling tracing v0.1.44 Compiling signal-hook-registry v1.4.8 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling zerotrie v0.2.5 Compiling num-traits v0.2.19 Compiling subtle v2.6.1 Compiling icu_locale_core v2.3.0 Compiling utf8_iter v1.0.4 Compiling tokio v1.53.2 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling openssl-sys v0.9.117 Compiling icu_collections v2.3.0 Compiling http v1.5.0 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling equivalent v1.0.2 Compiling percent-encoding v2.3.2 Compiling icu_provider v2.3.1 Compiling digest v0.10.7 Compiling bitflags v2.13.2 Compiling getrandom v0.3.4 Compiling form_urlencoded v1.2.2 Compiling icu_normalizer v2.3.0 Compiling icu_properties v2.3.0 Compiling hashbrown v0.17.1 Compiling futures-io v0.3.34 Compiling futures-task v0.3.34 Compiling indexmap v2.14.2 Compiling futures-util v0.3.34 Compiling cpufeatures v0.2.17 Compiling ppv-lite86 v0.2.21 Compiling zmij v1.0.23 Compiling scopeguard v1.2.0 Compiling minimal-lexical v0.2.1 Compiling serde_json v1.0.151 Compiling thiserror v1.0.69 Compiling httparse v1.10.1 Compiling lock_api v0.4.14 Compiling idna_adapter v1.2.2 Compiling rand_core v0.9.5 Compiling nom v7.1.3 Compiling http-body v1.1.0 Compiling idna v1.1.0 Compiling thiserror v2.0.21 Compiling time-core v0.1.9 Compiling num-conv v0.2.2 Compiling foreign-types-shared v0.1.1 Compiling deranged v0.5.8 Compiling powerfmt v0.2.1 Compiling rusticata-macros v4.1.0 Compiling foreign-types v0.3.2 Compiling getrandom v0.4.3 Compiling url v2.5.8 Compiling rand_chacha v0.9.0 Compiling time v0.3.55 Compiling getrandom v0.2.17 Compiling futures-channel v0.3.34 Compiling parking_lot_core v0.9.12 Compiling arrayvec v0.7.8 Compiling tower-service v0.3.3 Compiling data-encoding v2.11.1 Compiling rand_core v0.6.4 Compiling rand v0.9.5 Compiling tokio-util v0.7.19 Compiling num-integer v0.1.47 Compiling crossbeam-utils v0.8.23 Compiling allocator-api2 v0.2.21 Compiling fnv v1.0.7 Compiling httpdate v1.0.3 Compiling atomic-waker v1.1.2 Compiling base64 v0.21.7 Compiling foldhash v0.1.5 Compiling lazy_static v1.5.1 Compiling num-bigint v0.4.8 Compiling hashbrown v0.15.5 Compiling h2 v0.4.19 Compiling uuid v1.27.0 Compiling asn1-rs v0.6.2 Compiling oid-registry v0.7.1 Compiling memoffset v0.9.1 Compiling base64urlsafedata v0.5.5 Compiling parking_lot v0.12.5 Compiling either v1.18.0 Compiling parking v2.2.1 Compiling ryu v1.0.23 Compiling tower-layer v0.3.3 Compiling base64 v0.22.1 Compiling mime v0.3.17 Compiling crc-catalog v2.5.0 Compiling futures-intrusive v0.5.0 Compiling serde_urlencoded v0.7.1 Compiling event-listener v5.4.2 Compiling crc v3.4.0 Compiling hashlink v0.10.0 Compiling der-parser v9.0.0 Compiling crossbeam-queue v0.3.14 Compiling nix v0.30.1 Compiling tokio-stream v0.1.19 Compiling http-body-util v0.1.5 Compiling spin v0.9.9 Compiling sha1 v0.10.7 Compiling sha2 v0.10.9 Compiling half v2.7.1 Compiling libsqlite3-sys v0.30.1 Compiling regex-syntax v0.8.11 Compiling utf8parse v0.2.2 Compiling sync_wrapper v1.0.2 Compiling sqlx-core v0.8.6 Compiling tungstenite v0.29.0 Compiling serde_cbor_2 v0.13.0 Compiling anstyle-parse v1.0.0 Compiling x509-parser v0.16.0 Compiling hyper v1.11.1 Compiling fs-err v3.3.2 Compiling flume v0.11.1 Compiling mime_guess v2.0.5 Compiling webauthn-rs-proto v0.5.5 Compiling regex-automata v0.4.18 Compiling rand_chacha v0.3.1 Compiling hex-conservative v0.2.3 Compiling futures-executor v0.3.34 Compiling hyper-util v0.1.21 Compiling atoi v2.0.0 Compiling tinyvec v1.13.3 Compiling is_terminal_polyfill v1.70.2 Compiling unicase v2.10.0 Compiling colorchoice v1.0.5 Compiling base64ct v1.8.3 Compiling anstyle-query v1.1.5 Compiling anstyle v1.0.14 Compiling hex v0.4.3 Compiling unicode-normalization v0.1.25 Compiling password-hash v0.5.0 Compiling matchers v0.2.0 Compiling sqlx-sqlite v0.8.6 Compiling anstream v1.0.0 Compiling rand v0.8.8 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-shim) Compiling bitcoin_hashes v0.14.101 Compiling arc-swap v1.9.2 Compiling tokio-tungstenite v0.29.0 Compiling tower v0.5.3 Compiling axum-core v0.5.6 Compiling sharded-slab v0.1.7 Compiling vte v0.15.0 Compiling blake2 v0.10.6 Compiling tracing-serde v0.2.0 Compiling serde_path_to_error v0.1.20 Compiling tracing-log v0.2.0 Compiling thread_local v1.1.10 Compiling matchit v0.8.4 Compiling nu-ansi-term v0.50.3 Compiling http-range-header v0.4.2 Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-protocol) Compiling strsim v0.11.1 Compiling clap_lex v1.1.1 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-server) Compiling tracing-subscriber v0.3.23 Compiling tower-http v0.6.11 Compiling axum v0.8.9 Compiling argon2 v0.5.3 Compiling clap_builder v4.6.7 Compiling bip39 v2.2.2 Compiling sqlx v0.8.6 Compiling clap v4.6.7 Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal-agent) Compiling openssl v0.10.81 Compiling webauthn-attestation-ca v0.5.5 Compiling tokio-openssl v0.6.5 Compiling webauthn-rs-core v0.5.5 Compiling axum-server v0.8.0 Compiling webauthn-rs v0.5.5 Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/review-renderer-cost/crates/infraternal) Finished `release` profile [optimized] target(s) in 12m 13s /home/kayg/.cache/codex-scratch/renderer-cost-review/run2/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 13426064 bytes (baseline 13555672 + allowance 262144 = max 13817816) server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> Vendored Ghostty artifact checksums dist/ghostty-web.js: OK dist/ghostty-vt.wasm: OK dist/index.d.ts: OK ==> TypeScript protocol compiler ==> Tracer compiler, precompression and bundle transfer budget bun install v1.4.2 (744846f84) Checked 38 installs across 69 packages (no changes) [45.00ms] $ bun x tsc --project tsconfig.json bun test v1.4.2 (744846f84) browser-build.test.ts: (pass) the browser renderer has no unresolved Vite Node-file shim request [19.86ms] chunk-classes.test.ts: (pass) the first screen is critical, the canvas product module and what only it uses are deferred [1.78ms] (pass) a chunk that both sides use stays critical [0.39ms] (pass) code only an action loads is on demand, even when the lazy canvas is what loads it [0.41ms] precompress.test.ts: (pass) text sidecars round-trip deterministically; compressed formats remain identity [26.62ms] test/recovery-ui.test.ts: (pass) compiled recovery UI mode off obeys its URL boundary [2.69ms] (pass) compiled recovery UI mode preview obeys its URL boundary [2.62ms] (pass) compiled recovery UI mode 1 obeys its URL boundary [2.80ms] test/recovery-crypto.test.ts: (pass) HKDF siblings match independent implementation and bind unwrap to domain, account, kind and version [18.82ms] (pass) 100 repeated wrapping operations generate independent salts and nonces [25.56ms] test/recovery-wait.test.ts: (pass) server remaining wait 0s is accepted through the capability policy maximum [3.04ms] (pass) server remaining wait 86400s is accepted through the capability policy maximum [1.00ms] (pass) server remaining wait 90000s is accepted through the capability policy maximum [0.71ms] (pass) server remaining wait 172800s is accepted through the capability policy maximum [1.18ms] (pass) malformed or excessive remaining wait -1 is denied [1.50ms] (pass) malformed or excessive remaining wait 0.5 is denied [1.22ms] (pass) malformed or excessive remaining wait 172801 is denied [1.54ms] (pass) malformed or excessive remaining wait 9007199254740992 is denied [1.99ms] (pass) malformed or excessive remaining wait 90000 is denied [1.16ms] test/recovery-rotation.test.ts: (pass) signed-in rotation sends only a local envelope and verifier after acknowledgement [10.54ms] (pass) abandoned word acknowledgement uploads nothing [2.65ms] (pass) settled acknowledgement cannot upload later (dismissed) [2.81ms] (pass) settled acknowledgement cannot upload later (no acknowledgement) [2.55ms] src/canvas/mesh/protocol.test.ts: (pass) the server's own list becomes nodes, tags and grants, by name [0.54ms] (pass) without `access` (today's server) the person may view and may not edit [0.22ms] (pass) fields the server does not send are absent, never invented [0.16ms] (pass) anything that is not a list is refused, whole [6.38ms] (pass) a node's own tag list and the tag table agree even when a server sends only one [0.20ms] (pass) the subscription's events: a pushed list, a revision that invalidates, and the end of the subscription [0.37ms] (pass) answers carry the new revision, and a create the new arrow's id [0.10ms] (pass) endpoints go out as the server writes them: a node by id, a tag by name [0.10ms] src/canvas/mesh/layout.test.ts: (pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [1.06ms] (pass) the layout is deterministic and does not depend on input order [3.72ms] (pass) no two cards overlap, and every card lies inside the graph [7.36ms] (pass) the sheet is wider than tall, roughly 16:10 [1.85ms] (pass) a pinned node stays where it was put and the others do not move [2.00ms] (pass) a pin beyond the sheet grows the graph [0.32ms] (pass) a host's other tags do not move it; a tag nobody carries still has its node [0.23ms] (pass) 1,000 nodes lay out in a few milliseconds [11.62ms] src/canvas/layout/stops.test.ts: (pass) a view that fits the viewport has one stop, centred [0.34ms] (pass) a wide view has one stop per column and the last stop ends at the right edge [0.23ms] (pass) a view taller than the viewport is scaled down so it fits [0.05ms] (pass) nearestStop picks the stop whose centre is closest [0.21ms] (pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.20ms] (pass) a small graph keeps one stop per node column [0.07ms] (pass) on a narrow screen a big graph does not shrink past where its names can be read: it starts at the top left [0.08ms] src/canvas/layout/geometry.test.ts: (pass) a dropped view pushes the one it lands on along the axis of least overlap, never itself [0.57ms] (pass) a chain of neighbours is pushed in turn [0.15ms] (pass) snapping rounds to whole cells [0.05ms] (pass) reach follows grants through tags and keeps the relay [0.35ms] src/canvas/model/document.test.ts: (pass) a document holds references and layout, never content [0.79ms] (pass) a document survives JSON and rebuilds the same columns [0.65ms] (pass) a target that no longer exists is dropped, and an emptied column with it [0.12ms] (pass) parseDocument rejects anything that is not a document of this format [0.43ms] 54 pass 0 fail 9930 expect() calls Ran 54 tests across 12 files. [251.00ms] $ bun run build.ts built chunk-dmw9hvbw.js, chunk-mzawrpms.js, chunk-rjwnx33q.js, main.js, chunk-x70hvm19.js, chunk-j81s3yfg.js, chunk-0aprbqyh.js, chunk-g1erzt3f.js, chunk-mkfn532b.js, chunk-vjr6zkdw.js, chunk-c9ggrp2m.js, chunk-axbkkqp1.js, chunk-en6mw0nm.js, chunk-5nbac54d.js, chunk-xxx9hpcw.js, chunk-1k4c0d4h.js, chunk-1hfqw9kz.js, chunk-kjcns4nx.js, chunk-fqd0xkpy.js, chunk-emhf6w55.js, chunk-b7va5ve0.js, chunk-bs3y68hh.js, chunk-rvp10an0.js, chunk-ekh9vhgw.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-t453nxjq.js, chunk-0bj0xtqc.js, chunk-s78197ww.js, chunk-y667rdh9.js, chunk-cmc3x3e5.js critical chunk-cmc3x3e5.js: identity=39 gzip=39 brotli=39 bytes critical chunk-dmw9hvbw.js: identity=20074 gzip=6378 brotli=5694 bytes critical chunk-5nbac54d.js: identity=708460 gzip=205361 brotli=166671 bytes critical chunk-t453nxjq.js: identity=9810 gzip=4016 brotli=3467 bytes critical chunk-g1erzt3f.js: identity=1916 gzip=843 brotli=722 bytes onDemand chunk-rvp10an0.js: identity=4007 gzip=1679 brotli=1463 bytes onDemand chunk-emhf6w55.js: identity=4351 gzip=1719 brotli=1494 bytes deferred chunk-mzawrpms.js: identity=37378 gzip=14599 brotli=12793 bytes onDemand chunk-kjcns4nx.js: identity=5749 gzip=2762 brotli=2497 bytes onDemand chunk-fqd0xkpy.js: identity=20875 gzip=8487 brotli=7633 bytes critical chunk-0aprbqyh.js: identity=8172 gzip=3515 brotli=3110 bytes critical faulty-terminal.worker.js: identity=1086 gzip=559 brotli=481 bytes critical backdrop.worker.js: identity=243 gzip=215 brotli=186 bytes onDemand chunk-c9ggrp2m.js: identity=1026 gzip=621 brotli=496 bytes onDemand chunk-xxx9hpcw.js: identity=2274 gzip=1095 brotli=978 bytes critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes critical chunk-j81s3yfg.js: identity=6483 gzip=3113 brotli=2823 bytes onDemand chunk-ekh9vhgw.js: identity=11538 gzip=4875 brotli=4313 bytes deferred chunk-1k4c0d4h.js: identity=93593 gzip=32430 brotli=28683 bytes onDemand chunk-vjr6zkdw.js: identity=14856 gzip=5464 brotli=4891 bytes critical chunk-0bj0xtqc.js: identity=199 gzip=162 brotli=139 bytes onDemand chunk-bs3y68hh.js: identity=5327 gzip=2566 brotli=2284 bytes critical chunk-1hfqw9kz.js: identity=49 gzip=49 brotli=49 bytes onDemand chunk-rjwnx33q.js: identity=2163 gzip=1058 brotli=891 bytes critical chunk-en6mw0nm.js: identity=6456 gzip=2342 brotli=2085 bytes critical chunk-y667rdh9.js: identity=39 gzip=39 brotli=39 bytes critical chunk-x70hvm19.js: identity=8377 gzip=3574 brotli=3186 bytes critical main.js: identity=107252 gzip=38901 brotli=33805 bytes onDemand chunk-b7va5ve0.js: identity=538 gzip=350 brotli=310 bytes critical chunk-mkfn532b.js: identity=386 gzip=237 brotli=195 bytes critical chunk-s78197ww.js: identity=58451 gzip=19119 brotli=17122 bytes JavaScript transfer, critical: identity=937582 gzip=288552/307200 brotli=239891/256000 bytes JavaScript transfer, deferred: identity=130971 gzip=47029/51200 brotli=41476/45056 bytes JavaScript transfer, onDemand: identity=72704 gzip=30676/20480 brotli=27250/18432 bytes JavaScript transfer, onDemand largest chunk chunk-fqd0xkpy.js: gzip=8487/20480 brotli=7633/18432 bytes (class total gzip=30676 brotli=27250, not limited) fonts/monaspace-neon/italic.latin.woff2: identity=44324 gzip=44324 brotli=44324 bytes fonts/monaspace-neon/roman.latin.woff2: identity=40016 gzip=40016 brotli=40016 bytes fonts/jetbrains-mono/italic.latin.woff2: identity=36316 gzip=36316 brotli=36316 bytes fonts/jetbrains-mono/roman.latin.woff2: identity=34068 gzip=34068 brotli=34068 bytes fonts/source-code-pro/italic.latin.woff2: identity=23612 gzip=23612 brotli=23612 bytes fonts/source-code-pro/roman.latin.woff2: identity=22872 gzip=22872 brotli=22872 bytes fonts/geist-mono/italic.latin.woff2: identity=21380 gzip=21380 brotli=21380 bytes fonts/geist-mono/roman.latin.woff2: identity=19984 gzip=19984 brotli=19981 bytes fonts/ibm-plex-mono/italic.latin.woff2: identity=22296 gzip=22296 brotli=22296 bytes fonts/ibm-plex-mono/roman.latin.woff2: identity=19048 gzip=19048 brotli=19047 bytes fonts/cascadia-code/italic.latin.woff2: identity=44404 gzip=44404 brotli=44404 bytes fonts/cascadia-code/roman.latin.woff2: identity=40604 gzip=40604 brotli=40604 bytes fonts/maple-mono-nf/italic.latin.woff2: identity=53444 gzip=53444 brotli=53444 bytes fonts/maple-mono-nf/roman.latin.woff2: identity=46432 gzip=46432 brotli=46432 bytes fonts/nerd-symbols.woff2: identity=223748 gzip=223748 brotli=223748 bytes fonts/fira-code/roman.latin.woff2: identity=36756 gzip=36756 brotli=36756 bytes fonts/commit-mono/italic-400.latin.woff2: identity=18716 gzip=18716 brotli=18716 bytes fonts/commit-mono/italic-700.latin.woff2: identity=18352 gzip=18352 brotli=18352 bytes fonts/commit-mono/roman-400.latin.woff2: identity=17484 gzip=17484 brotli=17484 bytes fonts/commit-mono/roman-700.latin.woff2: identity=17260 gzip=17260 brotli=17260 bytes Font transfer: monaspace-neon=84340/88064 jetbrains-mono=70384/75776 source-code-pro=46484/49152 geist-mono=41364/45056 ibm-plex-mono=41344/45056 cascadia-code=85008/88064 maple-mono-nf=99876/106496 (critical 46432/51200) symbols=223748/235520 fira-code=36756/40960 commit-mono=71812/75776 bytes ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [11.71ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.32ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [1.45ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.35ms] (pass) split mux header preserves trailing Close [0.34ms] src/stream.test.ts: stream differential: 134 streams, 11439 schedules, zero divergences (pass) Rust and TypeScript preserve every frame at all boundaries and random multi-splits [2836.50ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [10.75ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.87s] ```
Author
Owner

Starting review-fix round on branch renderer-cost, starting head 6b75ae8c432004e77ee970ef674d1bbfe01192e5. I read all #97 comments, the related parent/target #121 comments, and the independent findings. I will merge dev at e704e5b8 first, then import the three review tests and fix each against real production output.

Starting review-fix round on branch `renderer-cost`, starting head `6b75ae8c432004e77ee970ef674d1bbfe01192e5`. I read all #97 comments, the related parent/target #121 comments, and the independent findings. I will merge `dev` at `e704e5b8` first, then import the three review tests and fix each against real production output.
Author
Owner

Merge integration finding: dev at e704e5b8 conflicted in apps/tracer/src/canvas/mesh/index.ts and apps/tracer/src/canvas/sessions/live.ts; both were resolved to the dev implementations, preserving D194 Mesh-only UI and the connection pool.

The merge-result fast gate passed RTT self-test, fmt, VT native fmt, clippy, and cargo-deny. The full server test run had 138 pass / 1 fail / 12 ignored; expired_handshake_releases_user_permits missed its expected HTTP 503 assertion. Focused runs passed on detached dev (0.56 s) and the merged tree (0.67 s), so the full parallel-suite failure did not reproduce in isolation. Logs: /home/kayg/.cache/codex-scratch/renderer-cost-fix/fast-merge.log, baseline-auth-retry.log.

The x86_64 static binary is 16,435,312 B against 16,404,816 B maximum (+30,496 B); the prior renderer head measured 15,965,392 B (+469,920 B across the merge). The merged Rust tree matches dev, which brings the Mesh and host-facts plugin features. Per D205 I am retaining the required dev behavior and reporting the justified feature-size overage; this run stopped before the aarch64 build and TypeScript section. cargo tree -d shows transitive version splits (including base64 0.21/0.22 and getrandom 0.2/0.3/0.4); no dependency was added by this renderer-fix round.

Merge integration finding: `dev` at `e704e5b8` conflicted in `apps/tracer/src/canvas/mesh/index.ts` and `apps/tracer/src/canvas/sessions/live.ts`; both were resolved to the `dev` implementations, preserving D194 Mesh-only UI and the connection pool. The merge-result fast gate passed RTT self-test, fmt, VT native fmt, clippy, and cargo-deny. The full server test run had 138 pass / 1 fail / 12 ignored; `expired_handshake_releases_user_permits` missed its expected HTTP 503 assertion. Focused runs passed on detached `dev` (0.56 s) and the merged tree (0.67 s), so the full parallel-suite failure did not reproduce in isolation. Logs: `/home/kayg/.cache/codex-scratch/renderer-cost-fix/fast-merge.log`, `baseline-auth-retry.log`. The x86_64 static binary is 16,435,312 B against 16,404,816 B maximum (+30,496 B); the prior renderer head measured 15,965,392 B (+469,920 B across the merge). The merged Rust tree matches `dev`, which brings the Mesh and host-facts plugin features. Per D205 I am retaining the required `dev` behavior and reporting the justified feature-size overage; this run stopped before the aarch64 build and TypeScript section. `cargo tree -d` shows transitive version splits (including base64 0.21/0.22 and getrandom 0.2/0.3/0.4); no dependency was added by this renderer-fix round.
Author
Owner

Merge step complete at 719475a9a4878ed7a48e3d8d87f939d4ab721bb3 (dev e704e5b8 integrated; current D194 Mesh and pooled sessions retained). Merge fast gate evidence is in the prior comment: x86_64 size 16,435,312 B (+30,496 B over the configured maximum); the one full-suite auth assertion did not reproduce in focused runs on dev or this tree.

Merge step complete at `719475a9a4878ed7a48e3d8d87f939d4ab721bb3` (dev `e704e5b8` integrated; current D194 Mesh and pooled sessions retained). Merge fast gate evidence is in the prior comment: x86_64 size 16,435,312 B (+30,496 B over the configured maximum); the one full-suite auth assertion did not reproduce in focused runs on dev or this tree.
Author
Owner

RC-3 red reproduced after dev merge; test commit aa687e272f90e1e182e9c64073dd5492ab6d31f8 preserves the reviewer author. Pinned Ghostty WASM, 200 terminals, 80x24 → 150x40 → 80x24 → 200x50 → 80x24, then releaseRenderBuffers(): 1,131,282,432 retained WASM bytes, 5,656,412.16 B/session (5.394 MiB) against 2,097,152 B. No session was freed and no output history was discarded. Production Playwright port 4597, infraternal-dev (8 cores), load 5.04/9.68/13.99. Full red output: /home/kayg/.cache/codex-scratch/renderer-cost-fix/red-memory.log.

RC-3 red reproduced after dev merge; test commit `aa687e272f90e1e182e9c64073dd5492ab6d31f8` preserves the reviewer author. Pinned Ghostty WASM, 200 terminals, 80x24 → 150x40 → 80x24 → 200x50 → 80x24, then `releaseRenderBuffers()`: 1,131,282,432 retained WASM bytes, 5,656,412.16 B/session (5.394 MiB) against 2,097,152 B. No session was freed and no output history was discarded. Production Playwright port 4597, `infraternal-dev` (8 cores), load 5.04/9.68/13.99. Full red output: `/home/kayg/.cache/codex-scratch/renderer-cost-fix/red-memory.log`.
Author
Owner

RC-4 red reproduced after the dev merge; test commit 4efdf26672fd118280d59c8b6dfd3bfb743b42dc preserves the reviewer author. During a Paper redraw, mux output sequence 7771 was reported painted; after two more frames the literal RGB cell still read Ink [13,14,16,255] instead of [18,52,86,255], with redrawPending=true (48.3 ms after acknowledgement). Production Chromium at 4x on infraternal-dev, port 4598, load 5.61/8.92/13.45. Output: /home/kayg/.cache/codex-scratch/renderer-cost-fix/red-paint.log.

RC-4 red reproduced after the dev merge; test commit `4efdf26672fd118280d59c8b6dfd3bfb743b42dc` preserves the reviewer author. During a Paper redraw, mux output sequence `7771` was reported painted; after two more frames the literal RGB cell still read Ink `[13,14,16,255]` instead of `[18,52,86,255]`, with `redrawPending=true` (48.3 ms after acknowledgement). Production Chromium at 4x on infraternal-dev, port 4598, load 5.61/8.92/13.45. Output: `/home/kayg/.cache/codex-scratch/renderer-cost-fix/red-paint.log`.
Author
Owner

RC-5 red reproduced after dev merge; test commit 60da85f101e3aa421d1cf523f6401854c14c3598 preserves the reviewer author. Clear/Ink screen material is rgba(28,28,30,0.4) with blur 24 px; the body-mounted Mesh confirmation is rgba(28,28,30,0.7) with blur 8 px (insideScreen=false). Production Chromium, port 4600, infraternal-dev (8 cores), load 7.28/9.06/13.31. Full output: /home/kayg/.cache/codex-scratch/renderer-cost-fix/red-mesh.log.

RC-5 red reproduced after dev merge; test commit `60da85f101e3aa421d1cf523f6401854c14c3598` preserves the reviewer author. Clear/Ink screen material is rgba(28,28,30,0.4) with blur 24 px; the body-mounted Mesh confirmation is rgba(28,28,30,0.7) with blur 8 px (`insideScreen=false`). Production Chromium, port 4600, infraternal-dev (8 cores), load 7.28/9.06/13.31. Full output: `/home/kayg/.cache/codex-scratch/renderer-cost-fix/red-mesh.log`.
Author
Owner

P1 fix committed as a06eb21e. The failing review spec now passes: during the 4x-throttled Paper redraw, literal RGB output is [18,52,86,255] when outputSequence advances; the post-render frame wait was 34.3 ms. Host load sampled immediately after the run: 17.57/15.91/14.51 (8 cores). Appearance callbacks retain queued bytes and credit until an unsuppressed render frame.

P1 fix committed as a06eb21e. The failing review spec now passes: during the 4x-throttled Paper redraw, literal RGB output is `[18,52,86,255]` when `outputSequence` advances; the post-render frame wait was 34.3 ms. Host load sampled immediately after the run: 17.57/15.91/14.51 (8 cores). Appearance callbacks retain queued bytes and credit until an unsuppressed render frame.
Author
Owner

Memory finding: the review spec's resize path grows WASM memory from 211,943,424 B after creating 200 80x24 terminals (1.06 MiB/session) to 1,050,869,760 B after resizing to 150x40 (5.25 MiB/session). Resizing smaller does not reduce the high-water. The pinned VT PageList uses per-screen page pools that retain resized pages; investigating compaction that copies live pages and releases spare pool pages while preserving scrollback.

Memory finding: the review spec's resize path grows WASM memory from 211,943,424 B after creating 200 80x24 terminals (1.06 MiB/session) to 1,050,869,760 B after resizing to 150x40 (5.25 MiB/session). Resizing smaller does not reduce the high-water. The pinned VT PageList uses per-screen page pools that retain resized pages; investigating compaction that copies live pages and releases spare pool pages while preserving scrollback.
Author
Owner

P2 memory fix committed as 0c6cd426. The 200-terminal review spec passes with 239,468,544 B retained total = 1,197,342.72 B/session (1.142 MiB), below 2,097,152 B; the oldest scrollback line and row count survive compaction. Load sampled after the run: 6.95/6.32/8.95 (8 cores). Rebuilt pinned WASM: 431,002 B, +7,253 B vs 423,749 B.

P2 memory fix committed as 0c6cd426. The 200-terminal review spec passes with 239,468,544 B retained total = 1,197,342.72 B/session (1.142 MiB), below 2,097,152 B; the oldest scrollback line and row count survive compaction. Load sampled after the run: 6.95/6.32/8.95 (8 cores). Rebuilt pinned WASM: 431,002 B, +7,253 B vs 423,749 B.
Author
Owner

RC-5 fixed in 606f4598. Mesh’s three portal confirmation paths now pass their owning terminal screen into the shared confirmation material copier (D160). The review spec passes with ink/clear selected material blur 24px and actual blur 24px; no design tokens changed.

RC-5 fixed in 606f4598. Mesh’s three portal confirmation paths now pass their owning terminal screen into the shared confirmation material copier (D160). The review spec passes with ink/clear selected material blur 24px and actual blur 24px; no design tokens changed.
Author
Owner

Renderer harness integration finding: after merging dev, TRACER_TEST_PORT=4610 RENDERER_COST_BENCH=1 ... bun x playwright test test/renderer-cost.spec.ts --grep 'renderer theme, font, and resize cost' --workers=1 failed before sampling with TypeError: ke?.sessions.rendererMetrics is not a function at generated main.js:2137, source apps/tracer/src/main.ts:410. The new pooled LiveSessions API omitted the preview metrics hook. I’m adding it as an aggregation over its live terminal bindings so the scale harness can measure the merged behavior.

Renderer harness integration finding: after merging dev, `TRACER_TEST_PORT=4610 RENDERER_COST_BENCH=1 ... bun x playwright test test/renderer-cost.spec.ts --grep 'renderer theme, font, and resize cost' --workers=1` failed before sampling with `TypeError: ke?.sessions.rendererMetrics is not a function` at generated main.js:2137, source apps/tracer/src/main.ts:410. The new pooled LiveSessions API omitted the preview metrics hook. I’m adding it as an aggregation over its live terminal bindings so the scale harness can measure the merged behavior.
Author
Owner

Post-fix renderer harness finding: at 8 live product terminals, after pagehide releases canvases and shared glyph atlases, WASM remains 5.477 MiB/terminal (budget 2 MiB); the 1/4/8 projections are 9.063/6.703/5.477 MiB. Evidence: renderer-cost-after.log, CPUWeight=10000 on infraternal-dev, 8 cores, 4x Chromium; load 10.27/7.50/8.76 -> 12.75/10.56/9.79. The dedicated 200-state compacted test is 1.142 MiB/session, so I’m checking the requested 54-session workload and the harness’s 40,000,000-row mock scrollback limit before deciding whether the compaction path needs more work.

Post-fix renderer harness finding: at 8 live product terminals, after pagehide releases canvases and shared glyph atlases, WASM remains 5.477 MiB/terminal (budget 2 MiB); the 1/4/8 projections are 9.063/6.703/5.477 MiB. Evidence: renderer-cost-after.log, CPUWeight=10000 on infraternal-dev, 8 cores, 4x Chromium; load 10.27/7.50/8.76 -> 12.75/10.56/9.79. The dedicated 200-state compacted test is 1.142 MiB/session, so I’m checking the requested 54-session workload and the harness’s 40,000,000-row mock scrollback limit before deciding whether the compaction path needs more work.
Author
Owner

54-session real-engine result: with the same 80x24 → 150x40 → 80x24 → 200x50 → 80x24 sweep, each terminal was compacted as it became hidden. At both 10,000-row and 40,000,000-row limits, 54 states retain 1.230 MiB/session after compaction (1.014 MiB/session at creation; 1.228 MiB/session resize high-water); oldest scrollback row and row count remain intact. CPUWeight=10000, infraternal-dev, load 21.59/15.81/11.94 throughout. A batch that resizes all 54 before hiding reports 5.554 MiB/session from the shared WASM linear-memory high-water; the product harness similarly reports 5.477 MiB at eight terminals. Those are conservative shared-memory high-water projections, not per-terminal live pages after each compaction.

54-session real-engine result: with the same 80x24 → 150x40 → 80x24 → 200x50 → 80x24 sweep, each terminal was compacted as it became hidden. At both 10,000-row and 40,000,000-row limits, 54 states retain 1.230 MiB/session after compaction (1.014 MiB/session at creation; 1.228 MiB/session resize high-water); oldest scrollback row and row count remain intact. CPUWeight=10000, infraternal-dev, load 21.59/15.81/11.94 throughout. A batch that resizes all 54 before hiding reports 5.554 MiB/session from the shared WASM linear-memory high-water; the product harness similarly reports 5.477 MiB at eight terminals. Those are conservative shared-memory high-water projections, not per-terminal live pages after each compaction.
Author
Owner

Renderer harness hook fixed in f446fd17: LiveSessions now reports metrics from every live binding, including pooled connections. The 14/8-sample 1/4/8 production matrix now completes and reports metrics for 1, 4 and 8 terminals; detailed p95, timeout and memory output is in the review follow-up below.

Renderer harness hook fixed in f446fd17: LiveSessions now reports metrics from every live binding, including pooled connections. The 14/8-sample 1/4/8 production matrix now completes and reports metrics for 1, 4 and 8 terminals; detailed p95, timeout and memory output is in the review follow-up below.
Author
Owner

Canvas suite finding: apps/tracer/test/canvas.spec.ts:172 compares a scoped popover (rgba(249,249,251,0.78), blur(8px) saturate(1.6)) with an unscoped document.body probe (transparent, no filter). The screen carries the selected material; body has none. I updated the test probe to live inside .terminal-screen, preserving the selected material and design; I’ll rerun this assertion after the current suite finishes.

Canvas suite finding: `apps/tracer/test/canvas.spec.ts:172` compares a scoped popover (`rgba(249,249,251,0.78)`, `blur(8px) saturate(1.6)`) with an unscoped `document.body` probe (`transparent`, no filter). The screen carries the selected material; body has none. I updated the test probe to live inside `.terminal-screen`, preserving the selected material and design; I’ll rerun this assertion after the current suite finishes.
Author
Owner

Canvas retry finding resolved: the preview-only frame HUD's 44 px .perf-hud-row intercepted the touch resize grip (diagnostic elementFromPoint hit .perf-hud-row at the grip center). Its observers also added work to the renderer benchmark. Canvas, Mesh, session-canvas and renderer-cost fixtures now use fps=0; the HUD has separate specs. The five previously failing canvas/Mesh cases now pass on port 4889. Resize-frame cost: p95 7.00 ms, max 10.70 ms. The scoped-material oracle also passes with its probe inside .terminal-screen.

Canvas retry finding resolved: the preview-only frame HUD's 44 px `.perf-hud-row` intercepted the touch resize grip (diagnostic elementFromPoint hit `.perf-hud-row` at the grip center). Its observers also added work to the renderer benchmark. Canvas, Mesh, session-canvas and renderer-cost fixtures now use `fps=0`; the HUD has separate specs. The five previously failing canvas/Mesh cases now pass on port 4889. Resize-frame cost: p95 7.00 ms, max 10.70 ms. The scoped-material oracle also passes with its probe inside `.terminal-screen`.
Author
Owner

Clean renderer matrix completed after the review fixes on port 4903, production Chromium at 4x, 14/8 samples, fps=0, CPUWeight=10000. Host load 4.99/11.21/14.76 -> 16.35/12.73/14.03 (8 CPUs). Compared with the 6b75ae8 no-HUD baseline (load 33.75/26.16/20.36 -> 22.51/28.41/25.50), input p95 / renderer range p95 / timeouts:

1 terminal — theme 87.9/122.8/10 -> 26.2/31.4/0; cold font 240.6/23.0/2 -> 140.5/31.7/3; warm font 139.3/50.3/6 -> 19.6/11.7/0; resize 100.5/46.4/4 -> 28.2/5.1/0.
4 terminals — theme 48.6/83.9/13 -> 34.4/16.2/5; cold font 579.7/24.9/7 -> 125.2/8.7/2; warm font 255.0/183.0/14 -> 39.6/47.4/1; resize 159.4/94.9/14 -> 27.7/16.4/1.
8 terminals — theme 93.6/113.8/14 -> 33.9/36.7/14; cold font 178.0/9.6/3 -> 113.2/17.9/6; warm font 95.9/42.9/14 -> 72.4/42.3/14; resize 128.3/65.7/14 -> 43.1/34.5/14.

The strict renderer-cost test remains red: at 8 sessions theme, warm font, and resize still timed out 14/14; p95 budgets remain unmet. Hidden shared-WASM high-water MiB/session before -> after: 1 terminal 9.063 -> 9.063; 4 terminals 6.703 -> 6.703; 8 terminals 4.977 -> 5.477. This is allocator high-water divided by count, not live per-state pages. The direct pinned-engine test at 54 sessions is 1.230 MiB/session hidden after sequential compaction (1.228 MiB/session resize high-water); oldest scrollback row and row count are preserved at both scrollback caps. Full follow-up is in docs/perf/renderer-cost.md.

Clean renderer matrix completed after the review fixes on port 4903, production Chromium at 4x, 14/8 samples, `fps=0`, CPUWeight=10000. Host load 4.99/11.21/14.76 -> 16.35/12.73/14.03 (8 CPUs). Compared with the 6b75ae8 no-HUD baseline (load 33.75/26.16/20.36 -> 22.51/28.41/25.50), input p95 / renderer range p95 / timeouts: 1 terminal — theme 87.9/122.8/10 -> 26.2/31.4/0; cold font 240.6/23.0/2 -> 140.5/31.7/3; warm font 139.3/50.3/6 -> 19.6/11.7/0; resize 100.5/46.4/4 -> 28.2/5.1/0. 4 terminals — theme 48.6/83.9/13 -> 34.4/16.2/5; cold font 579.7/24.9/7 -> 125.2/8.7/2; warm font 255.0/183.0/14 -> 39.6/47.4/1; resize 159.4/94.9/14 -> 27.7/16.4/1. 8 terminals — theme 93.6/113.8/14 -> 33.9/36.7/14; cold font 178.0/9.6/3 -> 113.2/17.9/6; warm font 95.9/42.9/14 -> 72.4/42.3/14; resize 128.3/65.7/14 -> 43.1/34.5/14. The strict renderer-cost test remains red: at 8 sessions theme, warm font, and resize still timed out 14/14; p95 budgets remain unmet. Hidden shared-WASM high-water MiB/session before -> after: 1 terminal 9.063 -> 9.063; 4 terminals 6.703 -> 6.703; 8 terminals 4.977 -> 5.477. This is allocator high-water divided by count, not live per-state pages. The direct pinned-engine test at 54 sessions is 1.230 MiB/session hidden after sequential compaction (1.228 MiB/session resize high-water); oldest scrollback row and row count are preserved at both scrollback caps. Full follow-up is in docs/perf/renderer-cost.md.
Author
Owner

The complete canvas browser set passed after the HUD fixture adjustment: canvas.spec.ts, sessions-canvas.spec.ts, and mesh.spec.ts, 90/90 passed in 15.9 minutes on unique port 4921 (production build, workers=1, CPUWeight=10000). The full run includes the touch resize case, screen-scoped material oracle, selected Mesh material assertion (actual and selected blur 24px), and all screenshot cases. The canvas resize frame sample was median 0.90 ms, p95 1.80 ms, max 2.30 ms. Current head before the final gate is 72edf0a1.

The complete canvas browser set passed after the HUD fixture adjustment: `canvas.spec.ts`, `sessions-canvas.spec.ts`, and `mesh.spec.ts`, 90/90 passed in 15.9 minutes on unique port 4921 (production build, workers=1, CPUWeight=10000). The full run includes the touch resize case, screen-scoped material oracle, selected Mesh material assertion (actual and selected blur 24px), and all screenshot cases. The canvas resize frame sample was median 0.90 ms, p95 1.80 ms, max 2.30 ms. Current head before the final gate is 72edf0a1.
Author
Owner

The three reviewer regressions pass together on production Playwright port 4933: 3/3 in 34.9 s. P1 output sequence 7771 reads [18,52,86,255] with pending=false after a 50.5 ms frame wait. P2 retains 239,468,544 B / 200 = 1,197,342.72 B (1.142 MiB) per hidden state against 2 MiB. P3 selected and actual Mesh confirmation surfaces both compute to blur(24px) saturate(1.6). Head: 5b2220ba.

The three reviewer regressions pass together on production Playwright port 4933: 3/3 in 34.9 s. P1 output sequence 7771 reads `[18,52,86,255]` with `pending=false` after a 50.5 ms frame wait. P2 retains 239,468,544 B / 200 = 1,197,342.72 B (1.142 MiB) per hidden state against 2 MiB. P3 selected and actual Mesh confirmation surfaces both compute to blur(24px) saturate(1.6). Head: 5b2220ba.
Author
Owner

Finished at head 0ff7f80c (the gate ran at code head 5b2220ba; subsequent commits only record measurements and verification in docs/perf/renderer-cost.md).

  • All three reviewer regressions passed together: 3/3. Painted sequence 7771 was visibly [18,52,86,255] after 50.5 ms; 200 hidden VT states retained 1.142 MiB/session (≤2 MiB) with scrollback preserved; Mesh confirmation kept the selected 24 px blur.
  • Full canvas, session-canvas, and Mesh browser set passed: 90/90 in 15.9 minutes. Resize frames: median 0.90 ms, p95 1.80 ms, max 2.30 ms. Screenshots are in the generated test results for independent review.
  • Renderer matrix: production Chromium, 4× CPU, CPUWeight=10000, 14/8 samples; load 4.99/11.21/14.76 → 16.35/12.73/14.03. Before/after input p95 / renderer-range p95 / timeouts are recorded in docs/perf/renderer-cost.md. At eight sessions, theme/warm-font/resize still timed out 14/14 and strict renderer budgets remain unmet. The 54-session real pinned-engine sequential-hide workload retained 1.230 MiB/session after compaction, from 1.228 MiB/session resize high-water, preserving the oldest row and row count at both scrollback caps.
  • scripts/verify fast: fmt, VT native fmt, clippy, Rust tests and cargo-deny passed; static builds failed only the D205 size ceiling. The merged x86_64 static binary is 16,435,312 B against 16,404,816 B (+30,496 B), attributable to the required dev Mesh and host-facts plugins (D198/D205). No limit or feature was changed. The wrapper stops before TypeScript after that failure; ts_verify_fast was run separately and passed, including vendored checksums, production build/transfer check and 36 TypeScript protocol tests.
  • No push or deployment.

scripts/verify fast output, verbatim:
METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=295.97 p99_ms=304.92 result=PASS

==> fmt

==> VT native fmt

==> clippy
Finished dev profile [unoptimized + debuginfo] target(s) in 0.90s

==> test
Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/plugins/mesh)
Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-agent)
Compiling infraternal-plugin-host-facts v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/plugins/host-facts)
Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-protocol)
Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-mesh)
Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-server)
Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal)
Finished test profile [unoptimized + debuginfo] target(s) in 46.93s
Running unittests src/main.rs (target/debug/deps/infraternal-e2d3b344194432e6)

running 2 tests
test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok
test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running tests/agent_daemon.rs (target/debug/deps/agent_daemon-18150588b28cedf2)

running 1 test
test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 41.20s

 Running tests/agent_queues.rs (target/debug/deps/agent_queues-687a933c84b6e085)

running 1 test
test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 47.15s

 Running tests/agent_review.rs (target/debug/deps/agent_review-0bb48a88c9fcff8c)

running 6 tests
test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok
test last_typist_selects_its_own_real_pty_dimensions ... ok
test initial_attach_requires_explicit_credit_before_replay ... ok
test retained_unwritten_input_survives_interleaved_ack_restart ... ok
test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok
test repeated_tiny_credit_pauses_preserve_shell_progress ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.13s

 Running tests/agent_sessions.rs (target/debug/deps/agent_sessions-eea41b55709ff896)

running 1 test
test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

 Running tests/idle_canary.rs (target/debug/deps/idle_canary-0c595ce7ad968ebd)

running 1 test
test one_hertz_wakeup_is_detected_past_the_legacy_half_second_window ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s

 Running tests/shim.rs (target/debug/deps/shim-f48eb02ae8e5c1e1)

running 7 tests
test double_fork_survives_parent_death ... ok
test disallowed_signal_only_disconnects_peer ... ok
test replacement_connection_and_malformed_limit ... ok
active
test user_scope_survives_parent_unit_stop ... ok
test real_shell_reconnect_resize_and_retained_exit ... ok
test attached_backpressure_and_detached_progress ... ok
test ring_wrap_snapshot_repaints_real_vim ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s

 Running tests/vt_credit.rs (target/debug/deps/vt_credit-0d117bb51fc3915c)

running 1 test
test unaffordable_repaints_park_until_sufficient_credit ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.84s

 Running tests/vt_reconnect.rs (target/debug/deps/vt_reconnect-bb4d0c0154c9d2dd)

running 1 test
test snapshot_limits_never_close_live_reconnect ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.26s

 Running unittests src/lib.rs (target/debug/deps/infraternal_agent-b83b37ff9bd4b2c1)

running 16 tests
test relay::tests::output_payload_move_measurement ... ignored, release ownership versus payload-copy measurement
test relay::tests::attachment_has_no_implicit_output_or_snapshot_credit ... ok
test relay::tests::overflowing_ranges_never_mutate_cursors ... ok
test relay::tests::output_partial_credit_and_dedup ... ok
test relay::tests::expired_credit_resumes_retained_bytes_at_the_same_cursor ... ok
test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok
test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok
test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok
test relay::tests::positive_insufficient_credit_arms_a_one_shot_deadline ... ok
test sessions::tests::reader_borrow_measurement ... ignored, release borrowed versus owned asynchronous receive measurement
test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok
test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok
test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok
test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok
test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok
test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok

test result: ok. 14 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.03s

 Running tests/transport.rs (target/debug/deps/transport-e464d5355e2cbd1e)

running 2 tests
test oversized_header_and_truncated_frame_are_rejected ... ok
test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

 Running unittests src/lib.rs (target/debug/deps/infraternal_mesh-3f967587718407e9)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running tests/default_arrow.rs (target/debug/deps/default_arrow-312553ba19630584)

running 1 test
test omitted_arrow_ports_default_to_all_services ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

 Running tests/properties.rs (target/debug/deps/properties-78f35bbe1b57dcd5)

running 14 tests
test overlaps_are_reported_without_silent_range_changes ... ok
test join_to_same_tag_grants_both_initiation_directions ... ok
test exhausted_versions_reject_mutations_without_changing_state ... ok
test directional_grants_union_and_minimal_updates ... ok
test names_versions_and_backend_status ... ok
test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok
test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... ok
test private_material_never_enters_debug_or_coordination_serialization ... ok
test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok
test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok
test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok
test protocol_port_unions_never_grant_an_unlisted_service ... ok
test addresses_are_unique_stable_and_not_recycled ... ok
test seeded_random_sequences_equal_full_compile_and_deny_without_grants ... ok

test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.00s

 Running tests/rotation_time.rs (target/debug/deps/rotation_time-a58dd287253d611d)

running 1 test
test unrepresentable_rotation_overlap_rejects_before_mutation ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

 Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-5c728191785f01c7)

running 4 tests
test tests::registry_rejects_oversized_json_before_plugin_dispatch ... ok
test tests::registry_routes_only_declared_actions ... ok
test routing::tests::invalid_or_oversized_topics_are_refused ... ok
test routing::tests::topic_is_borrowed_and_other_filter_fields_are_left_to_the_plugin ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running tests/routing_review.rs (target/debug/deps/routing_review-9a16e71abd7f4bdb)

running 2 tests
test review_topic_borrows_plain_and_owns_escaped ... ok
test review_topic_refuses_oversize_duplicate_and_deep_input ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_host_facts-92fb8980e23d63eb)

running 9 tests
test tests::macos_load_average_decodes_the_bounded_64_bit_sysctl_shape ... ok
test tests::linux_load_average_text_ignores_proc_metadata_and_rejects_invalid_values ... ok
test tests::descriptor_declares_default_settings_actions_and_no_hidden_role_dependency ... ok
test tests::os_release_uses_distribution_name_and_version_without_shell_evaluation ... ok
test tests::action_decoders_reject_unknown_and_oversized_fields ... ok
test tests::os_release_parser_rejects_unbounded_input_and_ignores_untrusted_lines ... ok
test tests::static_facts_are_cached_and_live_counters_are_collected_only_when_requested ... ok
test tests::runtime_disable_drops_cached_facts_and_reenable_collects_them_again ... ok
test tests::compatibility_fields_are_kept_in_the_rust_shape_and_architecture_on_wire ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

 Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_mesh-65b6dee3ae44f8e9)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-67b9a310ef49abf9)

running 7 tests
test stream_tests::all_short_frame_splits_match_direct_decoding ... ok
test stream_tests::split_mux_header_preserves_trailing_close ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok
test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

 Running unittests src/lib.rs (target/debug/deps/infraternal_server-c632a4b4662b7a24)

running 151 tests
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::tests::aaguid_migration_preserves_legacy_credentials_and_sessions ... ok
test auth::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok
test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... ok
test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok
test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok
test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok
test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok
test auth::tests::provider_labels_cover_the_cited_registry_without_guessing ... ok
test auth::tests::provider_session_latency_at_50_devices ... ignored, local auth session scale measurement; run without concurrent builds
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok
test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok
test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok
test auth::tests::host_facts_review_tests::pending_host_facts_read_keeps_control_ping_responsive ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok
test auth::tests::pending_unlock_expires_without_terminal_authority ... ok
test auth::tests::public_status_and_discoverable_http_login ... ok
test auth::tests::recovery_session_delay_latency_at_capacity ... ignored, release-only recovery measurement at 50 live sessions; run without concurrent compilation
test auth::tests::recovery_audit_commits_once_with_start_cancel_and_complete ... ok
test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::recovery_verifier_latency_at_capacity ... ignored, release-only v2 diagnostic at 50 live session rows; record host load separately
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::recovery_http_live_same_account_is_immediate ... ok
test auth::tests::recovery_http_other_expired_pending_and_missing_sessions_wait ... ok
test auth::tests::recovery_live_session_cannot_accelerate_an_active_delayed_request ... ok
test auth::tests::recovery_live_session_revoked_during_verification_cannot_waive_delay ... ok
test auth::tests::recovery_unknown_identity_pays_the_same_database_and_verifier_work ... ok
test auth::tests::recovery_username_identity_is_additive_and_ambiguous_forms_fail ... ok
test auth::tests::redacted_unknown_and_failed_registrations_do_not_claim_a_provider ... ok
test auth::tests::registration_aaguid_survives_none_attestation_and_binds_session_provider ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok
test auth::tests::review3_tests::review3_busy_expiry ... ok
test auth::tests::review3_tests::review3_busy_logout ... ok
test auth::tests::review3_tests::review3_busy_recovery ... ok
test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok
test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok
test auth::tests::review3_tests::review3_unwrap_cannot_be_skipped ... ok
test auth::tests::review3_tests::review3_waiting_handshake_loses_authority ... ok
test auth::tests::review3_tests::review4_open_reply_and_revocation_preserve_authority ... ok
test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok
test auth::tests::review_old_words_race_rotation ... ok
test auth::tests::reviewer_tests::reviewer_disk_cancel_complete_races ... ok
test auth::tests::reviewer_tests::reviewer_disk_restart_and_concurrent_resume ... ok
test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok
test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok
test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok
test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... ok
test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok
test auth::tests::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... ok
test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch ... ok
test auth::tests::setup_start_accepts_username_and_display_name ... ok
test auth::tests::rotation_tests::recovery_rotation_denies_pending_expired_and_stale_sessions ... ok
test auth::tests::rotation_tests::recovery_rotation_requires_session_and_replaces_legacy_envelope ... ok
test auth::tests::rotation_tests::reviewer_concurrent_signed_in_rotations_commit_once ... ok
test auth::tests::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok
test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... ok
test auth::tests::socket_tests::claude_review_visible_liveness::claude_review_watch_expires_host_made_visible_by_membership_edit ... ok
test auth::tests::socket_tests::mesh_latency::mesh_snapshot_keystroke_latency_at_10000_nodes ... ignored, weighted real-binary 300 ms Mesh/PTY measurement
test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok
test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok
test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok
test auth::tests::socket_tests::plugin_lifecycle::mesh_destructive_metadata_matches_frozen_confirmation_requirements ... ok
test auth::tests::socket_tests::fresh_delete::review_mesh_delete_requires_fresh_passkey_tap ... ok
test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok
test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... ok
test auth::tests::socket_tests::mesh_calls_and_subscriptions_deliver_scoped_live_inventory ... ok
test auth::tests::socket_tests::non_owner_without_host_configure_permission_is_refused_before_leg_b ... ok
test auth::tests::socket_tests::plugin_lifecycle::disabling_mesh_joins_pending_writer_and_refuses_nonowner_switches ... ok
test auth::tests::socket_tests::plugin_lifecycle::mesh_coordinator_requires_an_existing_server_role ... ok
test auth::tests::socket_tests::plugin_lifecycle::mesh_lifecycle_withdrawals_survive_calls_but_never_end_a_replacement ... ok
test auth::tests::socket_tests::plugin_lifecycle::mesh_plugin_discovery_disable_and_restart_preserve_control_socket ... ok
test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... ok
test auth::tests::socket_tests::review_control::pending_mesh_writers_preserve_authority_pool_capacity ... ok
test auth::tests::socket_tests::review_control::review_pending_mesh_write_keeps_control_dispatch_available ... ok
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation
test auth::tests::socket_tests::review_fresh_wait::review_mesh_delete_refused_when_freshness_expires_during_writer_wait ... ok
test embedded::regressions::credited_bulk_output_survives_forwarder_io_pause ... ok
test embedded::regressions::credited_output_queue_at_stream_capacity ... ignored, debug actor memory/scheduling measurement; run without concurrent builds
test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok
test embedded::regressions::healthy_receiver_survives_ready_native_output_burst ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok
test embedded::regressions::real_agent_canonical_uuid_result_is_accepted ... ok
test embedded::regressions::real_agent_open_uses_uid_and_character_dimensions ... ok
test embedded::regressions::reattach_must_restore_output_credit ... ok
test embedded::regressions::recovery_event_then_snapshot_keeps_embedded_connection_live ... ok
test embedded::regressions::recovery_notices_preserve_order_credit_and_session_isolation ... ok
test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok
test embedded::regressions::uncredited_output_or_repaint_is_rejected_before_queueing ... ok
test mesh_api_tests::claude_review::claude_review_late_committing_observation_does_not_rewind_last_seen ... ok
test mesh_api_tests::claude_review::claude_review_scoped_grant_cannot_target_node_in_unscoped_tag ... ok
test mesh_api_tests::concurrent_tag_edits_serialize_revisions_and_unique_names ... ok
test mesh_api_tests::identity::identity_migration_preserves_inventory_and_retired_audit_ids ... ok
test mesh_api_tests::identity::retired_identity_survives_database_reopen_and_exhaustion_is_atomic ... ok
test mesh_api_tests::identity::review_deleted_node_identity_is_not_reused ... ok
test mesh_api_tests::invalidation::filtered_view_invalidations_follow_every_affected_host_tag ... ok
test mesh_api_tests::invalidation::review_membership_change_notifies_other_visible_tag ... ok
test mesh_api_tests::inventory_lifecycle_preserves_policy_identity_and_audits_every_edit ... ok
test mesh_api_tests::membership::review_scoped_membership_cannot_claim_hidden_node ... ok
test mesh_api_tests::membership::scoped_membership_checks_pre_edit_host_scope ... ok
test mesh_api_tests::mesh_api_scale_benchmark ... ignored, scale measurement; run on infraternal-dev under the weighted user scope
test mesh_api_tests::pagination::an_unsendable_object_returns_a_sanitized_service_error ... ok
test mesh_api_tests::pagination::continuation_restarts_on_change_and_rechecks_permissions ... ok
test mesh_api_tests::parser_rejects_unknown_fields_user_endpoints_and_invalid_bounds ... ok
test mesh_api_tests::review_filtered::review_global_viewers_do_not_refresh_unrelated_filtered_inventory ... ok
test mesh_api_tests::review_frame_budget::review_mesh_design_point_frames_fit_shared_socket_budget ... ok
test mesh_api_tests::review_null_policy::review_null_port_policy_does_not_create_unrestricted_grant ... ok
test mesh_api_tests::review_null_scope::review_null_role_scopes_preserve_denied_inventory_access ... ok
test mesh_api_tests::scoped_grant_role_filters_inventory_and_cannot_cross_tags ... ok
test mesh_api_tests::shared_mesh_vectors_cover_each_production_action_and_wire_shape ... ok
test mesh_api_tests::watch_deadline::watch_deadline_matches_complete_filtered_snapshots ... ok
test mesh_api_tests::watch_deadline::watch_deadline_scale_benchmark ... ignored, weighted local scale measurement; run optimized without concurrent compilation
test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok
test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok
test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok
test auth::tests::socket_tests::review_liveness::review_mesh_watch_reports_liveness_expiry_without_another_edit ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test runtime::tests::setup_socket_cleanup_preserves_symlinks_and_regular_files ... ok
test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok
test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok
test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok
test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok
test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test auth::tests::socket_tests::review_subscription_refusal::oversized_refusal_cannot_reinstall_a_queued_mesh_subscription ... ok
test auth::tests::socket_tests::review_subscription_refusal::review_oversized_replacement_ends_the_previous_mesh_subscription ... ok
test auth::tests::socket_tests::review_subscription_refusal::saturated_refusal_cannot_reinstall_a_queued_mesh_subscription ... ok
test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok
test auth::tests::socket_tests::scale::review_mesh_headroom_snapshot_does_not_close_shared_socket has been running for over 60 seconds
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering has been running for over 60 seconds
test auth::tests::socket_tests::scale::review_mesh_headroom_snapshot_does_not_close_shared_socket ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok

test result: ok. 139 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 226.96s

 Running tests/mesh_parser.rs (target/debug/deps/mesh_parser-1b3a29e2bf99f34e)

running 2 tests
test review_grant_parser_rejects_unknown_nested_port_fields ... ok
test nested_endpoint_and_policy_fields_are_strict_without_rejecting_valid_ports ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running tests/mesh_review_plugin.rs (target/debug/deps/mesh_review_plugin-3ecbe466f60661a8)

running 1 test
test review_mesh_dependency_is_removable_at_build_time ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

 Running tests/mesh_review_policy.rs (target/debug/deps/mesh_review_policy-44cfb4f211627b53)

running 1 test
test review_null_port_policy_is_refused ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running tests/mesh_review_role_scope.rs (target/debug/deps/mesh_review_role_scope-d9f7f4c8fad27b0c)

running 2 tests
test role_scopes_require_an_array_when_provided ... ok
test review_explicit_null_role_scopes_do_not_become_global_authority ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

 Running tests/plugin_host_review.rs (target/debug/deps/plugin_host_review-c4e0b2d248dfdfa0)

running 7 tests
test review_undeclared_topic_is_left_to_the_core ... ok
test review_core_topic_remains_core_owned_even_when_declared ... ok
test review_completed_call_survives_normal_worker_exit ... ok
test review_disable_withdraws_view_and_keeps_socket ... ok
test review_reenable_preserves_cancelled_calls_until_delivery ... ok
test review_exited_worker_ends_its_subscriptions ... ok
test review_disable_answers_inflight_call ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s

 Running tests/plugin_settings_review.rs (target/debug/deps/plugin_settings_review-e346f9f367bf896c)

running 3 tests
test plugin_settings_enforce_boolean_and_role_plugin_identity ... ok
test failed_plugin_save_restores_previous_state_without_workers ... ok
test plugin_switches_survive_database_reopen ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s

 Running unittests src/lib.rs (target/debug/deps/infraternal_shim-67ffc9c8d51fcf5c)

running 73 tests
test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement
test ring::checks::tests::wrap_and_exact_offsets ... ok
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement
test session::resize_checks::resize_refusal_session_probe ... ignored, isolated session probe invoked by its parent with a controlled shell profile
test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok
test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok
test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok
test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok
test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok
test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok
test session::sequenced_checks::writer_selection_has_a_frozen_little_endian_layout ... ok
test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok
test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok
test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::saved_origin_survives_changed_margins ... ok
test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok
test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok
test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file
test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok
test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok
test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_cursor ... ok
test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok
test terminal::fidelity::fidelity_edge ... ok
test terminal::fidelity::fidelity_iso_protection_erase ... ok
test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok
test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_oracle_observes_archived_cells_with_equal_active_screens ... ok
test terminal::fidelity::fidelity_orphaned_spacer_head ... ok
test terminal::fidelity::fidelity_f1_rep ... ok
test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok
test terminal::fidelity::fidelity_prompt_resize_requires_explicit_rejection ... ok
test terminal::fidelity::fidelity_oracle_detects_hidden_state ... ok
test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok
test terminal::fidelity::fidelity_saved_modes_future_restore ... ok
test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases
test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok
test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok
test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok
test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... ok
test terminal::fidelity::fidelity_snapshot_resets_stale_viewer_color_overrides ... ok
test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... ok
test terminal::fidelity::fidelity_screen_entry_consumes_inherited_shift_before_saving ... ok
test terminal::fidelity::fidelity_spacer_head_attributes ... ok
test terminal::fidelity::fresh_captures::fidelity_fresh_real_program_captures ... ignored, manual fresh capture oracle; set VT_CAPTURE_DIR after real program capture
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::memory::measured_terminal_rss ... ignored, RSS measurement; run this filter alone in a fresh release process
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test terminal::recovery_measurements::measured_full_ring_reconstruction ... ignored, release reconstruction measurement; old healthy handles permit repeated cleanup
test terminal::resize_recovery::absent_ring_keeps_last_good_size_and_later_output_usable ... ok
test terminal::fidelity::fidelity_variation_tail_attributes ... ok
test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok
test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok
test terminal_native::allocation::resize_allocation_refusal_retires_native_handle ... ok
test terminal::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok
test terminal::fidelity::fidelity_variation_wrap_attributes ... ok
test terminal::fidelity::fidelity_recorded_corpus ... ok
test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok
test terminal::fidelity::fidelity_handwritten ... ok
test terminal::fidelity::fidelity_extended_smoke ... ok
test terminal::fidelity::fidelity_seeded_smoke has been running for over 60 seconds
test terminal::fidelity::fidelity_seeded_smoke ... ok

test result: ok. 61 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 65.22s

 Running tests/detach.rs (target/debug/deps/detach-c502cd554fb112ce)

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.55s

 Running tests/mouse.rs (target/debug/deps/mouse-523bfdef43cc46cb)

running 1 test
test faithful_snapshot_preserves_public_mouse_encoder_reports ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s

Doc-tests infraternal_agent

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests infraternal_mesh

running 1 test
test crates/infraternal-mesh/src/model.rs - model::LocalPrivateKey (line 20) - compile fail ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s

Doc-tests infraternal_plugin_api

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests infraternal_plugin_host_facts

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests infraternal_plugin_mesh

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests infraternal_plugin_ssh

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests infraternal_protocol

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests infraternal_server

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests infraternal_shim

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

==> cargo-deny
warning[duplicate]: found 2 duplicate entries for crate 'base64'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:24:1
│
24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index
25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index
│ ╰───────────────────────────────────────────────────────────────────┘ lock entries
│
├ base64 v0.21.7
├── base64urlsafedata v0.5.5
│ ├── webauthn-attestation-ca v0.5.5
│ │ └── webauthn-rs-core v0.5.5
│ │ └── webauthn-rs v0.5.5
│ │ └── infraternal-server v0.1.0
│ │ └── infraternal v0.1.0
│ ├── webauthn-rs v0.5.5 ()
│ ├── webauthn-rs-core v0.5.5 (
)
│ └── webauthn-rs-proto v0.5.5
│ └── webauthn-rs-core v0.5.5 ()
├── webauthn-rs-core v0.5.5 (
)
└── webauthn-rs-proto v0.5.5 ()
├ base64 v0.22.1
├── axum v0.8.9
│ └── infraternal-server v0.1.0
│ └── infraternal v0.1.0
├── infraternal-server v0.1.0 (
)
└── sqlx-core v0.8.6
├── sqlx v0.8.6
│ ├── infraternal v0.1.0 ()
│ ├── infraternal-plugin-api v0.1.0
│ │ ├── infraternal-agent v0.1.0
│ │ │ └── infraternal v0.1.0 (
)
│ │ ├── infraternal-fuzz v0.1.0
│ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ ├── infraternal-agent v0.1.0 ()
│ │ │ └── infraternal-fuzz v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ └── infraternal-server v0.1.0 ()
│ ├── infraternal-plugin-mesh v0.1.0 (
)
│ └── infraternal-server v0.1.0 ()
├── sqlx-macros v0.8.6
│ └── sqlx v0.8.6 (
)
├── sqlx-macros-core v0.8.6
│ └── sqlx-macros v0.8.6 ()
└── sqlx-sqlite v0.8.6
├── sqlx v0.8.6 (
)
└── sqlx-macros-core v0.8.6 (*)

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:90:1
│
90 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
91 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
92 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index
│ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
│
├ getrandom v0.2.17
└── rand_core v0.6.4
├── bip39 v2.2.2
│ └── infraternal-server v0.1.0
│ └── infraternal v0.1.0
├── crypto-common v0.1.7
│ ├── aead v0.5.2
│ │ └── aes-gcm v0.10.3
│ │ └── (dev) infraternal-server v0.1.0 ()
│ ├── cipher v0.4.4
│ │ ├── aes v0.8.4
│ │ │ └── aes-gcm v0.10.3 (
)
│ │ ├── aes-gcm v0.10.3 ()
│ │ └── ctr v0.9.2
│ │ └── aes-gcm v0.10.3 (
)
│ ├── digest v0.10.7
│ │ ├── blake2 v0.10.6
│ │ │ └── argon2 v0.5.3
│ │ │ └── infraternal-server v0.1.0 ()
│ │ ├── hmac v0.12.1
│ │ │ └── hkdf v0.12.4
│ │ │ └── (dev) infraternal-server v0.1.0 (
)
│ │ ├── sha1 v0.10.7
│ │ │ ├── axum v0.8.9
│ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ └── tungstenite v0.29.0
│ │ │ └── tokio-tungstenite v0.29.0
│ │ │ ├── axum v0.8.9 (
)
│ │ │ └── (dev) infraternal-server v0.1.0 ()
│ │ └── sha2 v0.10.9
│ │ ├── infraternal-server v0.1.0 (
)
│ │ ├── sqlx-core v0.8.6
│ │ │ ├── sqlx v0.8.6
│ │ │ │ ├── infraternal v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-api v0.1.0
│ │ │ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ │ │ └── infraternal v0.1.0 (
)
│ │ │ │ │ ├── infraternal-fuzz v0.1.0
│ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ │ │ ├── infraternal-agent v0.1.0 ()
│ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (
)
│ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (
)
│ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ ├── sqlx-macros v0.8.6
│ │ │ │ └── sqlx v0.8.6 (
)
│ │ │ ├── sqlx-macros-core v0.8.6
│ │ │ │ └── sqlx-macros v0.8.6 ()
│ │ │ └── sqlx-sqlite v0.8.6
│ │ │ ├── sqlx v0.8.6 (
)
│ │ │ └── sqlx-macros-core v0.8.6 ()
│ │ └── sqlx-macros-core v0.8.6 (
)
│ └── universal-hash v0.5.1
│ └── polyval v0.6.2
│ └── ghash v0.5.1
│ └── aes-gcm v0.10.3 ()
├── password-hash v0.5.0
│ └── argon2 v0.5.3 (
)
├── rand v0.8.8
│ └── bip39 v2.2.2 ()
└── rand_chacha v0.3.1
└── rand v0.8.8 (
)
├ getrandom v0.3.4
└── rand_core v0.9.5
├── rand v0.9.5
│ ├── infraternal-server v0.1.0
│ │ └── infraternal v0.1.0
│ ├── tungstenite v0.29.0
│ │ └── tokio-tungstenite v0.29.0
│ │ ├── axum v0.8.9
│ │ │ └── infraternal-server v0.1.0 ()
│ │ └── (dev) infraternal-server v0.1.0 (
)
│ └── webauthn-rs-core v0.5.5
│ └── webauthn-rs v0.5.5
│ └── infraternal-server v0.1.0 ()
└── rand_chacha v0.9.0
├── rand v0.9.5 (
)
└── webauthn-rs-core v0.5.5 ()
├ getrandom v0.4.3
├── jobserver v0.1.35
│ └── cc v1.6.0
│ ├── (build) libfuzzer-sys v0.4.13
│ │ └── infraternal-fuzz v0.1.0
│ ├── (build) libsqlite3-sys v0.30.1
│ │ └── sqlx-sqlite v0.8.6
│ │ ├── sqlx v0.8.6
│ │ │ ├── infraternal v0.1.0
│ │ │ ├── infraternal-plugin-api v0.1.0
│ │ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ │ └── infraternal v0.1.0 (
)
│ │ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ │ ├── infraternal-agent v0.1.0 (
)
│ │ │ │ │ └── infraternal-fuzz v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ │ │ ├── infraternal-fuzz v0.1.0 (
)
│ │ │ │ │ └── infraternal-server v0.1.0
│ │ │ │ │ └── infraternal v0.1.0 ()
│ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ └── sqlx-macros-core v0.8.6
│ │ └── sqlx-macros v0.8.6
│ │ └── sqlx v0.8.6 ()
│ ├── openssl-src v300.6.1+3.6.3
│ │ └── (build) openssl-sys v0.9.117
│ │ ├── axum-server v0.8.0
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ ├── openssl v0.10.81
│ │ │ ├── axum-server v0.8.0 ()
│ │ │ ├── infraternal-server v0.1.0 (
)
│ │ │ ├── tokio-openssl v0.6.5
│ │ │ │ └── axum-server v0.8.0 ()
│ │ │ ├── webauthn-attestation-ca v0.5.5
│ │ │ │ └── webauthn-rs-core v0.5.5
│ │ │ │ └── webauthn-rs v0.5.5
│ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ └── webauthn-rs-core v0.5.5 ()
│ │ ├── tokio-openssl v0.6.5 (
)
│ │ ├── webauthn-attestation-ca v0.5.5 ()
│ │ └── webauthn-rs-core v0.5.5 (
)
│ └── (build) openssl-sys v0.9.117 ()
└── uuid v1.27.0
├── infraternal-agent v0.1.0 (
)
├── infraternal-server v0.1.0 ()
├── webauthn-attestation-ca v0.5.5 (
)
├── webauthn-rs v0.5.5 ()
└── webauthn-rs-core v0.5.5 (
)

warning[duplicate]: found 2 duplicate entries for crate 'hashbrown'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:96:1
│
96 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
97 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index
│ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
│
├ hashbrown v0.15.5
├── hashlink v0.10.0
│ └── sqlx-core v0.8.6
│ ├── sqlx v0.8.6
│ │ ├── infraternal v0.1.0
│ │ ├── infraternal-plugin-api v0.1.0
│ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ └── infraternal v0.1.0 ()
│ │ │ ├── infraternal-fuzz v0.1.0
│ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ ├── infraternal-agent v0.1.0 (
)
│ │ │ │ └── infraternal-fuzz v0.1.0 ()
│ │ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ │ ├── infraternal-fuzz v0.1.0 (
)
│ │ │ │ └── infraternal-server v0.1.0
│ │ │ │ └── infraternal v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ └── infraternal-server v0.1.0 (
)
│ ├── sqlx-macros v0.8.6
│ │ └── sqlx v0.8.6 ()
│ ├── sqlx-macros-core v0.8.6
│ │ └── sqlx-macros v0.8.6 (
)
│ └── sqlx-sqlite v0.8.6
│ ├── sqlx v0.8.6 ()
│ └── sqlx-macros-core v0.8.6 (
)
└── sqlx-core v0.8.6 ()
├ hashbrown v0.17.1
└── indexmap v2.14.2
├── h2 v0.4.19
│ └── hyper v1.11.1
│ ├── axum v0.8.9
│ │ └── infraternal-server v0.1.0
│ │ └── infraternal v0.1.0
│ ├── axum-server v0.8.0
│ │ └── infraternal-server v0.1.0 (
)
│ └── hyper-util v0.1.21
│ ├── axum v0.8.9 ()
│ └── axum-server v0.8.0 (
)
└── sqlx-core v0.8.6
├── sqlx v0.8.6
│ ├── infraternal v0.1.0 ()
│ ├── infraternal-plugin-api v0.1.0
│ │ ├── infraternal-agent v0.1.0
│ │ │ └── infraternal v0.1.0 (
)
│ │ ├── infraternal-fuzz v0.1.0
│ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ ├── infraternal-agent v0.1.0 ()
│ │ │ └── infraternal-fuzz v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ └── infraternal-server v0.1.0 ()
│ ├── infraternal-plugin-mesh v0.1.0 (
)
│ └── infraternal-server v0.1.0 ()
├── sqlx-macros v0.8.6
│ └── sqlx v0.8.6 (
)
├── sqlx-macros-core v0.8.6
│ └── sqlx-macros v0.8.6 ()
└── sqlx-sqlite v0.8.6
├── sqlx v0.8.6 (
)
└── sqlx-macros-core v0.8.6 (*)

warning[duplicate]: found 2 duplicate entries for crate 'r-efi'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:187:1
│
187 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index
188 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index
│ ╰─────────────────────────────────────────────────────────────────┘ lock entries
│
├ r-efi v5.3.0
└── getrandom v0.3.4
└── rand_core v0.9.5
├── rand v0.9.5
│ ├── infraternal-server v0.1.0
│ │ └── infraternal v0.1.0
│ ├── tungstenite v0.29.0
│ │ └── tokio-tungstenite v0.29.0
│ │ ├── axum v0.8.9
│ │ │ └── infraternal-server v0.1.0 ()
│ │ └── (dev) infraternal-server v0.1.0 (
)
│ └── webauthn-rs-core v0.5.5
│ └── webauthn-rs v0.5.5
│ └── infraternal-server v0.1.0 ()
└── rand_chacha v0.9.0
├── rand v0.9.5 (
)
└── webauthn-rs-core v0.5.5 ()
├ r-efi v6.0.0
└── getrandom v0.4.3
├── jobserver v0.1.35
│ └── cc v1.6.0
│ ├── (build) libfuzzer-sys v0.4.13
│ │ └── infraternal-fuzz v0.1.0
│ ├── (build) libsqlite3-sys v0.30.1
│ │ └── sqlx-sqlite v0.8.6
│ │ ├── sqlx v0.8.6
│ │ │ ├── infraternal v0.1.0
│ │ │ ├── infraternal-plugin-api v0.1.0
│ │ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ │ └── infraternal v0.1.0 (
)
│ │ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ │ ├── infraternal-agent v0.1.0 (
)
│ │ │ │ │ └── infraternal-fuzz v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ │ │ ├── infraternal-fuzz v0.1.0 (
)
│ │ │ │ │ └── infraternal-server v0.1.0
│ │ │ │ │ └── infraternal v0.1.0 ()
│ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ └── sqlx-macros-core v0.8.6
│ │ └── sqlx-macros v0.8.6
│ │ └── sqlx v0.8.6 ()
│ ├── openssl-src v300.6.1+3.6.3
│ │ └── (build) openssl-sys v0.9.117
│ │ ├── axum-server v0.8.0
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ ├── openssl v0.10.81
│ │ │ ├── axum-server v0.8.0 ()
│ │ │ ├── infraternal-server v0.1.0 (
)
│ │ │ ├── tokio-openssl v0.6.5
│ │ │ │ └── axum-server v0.8.0 ()
│ │ │ ├── webauthn-attestation-ca v0.5.5
│ │ │ │ └── webauthn-rs-core v0.5.5
│ │ │ │ └── webauthn-rs v0.5.5
│ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ └── webauthn-rs-core v0.5.5 ()
│ │ ├── tokio-openssl v0.6.5 (
)
│ │ ├── webauthn-attestation-ca v0.5.5 ()
│ │ └── webauthn-rs-core v0.5.5 (
)
│ └── (build) openssl-sys v0.9.117 ()
└── uuid v1.27.0
├── infraternal-agent v0.1.0 (
)
├── infraternal-server v0.1.0 ()
├── webauthn-attestation-ca v0.5.5 (
)
├── webauthn-rs v0.5.5 ()
└── webauthn-rs-core v0.5.5 (
)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:189:1
│
189 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index
190 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index
│ ╰────────────────────────────────────────────────────────────────┘ lock entries
│
├ rand v0.8.8
└── bip39 v2.2.2
└── infraternal-server v0.1.0
└── infraternal v0.1.0
├ rand v0.9.5
├── infraternal-server v0.1.0
│ └── infraternal v0.1.0
├── tungstenite v0.29.0
│ └── tokio-tungstenite v0.29.0
│ ├── axum v0.8.9
│ │ └── infraternal-server v0.1.0 ()
│ └── (dev) infraternal-server v0.1.0 (
)
└── webauthn-rs-core v0.5.5
└── webauthn-rs v0.5.5
└── infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:191:1
│
191 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index
192 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index
│ ╰───────────────────────────────────────────────────────────────────────┘ lock entries
│
├ rand_chacha v0.3.1
└── rand v0.8.8
└── bip39 v2.2.2
└── infraternal-server v0.1.0
└── infraternal v0.1.0
├ rand_chacha v0.9.0
├── rand v0.9.5
│ ├── infraternal-server v0.1.0
│ │ └── infraternal v0.1.0
│ ├── tungstenite v0.29.0
│ │ └── tokio-tungstenite v0.29.0
│ │ ├── axum v0.8.9
│ │ │ └── infraternal-server v0.1.0 ()
│ │ └── (dev) infraternal-server v0.1.0 (
)
│ └── webauthn-rs-core v0.5.5
│ └── webauthn-rs v0.5.5
│ └── infraternal-server v0.1.0 ()
└── webauthn-rs-core v0.5.5 (
)

warning[duplicate]: found 2 duplicate entries for crate 'rand_core'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:193:1
│
193 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index
194 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index
│ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
│
├ rand_core v0.6.4
├── bip39 v2.2.2
│ └── infraternal-server v0.1.0
│ └── infraternal v0.1.0
├── crypto-common v0.1.7
│ ├── aead v0.5.2
│ │ └── aes-gcm v0.10.3
│ │ └── (dev) infraternal-server v0.1.0 ()
│ ├── cipher v0.4.4
│ │ ├── aes v0.8.4
│ │ │ └── aes-gcm v0.10.3 (
)
│ │ ├── aes-gcm v0.10.3 ()
│ │ └── ctr v0.9.2
│ │ └── aes-gcm v0.10.3 (
)
│ ├── digest v0.10.7
│ │ ├── blake2 v0.10.6
│ │ │ └── argon2 v0.5.3
│ │ │ └── infraternal-server v0.1.0 ()
│ │ ├── hmac v0.12.1
│ │ │ └── hkdf v0.12.4
│ │ │ └── (dev) infraternal-server v0.1.0 (
)
│ │ ├── sha1 v0.10.7
│ │ │ ├── axum v0.8.9
│ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ └── tungstenite v0.29.0
│ │ │ └── tokio-tungstenite v0.29.0
│ │ │ ├── axum v0.8.9 (
)
│ │ │ └── (dev) infraternal-server v0.1.0 ()
│ │ └── sha2 v0.10.9
│ │ ├── infraternal-server v0.1.0 (
)
│ │ ├── sqlx-core v0.8.6
│ │ │ ├── sqlx v0.8.6
│ │ │ │ ├── infraternal v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-api v0.1.0
│ │ │ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ │ │ └── infraternal v0.1.0 (
)
│ │ │ │ │ ├── infraternal-fuzz v0.1.0
│ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ │ │ ├── infraternal-agent v0.1.0 ()
│ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (
)
│ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (
)
│ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ ├── sqlx-macros v0.8.6
│ │ │ │ └── sqlx v0.8.6 (
)
│ │ │ ├── sqlx-macros-core v0.8.6
│ │ │ │ └── sqlx-macros v0.8.6 ()
│ │ │ └── sqlx-sqlite v0.8.6
│ │ │ ├── sqlx v0.8.6 (
)
│ │ │ └── sqlx-macros-core v0.8.6 ()
│ │ └── sqlx-macros-core v0.8.6 (
)
│ └── universal-hash v0.5.1
│ └── polyval v0.6.2
│ └── ghash v0.5.1
│ └── aes-gcm v0.10.3 ()
├── password-hash v0.5.0
│ └── argon2 v0.5.3 (
)
├── rand v0.8.8
│ └── bip39 v2.2.2 ()
└── rand_chacha v0.3.1
└── rand v0.8.8 (
)
├ rand_core v0.9.5
├── rand v0.9.5
│ ├── infraternal-server v0.1.0
│ │ └── infraternal v0.1.0
│ ├── tungstenite v0.29.0
│ │ └── tokio-tungstenite v0.29.0
│ │ ├── axum v0.8.9
│ │ │ └── infraternal-server v0.1.0 ()
│ │ └── (dev) infraternal-server v0.1.0 (
)
│ └── webauthn-rs-core v0.5.5
│ └── webauthn-rs v0.5.5
│ └── infraternal-server v0.1.0 ()
└── rand_chacha v0.9.0
├── rand v0.9.5 (
)
└── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'syn'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:230:1
│
230 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
231 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index
│ ╰───────────────────────────────────────────────────────────────┘ lock entries
│
├ syn v2.0.119
├── asn1-rs-derive v0.5.1
│ └── asn1-rs v0.6.2
│ ├── der-parser v9.0.0
│ │ ├── webauthn-rs-core v0.5.5
│ │ │ └── webauthn-rs v0.5.5
│ │ │ └── infraternal-server v0.1.0
│ │ │ └── infraternal v0.1.0
│ │ └── x509-parser v0.16.0
│ │ └── webauthn-rs-core v0.5.5 ()
│ ├── oid-registry v0.7.1
│ │ └── x509-parser v0.16.0 (
)
│ └── x509-parser v0.16.0 ()
├── asn1-rs-impl v0.2.0
│ └── asn1-rs v0.6.2 (
)
├── enum-as-inner v0.6.1
│ └── sysctl v0.7.1
│ └── infraternal-plugin-host-facts v0.1.0
│ ├── infraternal-agent v0.1.0
│ │ └── infraternal v0.1.0 ()
│ └── infraternal-fuzz v0.1.0
├── openssl-macros v0.1.1
│ └── openssl v0.10.81
│ ├── axum-server v0.8.0
│ │ └── infraternal-server v0.1.0 (
)
│ ├── infraternal-server v0.1.0 ()
│ ├── tokio-openssl v0.6.5
│ │ └── axum-server v0.8.0 (
)
│ ├── webauthn-attestation-ca v0.5.5
│ │ └── webauthn-rs-core v0.5.5 ()
│ └── webauthn-rs-core v0.5.5 (
)
├── sqlx-macros v0.8.6
│ └── sqlx v0.8.6
│ ├── infraternal v0.1.0 ()
│ ├── infraternal-plugin-api v0.1.0
│ │ ├── infraternal-agent v0.1.0 (
)
│ │ ├── infraternal-fuzz v0.1.0 ()
│ │ ├── infraternal-plugin-host-facts v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ └── infraternal-server v0.1.0 ()
│ ├── infraternal-plugin-mesh v0.1.0 (
)
│ └── infraternal-server v0.1.0 ()
├── sqlx-macros-core v0.8.6
│ └── sqlx-macros v0.8.6 (
)
├── synstructure v0.13.2
│ └── asn1-rs-derive v0.5.1 ()
├── thiserror-impl v1.0.69
│ └── thiserror v1.0.69
│ ├── asn1-rs v0.6.2 (
)
│ ├── webauthn-rs-core v0.5.5 ()
│ └── x509-parser v0.16.0 (
)
├── tracing-attributes v0.1.31
│ └── tracing v0.1.44
│ ├── axum v0.8.9
│ │ └── infraternal-server v0.1.0 ()
│ ├── axum-core v0.5.6
│ │ └── axum v0.8.9 (
)
│ ├── h2 v0.4.19
│ │ └── hyper v1.11.1
│ │ ├── axum v0.8.9 ()
│ │ ├── axum-server v0.8.0 (
)
│ │ └── hyper-util v0.1.21
│ │ ├── axum v0.8.9 ()
│ │ └── axum-server v0.8.0 (
)
│ ├── infraternal-server v0.1.0 ()
│ ├── sqlx-core v0.8.6
│ │ ├── sqlx v0.8.6 (
)
│ │ ├── sqlx-macros v0.8.6 ()
│ │ ├── sqlx-macros-core v0.8.6 (
)
│ │ └── sqlx-sqlite v0.8.6
│ │ ├── sqlx v0.8.6 ()
│ │ └── sqlx-macros-core v0.8.6 (
)
│ ├── sqlx-sqlite v0.8.6 ()
│ ├── tower v0.5.3
│ │ ├── axum v0.8.9 (
)
│ │ └── (dev) infraternal-server v0.1.0 ()
│ ├── tracing-subscriber v0.3.23
│ │ └── infraternal-server v0.1.0 (
)
│ ├── webauthn-attestation-ca v0.5.5 ()
│ ├── webauthn-rs v0.5.5 (
)
│ └── webauthn-rs-core v0.5.5 ()
└── zerocopy-derive v0.8.60
└── zerocopy v0.8.60
├── half v2.7.1
│ ├── ciborium-ll v0.2.2
│ │ └── ciborium v0.2.2
│ │ └── criterion v0.7.0
│ │ └── (dev) infraternal-protocol v0.1.0
│ │ ├── infraternal-agent v0.1.0 (
)
│ │ ├── infraternal-fuzz v0.1.0 ()
│ │ ├── (dev) infraternal-plugin-host-facts v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ └── infraternal-server v0.1.0 (
)
│ └── serde_cbor_2 v0.13.0
│ ├── infraternal-server v0.1.0 ()
│ └── webauthn-rs-core v0.5.5 (
)
└── ppv-lite86 v0.2.21
├── rand_chacha v0.3.1
│ └── rand v0.8.8
│ └── bip39 v2.2.2
│ └── infraternal-server v0.1.0 ()
└── rand_chacha v0.9.0
├── rand v0.9.5
│ ├── infraternal-server v0.1.0 (
)
│ ├── tungstenite v0.29.0
│ │ └── tokio-tungstenite v0.29.0
│ │ ├── axum v0.8.9 ()
│ │ └── (dev) infraternal-server v0.1.0 (
)
│ └── webauthn-rs-core v0.5.5 ()
└── webauthn-rs-core v0.5.5 (
)
├ syn v3.0.6
├── clap_derive v4.6.7
│ └── clap v4.6.7
│ ├── criterion v0.7.0
│ │ └── (dev) infraternal-protocol v0.1.0
│ │ ├── infraternal-agent v0.1.0
│ │ │ └── infraternal v0.1.0
│ │ ├── infraternal-fuzz v0.1.0
│ │ ├── (dev) infraternal-plugin-host-facts v0.1.0
│ │ │ ├── infraternal-agent v0.1.0 ()
│ │ │ └── infraternal-fuzz v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0
│ │ │ └── infraternal v0.1.0 (
)
│ │ └── infraternal-server v0.1.0 ()
│ └── infraternal v0.1.0 (
)
├── displaydoc v0.2.7
│ ├── asn1-rs v0.6.2
│ │ ├── der-parser v9.0.0
│ │ │ ├── webauthn-rs-core v0.5.5
│ │ │ │ └── webauthn-rs v0.5.5
│ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ └── x509-parser v0.16.0
│ │ │ └── webauthn-rs-core v0.5.5 (
)
│ │ ├── oid-registry v0.7.1
│ │ │ └── x509-parser v0.16.0 ()
│ │ └── x509-parser v0.16.0 (
)
│ ├── der-parser v9.0.0 ()
│ ├── icu_collections v2.3.0
│ │ ├── icu_normalizer v2.3.0
│ │ │ └── idna_adapter v1.2.2
│ │ │ └── idna v1.1.0
│ │ │ └── url v2.5.8
│ │ │ ├── infraternal-server v0.1.0 (
)
│ │ │ ├── sqlx-core v0.8.6
│ │ │ │ ├── sqlx v0.8.6
│ │ │ │ │ ├── infraternal v0.1.0 ()
│ │ │ │ │ ├── infraternal-plugin-api v0.1.0
│ │ │ │ │ │ ├── infraternal-agent v0.1.0 (
)
│ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 ()
│ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 (
)
│ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ │ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ │ ├── sqlx-macros v0.8.6
│ │ │ │ │ └── sqlx v0.8.6 ()
│ │ │ │ ├── sqlx-macros-core v0.8.6
│ │ │ │ │ └── sqlx-macros v0.8.6 (
)
│ │ │ │ └── sqlx-sqlite v0.8.6
│ │ │ │ ├── sqlx v0.8.6 ()
│ │ │ │ └── sqlx-macros-core v0.8.6 (
)
│ │ │ ├── sqlx-macros-core v0.8.6 ()
│ │ │ ├── sqlx-sqlite v0.8.6 (
)
│ │ │ ├── webauthn-rs v0.5.5 ()
│ │ │ ├── webauthn-rs-core v0.5.5 (
)
│ │ │ └── webauthn-rs-proto v0.5.5
│ │ │ └── webauthn-rs-core v0.5.5 ()
│ │ └── icu_properties v2.3.0
│ │ └── idna_adapter v1.2.2 (
)
│ ├── icu_locale_core v2.3.0
│ │ ├── icu_properties v2.3.0 ()
│ │ └── icu_provider v2.3.1
│ │ ├── icu_normalizer v2.3.0 (
)
│ │ └── icu_properties v2.3.0 ()
│ ├── icu_properties v2.3.0 (
)
│ ├── icu_provider v2.3.1 ()
│ ├── tinystr v0.8.4
│ │ └── icu_locale_core v2.3.0 (
)
│ └── zerotrie v0.2.5
│ ├── icu_properties v2.3.0 ()
│ └── icu_provider v2.3.1 (
)
├── futures-macro v0.3.34
│ └── futures-util v0.3.34
│ ├── axum v0.8.9
│ │ └── infraternal-server v0.1.0 ()
│ ├── futures-executor v0.3.34
│ │ └── sqlx-sqlite v0.8.6 (
)
│ ├── infraternal-plugin-mesh v0.1.0 ()
│ ├── infraternal-server v0.1.0 (
)
│ ├── js-sys v0.3.106
│ │ └── web-sys v0.3.106
│ │ └── plotters v0.3.7
│ │ └── criterion v0.7.0 ()
│ ├── sqlx-core v0.8.6 (
)
│ ├── sqlx-sqlite v0.8.6 ()
│ ├── tokio-tungstenite v0.29.0
│ │ ├── axum v0.8.9 (
)
│ │ └── (dev) infraternal-server v0.1.0 ()
│ ├── tower v0.5.3
│ │ ├── axum v0.8.9 (
)
│ │ └── (dev) infraternal-server v0.1.0 ()
│ └── tower-http v0.6.11
│ └── infraternal-server v0.1.0 (
)
├── serde_derive v1.0.229
│ ├── serde v1.0.229
│ │ ├── base64urlsafedata v0.5.5
│ │ │ ├── webauthn-attestation-ca v0.5.5
│ │ │ │ └── webauthn-rs-core v0.5.5 ()
│ │ │ ├── webauthn-rs v0.5.5 (
)
│ │ │ ├── webauthn-rs-core v0.5.5 ()
│ │ │ └── webauthn-rs-proto v0.5.5 (
)
│ │ ├── bip39 v2.2.2
│ │ │ └── infraternal-server v0.1.0 ()
│ │ ├── ciborium v0.2.2
│ │ │ └── criterion v0.7.0 (
)
│ │ ├── criterion v0.7.0 ()
│ │ ├── either v1.18.0
│ │ │ ├── axum-server v0.8.0
│ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ ├── itertools v0.13.0
│ │ │ │ ├── criterion v0.7.0 ()
│ │ │ │ └── criterion-plot v0.6.0
│ │ │ │ └── criterion v0.7.0 (
)
│ │ │ ├── rayon v1.12.0
│ │ │ │ └── criterion v0.7.0 ()
│ │ │ ├── sqlx-core v0.8.6 (
)
│ │ │ └── sqlx-macros-core v0.8.6 ()
│ │ ├── infraternal-agent v0.1.0 (
)
│ │ ├── infraternal-mesh v0.1.0
│ │ │ └── infraternal-plugin-mesh v0.1.0 ()
│ │ ├── infraternal-plugin-api v0.1.0 (
)
│ │ ├── infraternal-plugin-host-facts v0.1.0 ()
│ │ ├── infraternal-plugin-mesh v0.1.0 (
)
│ │ ├── infraternal-server v0.1.0 ()
│ │ ├── serde_cbor_2 v0.13.0
│ │ │ ├── infraternal-server v0.1.0 (
)
│ │ │ └── webauthn-rs-core v0.5.5 ()
│ │ ├── serde_urlencoded v0.7.1
│ │ │ ├── axum v0.8.9 (
)
│ │ │ └── sqlx-sqlite v0.8.6 ()
│ │ ├── sqlx-core v0.8.6 (
)
│ │ ├── sqlx-macros-core v0.8.6 ()
│ │ ├── sqlx-sqlite v0.8.6 (
)
│ │ ├── tinytemplate v1.2.1
│ │ │ └── criterion v0.7.0 ()
│ │ ├── tracing-serde v0.2.0
│ │ │ └── tracing-subscriber v0.3.23
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ ├── tracing-subscriber v0.3.23 ()
│ │ ├── url v2.5.8 (
)
│ │ ├── webauthn-attestation-ca v0.5.5 ()
│ │ ├── webauthn-rs v0.5.5 (
)
│ │ ├── webauthn-rs-core v0.5.5 ()
│ │ └── webauthn-rs-proto v0.5.5 (
)
│ └── url v2.5.8 ()
├── synstructure v0.14.0
│ ├── yoke-derive v0.8.4
│ │ └── yoke v0.8.3
│ │ ├── icu_collections v2.3.0 (
)
│ │ ├── icu_provider v2.3.1 ()
│ │ ├── zerotrie v0.2.5 (
)
│ │ └── zerovec v0.11.8
│ │ ├── icu_collections v2.3.0 ()
│ │ ├── icu_locale_core v2.3.0 (
)
│ │ ├── icu_normalizer v2.3.0 ()
│ │ ├── icu_properties v2.3.0 (
)
│ │ ├── icu_provider v2.3.1 ()
│ │ ├── potential_utf v0.1.6
│ │ │ └── icu_collections v2.3.0 (
)
│ │ └── tinystr v0.8.4 ()
│ └── zerofrom-derive v0.1.8
│ └── zerofrom v0.1.8
│ ├── icu_collections v2.3.0 (
)
│ ├── icu_provider v2.3.1 ()
│ ├── yoke v0.8.3 (
)
│ ├── zerotrie v0.2.5 ()
│ └── zerovec v0.11.8 (
)
├── thiserror-impl v2.0.21
│ └── thiserror v2.0.21
│ ├── infraternal v0.1.0 ()
│ ├── infraternal-mesh v0.1.0 (
)
│ ├── infraternal-server v0.1.0 ()
│ ├── sqlx-core v0.8.6 (
)
│ ├── sqlx-sqlite v0.8.6 ()
│ ├── sysctl v0.7.1
│ │ └── infraternal-plugin-host-facts v0.1.0 (
)
│ └── tungstenite v0.29.0
│ └── tokio-tungstenite v0.29.0 ()
├── tokio-macros v2.7.2
│ └── tokio v1.53.2
│ ├── axum v0.8.9 (
)
│ ├── axum-server v0.8.0 ()
│ ├── fs-err v3.3.2
│ │ └── axum-server v0.8.0 (
)
│ ├── h2 v0.4.19
│ │ └── hyper v1.11.1
│ │ ├── axum v0.8.9 ()
│ │ ├── axum-server v0.8.0 (
)
│ │ └── hyper-util v0.1.21
│ │ ├── axum v0.8.9 ()
│ │ └── axum-server v0.8.0 (
)
│ ├── hyper v1.11.1 ()
│ ├── hyper-util v0.1.21 (
)
│ ├── infraternal v0.1.0 ()
│ ├── infraternal-agent v0.1.0 (
)
│ ├── infraternal-plugin-api v0.1.0 ()
│ ├── infraternal-plugin-mesh v0.1.0 (
)
│ ├── (dev) infraternal-server v0.1.0 ()
│ ├── sqlx-core v0.8.6 (
)
│ ├── sqlx-macros-core v0.8.6 ()
│ ├── tokio-openssl v0.6.5
│ │ └── axum-server v0.8.0 (
)
│ ├── tokio-stream v0.1.19
│ │ └── sqlx-core v0.8.6 ()
│ ├── tokio-tungstenite v0.29.0 (
)
│ ├── tokio-util v0.7.19
│ │ ├── h2 v0.4.19 ()
│ │ └── tower-http v0.6.11 (
)
│ ├── tower v0.5.3 ()
│ └── tower-http v0.6.11 (
)
├── wasm-bindgen-macro-support v0.2.129
│ └── wasm-bindgen-macro v0.2.129
│ └── wasm-bindgen v0.2.129
│ ├── js-sys v0.3.106 ()
│ ├── plotters v0.3.7 (
)
│ └── web-sys v0.3.106 ()
├── yoke-derive v0.8.4 (
)
├── zerofrom-derive v0.1.8 ()
└── zerovec-derive v0.11.6
└── zerovec v0.11.8 (
)

warning[duplicate]: found 2 duplicate entries for crate 'synstructure'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:233:1
│
233 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index
234 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index
│ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries
│
├ synstructure v0.13.2
└── asn1-rs-derive v0.5.1
└── asn1-rs v0.6.2
├── der-parser v9.0.0
│ ├── webauthn-rs-core v0.5.5
│ │ └── webauthn-rs v0.5.5
│ │ └── infraternal-server v0.1.0
│ │ └── infraternal v0.1.0
│ └── x509-parser v0.16.0
│ └── webauthn-rs-core v0.5.5 ()
├── oid-registry v0.7.1
│ └── x509-parser v0.16.0 (
)
└── x509-parser v0.16.0 ()
├ synstructure v0.14.0
├── yoke-derive v0.8.4
│ └── yoke v0.8.3
│ ├── icu_collections v2.3.0
│ │ ├── icu_normalizer v2.3.0
│ │ │ └── idna_adapter v1.2.2
│ │ │ └── idna v1.1.0
│ │ │ └── url v2.5.8
│ │ │ ├── infraternal-server v0.1.0
│ │ │ │ └── infraternal v0.1.0
│ │ │ ├── sqlx-core v0.8.6
│ │ │ │ ├── sqlx v0.8.6
│ │ │ │ │ ├── infraternal v0.1.0 (
)
│ │ │ │ │ ├── infraternal-plugin-api v0.1.0
│ │ │ │ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ │ │ │ └── infraternal v0.1.0 ()
│ │ │ │ │ │ ├── infraternal-fuzz v0.1.0
│ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (
)
│ │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 ()
│ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0
│ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (
)
│ │ │ │ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ │ │ │ └── infraternal-server v0.1.0 (
)
│ │ │ │ ├── sqlx-macros v0.8.6
│ │ │ │ │ └── sqlx v0.8.6 ()
│ │ │ │ ├── sqlx-macros-core v0.8.6
│ │ │ │ │ └── sqlx-macros v0.8.6 (
)
│ │ │ │ └── sqlx-sqlite v0.8.6
│ │ │ │ ├── sqlx v0.8.6 ()
│ │ │ │ └── sqlx-macros-core v0.8.6 (
)
│ │ │ ├── sqlx-macros-core v0.8.6 ()
│ │ │ ├── sqlx-sqlite v0.8.6 (
)
│ │ │ ├── webauthn-rs v0.5.5
│ │ │ │ └── infraternal-server v0.1.0 ()
│ │ │ ├── webauthn-rs-core v0.5.5
│ │ │ │ └── webauthn-rs v0.5.5 (
)
│ │ │ └── webauthn-rs-proto v0.5.5
│ │ │ └── webauthn-rs-core v0.5.5 ()
│ │ └── icu_properties v2.3.0
│ │ └── idna_adapter v1.2.2 (
)
│ ├── icu_provider v2.3.1
│ │ ├── icu_normalizer v2.3.0 ()
│ │ └── icu_properties v2.3.0 (
)
│ ├── zerotrie v0.2.5
│ │ ├── icu_properties v2.3.0 ()
│ │ └── icu_provider v2.3.1 (
)
│ └── zerovec v0.11.8
│ ├── icu_collections v2.3.0 ()
│ ├── icu_locale_core v2.3.0
│ │ ├── icu_properties v2.3.0 (
)
│ │ └── icu_provider v2.3.1 ()
│ ├── icu_normalizer v2.3.0 (
)
│ ├── icu_properties v2.3.0 ()
│ ├── icu_provider v2.3.1 (
)
│ ├── potential_utf v0.1.6
│ │ └── icu_collections v2.3.0 ()
│ └── tinystr v0.8.4
│ └── icu_locale_core v2.3.0 (
)
└── zerofrom-derive v0.1.8
└── zerofrom v0.1.8
├── icu_collections v2.3.0 ()
├── icu_provider v2.3.1 (
)
├── yoke v0.8.3 ()
├── zerotrie v0.2.5 (
)
└── zerovec v0.11.8 (*)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:236:1
│
236 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index
237 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index
│ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
│
├ thiserror v1.0.69
├── asn1-rs v0.6.2
│ ├── der-parser v9.0.0
│ │ ├── webauthn-rs-core v0.5.5
│ │ │ └── webauthn-rs v0.5.5
│ │ │ └── infraternal-server v0.1.0
│ │ │ └── infraternal v0.1.0
│ │ └── x509-parser v0.16.0
│ │ └── webauthn-rs-core v0.5.5 ()
│ ├── oid-registry v0.7.1
│ │ └── x509-parser v0.16.0 (
)
│ └── x509-parser v0.16.0 ()
├── webauthn-rs-core v0.5.5 (
)
└── x509-parser v0.16.0 ()
├ thiserror v2.0.21
├── infraternal v0.1.0
├── infraternal-mesh v0.1.0
│ └── infraternal-plugin-mesh v0.1.0
│ ├── infraternal-fuzz v0.1.0
│ └── infraternal-server v0.1.0
│ └── infraternal v0.1.0 (
)
├── infraternal-server v0.1.0 ()
├── sqlx-core v0.8.6
│ ├── sqlx v0.8.6
│ │ ├── infraternal v0.1.0 (
)
│ │ ├── infraternal-plugin-api v0.1.0
│ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ └── infraternal v0.1.0 ()
│ │ │ ├── infraternal-fuzz v0.1.0 (
)
│ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ ├── infraternal-agent v0.1.0 ()
│ │ │ │ └── infraternal-fuzz v0.1.0 (
)
│ │ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ └── infraternal-server v0.1.0 (
)
│ ├── sqlx-macros v0.8.6
│ │ └── sqlx v0.8.6 ()
│ ├── sqlx-macros-core v0.8.6
│ │ └── sqlx-macros v0.8.6 (
)
│ └── sqlx-sqlite v0.8.6
│ ├── sqlx v0.8.6 ()
│ └── sqlx-macros-core v0.8.6 (
)
├── sqlx-sqlite v0.8.6 ()
├── sysctl v0.7.1
│ └── infraternal-plugin-host-facts v0.1.0 (
)
└── tungstenite v0.29.0
└── tokio-tungstenite v0.29.0
├── axum v0.8.9
│ └── infraternal-server v0.1.0 ()
└── (dev) infraternal-server v0.1.0 (
)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl'
┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:238:1
│
238 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index
239 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index
│ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries
│
├ thiserror-impl v1.0.69
└── thiserror v1.0.69
├── asn1-rs v0.6.2
│ ├── der-parser v9.0.0
│ │ ├── webauthn-rs-core v0.5.5
│ │ │ └── webauthn-rs v0.5.5
│ │ │ └── infraternal-server v0.1.0
│ │ │ └── infraternal v0.1.0
│ │ └── x509-parser v0.16.0
│ │ └── webauthn-rs-core v0.5.5 ()
│ ├── oid-registry v0.7.1
│ │ └── x509-parser v0.16.0 (
)
│ └── x509-parser v0.16.0 ()
├── webauthn-rs-core v0.5.5 (
)
└── x509-parser v0.16.0 ()
├ thiserror-impl v2.0.21
└── thiserror v2.0.21
├── infraternal v0.1.0
├── infraternal-mesh v0.1.0
│ └── infraternal-plugin-mesh v0.1.0
│ ├── infraternal-fuzz v0.1.0
│ └── infraternal-server v0.1.0
│ └── infraternal v0.1.0 (
)
├── infraternal-server v0.1.0 ()
├── sqlx-core v0.8.6
│ ├── sqlx v0.8.6
│ │ ├── infraternal v0.1.0 (
)
│ │ ├── infraternal-plugin-api v0.1.0
│ │ │ ├── infraternal-agent v0.1.0
│ │ │ │ └── infraternal v0.1.0 ()
│ │ │ ├── infraternal-fuzz v0.1.0 (
)
│ │ │ ├── infraternal-plugin-host-facts v0.1.0
│ │ │ │ ├── infraternal-agent v0.1.0 ()
│ │ │ │ └── infraternal-fuzz v0.1.0 (
)
│ │ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ │ └── infraternal-server v0.1.0 (
)
│ │ ├── infraternal-plugin-mesh v0.1.0 ()
│ │ └── infraternal-server v0.1.0 (
)
│ ├── sqlx-macros v0.8.6
│ │ └── sqlx v0.8.6 ()
│ ├── sqlx-macros-core v0.8.6
│ │ └── sqlx-macros v0.8.6 (
)
│ └── sqlx-sqlite v0.8.6
│ ├── sqlx v0.8.6 ()
│ └── sqlx-macros-core v0.8.6 (
)
├── sqlx-sqlite v0.8.6 ()
├── sysctl v0.7.1
│ └── infraternal-plugin-host-facts v0.1.0 (
)
└── tungstenite v0.29.0
└── tokio-tungstenite v0.29.0
├── axum v0.8.9
│ └── infraternal-server v0.1.0 ()
└── (dev) infraternal-server v0.1.0 (
)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
Finished release profile [optimized] target(s) in 1.21s
target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped
PT_INTERP: absent; size: 16435312 bytes (baseline 16142672 + allowance 262144 = max 16404816)
binary exceeds the 16404816-byte size budget: 16435312 bytes

+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
| fmt | PASS |
| VT native fmt | PASS |
| clippy | PASS |
| test | PASS |
| cargo-deny | PASS |
| static builds | FAIL (1) |
+---------------------------+--------------+

Finished at head `0ff7f80c` (the gate ran at code head `5b2220ba`; subsequent commits only record measurements and verification in docs/perf/renderer-cost.md). - All three reviewer regressions passed together: 3/3. Painted sequence 7771 was visibly `[18,52,86,255]` after 50.5 ms; 200 hidden VT states retained 1.142 MiB/session (≤2 MiB) with scrollback preserved; Mesh confirmation kept the selected 24 px blur. - Full canvas, session-canvas, and Mesh browser set passed: 90/90 in 15.9 minutes. Resize frames: median 0.90 ms, p95 1.80 ms, max 2.30 ms. Screenshots are in the generated test results for independent review. - Renderer matrix: production Chromium, 4× CPU, `CPUWeight=10000`, 14/8 samples; load 4.99/11.21/14.76 → 16.35/12.73/14.03. Before/after input p95 / renderer-range p95 / timeouts are recorded in docs/perf/renderer-cost.md. At eight sessions, theme/warm-font/resize still timed out 14/14 and strict renderer budgets remain unmet. The 54-session real pinned-engine sequential-hide workload retained 1.230 MiB/session after compaction, from 1.228 MiB/session resize high-water, preserving the oldest row and row count at both scrollback caps. - `scripts/verify fast`: fmt, VT native fmt, clippy, Rust tests and cargo-deny passed; static builds failed only the D205 size ceiling. The merged x86_64 static binary is 16,435,312 B against 16,404,816 B (+30,496 B), attributable to the required dev Mesh and host-facts plugins (D198/D205). No limit or feature was changed. The wrapper stops before TypeScript after that failure; `ts_verify_fast` was run separately and passed, including vendored checksums, production build/transfer check and 36 TypeScript protocol tests. - No push or deployment. `scripts/verify fast` output, verbatim: METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=295.97 p99_ms=304.92 result=PASS ==> fmt ==> VT native fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.90s ==> test Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/plugins/mesh) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-agent) Compiling infraternal-plugin-host-facts v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/plugins/host-facts) Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-protocol) Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-mesh) Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/renderer-cost/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 46.93s Running unittests src/main.rs (target/debug/deps/infraternal-e2d3b344194432e6) running 2 tests test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/agent_daemon.rs (target/debug/deps/agent_daemon-18150588b28cedf2) running 1 test test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 41.20s Running tests/agent_queues.rs (target/debug/deps/agent_queues-687a933c84b6e085) running 1 test test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 47.15s Running tests/agent_review.rs (target/debug/deps/agent_review-0bb48a88c9fcff8c) running 6 tests test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok test last_typist_selects_its_own_real_pty_dimensions ... ok test initial_attach_requires_explicit_credit_before_replay ... ok test retained_unwritten_input_survives_interleaved_ack_restart ... ok test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok test repeated_tiny_credit_pauses_preserve_shell_progress ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.13s Running tests/agent_sessions.rs (target/debug/deps/agent_sessions-eea41b55709ff896) running 1 test test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running tests/idle_canary.rs (target/debug/deps/idle_canary-0c595ce7ad968ebd) running 1 test test one_hertz_wakeup_is_detected_past_the_legacy_half_second_window ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s Running tests/shim.rs (target/debug/deps/shim-f48eb02ae8e5c1e1) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test user_scope_survives_parent_unit_stop ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s Running tests/vt_credit.rs (target/debug/deps/vt_credit-0d117bb51fc3915c) running 1 test test unaffordable_repaints_park_until_sufficient_credit ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.84s Running tests/vt_reconnect.rs (target/debug/deps/vt_reconnect-bb4d0c0154c9d2dd) running 1 test test snapshot_limits_never_close_live_reconnect ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.26s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-b83b37ff9bd4b2c1) running 16 tests test relay::tests::output_payload_move_measurement ... ignored, release ownership versus payload-copy measurement test relay::tests::attachment_has_no_implicit_output_or_snapshot_credit ... ok test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test relay::tests::output_partial_credit_and_dedup ... ok test relay::tests::expired_credit_resumes_retained_bytes_at_the_same_cursor ... ok test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok test relay::tests::positive_insufficient_credit_arms_a_one_shot_deadline ... ok test sessions::tests::reader_borrow_measurement ... ignored, release borrowed versus owned asynchronous receive measurement test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok test result: ok. 14 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.03s Running tests/transport.rs (target/debug/deps/transport-e464d5355e2cbd1e) running 2 tests test oversized_header_and_truncated_frame_are_rejected ... ok test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (target/debug/deps/infraternal_mesh-3f967587718407e9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/default_arrow.rs (target/debug/deps/default_arrow-312553ba19630584) running 1 test test omitted_arrow_ports_default_to_all_services ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/properties.rs (target/debug/deps/properties-78f35bbe1b57dcd5) running 14 tests test overlaps_are_reported_without_silent_range_changes ... ok test join_to_same_tag_grants_both_initiation_directions ... ok test exhausted_versions_reject_mutations_without_changing_state ... ok test directional_grants_union_and_minimal_updates ... ok test names_versions_and_backend_status ... ok test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... ok test private_material_never_enters_debug_or_coordination_serialization ... ok test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok test protocol_port_unions_never_grant_an_unlisted_service ... ok test addresses_are_unique_stable_and_not_recycled ... ok test seeded_random_sequences_equal_full_compile_and_deny_without_grants ... ok test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.00s Running tests/rotation_time.rs (target/debug/deps/rotation_time-a58dd287253d611d) running 1 test test unrepresentable_rotation_overlap_rejects_before_mutation ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-5c728191785f01c7) running 4 tests test tests::registry_rejects_oversized_json_before_plugin_dispatch ... ok test tests::registry_routes_only_declared_actions ... ok test routing::tests::invalid_or_oversized_topics_are_refused ... ok test routing::tests::topic_is_borrowed_and_other_filter_fields_are_left_to_the_plugin ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/routing_review.rs (target/debug/deps/routing_review-9a16e71abd7f4bdb) running 2 tests test review_topic_borrows_plain_and_owns_escaped ... ok test review_topic_refuses_oversize_duplicate_and_deep_input ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_host_facts-92fb8980e23d63eb) running 9 tests test tests::macos_load_average_decodes_the_bounded_64_bit_sysctl_shape ... ok test tests::linux_load_average_text_ignores_proc_metadata_and_rejects_invalid_values ... ok test tests::descriptor_declares_default_settings_actions_and_no_hidden_role_dependency ... ok test tests::os_release_uses_distribution_name_and_version_without_shell_evaluation ... ok test tests::action_decoders_reject_unknown_and_oversized_fields ... ok test tests::os_release_parser_rejects_unbounded_input_and_ignores_untrusted_lines ... ok test tests::static_facts_are_cached_and_live_counters_are_collected_only_when_requested ... ok test tests::runtime_disable_drops_cached_facts_and_reenable_collects_them_again ... ok test tests::compatibility_fields_are_kept_in_the_rust_shape_and_architecture_on_wire ... ok test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_mesh-65b6dee3ae44f8e9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-67b9a310ef49abf9) running 7 tests test stream_tests::all_short_frame_splits_match_direct_decoding ... ok test stream_tests::split_mux_header_preserves_trailing_close ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running unittests src/lib.rs (target/debug/deps/infraternal_server-c632a4b4662b7a24) running 151 tests test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::tests::aaguid_migration_preserves_legacy_credentials_and_sessions ... ok test auth::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... ok test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok test auth::tests::provider_labels_cover_the_cited_registry_without_guessing ... ok test auth::tests::provider_session_latency_at_50_devices ... ignored, local auth session scale measurement; run without concurrent builds test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok test auth::tests::host_facts_review_tests::pending_host_facts_read_keeps_control_ping_responsive ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok test auth::tests::pending_unlock_expires_without_terminal_authority ... ok test auth::tests::public_status_and_discoverable_http_login ... ok test auth::tests::recovery_session_delay_latency_at_capacity ... ignored, release-only recovery measurement at 50 live sessions; run without concurrent compilation test auth::tests::recovery_audit_commits_once_with_start_cancel_and_complete ... ok test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::recovery_verifier_latency_at_capacity ... ignored, release-only v2 diagnostic at 50 live session rows; record host load separately test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::recovery_http_live_same_account_is_immediate ... ok test auth::tests::recovery_http_other_expired_pending_and_missing_sessions_wait ... ok test auth::tests::recovery_live_session_cannot_accelerate_an_active_delayed_request ... ok test auth::tests::recovery_live_session_revoked_during_verification_cannot_waive_delay ... ok test auth::tests::recovery_unknown_identity_pays_the_same_database_and_verifier_work ... ok test auth::tests::recovery_username_identity_is_additive_and_ambiguous_forms_fail ... ok test auth::tests::redacted_unknown_and_failed_registrations_do_not_claim_a_provider ... ok test auth::tests::registration_aaguid_survives_none_attestation_and_binds_session_provider ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok test auth::tests::review3_tests::review3_busy_expiry ... ok test auth::tests::review3_tests::review3_busy_logout ... ok test auth::tests::review3_tests::review3_busy_recovery ... ok test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok test auth::tests::review3_tests::review3_unwrap_cannot_be_skipped ... ok test auth::tests::review3_tests::review3_waiting_handshake_loses_authority ... ok test auth::tests::review3_tests::review4_open_reply_and_revocation_preserve_authority ... ok test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok test auth::tests::review_old_words_race_rotation ... ok test auth::tests::reviewer_tests::reviewer_disk_cancel_complete_races ... ok test auth::tests::reviewer_tests::reviewer_disk_restart_and_concurrent_resume ... ok test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... ok test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok test auth::tests::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok test auth::tests::setup_identity_validation_and_uniqueness ... ok test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch ... ok test auth::tests::setup_start_accepts_username_and_display_name ... ok test auth::tests::rotation_tests::recovery_rotation_denies_pending_expired_and_stale_sessions ... ok test auth::tests::rotation_tests::recovery_rotation_requires_session_and_replaces_legacy_envelope ... ok test auth::tests::rotation_tests::reviewer_concurrent_signed_in_rotations_commit_once ... ok test auth::tests::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok test auth::tests::socket_tests::authenticated_idle_socket_survives_the_former_read_timeout ... ok test auth::tests::socket_tests::claude_review_visible_liveness::claude_review_watch_expires_host_made_visible_by_membership_edit ... ok test auth::tests::socket_tests::mesh_latency::mesh_snapshot_keystroke_latency_at_10000_nodes ... ignored, weighted real-binary 300 ms Mesh/PTY measurement test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok test auth::tests::socket_tests::plugin_lifecycle::mesh_destructive_metadata_matches_frozen_confirmation_requirements ... ok test auth::tests::socket_tests::fresh_delete::review_mesh_delete_requires_fresh_passkey_tap ... ok test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok test auth::tests::socket_tests::incomplete_rfc_message_still_loses_authority_on_revocation ... ok test auth::tests::socket_tests::mesh_calls_and_subscriptions_deliver_scoped_live_inventory ... ok test auth::tests::socket_tests::non_owner_without_host_configure_permission_is_refused_before_leg_b ... ok test auth::tests::socket_tests::plugin_lifecycle::disabling_mesh_joins_pending_writer_and_refuses_nonowner_switches ... ok test auth::tests::socket_tests::plugin_lifecycle::mesh_coordinator_requires_an_existing_server_role ... ok test auth::tests::socket_tests::plugin_lifecycle::mesh_lifecycle_withdrawals_survive_calls_but_never_end_a_replacement ... ok test auth::tests::socket_tests::plugin_lifecycle::mesh_plugin_discovery_disable_and_restart_preserve_control_socket ... ok test auth::tests::socket_tests::recovery_subscription_updates_every_signed_in_socket ... ok test auth::tests::socket_tests::review_control::pending_mesh_writers_preserve_authority_pool_capacity ... ok test auth::tests::socket_tests::review_control::review_pending_mesh_write_keeps_control_dispatch_available ... ok test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation test auth::tests::socket_tests::review_fresh_wait::review_mesh_delete_refused_when_freshness_expires_during_writer_wait ... ok test embedded::regressions::credited_bulk_output_survives_forwarder_io_pause ... ok test embedded::regressions::credited_output_queue_at_stream_capacity ... ignored, debug actor memory/scheduling measurement; run without concurrent builds test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok test embedded::regressions::healthy_receiver_survives_ready_native_output_burst ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok test embedded::regressions::real_agent_canonical_uuid_result_is_accepted ... ok test embedded::regressions::real_agent_open_uses_uid_and_character_dimensions ... ok test embedded::regressions::reattach_must_restore_output_credit ... ok test embedded::regressions::recovery_event_then_snapshot_keeps_embedded_connection_live ... ok test embedded::regressions::recovery_notices_preserve_order_credit_and_session_isolation ... ok test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok test embedded::regressions::uncredited_output_or_repaint_is_rejected_before_queueing ... ok test mesh_api_tests::claude_review::claude_review_late_committing_observation_does_not_rewind_last_seen ... ok test mesh_api_tests::claude_review::claude_review_scoped_grant_cannot_target_node_in_unscoped_tag ... ok test mesh_api_tests::concurrent_tag_edits_serialize_revisions_and_unique_names ... ok test mesh_api_tests::identity::identity_migration_preserves_inventory_and_retired_audit_ids ... ok test mesh_api_tests::identity::retired_identity_survives_database_reopen_and_exhaustion_is_atomic ... ok test mesh_api_tests::identity::review_deleted_node_identity_is_not_reused ... ok test mesh_api_tests::invalidation::filtered_view_invalidations_follow_every_affected_host_tag ... ok test mesh_api_tests::invalidation::review_membership_change_notifies_other_visible_tag ... ok test mesh_api_tests::inventory_lifecycle_preserves_policy_identity_and_audits_every_edit ... ok test mesh_api_tests::membership::review_scoped_membership_cannot_claim_hidden_node ... ok test mesh_api_tests::membership::scoped_membership_checks_pre_edit_host_scope ... ok test mesh_api_tests::mesh_api_scale_benchmark ... ignored, scale measurement; run on infraternal-dev under the weighted user scope test mesh_api_tests::pagination::an_unsendable_object_returns_a_sanitized_service_error ... ok test mesh_api_tests::pagination::continuation_restarts_on_change_and_rechecks_permissions ... ok test mesh_api_tests::parser_rejects_unknown_fields_user_endpoints_and_invalid_bounds ... ok test mesh_api_tests::review_filtered::review_global_viewers_do_not_refresh_unrelated_filtered_inventory ... ok test mesh_api_tests::review_frame_budget::review_mesh_design_point_frames_fit_shared_socket_budget ... ok test mesh_api_tests::review_null_policy::review_null_port_policy_does_not_create_unrestricted_grant ... ok test mesh_api_tests::review_null_scope::review_null_role_scopes_preserve_denied_inventory_access ... ok test mesh_api_tests::scoped_grant_role_filters_inventory_and_cannot_cross_tags ... ok test mesh_api_tests::shared_mesh_vectors_cover_each_production_action_and_wire_shape ... ok test mesh_api_tests::watch_deadline::watch_deadline_matches_complete_filtered_snapshots ... ok test mesh_api_tests::watch_deadline::watch_deadline_scale_benchmark ... ignored, weighted local scale measurement; run optimized without concurrent compilation test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok test auth::tests::socket_tests::review_liveness::review_mesh_watch_reports_liveness_expiry_without_another_edit ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test runtime::tests::setup_socket_cleanup_preserves_symlinks_and_regular_files ... ok test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test auth::tests::socket_tests::review_subscription_refusal::oversized_refusal_cannot_reinstall_a_queued_mesh_subscription ... ok test auth::tests::socket_tests::review_subscription_refusal::review_oversized_replacement_ends_the_previous_mesh_subscription ... ok test auth::tests::socket_tests::review_subscription_refusal::saturated_refusal_cannot_reinstall_a_queued_mesh_subscription ... ok test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok test auth::tests::socket_tests::scale::review_mesh_headroom_snapshot_does_not_close_shared_socket has been running for over 60 seconds test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering has been running for over 60 seconds test auth::tests::socket_tests::scale::review_mesh_headroom_snapshot_does_not_close_shared_socket ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test result: ok. 139 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 226.96s Running tests/mesh_parser.rs (target/debug/deps/mesh_parser-1b3a29e2bf99f34e) running 2 tests test review_grant_parser_rejects_unknown_nested_port_fields ... ok test nested_endpoint_and_policy_fields_are_strict_without_rejecting_valid_ports ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/mesh_review_plugin.rs (target/debug/deps/mesh_review_plugin-3ecbe466f60661a8) running 1 test test review_mesh_dependency_is_removable_at_build_time ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s Running tests/mesh_review_policy.rs (target/debug/deps/mesh_review_policy-44cfb4f211627b53) running 1 test test review_null_port_policy_is_refused ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/mesh_review_role_scope.rs (target/debug/deps/mesh_review_role_scope-d9f7f4c8fad27b0c) running 2 tests test role_scopes_require_an_array_when_provided ... ok test review_explicit_null_role_scopes_do_not_become_global_authority ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/plugin_host_review.rs (target/debug/deps/plugin_host_review-c4e0b2d248dfdfa0) running 7 tests test review_undeclared_topic_is_left_to_the_core ... ok test review_core_topic_remains_core_owned_even_when_declared ... ok test review_completed_call_survives_normal_worker_exit ... ok test review_disable_withdraws_view_and_keeps_socket ... ok test review_reenable_preserves_cancelled_calls_until_delivery ... ok test review_exited_worker_ends_its_subscriptions ... ok test review_disable_answers_inflight_call ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s Running tests/plugin_settings_review.rs (target/debug/deps/plugin_settings_review-e346f9f367bf896c) running 3 tests test plugin_settings_enforce_boolean_and_role_plugin_identity ... ok test failed_plugin_save_restores_previous_state_without_workers ... ok test plugin_switches_survive_database_reopen ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-67ffc9c8d51fcf5c) running 73 tests test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement test ring::checks::tests::wrap_and_exact_offsets ... ok test frame::checks::golden::every_frozen_message ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement test session::resize_checks::resize_refusal_session_probe ... ignored, isolated session probe invoked by its parent with a controlled shell profile test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok test session::sequenced_checks::writer_selection_has_a_frozen_little_endian_layout ... ok test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok test frame::checks::tests::golden_and_fragmented ... ok test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::saved_origin_survives_changed_margins ... ok test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_cursor ... ok test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok test terminal::fidelity::fidelity_edge ... ok test terminal::fidelity::fidelity_iso_protection_erase ... ok test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_oracle_observes_archived_cells_with_equal_active_screens ... ok test terminal::fidelity::fidelity_orphaned_spacer_head ... ok test terminal::fidelity::fidelity_f1_rep ... ok test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok test terminal::fidelity::fidelity_prompt_resize_requires_explicit_rejection ... ok test terminal::fidelity::fidelity_oracle_detects_hidden_state ... ok test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok test terminal::fidelity::fidelity_saved_modes_future_restore ... ok test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... ok test terminal::fidelity::fidelity_snapshot_resets_stale_viewer_color_overrides ... ok test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... ok test terminal::fidelity::fidelity_screen_entry_consumes_inherited_shift_before_saving ... ok test terminal::fidelity::fidelity_spacer_head_attributes ... ok test terminal::fidelity::fresh_captures::fidelity_fresh_real_program_captures ... ignored, manual fresh capture oracle; set VT_CAPTURE_DIR after real program capture test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::memory::measured_terminal_rss ... ignored, RSS measurement; run this filter alone in a fresh release process test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::recovery_measurements::measured_full_ring_reconstruction ... ignored, release reconstruction measurement; old healthy handles permit repeated cleanup test terminal::resize_recovery::absent_ring_keeps_last_good_size_and_later_output_usable ... ok test terminal::fidelity::fidelity_variation_tail_attributes ... ok test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok test terminal_native::allocation::resize_allocation_refusal_retires_native_handle ... ok test terminal::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok test terminal::fidelity::fidelity_variation_wrap_attributes ... ok test terminal::fidelity::fidelity_recorded_corpus ... ok test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok test terminal::fidelity::fidelity_handwritten ... ok test terminal::fidelity::fidelity_extended_smoke ... ok test terminal::fidelity::fidelity_seeded_smoke has been running for over 60 seconds test terminal::fidelity::fidelity_seeded_smoke ... ok test result: ok. 61 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 65.22s Running tests/detach.rs (target/debug/deps/detach-c502cd554fb112ce) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.55s Running tests/mouse.rs (target/debug/deps/mouse-523bfdef43cc46cb) running 1 test test faithful_snapshot_preserves_public_mouse_encoder_reports ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s Doc-tests infraternal_agent running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_mesh running 1 test test crates/infraternal-mesh/src/model.rs - model::LocalPrivateKey (line 20) - compile fail ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s Doc-tests infraternal_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_host_facts running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_mesh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:24:1 │ 24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal-agent v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:90:1 │ 90 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 91 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 92 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-agent v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'hashbrown' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:96:1 │ 96 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 97 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 ├── h2 v0.4.19 │ └── hyper v1.11.1 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ └── hyper-util v0.1.21 │ ├── axum v0.8.9 (*) │ └── axum-server v0.8.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal-agent v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:187:1 │ 187 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 188 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-agent v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:189:1 │ 189 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 190 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:191:1 │ 191 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 192 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:193:1 │ 193 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 194 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:230:1 │ 230 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 231 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── enum-as-inner v0.6.1 │ └── sysctl v0.7.1 │ └── infraternal-plugin-host-facts v0.1.0 │ ├── infraternal-agent v0.1.0 │ │ └── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ ├── sqlx-macros v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tracing-subscriber v0.3.23 │ │ └── infraternal-server v0.1.0 (*) │ ├── webauthn-attestation-ca v0.5.5 (*) │ ├── webauthn-rs v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) └── zerocopy-derive v0.8.60 └── zerocopy v0.8.60 ├── half v2.7.1 │ ├── ciborium-ll v0.2.2 │ │ └── ciborium v0.2.2 │ │ └── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── (dev) infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── serde_cbor_2 v0.13.0 │ ├── infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 (*) └── ppv-lite86 v0.2.21 ├── rand_chacha v0.3.1 │ └── rand v0.8.8 │ └── bip39 v2.2.2 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 (*) │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ syn v3.0.6 ├── clap_derive v4.6.7 │ └── clap v4.6.7 │ ├── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-agent v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ ├── (dev) infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal v0.1.0 (*) ├── displaydoc v0.2.7 │ ├── asn1-rs v0.6.2 │ │ ├── der-parser v9.0.0 │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── futures-macro v0.3.34 │ └── futures-util v0.3.34 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 │ └── infraternal-server v0.1.0 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.0 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── itertools v0.13.0 │ │ │ │ ├── criterion v0.7.0 (*) │ │ │ │ └── criterion-plot v0.6.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── rayon v1.12.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── sqlx-core v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ └── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-api v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── serde_urlencoded v0.7.1 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── sqlx-sqlite v0.8.6 (*) │ │ ├── sqlx-core v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ ├── tinytemplate v1.2.1 │ │ │ └── criterion v0.7.0 (*) │ │ ├── tracing-serde v0.2.0 │ │ │ └── tracing-subscriber v0.3.23 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── tracing-subscriber v0.3.23 (*) │ │ ├── url v2.5.8 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-mesh v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── sysctl v0.7.1 │ │ └── infraternal-plugin-host-facts v0.1.0 (*) │ └── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── axum-server v0.8.0 (*) │ ├── fs-err v3.3.2 │ │ └── axum-server v0.8.0 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ ├── (dev) infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 (*) │ ├── tower v0.5.3 (*) │ └── tower-http v0.6.11 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:233:1 │ 233 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 234 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:236:1 │ 236 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 237 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-mesh v0.1.0 │ └── infraternal-plugin-mesh v0.1.0 │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) ├── sysctl v0.7.1 │ └── infraternal-plugin-host-facts v0.1.0 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/Developer/infraternal/.worktrees/renderer-cost/Cargo.lock:238:1 │ 238 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 239 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-mesh v0.1.0 │ └── infraternal-plugin-mesh v0.1.0 │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) ├── sysctl v0.7.1 │ └── infraternal-plugin-host-facts v0.1.0 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Finished `release` profile [optimized] target(s) in 1.21s target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped PT_INTERP: absent; size: 16435312 bytes (baseline 16142672 + allowance 262144 = max 16404816) binary exceeds the 16404816-byte size budget: 16435312 bytes +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | FAIL (1) | +---------------------------+--------------+
Author
Owner

Author reviewer checklist complete at 0ff7f80c171b8c3e2c79097d1dfdda3f17235f15:

  • P1 completion is tied to an unsuppressed renderer draw and the following presentation opportunity; stale callbacks are cancelled on cursor restart/disposal. The production pixel regression passes.
  • P2 compaction is used when a hidden terminal releases render buffers, preserves the full scrollback, remaps stable pins before old arenas are released, and does not run on terminal free. The 54-session engine workload and 200-state regression pass.
  • P3 supplies the owning screen to the existing shared confirmation material copier; selected design tokens are unchanged and the 24 px blur assertion passes.
  • The dev merge is retained. This round makes no renderer-engine or contract choice. The remaining renderer budget and shared-WASM high-water failures are recorded with their limits rather than hidden.
  • Production test screenshots remain available at apps/tracer/test-results/ for independent review; this job did not judge them. Worktree is clean and temporary build/worktree targets are removed.
Author reviewer checklist complete at `0ff7f80c171b8c3e2c79097d1dfdda3f17235f15`: - P1 completion is tied to an unsuppressed renderer draw and the following presentation opportunity; stale callbacks are cancelled on cursor restart/disposal. The production pixel regression passes. - P2 compaction is used when a hidden terminal releases render buffers, preserves the full scrollback, remaps stable pins before old arenas are released, and does not run on terminal free. The 54-session engine workload and 200-state regression pass. - P3 supplies the owning screen to the existing shared confirmation material copier; selected design tokens are unchanged and the 24 px blur assertion passes. - The dev merge is retained. This round makes no renderer-engine or contract choice. The remaining renderer budget and shared-WASM high-water failures are recorded with their limits rather than hidden. - Production test screenshots remain available at `apps/tracer/test-results/` for independent review; this job did not judge them. Worktree is clean and temporary build/worktree targets are removed.
Author
Owner

Independent delta review starts on branch review-renderer-cost, based at target 0ff7f80c171b8c3e2c79097d1dfdda3f17235f15. The prior evidence branch is preserved as review-renderer-cost-run2 at 747bdfdb. I am reviewing only renderer-cost commits after the 6b75ae8c review, excluding the imported dev merge at 719475a9. The earlier RC-3/RC-4/RC-5 regression tests are present in the target tree and will be rerun against this exact head.

Independent delta review starts on branch `review-renderer-cost`, based at target `0ff7f80c171b8c3e2c79097d1dfdda3f17235f15`. The prior evidence branch is preserved as `review-renderer-cost-run2` at `747bdfdb`. I am reviewing only renderer-cost commits after the `6b75ae8c` review, excluding the imported dev merge at `719475a9`. The earlier RC-3/RC-4/RC-5 regression tests are present in the target tree and will be rerun against this exact head.
Author
Owner

Exact-head regression replay complete at 0ff7f80c171b8c3e2c79097d1dfdda3f17235f15: production Playwright passed the prior RC-3/RC-4/RC-5 tests, 3/3 in 23.4 s, unique port 4317. RC-4 pixel [18,52,86,255], output sequence 7771, pending=false (28 ms after callback); RC-3 239,468,544 B / 200 = 1,197,342.72 B per session against 2 MiB, oldest scrollback preserved; RC-5 selected and actual portal material both rgba(28,28,30,0.4), blur 24 px. Full output is in the review scratch log.

Exact-head regression replay complete at `0ff7f80c171b8c3e2c79097d1dfdda3f17235f15`: production Playwright passed the prior RC-3/RC-4/RC-5 tests, 3/3 in 23.4 s, unique port 4317. RC-4 pixel `[18,52,86,255]`, output sequence 7771, pending=false (28 ms after callback); RC-3 239,468,544 B / 200 = 1,197,342.72 B per session against 2 MiB, oldest scrollback preserved; RC-5 selected and actual portal material both rgba(28,28,30,0.4), blur 24 px. Full output is in the review scratch log.
Author
Owner

RC-6 P2 reproduced on exact head 0ff7f80c171b8c3e2c79097d1dfdda3f17235f15; failing test committed on review-renderer-cost as 615293bdd04cb044e24de148bc3cf6245a1e6430. It resizes 8 live terminal states through 150x40 → 80x24 → 200x50 → 80x24, then parks the group. Production Playwright on port 4318 reports 53,477,376 B shared WASM growth, 6,684,672 B/session (6.375 MiB), over the 2 MiB hidden budget. The existing interleaved 200-state test passes because it compacts each state before resizing the next; this group-order case fails. Scoped repeat is pending.

RC-6 P2 reproduced on exact head `0ff7f80c171b8c3e2c79097d1dfdda3f17235f15`; failing test committed on `review-renderer-cost` as `615293bdd04cb044e24de148bc3cf6245a1e6430`. It resizes 8 live terminal states through 150x40 → 80x24 → 200x50 → 80x24, then parks the group. Production Playwright on port 4318 reports 53,477,376 B shared WASM growth, 6,684,672 B/session (6.375 MiB), over the 2 MiB hidden budget. The existing interleaved 200-state test passes because it compacts each state before resizing the next; this group-order case fails. Scoped repeat is pending.
Author
Owner

Replay step on exact job head 0ff7f80c: RC-2 passes. RC-1's theme-font case failed once at 300 ms RTT (expected terminal pixel #f6f6f4, received #0d0e10), then passed three repeated runs on the exact target. On the previously reviewed 6b75ae8c head the same test passed twice and failed once with the same pixel mismatch; both appearance orders pass at RTT=0. This intermittent outcome is present on the prior head and is not attributed to the scoped delta. Current review evidence head: 615293bdd0.

Replay step on exact job head 0ff7f80c: RC-2 passes. RC-1's theme-font case failed once at 300 ms RTT (expected terminal pixel #f6f6f4, received #0d0e10), then passed three repeated runs on the exact target. On the previously reviewed 6b75ae8c head the same test passed twice and failed once with the same pixel mismatch; both appearance orders pass at RTT=0. This intermittent outcome is present on the prior head and is not attributed to the scoped delta. Current review evidence head: 615293bdd04cb044e24de148bc3cf6245a1e6430.
Author
Owner

RC-6 grouped-memory confirmation on review head 615293bdd0: production Playwright test on port 4327 at RTT=0, run under systemd-run --user --scope -p CPUWeight=10000, fails with 53,477,376 B retained for eight parked terminals = 6,684,672 B (6.375 MiB) each versus 2,097,152 B. The 200-session linear projection is 1,275 MiB. Load average before/after: 6.35/10.54/13.69 → 7.66/10.69/13.71. Test is committed as 615293bdd0.

RC-6 grouped-memory confirmation on review head 615293bdd04cb044e24de148bc3cf6245a1e6430: production Playwright test on port 4327 at RTT=0, run under `systemd-run --user --scope -p CPUWeight=10000`, fails with 53,477,376 B retained for eight parked terminals = 6,684,672 B (6.375 MiB) each versus 2,097,152 B. The 200-session linear projection is 1,275 MiB. Load average before/after: 6.35/10.54/13.69 → 7.66/10.69/13.71. Test is committed as 615293bdd04cb044e24de148bc3cf6245a1e6430.
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#97
No description provided.