Back-merge release-prod-2 into dev #163

Closed
opened 2026-10-11 10:57:36 +00:00 by kayg · 105 comments
Owner

Merge the production line release-prod-2 (6320f5b5, deployed 707a4572) back into dev so new work starts from what production runs.

dev is 210 commits ahead, release-prod-2 592 ahead. Conflicts (git merge-tree): Cargo.lock, apps/tracer/real/server.ts, crates/infraternal-agent/src/lib.rs, crates/infraternal-plugin-api/src/lib.rs, crates/infraternal-server/{Cargo.toml,src/lib.rs}, crates/infraternal/{Cargo.toml,src/main.rs}, crates/plugins/ssh/{Cargo.toml,src/lib.rs}.

Branch dev-backmerge; orchestrator fast-forwards dev after the gate.

Merge the production line `release-prod-2` (6320f5b5, deployed 707a4572) back into `dev` so new work starts from what production runs. dev is 210 commits ahead, release-prod-2 592 ahead. Conflicts (git merge-tree): Cargo.lock, apps/tracer/real/server.ts, crates/infraternal-agent/src/lib.rs, crates/infraternal-plugin-api/src/lib.rs, crates/infraternal-server/{Cargo.toml,src/lib.rs}, crates/infraternal/{Cargo.toml,src/main.rs}, crates/plugins/ssh/{Cargo.toml,src/lib.rs}. Branch `dev-backmerge`; orchestrator fast-forwards dev after the gate.
Author
Owner

Starting #163 on branch dev-backmerge at base 5bc58323ab (origin/dev). Production parent origin/release-prod-2 = 6320f5b52f. Issue has no comments or linked parent. Preserve both behaviors, audit additive protocol allocations, regenerate lock minimally, run all requested gates, push only dev-backmerge.

Starting #163 on branch dev-backmerge at base 5bc58323ab14a99613df16c1dbe254e99bda3d28 (origin/dev). Production parent origin/release-prod-2 = 6320f5b52f75c14b6ae0bc92b7ab1974f5570982. Issue has no comments or linked parent. Preserve both behaviors, audit additive protocol allocations, regenerate lock minimally, run all requested gates, push only dev-backmerge.
Author
Owner

Resolution findings: 10 conflicts match the brief. Wire codecs retain production Close 4404 and dev has no competing frame IDs or capability allocations; native channel bits remain writer=1<<1, renewal=1<<2, browser resume=1. Cargo.lock regenerated from production via cargo update -w: no external version changes, only local graph additions. CLI conflict requires metadata adapters for deployed join/run/restart/remove-host and private askpass; preserve dev registry/compile-out behavior and production startup hardening/retention. Preserve separate CLI snake-case dry-run metadata and deployed descriptor casing rather than change a wire contract. Tracer production check/build/src tests/budget pass after frozen dependency installation; detailed output evidence/dev-backmerge/tracer.log. Rust check is compiling vendored C on this clean target with requested Nix build tools.

Resolution findings: 10 conflicts match the brief. Wire codecs retain production Close 4404 and dev has no competing frame IDs or capability allocations; native channel bits remain writer=1<<1, renewal=1<<2, browser resume=1. Cargo.lock regenerated from production via cargo update -w: no external version changes, only local graph additions. CLI conflict requires metadata adapters for deployed join/run/restart/remove-host and private askpass; preserve dev registry/compile-out behavior and production startup hardening/retention. Preserve separate CLI snake-case dry-run metadata and deployed descriptor casing rather than change a wire contract. Tracer production check/build/src tests/budget pass after frozen dependency installation; detailed output evidence/dev-backmerge/tracer.log. Rust check is compiling vendored C on this clean target with requested Nix build tools.
Author
Owner

Merged CLI unit gate: 64 passed, 0 failed in 7.57s (evidence/dev-backmerge/cli-tests.log), including deployed enrollment, reload/exec/rollback, private handoff disposal, startup nondumpability, retained-trust configuration, and added metadata restart/removal/retention parser tests. git diff --cached origin/release-prod-2 --name-only -- apps/tracer packages/ui packages/protocol lists only apps/tracer/real/server.ts: production UI, browser tests and codecs are preserved byte-for-byte. Full browser run is ongoing under high host load; each failing spec will be rerun alone.

Merged CLI unit gate: 64 passed, 0 failed in 7.57s (evidence/dev-backmerge/cli-tests.log), including deployed enrollment, reload/exec/rollback, private handoff disposal, startup nondumpability, retained-trust configuration, and added metadata restart/removal/retention parser tests. git diff --cached origin/release-prod-2 --name-only -- apps/tracer packages/ui packages/protocol lists only apps/tracer/real/server.ts: production UI, browser tests and codecs are preserved byte-for-byte. Full browser run is ongoing under high host load; each failing spec will be rerun alone.
Author
Owner

Workspace first run: initial_attach_requires_explicit_credit_before_replay failed because scripts/verify-agent-attach-credit.py creates target/ac without its parent; external CARGO_TARGET_DIR leaves local target absent. The script blob is identical on both parents: 487064e467. Creating the empty local target directory (fixture state only, no Rust artifacts) fixes setup. Isolated existing test: 1 passed in 4.00s; no Output/Snapshot without Credit for 350 ms, responsive control, funded replay 149 bytes in 909.7 ms. Output: evidence/dev-backmerge/attach-credit-rerun.log. No source change. Full fast gate rerun started with CARGO_BUILD_JOBS=2 after final source and setup corrections. Clippy final is green with -D warnings (evidence/dev-backmerge/clippy-final.log).

Workspace first run: initial_attach_requires_explicit_credit_before_replay failed because scripts/verify-agent-attach-credit.py creates target/ac<PID> without its parent; external CARGO_TARGET_DIR leaves local target absent. The script blob is identical on both parents: 487064e467fa6e59374f0ce61ff5625a873ab9bc. Creating the empty local target directory (fixture state only, no Rust artifacts) fixes setup. Isolated existing test: 1 passed in 4.00s; no Output/Snapshot without Credit for 350 ms, responsive control, funded replay 149 bytes in 909.7 ms. Output: evidence/dev-backmerge/attach-credit-rerun.log. No source change. Full fast gate rerun started with CARGO_BUILD_JOBS=2 after final source and setup corrections. Clippy final is green with -D warnings (evidence/dev-backmerge/clippy-final.log).
Author
Owner

Resolution is frozen; all 64 binary CLI tests and final workspace/clippy/license checks pass. Initial native credit fixture needed an empty local target/ parent (same script on both parents); funded replay rerun passed. Final fast gate runs in CPUWeight=10000 scope, RTT preflight p50=289.62ms/p99=291.67ms. Superseded unweighted static compile was cancelled to free the unique scratch target lock. Browser original run ended with SIGTERM after 110 cases; complete retry uses required apps/tracer cwd and port 4637 in a weighted scope. Production tracer/UI/protocol diff remains only apps/tracer/real/server.ts. Chip-field failure persists in full retry so far; isolated spec rerun and parent comparison pending. Load sample 40.03/39.07/40.05 on infraternal-dev. Incoming root result.md removed per brief.

Resolution is frozen; all 64 binary CLI tests and final workspace/clippy/license checks pass. Initial native credit fixture needed an empty local target/ parent (same script on both parents); funded replay rerun passed. Final fast gate runs in CPUWeight=10000 scope, RTT preflight p50=289.62ms/p99=291.67ms. Superseded unweighted static compile was cancelled to free the unique scratch target lock. Browser original run ended with SIGTERM after 110 cases; complete retry uses required apps/tracer cwd and port 4637 in a weighted scope. Production tracer/UI/protocol diff remains only apps/tracer/real/server.ts. Chip-field failure persists in full retry so far; isolated spec rerun and parent comparison pending. Load sample 40.03/39.07/40.05 on infraternal-dev. Incoming root result.md removed per brief.
Author
Owner

Final fast gate completed: all Rust rows except the explicitly accepted static-size ceiling pass. x86_64 --locked release is static-pie, no PT_INTERP, 20,288,048 bytes versus 16,404,816 maximum. ARM --locked build runs separately because ceiling stops the aggregate row; both CLI unavailable JSON checks pass. Focused production-bundle real canvas test passes (one PTY, shell echo returned): 1 passed in 23.1s. Extra host-facts spec fails; Kernel is deliberately extended-only at apps/tracer/src/canvas/windows/details-facts.ts, unchanged from production, but the spec expects it in the core view. Full browser suite and isolated reruns remain in progress.

==> static builds
Blocking waiting for file lock on build directory
Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
Finished release profile [optimized] target(s) in 22m 35s
/home/kayg/.cache/codex-scratch/dev-backmerge/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: 20288048 bytes (baseline 16142672 + allowance 262144 = max 16404816)
binary exceeds the 16404816-byte size budget: 20288048 bytes

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

Final fast gate completed: all Rust rows except the explicitly accepted static-size ceiling pass. x86_64 --locked release is static-pie, no PT_INTERP, 20,288,048 bytes versus 16,404,816 maximum. ARM --locked build runs separately because ceiling stops the aggregate row; both CLI unavailable JSON checks pass. Focused production-bundle real canvas test passes (one PTY, shell echo returned): 1 passed in 23.1s. Extra host-facts spec fails; Kernel is deliberately extended-only at apps/tracer/src/canvas/windows/details-facts.ts, unchanged from production, but the spec expects it in the core view. Full browser suite and isolated reruns remain in progress. ==> static builds Blocking waiting for file lock on build directory Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `release` profile [optimized] target(s) in 22m 35s /home/kayg/.cache/codex-scratch/dev-backmerge/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: 20288048 bytes (baseline 16142672 + allowance 262144 = max 16404816) binary exceeds the 16404816-byte size budget: 20288048 bytes +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | FAIL (1) | +---------------------------+--------------+
Author
Owner

Merge step committed and pushed only dev-backmerge: 9024716528. Parents: dev 5bc58323ab and production 6320f5b52f. Per-file resolution/rejected alternatives are in the merge body. External Cargo.lock packages changed: 0. Native workspace 686 passed/0 failed/66 ignored; all Rust rows pass except accepted static size (20,288,048 vs 16,404,816 bytes). Tracer 147 passed; protocol 36 passed/34,462 assertions; real-shell smoke passes. ARM build and complete browser gate continue. Production-parent isolated add-host spec reproduced chip-field failure: 12 passed/2 failed, so this is pre-existing, not a merge-only regression. Verbatim native/tracer/TS outputs follow in numbered comments.

Merge step committed and pushed only dev-backmerge: 90247165280a1d1231151aa703ec713838706794. Parents: dev 5bc58323ab14a99613df16c1dbe254e99bda3d28 and production 6320f5b52f75c14b6ae0bc92b7ab1974f5570982. Per-file resolution/rejected alternatives are in the merge body. External Cargo.lock packages changed: 0. Native workspace 686 passed/0 failed/66 ignored; all Rust rows pass except accepted static size (20,288,048 vs 16,404,816 bytes). Tracer 147 passed; protocol 36 passed/34,462 assertions; real-shell smoke passes. ARM build and complete browser gate continue. Production-parent isolated add-host spec reproduced chip-field failure: 12 passed/2 failed, so this is pre-existing, not a merge-only regression. Verbatim native/tracer/TS outputs follow in numbered comments.
Author
Owner

Gate output for merge 9024716528: tracer.log, part 1/1 (verbatim).

$ bun x tsc --project tsconfig.json
bun test v1.4.2 (744846f84)

src/palette-entry.test.ts:
(pass) palette rows are always titled > a titled row passes through untouched [0.11ms]
(pass) palette rows are always titled > a blank title throws in a strict build and names the row [1.35ms]
(pass) palette rows are always titled > a blank title is repaired from the settings section in production [14.67ms]
(pass) palette rows are always titled > a blank title with no section falls back to the group [0.05ms]
(pass) a settings window always has a title in the scoped palette > section appearance without its host field is still Appearance [0.12ms]
(pass) a settings window always has a title in the scoped palette > section windows without its host field is still Window Sizes [0.02ms]
(pass) a settings window always has a title in the scoped palette > section hosts without its host field is still Hosts
(pass) a settings window always has a title in the scoped palette > section toolbar without its host field is still Toolbar
(pass) a settings window always has a title in the scoped palette > section shortcuts without its host field is still Shortcuts
(pass) a settings window always has a title in the scoped palette > section devices without its host field is still Devices
(pass) a settings window always has a title in the scoped palette > section account without its host field is still Account
(pass) a settings window always has a title in the scoped palette > section about without its host field is still About [0.10ms]
(pass) a settings window always has a title in the scoped palette > section users without its host field is still Users [0.01ms]
(pass) a settings window always has a title in the scoped palette > section grants without its host field is still Access
(pass) a settings window always has a title in the scoped palette > section discovery without its host field is still Found hosts
(pass) a settings window always has a title in the scoped palette > a window of any other kind never has an empty name [0.06ms]

src/perf-detector.test.ts:
(pass) FrameDetector > estimates the refresh from the median and snaps it [1.67ms]
(pass) FrameDetector > nothing is a drop before the rate is known [0.05ms]
(pass) FrameDetector > a drop is over 1.5 refresh intervals, a freeze over 100 ms [0.42ms]
(pass) FrameDetector > the refresh only goes up: a slow page is not a slower display [0.10ms]
(pass) FrameDetector > the first frame after a pause is not an interval [0.06ms]
(pass) FrameDetector > fps, p95 and window read the ring [0.20ms]
(pass) FrameDetector > a throttled page (one frame a second) is neither a drop nor a freeze, and neither is its return [0.21ms]
(pass) FrameDetector > a lone long stall is still a freeze and is not a throttled run [0.07ms]

src/connection-pool.test.ts:
(pass) terminals fill the first socket, then open another, and a released slot is reused first [1.60ms]
(pass) 54 windows need two sockets, and the pool stops opening sockets at its cap [1.49ms]

src/canvas/recency.test.ts:
(pass) touch moves an item to the front and never duplicates it [0.60ms]
(pass) repeating the front item changes nothing [0.04ms]
(pass) the list is capped, so the oldest items fall off [0.04ms]
(pass) top skips items that are no longer live, without losing them [0.08ms]
(pass) recentRows: five used windows in reverse order of use, from 54 windows [0.18ms]
(pass) recentRows: a view with three windows and no use shows them in order [0.03ms]
(pass) recentRows: used windows lead, the rest fill up to five in window order [0.06ms]

src/canvas/windows/details-facts.test.ts:
(pass) host facts become plain-language details rows [0.69ms]
(pass) unknown optional host facts stay absent instead of appearing as placeholders [1.12ms]
(pass) extended info off: the machine tab shows only the essentials, ungrouped, and there is no More section [0.69ms]
(pass) extended info on: every fact sits under System, Resources or Access [0.22ms]
(pass) the header follows the machine's own facts, not the platform the host list guessed [0.14ms]
(pass) before facts arrive the host's platform names the header [0.05ms]
(pass) a reported system with no platform mark still names the header and shows no mark [0.33ms]

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

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

src/canvas/layout/stops.test.ts:
(pass) a view that fits the viewport has one stop, centred [0.52ms]
(pass) a wide view has one stop per column and the last stop ends at the right edge [0.29ms]
(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.20ms]
(pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.36ms]
(pass) a small graph keeps one stop per node column [0.16ms]
(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.11ms]

src/canvas/layout/grid.test.ts:
(pass) split right in a stacked column makes a group: the window's column halves, its neighbours span both halves [1.95ms]
(pass) closing the new half gives the layout back exactly, in the model [1.96ms]
(pass) closing the window it came from makes the new half take its band, and the layout is one column again [0.58ms]
(pass) split right of a spanning window halves its span inside the existing columns, with the footprint unchanged [0.39ms]
(pass) split down in a group divides only the window's band: the partner window grows to keep its height [0.73ms]
(pass) closing the window split down gives its band back to the window above and to the partner [2.64ms]
(pass) a window split down in a plain column stacks under it and moves the windows below down [0.33ms]
(pass) new window right opens a full-size column after the whole group, never inside it [0.27ms]
(pass) runs: adjacent columns linked by a spanning window form one group, the rest stay plain [0.09ms]
(pass) spans are clamped to the columns that exist and a stale row is re-placed, never overlapped [0.17ms]
(pass) random sequences of split right, split down, new window right and close never break the grid [101.50ms]
(pass) closing every window of a group returns the view to nothing, with no problem on the way [4.50ms]
(pass) a full-width band under a group moves nothing and extends the group by one band [0.17ms]
(pass) a band inserted between two bands of one column grows the windows beside it and moves the rest [0.09ms]

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.47ms]
(pass) a chain of neighbours is pushed in turn [0.15ms]
(pass) snapping rounds to whole cells [0.04ms]
(pass) reach follows grants through tags and keeps the relay [0.21ms]

src/canvas/sessions/live-inventory.test.ts:
(pass) inventory remembers a remote session and refuses a cross-host attach [0.81ms]

src/canvas/sessions/details-live.test.ts:
(pass) a refused host facts action stops its recurring timer [0.90ms]
(pass) a detected operating system supplies the live popover mark [10.38ms]

src/canvas/sessions/live.test.ts:
(pass) an enrolled host opens by UUID and splits keep that authority [0.68ms]
(pass) unknown and ambiguous labels never open an embedded shell [4.06ms]
(pass) removed hosts disappear from inventory and cannot route a new shell [0.23ms]

src/canvas/sessions/gone-review.test.ts:
(pass) selecting a known gone session keeps its final exited state [0.33ms]
(pass) a known retired status survives repeated selection and generic ended answers [0.14ms]

src/canvas/sessions/open-refusal.test.ts:
(pass) memory refusal retains the reason and current counters [1.33ms]
(pass) legacy refusals still work and malformed counters never reach the message [0.43ms]
(pass) product copy names the host and counters and never renders untrusted server text [0.79ms]
(pass) oversized refusal JSON is ignored before parsing [0.18ms]

src/canvas/model/document.test.ts:
(pass) a document holds references and layout, never content [0.59ms]
(pass) a document survives JSON and rebuilds the same columns [2.29ms]
(pass) a target that no longer exists is dropped, and an emptied column with it [0.20ms]
(pass) parseDocument rejects anything that is not a document of this format [0.38ms]
(pass) remote affinity survives reload and invalid UUIDs cannot become local references [0.16ms]
(pass) a version 1 document from before D212 loads, with its split pair and a full-size window [0.25ms]
(pass) a grouped view saves its spans and bands and loads back to the same grid (D212) [0.25ms]
(pass) a plain view is saved without spans or bands, exactly as before D212 [0.08ms]

src/canvas/addhost/real.test.ts:
(pass) parsing the server's data > a discovery row keeps only known fields and valid ids [1.61ms]
(pass) parsing the server's data > the server key needs its public key and fingerprint [0.08ms]
(pass) parsing the server's data > an install command needs a lifetime [0.05ms]
(pass) a server that lacks an endpoint > serving the web app (200, HTML) for an unknown path is 'not available' [1.48ms]
(pass) a server that lacks an endpoint > 404 discovery is an empty list; 500 discovery is an error to show [0.19ms]
(pass) a server that lacks an endpoint > private sign-in stays local until a target-bound socket start [0.74ms]
(pass) a server that lacks an endpoint > a wrong target consumes the reference without sending private input [0.16ms]
(pass) a server that lacks an endpoint > a local reference cannot change SSH address while keeping the target id [0.18ms]
(pass) a server that lacks an endpoint > closing before open discards queued sign-in even if a late open fires [0.12ms]
(pass) a server that lacks an endpoint > pre-open commands stay bounded and events after close cannot revive a run [0.91ms]
(pass) a server that lacks an endpoint > trust waits for the exact acknowledgement, and ignores another target [0.46ms]

src/canvas/addhost/authority.on-demand.test.ts:
(pass) CA wrapping matches the contract's HKDF domain and separates generations [7.09ms]

src/canvas/addhost/model.test.ts:
(pass) stagesOf > a host with no event is waiting everywhere [0.25ms]
(pass) stagesOf > check before sign-in is detecting how to sign in [3.75ms]
(pass) stagesOf > the sign-in report finishes detect and starts the system check [0.16ms]
(pass) stagesOf > install, facts and connect map to install, enrol and first session [0.12ms]
(pass) stagesOf > an auth failure before sign-in fails detect and says it in plain words, not the server's [0.16ms]
(pass) stagesOf > an unsupported host fails the system check, after sign-in [0.05ms]
(pass) stagesOf > an install failure fails the install stage and keeps the earlier ones done [0.04ms]
(pass) stagesOf > a new attempt starts over and forgets the old sign-in [0.06ms]
(pass) authLabel > names the method and a trusted network provider only [0.11ms]
(pass) guideFor > installation failures never claim that incomplete cleanup succeeded [0.13ms]
(pass) guideFor > each failure kind names its fix [0.09ms]
(pass) guideFor > mesh-policy words say possible, not certain [0.03ms]
(pass) parseTarget > reads user, host and port [0.20ms]
(pass) parseTarget > refuses what cannot name a host [0.04ms]
(pass) parseSshConfig > reads aliases with HostName, User and Port, skipping wildcards and Match [0.85ms]
(pass) parseSshConfig > recognises config text [0.15ms]
(pass) parseSshConfig > a hostname that is an option is dropped [0.04ms]
(pass) plain words > an unknown or missing failure gets the generic sentence, never the server's text [0.07ms]
(pass) plain words > no headline carries an arrow, an id or an API noun [0.13ms]
(pass) only a completed canonical host identity becomes terminal authority [0.08ms]
(pass) parseTarget > accepts user@host, host, user@host:port, IPv4 and bracketed IPv6 with an optional port [0.05ms]
(pass) parseTarget > rejects partial and malformed tokens, so they wait or show the hint [0.04ms]
(pass) matchListed > a name that is exactly one host's id or address names that host [0.54ms]
(pass) matchListed > a name that is also the start of another host's name is named but still prefixed [0.02ms]
(pass) matchListed > a partial name that starts several hosts names none and waits [0.02ms]
(pass) matchListed > a new name that starts no host is neither named nor waiting [0.02ms]
(pass) install diagnostics name the failed step and public host error [0.06ms]
(pass) missing payload tells the operator the architecture and expected server path [0.03ms]
(pass) an already added host says so and offers opening its existing terminal [1.50ms]

src/canvas/addhost/wizard.test.ts:
(pass) a saved-key prompt completing after close never starts an SSH attempt [1.63ms]
(pass) fresh CA requires setup before any SSH attempt and preserves root consent [0.30ms]
(pass) ready CA begins the requested installation mode without another prompt [0.14ms]
(pass) closing during CA confirmation never starts an SSH attempt [0.28ms]
(pass) a typed root login requires explicit consent before any installation [0.12ms]

 147 pass
 0 fail
 10911 expect() calls
Ran 147 tests across 20 files. [689.00ms]
$ bun run build.ts
built chunk-st9cmtfv.js, chunk-nha0rj7v.js, chunk-pymxpd8s.js, chunk-y6z565xe.js, chunk-vb5y9ewj.js, chunk-9yqtg4bm.js, chunk-5gvm30xx.js, chunk-a895a34j.js, chunk-y9z35mse.js, chunk-ry4q4gha.js, chunk-zgc7dqhe.js, chunk-13r8dgba.js, chunk-0g3v75e7.js, main.js, chunk-kdcxvw7m.js, chunk-wn0fy536.js, chunk-7gv2rj8n.js, chunk-b8wpddz4.js, chunk-1ygheb8n.js, chunk-jtk5ts7a.js, chunk-jkfrj4re.js, chunk-6xbv2xrg.js, chunk-33g8nawh.js, chunk-axbkkqp1.js, chunk-zg1ybte1.js, chunk-snndd2q8.js, chunk-7dsvc5jw.js, chunk-xyz5rvjn.js, chunk-6z3x4mch.js, chunk-4hym5et9.js, chunk-hcr19wwy.js, chunk-58dghazm.js, chunk-kqp8f7hm.js, chunk-yp1wavpf.js, chunk-6dtmdhhh.js, chunk-kwmx0ymg.js, chunk-b0dk85k4.js, chunk-fextp724.js, chunk-28rbcdd5.js, chunk-61xwpgvs.js, chunk-ryy15zqq.js, chunk-tvszvkt4.js, chunk-hdbnccvd.js, chunk-181kwkef.js, chunk-gw7a8g3g.js, chunk-pz06rmmw.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b0f0x50n.js, chunk-f2r0hhqc.js, chunk-8hdt2fh0.js, chunk-dfvrk7st.js, chunk-9xd3g65e.js
onDemand chunk-ryy15zqq.js: identity=552 gzip=406 brotli=307 bytes
onDemand chunk-13r8dgba.js: identity=4563 gzip=1607 brotli=1433 bytes
onDemand chunk-tvszvkt4.js: identity=47781 gzip=15015 brotli=13342 bytes
critical chunk-28rbcdd5.js: identity=39 gzip=39 brotli=39 bytes
onDemand chunk-pz06rmmw.js: identity=2316 gzip=1033 brotli=865 bytes
onDemand chunk-yp1wavpf.js: identity=5359 gzip=2581 brotli=2296 bytes
onDemand chunk-zgc7dqhe.js: identity=191 gzip=171 brotli=135 bytes
onDemand chunk-6dtmdhhh.js: identity=4640 gzip=1933 brotli=1707 bytes
critical chunk-8hdt2fh0.js: identity=199 gzip=160 brotli=128 bytes
onDemand chunk-kqp8f7hm.js: identity=11529 gzip=4652 brotli=4251 bytes
onDemand chunk-hcr19wwy.js: identity=1170 gzip=708 brotli=590 bytes
critical chunk-1ygheb8n.js: identity=590 gzip=326 brotli=304 bytes
onDemand chunk-fextp724.js: identity=10496 gzip=4087 brotli=3734 bytes
onDemand chunk-kwmx0ymg.js: identity=7662 gzip=3397 brotli=2962 bytes
deferred chunk-4hym5et9.js: identity=93915 gzip=31914 brotli=28177 bytes
onDemand chunk-gw7a8g3g.js: identity=31920 gzip=12275 brotli=11050 bytes
onDemand chunk-9yqtg4bm.js: identity=2188 gzip=1048 brotli=878 bytes
critical faulty-terminal.worker.js: identity=1086 gzip=558 brotli=486 bytes
critical backdrop.worker.js: identity=243 gzip=211 brotli=158 bytes
onDemand chunk-6z3x4mch.js: identity=1616 gzip=864 brotli=739 bytes
onDemand chunk-xyz5rvjn.js: identity=4575 gzip=2013 brotli=1779 bytes
onDemand chunk-0g3v75e7.js: identity=2108 gzip=1037 brotli=870 bytes
critical chunk-6xbv2xrg.js: identity=1104 gzip=666 brotli=605 bytes
critical chunk-hdbnccvd.js: identity=162 gzip=150 brotli=146 bytes
critical chunk-st9cmtfv.js: identity=21235 gzip=6854 brotli=6128 bytes
onDemand chunk-snndd2q8.js: identity=6198 gzip=2791 brotli=2521 bytes
critical chunk-jtk5ts7a.js: identity=2519 gzip=1008 brotli=878 bytes
critical chunk-a895a34j.js: identity=88 gzip=88 brotli=74 bytes
critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes
critical chunk-kdcxvw7m.js: identity=8377 gzip=3575 brotli=3197 bytes
critical chunk-jkfrj4re.js: identity=386 gzip=237 brotli=196 bytes
critical chunk-b8wpddz4.js: identity=17525 gzip=6115 brotli=5438 bytes
critical chunk-f2r0hhqc.js: identity=128 gzip=109 brotli=111 bytes
critical chunk-dfvrk7st.js: identity=41779 gzip=14276 brotli=12799 bytes
onDemand chunk-b0dk85k4.js: identity=13351 gzip=5013 brotli=4487 bytes
critical chunk-9xd3g65e.js: identity=39 gzip=39 brotli=39 bytes
onDemand chunk-33g8nawh.js: identity=1026 gzip=624 brotli=499 bytes
onDemand chunk-ry4q4gha.js: identity=2420 gzip=1198 brotli=1078 bytes
deferred chunk-y6z565xe.js: identity=42608 gzip=16267 brotli=14309 bytes
onDemand chunk-181kwkef.js: identity=6773 gzip=3175 brotli=2888 bytes
critical chunk-b0f0x50n.js: identity=9810 gzip=4015 brotli=3454 bytes
onDemand chunk-58dghazm.js: identity=540 gzip=353 brotli=314 bytes
critical chunk-wn0fy536.js: identity=5443 gzip=2604 brotli=2379 bytes
critical chunk-7gv2rj8n.js: identity=12516 gzip=5003 brotli=4452 bytes
critical chunk-zg1ybte1.js: identity=703957 gzip=203942 brotli=165278 bytes
critical chunk-5gvm30xx.js: identity=707 gzip=368 brotli=311 bytes
critical chunk-nha0rj7v.js: identity=2943 gzip=1315 brotli=1134 bytes
onDemand chunk-vb5y9ewj.js: identity=3891 gzip=1737 brotli=1521 bytes
critical main.js: identity=109195 gzip=39819 brotli=34577 bytes
critical chunk-61xwpgvs.js: identity=49 gzip=49 brotli=49 bytes
onDemand chunk-pymxpd8s.js: identity=5745 gzip=2167 brotli=1922 bytes
onDemand chunk-7dsvc5jw.js: identity=2824 gzip=1385 brotli=1193 bytes
onDemand chunk-y9z35mse.js: identity=228 gzip=179 brotli=165 bytes
JavaScript transfer, critical: identity=940209 gzip=291616/307200 brotli=242438/256000 bytes
JavaScript transfer, deferred: identity=136523 gzip=48181/51200 brotli=42486/45056 bytes
JavaScript transfer, onDemand: identity=181662 gzip=71449/20480 brotli=63526/18432 bytes
JavaScript transfer, onDemand largest chunk chunk-tvszvkt4.js: gzip=15015/20480 brotli=13342/18432 bytes (class total gzip=71449 brotli=63526, 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
Gate output for merge 90247165280a1d1231151aa703ec713838706794: tracer.log, part 1/1 (verbatim). ```text $ bun x tsc --project tsconfig.json bun test v1.4.2 (744846f84) src/palette-entry.test.ts: (pass) palette rows are always titled > a titled row passes through untouched [0.11ms] (pass) palette rows are always titled > a blank title throws in a strict build and names the row [1.35ms] (pass) palette rows are always titled > a blank title is repaired from the settings section in production [14.67ms] (pass) palette rows are always titled > a blank title with no section falls back to the group [0.05ms] (pass) a settings window always has a title in the scoped palette > section appearance without its host field is still Appearance [0.12ms] (pass) a settings window always has a title in the scoped palette > section windows without its host field is still Window Sizes [0.02ms] (pass) a settings window always has a title in the scoped palette > section hosts without its host field is still Hosts (pass) a settings window always has a title in the scoped palette > section toolbar without its host field is still Toolbar (pass) a settings window always has a title in the scoped palette > section shortcuts without its host field is still Shortcuts (pass) a settings window always has a title in the scoped palette > section devices without its host field is still Devices (pass) a settings window always has a title in the scoped palette > section account without its host field is still Account (pass) a settings window always has a title in the scoped palette > section about without its host field is still About [0.10ms] (pass) a settings window always has a title in the scoped palette > section users without its host field is still Users [0.01ms] (pass) a settings window always has a title in the scoped palette > section grants without its host field is still Access (pass) a settings window always has a title in the scoped palette > section discovery without its host field is still Found hosts (pass) a settings window always has a title in the scoped palette > a window of any other kind never has an empty name [0.06ms] src/perf-detector.test.ts: (pass) FrameDetector > estimates the refresh from the median and snaps it [1.67ms] (pass) FrameDetector > nothing is a drop before the rate is known [0.05ms] (pass) FrameDetector > a drop is over 1.5 refresh intervals, a freeze over 100 ms [0.42ms] (pass) FrameDetector > the refresh only goes up: a slow page is not a slower display [0.10ms] (pass) FrameDetector > the first frame after a pause is not an interval [0.06ms] (pass) FrameDetector > fps, p95 and window read the ring [0.20ms] (pass) FrameDetector > a throttled page (one frame a second) is neither a drop nor a freeze, and neither is its return [0.21ms] (pass) FrameDetector > a lone long stall is still a freeze and is not a throttled run [0.07ms] src/connection-pool.test.ts: (pass) terminals fill the first socket, then open another, and a released slot is reused first [1.60ms] (pass) 54 windows need two sockets, and the pool stops opening sockets at its cap [1.49ms] src/canvas/recency.test.ts: (pass) touch moves an item to the front and never duplicates it [0.60ms] (pass) repeating the front item changes nothing [0.04ms] (pass) the list is capped, so the oldest items fall off [0.04ms] (pass) top skips items that are no longer live, without losing them [0.08ms] (pass) recentRows: five used windows in reverse order of use, from 54 windows [0.18ms] (pass) recentRows: a view with three windows and no use shows them in order [0.03ms] (pass) recentRows: used windows lead, the rest fill up to five in window order [0.06ms] src/canvas/windows/details-facts.test.ts: (pass) host facts become plain-language details rows [0.69ms] (pass) unknown optional host facts stay absent instead of appearing as placeholders [1.12ms] (pass) extended info off: the machine tab shows only the essentials, ungrouped, and there is no More section [0.69ms] (pass) extended info on: every fact sits under System, Resources or Access [0.22ms] (pass) the header follows the machine's own facts, not the platform the host list guessed [0.14ms] (pass) before facts arrive the host's platform names the header [0.05ms] (pass) a reported system with no platform mark still names the header and shows no mark [0.33ms] src/canvas/mesh/protocol.test.ts: (pass) the server's own list becomes nodes, tags and grants, by name [0.80ms] (pass) without `access` (today's server) the person may view and may not edit [1.75ms] (pass) fields the server does not send are absent, never invented [0.15ms] (pass) anything that is not a list is refused, whole [9.56ms] (pass) a node's own tag list and the tag table agree even when a server sends only one [0.17ms] (pass) the subscription's events: a pushed list, a revision that invalidates, and the end of the subscription [3.19ms] (pass) answers carry the new revision, and a create the new arrow's id [0.13ms] (pass) endpoints go out as the server writes them: a node by id, a tag by name [0.11ms] src/canvas/mesh/layout.test.ts: (pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [1.57ms] (pass) the layout is deterministic and does not depend on input order [5.10ms] (pass) no two cards overlap, and every card lies inside the graph [15.01ms] (pass) the sheet is wider than tall, roughly 16:10 [1.36ms] (pass) a pinned node stays where it was put and the others do not move [5.51ms] (pass) a pin beyond the sheet grows the graph [0.36ms] (pass) a host's other tags do not move it; a tag nobody carries still has its node [0.19ms] (pass) 1,000 nodes lay out in a few milliseconds [42.77ms] src/canvas/layout/stops.test.ts: (pass) a view that fits the viewport has one stop, centred [0.52ms] (pass) a wide view has one stop per column and the last stop ends at the right edge [0.29ms] (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.20ms] (pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.36ms] (pass) a small graph keeps one stop per node column [0.16ms] (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.11ms] src/canvas/layout/grid.test.ts: (pass) split right in a stacked column makes a group: the window's column halves, its neighbours span both halves [1.95ms] (pass) closing the new half gives the layout back exactly, in the model [1.96ms] (pass) closing the window it came from makes the new half take its band, and the layout is one column again [0.58ms] (pass) split right of a spanning window halves its span inside the existing columns, with the footprint unchanged [0.39ms] (pass) split down in a group divides only the window's band: the partner window grows to keep its height [0.73ms] (pass) closing the window split down gives its band back to the window above and to the partner [2.64ms] (pass) a window split down in a plain column stacks under it and moves the windows below down [0.33ms] (pass) new window right opens a full-size column after the whole group, never inside it [0.27ms] (pass) runs: adjacent columns linked by a spanning window form one group, the rest stay plain [0.09ms] (pass) spans are clamped to the columns that exist and a stale row is re-placed, never overlapped [0.17ms] (pass) random sequences of split right, split down, new window right and close never break the grid [101.50ms] (pass) closing every window of a group returns the view to nothing, with no problem on the way [4.50ms] (pass) a full-width band under a group moves nothing and extends the group by one band [0.17ms] (pass) a band inserted between two bands of one column grows the windows beside it and moves the rest [0.09ms] 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.47ms] (pass) a chain of neighbours is pushed in turn [0.15ms] (pass) snapping rounds to whole cells [0.04ms] (pass) reach follows grants through tags and keeps the relay [0.21ms] src/canvas/sessions/live-inventory.test.ts: (pass) inventory remembers a remote session and refuses a cross-host attach [0.81ms] src/canvas/sessions/details-live.test.ts: (pass) a refused host facts action stops its recurring timer [0.90ms] (pass) a detected operating system supplies the live popover mark [10.38ms] src/canvas/sessions/live.test.ts: (pass) an enrolled host opens by UUID and splits keep that authority [0.68ms] (pass) unknown and ambiguous labels never open an embedded shell [4.06ms] (pass) removed hosts disappear from inventory and cannot route a new shell [0.23ms] src/canvas/sessions/gone-review.test.ts: (pass) selecting a known gone session keeps its final exited state [0.33ms] (pass) a known retired status survives repeated selection and generic ended answers [0.14ms] src/canvas/sessions/open-refusal.test.ts: (pass) memory refusal retains the reason and current counters [1.33ms] (pass) legacy refusals still work and malformed counters never reach the message [0.43ms] (pass) product copy names the host and counters and never renders untrusted server text [0.79ms] (pass) oversized refusal JSON is ignored before parsing [0.18ms] src/canvas/model/document.test.ts: (pass) a document holds references and layout, never content [0.59ms] (pass) a document survives JSON and rebuilds the same columns [2.29ms] (pass) a target that no longer exists is dropped, and an emptied column with it [0.20ms] (pass) parseDocument rejects anything that is not a document of this format [0.38ms] (pass) remote affinity survives reload and invalid UUIDs cannot become local references [0.16ms] (pass) a version 1 document from before D212 loads, with its split pair and a full-size window [0.25ms] (pass) a grouped view saves its spans and bands and loads back to the same grid (D212) [0.25ms] (pass) a plain view is saved without spans or bands, exactly as before D212 [0.08ms] src/canvas/addhost/real.test.ts: (pass) parsing the server's data > a discovery row keeps only known fields and valid ids [1.61ms] (pass) parsing the server's data > the server key needs its public key and fingerprint [0.08ms] (pass) parsing the server's data > an install command needs a lifetime [0.05ms] (pass) a server that lacks an endpoint > serving the web app (200, HTML) for an unknown path is 'not available' [1.48ms] (pass) a server that lacks an endpoint > 404 discovery is an empty list; 500 discovery is an error to show [0.19ms] (pass) a server that lacks an endpoint > private sign-in stays local until a target-bound socket start [0.74ms] (pass) a server that lacks an endpoint > a wrong target consumes the reference without sending private input [0.16ms] (pass) a server that lacks an endpoint > a local reference cannot change SSH address while keeping the target id [0.18ms] (pass) a server that lacks an endpoint > closing before open discards queued sign-in even if a late open fires [0.12ms] (pass) a server that lacks an endpoint > pre-open commands stay bounded and events after close cannot revive a run [0.91ms] (pass) a server that lacks an endpoint > trust waits for the exact acknowledgement, and ignores another target [0.46ms] src/canvas/addhost/authority.on-demand.test.ts: (pass) CA wrapping matches the contract's HKDF domain and separates generations [7.09ms] src/canvas/addhost/model.test.ts: (pass) stagesOf > a host with no event is waiting everywhere [0.25ms] (pass) stagesOf > check before sign-in is detecting how to sign in [3.75ms] (pass) stagesOf > the sign-in report finishes detect and starts the system check [0.16ms] (pass) stagesOf > install, facts and connect map to install, enrol and first session [0.12ms] (pass) stagesOf > an auth failure before sign-in fails detect and says it in plain words, not the server's [0.16ms] (pass) stagesOf > an unsupported host fails the system check, after sign-in [0.05ms] (pass) stagesOf > an install failure fails the install stage and keeps the earlier ones done [0.04ms] (pass) stagesOf > a new attempt starts over and forgets the old sign-in [0.06ms] (pass) authLabel > names the method and a trusted network provider only [0.11ms] (pass) guideFor > installation failures never claim that incomplete cleanup succeeded [0.13ms] (pass) guideFor > each failure kind names its fix [0.09ms] (pass) guideFor > mesh-policy words say possible, not certain [0.03ms] (pass) parseTarget > reads user, host and port [0.20ms] (pass) parseTarget > refuses what cannot name a host [0.04ms] (pass) parseSshConfig > reads aliases with HostName, User and Port, skipping wildcards and Match [0.85ms] (pass) parseSshConfig > recognises config text [0.15ms] (pass) parseSshConfig > a hostname that is an option is dropped [0.04ms] (pass) plain words > an unknown or missing failure gets the generic sentence, never the server's text [0.07ms] (pass) plain words > no headline carries an arrow, an id or an API noun [0.13ms] (pass) only a completed canonical host identity becomes terminal authority [0.08ms] (pass) parseTarget > accepts user@host, host, user@host:port, IPv4 and bracketed IPv6 with an optional port [0.05ms] (pass) parseTarget > rejects partial and malformed tokens, so they wait or show the hint [0.04ms] (pass) matchListed > a name that is exactly one host's id or address names that host [0.54ms] (pass) matchListed > a name that is also the start of another host's name is named but still prefixed [0.02ms] (pass) matchListed > a partial name that starts several hosts names none and waits [0.02ms] (pass) matchListed > a new name that starts no host is neither named nor waiting [0.02ms] (pass) install diagnostics name the failed step and public host error [0.06ms] (pass) missing payload tells the operator the architecture and expected server path [0.03ms] (pass) an already added host says so and offers opening its existing terminal [1.50ms] src/canvas/addhost/wizard.test.ts: (pass) a saved-key prompt completing after close never starts an SSH attempt [1.63ms] (pass) fresh CA requires setup before any SSH attempt and preserves root consent [0.30ms] (pass) ready CA begins the requested installation mode without another prompt [0.14ms] (pass) closing during CA confirmation never starts an SSH attempt [0.28ms] (pass) a typed root login requires explicit consent before any installation [0.12ms] 147 pass 0 fail 10911 expect() calls Ran 147 tests across 20 files. [689.00ms] $ bun run build.ts built chunk-st9cmtfv.js, chunk-nha0rj7v.js, chunk-pymxpd8s.js, chunk-y6z565xe.js, chunk-vb5y9ewj.js, chunk-9yqtg4bm.js, chunk-5gvm30xx.js, chunk-a895a34j.js, chunk-y9z35mse.js, chunk-ry4q4gha.js, chunk-zgc7dqhe.js, chunk-13r8dgba.js, chunk-0g3v75e7.js, main.js, chunk-kdcxvw7m.js, chunk-wn0fy536.js, chunk-7gv2rj8n.js, chunk-b8wpddz4.js, chunk-1ygheb8n.js, chunk-jtk5ts7a.js, chunk-jkfrj4re.js, chunk-6xbv2xrg.js, chunk-33g8nawh.js, chunk-axbkkqp1.js, chunk-zg1ybte1.js, chunk-snndd2q8.js, chunk-7dsvc5jw.js, chunk-xyz5rvjn.js, chunk-6z3x4mch.js, chunk-4hym5et9.js, chunk-hcr19wwy.js, chunk-58dghazm.js, chunk-kqp8f7hm.js, chunk-yp1wavpf.js, chunk-6dtmdhhh.js, chunk-kwmx0ymg.js, chunk-b0dk85k4.js, chunk-fextp724.js, chunk-28rbcdd5.js, chunk-61xwpgvs.js, chunk-ryy15zqq.js, chunk-tvszvkt4.js, chunk-hdbnccvd.js, chunk-181kwkef.js, chunk-gw7a8g3g.js, chunk-pz06rmmw.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b0f0x50n.js, chunk-f2r0hhqc.js, chunk-8hdt2fh0.js, chunk-dfvrk7st.js, chunk-9xd3g65e.js onDemand chunk-ryy15zqq.js: identity=552 gzip=406 brotli=307 bytes onDemand chunk-13r8dgba.js: identity=4563 gzip=1607 brotli=1433 bytes onDemand chunk-tvszvkt4.js: identity=47781 gzip=15015 brotli=13342 bytes critical chunk-28rbcdd5.js: identity=39 gzip=39 brotli=39 bytes onDemand chunk-pz06rmmw.js: identity=2316 gzip=1033 brotli=865 bytes onDemand chunk-yp1wavpf.js: identity=5359 gzip=2581 brotli=2296 bytes onDemand chunk-zgc7dqhe.js: identity=191 gzip=171 brotli=135 bytes onDemand chunk-6dtmdhhh.js: identity=4640 gzip=1933 brotli=1707 bytes critical chunk-8hdt2fh0.js: identity=199 gzip=160 brotli=128 bytes onDemand chunk-kqp8f7hm.js: identity=11529 gzip=4652 brotli=4251 bytes onDemand chunk-hcr19wwy.js: identity=1170 gzip=708 brotli=590 bytes critical chunk-1ygheb8n.js: identity=590 gzip=326 brotli=304 bytes onDemand chunk-fextp724.js: identity=10496 gzip=4087 brotli=3734 bytes onDemand chunk-kwmx0ymg.js: identity=7662 gzip=3397 brotli=2962 bytes deferred chunk-4hym5et9.js: identity=93915 gzip=31914 brotli=28177 bytes onDemand chunk-gw7a8g3g.js: identity=31920 gzip=12275 brotli=11050 bytes onDemand chunk-9yqtg4bm.js: identity=2188 gzip=1048 brotli=878 bytes critical faulty-terminal.worker.js: identity=1086 gzip=558 brotli=486 bytes critical backdrop.worker.js: identity=243 gzip=211 brotli=158 bytes onDemand chunk-6z3x4mch.js: identity=1616 gzip=864 brotli=739 bytes onDemand chunk-xyz5rvjn.js: identity=4575 gzip=2013 brotli=1779 bytes onDemand chunk-0g3v75e7.js: identity=2108 gzip=1037 brotli=870 bytes critical chunk-6xbv2xrg.js: identity=1104 gzip=666 brotli=605 bytes critical chunk-hdbnccvd.js: identity=162 gzip=150 brotli=146 bytes critical chunk-st9cmtfv.js: identity=21235 gzip=6854 brotli=6128 bytes onDemand chunk-snndd2q8.js: identity=6198 gzip=2791 brotli=2521 bytes critical chunk-jtk5ts7a.js: identity=2519 gzip=1008 brotli=878 bytes critical chunk-a895a34j.js: identity=88 gzip=88 brotli=74 bytes critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes critical chunk-kdcxvw7m.js: identity=8377 gzip=3575 brotli=3197 bytes critical chunk-jkfrj4re.js: identity=386 gzip=237 brotli=196 bytes critical chunk-b8wpddz4.js: identity=17525 gzip=6115 brotli=5438 bytes critical chunk-f2r0hhqc.js: identity=128 gzip=109 brotli=111 bytes critical chunk-dfvrk7st.js: identity=41779 gzip=14276 brotli=12799 bytes onDemand chunk-b0dk85k4.js: identity=13351 gzip=5013 brotli=4487 bytes critical chunk-9xd3g65e.js: identity=39 gzip=39 brotli=39 bytes onDemand chunk-33g8nawh.js: identity=1026 gzip=624 brotli=499 bytes onDemand chunk-ry4q4gha.js: identity=2420 gzip=1198 brotli=1078 bytes deferred chunk-y6z565xe.js: identity=42608 gzip=16267 brotli=14309 bytes onDemand chunk-181kwkef.js: identity=6773 gzip=3175 brotli=2888 bytes critical chunk-b0f0x50n.js: identity=9810 gzip=4015 brotli=3454 bytes onDemand chunk-58dghazm.js: identity=540 gzip=353 brotli=314 bytes critical chunk-wn0fy536.js: identity=5443 gzip=2604 brotli=2379 bytes critical chunk-7gv2rj8n.js: identity=12516 gzip=5003 brotli=4452 bytes critical chunk-zg1ybte1.js: identity=703957 gzip=203942 brotli=165278 bytes critical chunk-5gvm30xx.js: identity=707 gzip=368 brotli=311 bytes critical chunk-nha0rj7v.js: identity=2943 gzip=1315 brotli=1134 bytes onDemand chunk-vb5y9ewj.js: identity=3891 gzip=1737 brotli=1521 bytes critical main.js: identity=109195 gzip=39819 brotli=34577 bytes critical chunk-61xwpgvs.js: identity=49 gzip=49 brotli=49 bytes onDemand chunk-pymxpd8s.js: identity=5745 gzip=2167 brotli=1922 bytes onDemand chunk-7dsvc5jw.js: identity=2824 gzip=1385 brotli=1193 bytes onDemand chunk-y9z35mse.js: identity=228 gzip=179 brotli=165 bytes JavaScript transfer, critical: identity=940209 gzip=291616/307200 brotli=242438/256000 bytes JavaScript transfer, deferred: identity=136523 gzip=48181/51200 brotli=42486/45056 bytes JavaScript transfer, onDemand: identity=181662 gzip=71449/20480 brotli=63526/18432 bytes JavaScript transfer, onDemand largest chunk chunk-tvszvkt4.js: gzip=15015/20480 brotli=13342/18432 bytes (class total gzip=71449 brotli=63526, 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 ```
Author
Owner

Gate output for merge 9024716528: verify-fast-final.log, part 1/5 (verbatim).

Running as unit: run-p2976188-i49066311.scope; invocation ID: d92a056ab31840ae8b5d0f0e9c723daa
METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=289.62 p99_ms=291.67 result=PASS

==> fmt

==> VT native fmt

==> CLI plugin compile-out
disabled CLI plugin dependencies: absent from normal dependency graph
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
warning: variable does not need to be mutable
   --> crates/infraternal/src/cli/actions.rs:110:9
    |
110 |     let mut plugin = PluginDefinition::new(
    |         ----^^^^^^
    |         |
    |         help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: `infraternal` (bin "infraternal" test) generated 1 warning (run `cargo fix --bin "infraternal" -p infraternal --tests` to apply 1 suggestion)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 5.05s
     Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-3b46d02e044fd543)

running 24 tests
test cli::actions::tests::agent_session_integration_target_is_gated_by_agent_plugin ... ok
test cli::actions::tests::no_default_plugins_register_no_component_commands ... ok
test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok
test cli::command_tree::tests::compiled_out_plugin_has_no_help_or_parse_path ... ok
test cli::actions::tests::server_only_dependencies_are_removed_with_server_plugin ... ok
test cli::actions::tests::compiled_out_mesh_has_no_registered_commands ... ok
test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok
test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok
test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok
test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok
test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok
test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok
test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok
test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok
test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok
test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok
test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok
test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok
test status_tests::custom_named_server_service_is_reported_as_running ... ok
test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok
test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok
test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok
test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok
test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok

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


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

==> test
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 02s
     Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-33c5a16771df4842)

running 64 tests
test cli::actions::tests::enabled_mesh_plugin_registers_its_component_commands ... ok
test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok
test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok
test cli::actions::tests::registered_actions_include_plugin_permission_contract_fields ... ok
test cli::actions::hosted_tests::production_descriptors_share_cli_registry_and_skills ... ok
test cli::command_tree::backmerge_tests::removal_and_retention_inputs_keep_the_production_runtime_bindings ... ok
test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok
test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok
test cli::command_tree::backmerge_tests::restart_inherits_private_state_before_or_after_the_command ... ok
test cli::command_tree::tests::server_init_parses_confirmation_plan_and_server_configuration ... ok
test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok
test cli::actions::factory_tests::plugin_command_materializes_only_its_owner_and_discovery_remains_complete ... ok
test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok
test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok
test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok
test cli::command_tree::tests::parser_uses_plugin_inputs_and_accepts_json_after_a_leaf_command ... ok
test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok
test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok
test cli::skills::tests::generated_skill_contains_front_matter_inputs_outputs_and_safety ... ok
test embedded_cli::tests::dispatch_keeps_public_help_operator_modes_and_foreign_commands ... ok
test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok
test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok
test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok
test remote::tests::local_identity_load_refuses_symlink_and_shared_file ... ok
test failure_data_tests::server_errors_keep_the_registered_result_data_shapes ... ok
test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok
test remote::tests::preparation_refuses_shared_and_symlinked_data_directories ... ok
test remote::tests::oversized_or_invalid_invitation_fails_before_local_state_is_created ... ok
test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok
test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok
test remote::tests::join_dns_failure_reports_resolution_instead_of_generic_refusal ... ok
test remote::tests::uid_and_privilege_mismatch_fails_before_key_generation ... ok
test remote::tests::ordinary_join_keeps_the_foreground_connection_default ... ok
test embedded_cli::tests::inherited_flags_keep_public_parser_validation_and_values ... ok
test remote::tests::ssh_installation_can_enroll_before_starting_the_service ... ok
test remote_server::tests::missing_ca_refuses_before_database_or_listener_creation ... ok
test remote_server::tests::service_dry_run_preserves_remote_listener_and_private_trust_path ... ok
test remote_server::tests::remote_activation_is_explicit_and_ca_override_requires_listener ... ok
test restart::tests::default_restart_opens_the_receiver_target_exactly_once ... ok
test remote_server::tests::failed_cold_configuration_still_disposes_handoff_stdin ... ok
test restart::tests::private_control_endpoint_cannot_be_stolen_or_created_by_a_client ... ok
test restart::tests::private_path_prefix_cannot_authorize_a_parent_directory_escape ... ok
test remote_server::tests::independent_review_remote_operator_commands_accept_json_output ... ok
test restart::tests::early_hangup_is_queued_until_control_installs_its_handler ... ok
test restart::tests::replacement_never_exports_to_a_general_purpose_binary ... ok
test restart::tests::restart_request_logs_kernel_peer_target_and_cold_outcome ... ok
test restart::tests::restart_requests_use_the_servers_binary_and_reject_untrusted_paths ... ok
test restart::tests::closed_reply_and_missing_reload_target_do_not_end_restart_control ... ok
test restart::tests::root_owned_marked_target_requires_protected_root_parents ... ok
test remote::tests::publication_is_private_and_never_replaces_existing_identity ... ok
test restart::tests::runtime_directory_symlinks_and_public_permissions_are_refused ... ok
test remote::tests::renewal_publication_replaces_only_certificate_and_preserves_private_metadata ... ok
test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok
test restart::tests::reviewer_fifo_replacement_is_refused_without_waiting_for_a_writer ... ok
test status_tests::custom_named_server_service_is_reported_as_running ... ok
test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok
test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok
test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok
test restart::tests::cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null ... ok
test remote_server::tests::failed_restart_endpoint_does_not_prevent_http_serving ... ok
test restart::tests::real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin ... ok
test restart::tests::reload_reopens_install_path_when_the_running_inode_was_replaced ... ok
test restart::tests::rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode ... ok
test restart::tests::runtime_shutdown_never_waits_forever_on_a_blocking_waiter ... ok

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

     Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_daemon-13ff2987ab904bcf)

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 44.10s

     Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_queues-1e6041ad696872db)

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 36.33s

     Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_review-31e4a4510a70dbc6)

running 8 tests
test reaped_shim_exit_survives_credit_after_starvation_deadline ... ok
test last_typist_selects_its_own_real_pty_dimensions ... ok
test initial_attach_requires_explicit_credit_before_replay ... ok
test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok
test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok
test retained_unwritten_input_survives_interleaved_ack_restart ... ok
test local_session_counts_and_memory_refusals_follow_real_lifecycle ... ok
test repeated_tiny_credit_pauses_preserve_shell_progress ... ok

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

     Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_sessions-a62f2007428bd442)

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.13s

     Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/idle_canary-92b03be7558ff4b6)

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.23s

     Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-87e082b77639cc07)

running 3 tests
test human_remote_refusal_has_sections_and_next_steps_without_color ... ok
test json_remote_run_refuses_missing_identity_without_reflecting_its_path ... ok
test json_remote_server_refuses_before_creating_storage_or_binding ... ok

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

     Running tests/session_bounds_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_bounds_review-bc86f61d44bfc7ea)

running 1 test
test attached_window_recovers_final_output_and_exit_after_shim_link_detaches ... ok

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

     Running tests/session_retention.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_retention-a104d04ca590a00f)

running 1 test
test bounded_owned_exit_reconnects_as_ended_with_status ... ok

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

     Running tests/shim.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/shim-c000a9366fcaed2c)

running 13 tests
test detached_shell_exit_reaps_even_with_a_live_background_descendant ... ok
test detached_shell_exit_reaps_shim_within_one_second ... ok
test disallowed_signal_only_disconnects_peer ... ok
test double_fork_survives_parent_death ... ok
test replacement_connection_and_malformed_limit ... ok
test unowned_normal_exit_retires_promptly_and_records_status ... ok
test real_shell_reconnect_resize_and_delivered_exit ... ok
test owned_exit_releases_promptly_on_window_close ... ok
test delivered_exit_cannot_release_another_owning_window ... ok
test owned_exit_maximum_retires_with_status_even_with_an_unread_data_peer ... ok
active
test attached_backpressure_and_detached_progress ... ok
test user_scope_survives_parent_unit_stop ... ok
test ring_wrap_snapshot_repaints_real_vim ... ok

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

     Running tests/ssh_askpass.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/ssh_askpass-bd7248d3f9f1d216)

running 3 tests
test encrypted_key_without_passphrase_never_prompts_on_a_controlling_terminal ... ignored, run under the disposable controlling-terminal harness
test real_cli_askpass_refuses_unregistered_parent_and_cleans_helper ... ok
test real_cli_unlocks_an_encrypted_synthetic_key_on_private_pipes ... ok

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

     Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_credit-abfa1ef4aba23d87)

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 23.23s

     Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_reconnect-69f97db79e168c8c)

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 18.84s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_agent-55009bb09fe52301)

running 67 tests
test daemon::gone_tests::scale_review::two_hundred_vanished_sessions_preserve_the_same_channel ... ignored, scale measurement; run alone under CPUWeight=10000
test daemon::readiness_tests::reply_lane_memory_at_1000_channels ... ignored, queue-only scale diagnostic; run alone without build/browser overlap, not whole-daemon memory
test daemon::readiness_tests::uninstall_handoff_runs_only_after_a_successful_real_socket_write ... ok
test daemon::readiness_tests::control_precedes_bulk_without_reordering_snapshot_notice ... ok
test cli::tests::agent_actions_are_complete_and_unavailable_until_lifecycle_exists ... ok
test daemon::session_commands::measurements::command_coordination_cost_against_existing_fifo ... ignored, release command coordination diagnostic, not end-to-end throughput; run without own build overlap
test daemon::session_commands::tests::credit_above_one_wire_word_is_exact_and_idle_after_drain ... ok
test daemon::session_commands::tests::credit_allowance_does_not_cross_ordered_command_barriers ... ok
test daemon::session_commands::tests::credit_bursts_do_not_consume_ordered_input_capacity ... ok
test daemon::session_commands::tests::input_and_resize_keep_their_shared_fifo_order_around_credit ... ok
test daemon::gone_tests::a_vanished_session_gets_a_final_close_and_the_channel_stays_up ... ok
test daemon::stream_memory_tests::terminal_stream_memory_at_200 ... ignored, weighted release measurement of 200 idle relay tasks
test lifecycle::tests::directory_inode_changes_do_not_retire_the_same_process ... ok
test daemon::session_commands::tests::zero_credit_is_idle_and_overflow_refuses_without_mutating_accounting ... ok
test lifecycle::tests::process_birth_parser_handles_command_bytes_and_numeric_bounds ... ok
test daemon::readiness_tests::saturated_replies_retire_connection_without_awaiting_writer_capacity ... ok
test lifecycle::tests::window_ownership_and_process_identity_bound_live_counts ... 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::attachment_has_no_implicit_output_or_snapshot_credit ... 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 lifecycle::tests::nondumpable_process_keeps_its_authenticated_lifetime ... ok
test daemon::remote_tests::wrong_enrolled_uid_is_refused_before_state_creation ... ok
test remote_client::tests::expired_local_identity_stops_instead_of_retrying_forever ... ok
test remote_client::tests::rootless_uid_mismatch_is_refused_before_dial ... ok
test remote_client::tests::supervisor_300ms_quic_and_blocked_udp_fallback ... ignored, supervisor establishment diagnostic; run alone without builds or browsers
test relay::tests::overflowing_ranges_never_mutate_cursors ... ok
test remote_client::tests::prefixed_control_keeps_coalesced_suffix_and_suppresses_only_its_greeting ... ok
test remote_client::tests::tcp_winner_cancels_silent_udp_drivers_without_waiting_for_drain ... ok
test daemon::remote_tests::cancelling_remote_dispatch_retires_the_borrowed_authenticated_channel ... ok
test daemon::remote_tests::wrong_open_uid_is_rejected_while_control_remains_usable ... ok
test remote_native_tests::bound_writer_uses_raw_frames_and_rejects_cross_writer_transmit ... ok
test remote_native_tests::control_must_be_host_initiated_stream_zero_and_terminal_halves_cannot_impersonate_it ... ok
test remote_client::tests::delayed_proxy_keeps_replies_bound_to_the_original_udp_client ... ok
test remote_client::tests::unavailable_udp_does_not_add_seconds_before_tcp_admission ... ok
test remote_native_tests::partial_native_write_cancellation_retires_both_directions ... ok
test remote_native_tests::terminal::gone_review::retired_native_session_delivers_saved_status_then_final_close_before_retirement ... ok
test remote_native_tests::terminal::credits::private_credit_burst_waits_for_its_shim_without_retiring_native_stream ... ok
test remote_client::tests::tcp_proxy_preserves_spacing_between_packets_already_in_flight ... ok
test remote_native_tests::terminal::gone_review::retiring_native_handshake_preserves_final_answer_with_inflight_commands ... ok
test remote_native_tests::terminal::real_pty_resumes_native_writer_after_25_connection_replacements ... ignored, real CLI/shim oracle; set INFRATERNAL_TEST_BINARY and run alone under CPUWeight10000
test daemon::remote_tests::control_greeting_precedes_actions_and_odd_writers_are_refused ... 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 remote_native_tests::terminal::gone_review::vanished_native_session_delivers_final_close_before_stream_retirement ... 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 remote_client::tests::tcp_proxy_flushes_bounded_flood_before_half_close ... ok
test remote_client::tests::winning_quic_drops_the_unfinished_tls_dial_before_control_dispatch ... ok
test sessions::tests::bounds::discovery_recovers_more_than_128_authenticated_sockets ... ok
test transport_diagnostics::quic_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap
test transport_diagnostics::quic_bulk_50m_exact_bytes ... ignored, size investigation diagnostic; run alone without build or browser overlap
test transport_diagnostics::tcp_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap
test transport::remote_deadline_tests::remote_partial_frame_deadline_survives_receive_cancellation ... ok
test transport::remote_deadline_tests::coalesced_partial_suffix_keeps_its_arrival_deadline ... ok
test transport::remote_deadline_tests::queued_suffix_cannot_complete_an_expired_cancelled_frame ... ok
test transport::remote_deadline_tests::wholly_idle_remote_channel_has_no_frame_expiry ... ok
test remote_native_tests::terminal::gone_review::retired_native_status_bounds_final_reply_drain_for_a_stuck_peer ... ok
test remote_native_tests::terminal::gone_review::vanished_native_session_bounds_final_reply_drain_for_a_stuck_peer ... ok
test daemon::remote_tests::silent_authenticated_peer_has_a_greeting_deadline ... ok

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

     Running tests/transport.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/transport-1684b2d50f3ced83)

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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_mesh-850732030b85431f)

running 1 test
test cli::tests::mesh_actions_are_complete_with_optional_ssh_connectivity ... ok

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

     Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/default_arrow-a4f0585450cc3f1a)

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/dev-backmerge/target/debug/deps/properties-3531fcee3ddf5930)

running 14 tests
test directional_grants_union_and_minimal_updates ... ok
test exhausted_versions_reject_mutations_without_changing_state ... ok
test overlaps_are_reported_without_silent_range_changes ... 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 join_to_same_tag_grants_both_initiation_directions ... 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 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 5.69s

     Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/rotation_time-21c724304f47a722)

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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_api-3fd14f2bc447abb6)

running 15 tests
test action::tests::registry_keeps_plugin_ownership_and_exact_command_paths ... ok
test action::tests::registry_rejects_inconsistent_json_schemas ... ok
test action::tests::registry_rejects_missing_action_guidance_and_command_collisions ... ok
test component_tests::component_declarations_cannot_create_servers ... ok
test component_tests::destructive_actions_require_a_dry_run_and_every_action_has_instructions ... ok
test action::tests::any_of_permissions_are_machine_readable_and_empty_authority_is_rejected ... ok
test action::tests::command_result_schema_has_required_stable_fields_and_optional_next_step ... ok
test action::tests::only_hidden_internal_routes_may_use_the_reserved_prefix ... ok
test action::tests::command_result_schema_keeps_action_data_typed_inside_stable_envelope ... ok
test routing::tests::topic_is_borrowed_and_other_filter_fields_are_left_to_the_plugin ... ok
test tests::deferred_plugin_effect_waits_for_successful_reply_and_drops_on_cancellation ... ok
test tests::registry_routes_only_declared_actions ... ok
test routing::tests::invalid_or_oversized_topics_are_refused ... ok
test tests::registry_rejects_oversized_json_before_plugin_dispatch ... ok
test admission::tests::memory_refusal_round_trips_without_losing_legacy_error ... ok

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

     Running tests/routing_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/routing_review-36ddc27c5ff6e5f0)

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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_backup-3ecef0badd3fbed3)

running 1 test
test cli::tests::backup_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_host_facts-b4ecdc58024bdef7)

running 13 tests
test memory::tests::default_floor_refuses_only_below_headroom_even_above_128_sessions ... ok
test tests::compatibility_fields_are_kept_in_the_rust_shape_and_architecture_on_wire ... ok
test tests::descriptor_declares_default_settings_actions_and_no_hidden_role_dependency ... ok
test tests::linux_load_average_text_ignores_proc_metadata_and_rejects_invalid_values ... 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 session_counts_tests::host_owned_session_counts_are_additive_and_refresh_on_request ... ok
test tests::runtime_disable_drops_cached_facts_and_reenable_collects_them_again ... ok
test tests::macos_load_average_decodes_the_bounded_64_bit_sysctl_shape ... ok
test tests::configured_memory_floor_refuses_with_current_host_counters ... ok
test tests::os_release_uses_distribution_name_and_version_without_shell_evaluation ... ok
test memory::tests::custom_policy_rounds_up_and_validates_all_settings_before_use ... ok
test tests::static_facts_are_cached_and_live_counters_are_collected_only_when_requested ... ok

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_mesh-511a4bf9a22ffb59)

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/dev-backmerge/target/debug/deps/infraternal_plugin_relay-b92e7fc872866129)

running 1 test
test cli::tests::relay_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_remote-286c85db01c89fc3)

running 12 tests
test remote_quic::tests::wrong_server_name_never_yields_authenticated_connection ... ok
test remote_tls::tests::untrusted_client_never_reaches_server_admission ... ok
test uninstall::tests::bootstrap_lock_delays_uninstall_without_omitting_its_handler ... ok
test remote_tls::tests::mutual_tls_delivers_exact_bytes_and_verified_leaf_fingerprints ... ok
test uninstall::tests::uninstall_never_accepts_request_selected_paths_or_foreign_identity ... ok
test remote_tls::tests::untrusted_server_or_wrong_server_name_is_refused_before_bytes ... ok
test remote_quic::tests::repeated_native_id_has_distinct_server_writer_authority_and_preserves_suffix ... ok
test remote_quic::tests::host_cannot_open_a_second_server_control_stream ... ok
test remote_tls::tests::cancelled_partial_write_cannot_reuse_the_channel ... ok
test uninstall::tests::retirement_signals_the_shell_after_its_foreground_job_exits ... ok
test remote_quic::tests::acknowledged_idle_survives_and_a_silent_path_times_out ... ok
test remote_tls::tests::stalled_write_retires_both_directions_without_idle_polling ... ok

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_ssh-09034dc0689fcdf8)

running 13 tests
test auth_once::tests::caller_cannot_choose_or_extend_the_expiry_clock ... ok
test cli::tests::ssh_actions_are_complete_and_marked_unavailable ... ok
test manifest::tests::node_provisioning_declares_an_existing_server_and_only_node_components ... ok
test config::tests::unresolved_or_relative_public_paths_cannot_admit_first_contact ... ok
test config::tests::trust_lookup_uses_every_explicit_alias_verbatim ... ok
test config::tests::configured_private_sources_are_excluded_and_public_trust_is_retained ... ok
test prompt::tests::reply_fixture ... ignored, private subprocess for the one-reply peer oracle
test config::tests::malformed_public_policy_is_refused_before_it_can_change_command_arguments ... ok
test auth_once::tests::each_method_consumes_once_and_expiry_erases_both_methods ... ok
test transport::secret_tests::secret_input_has_a_fixed_bound_and_accepts_only_strings ... ok
test auth_once::tests::invalid_material_is_refused_before_any_helper_or_scheduling ... ok
test config::tests::flattened_quoted_public_filenames_are_refused_when_existing_trust_would_be_lost ... ok

running 1 test
test prompt::tests::reply_fixture ... ok

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

test prompt::tests::helper_reply_requires_the_registered_parent_and_is_served_once ... ok

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

     Running tests/auth_order.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/auth_order-ba511af2879396f6)

running 6 tests
test later_command_auth_errors_never_restart_the_selected_method_sequence ... ok
test trust_network_and_remote_command_failures_stop_without_loading_local_secrets ... ok
test authentication_never_replays_a_mutating_first_command_or_reuses_a_failed_scope ... ok
test only_exhausted_auth_returns_typed_choose_method ... ok
test successful_authentication_is_reported_and_later_secrets_are_never_requested ... ok
test cancelling_authentication_consumes_the_attempt_without_requesting_secrets ... ok

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

     Running tests/build_removal.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/build_removal-12d95e0577561718)

running 1 test
test build_without_default_plugins_excludes_ssh_dependency ... ok

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

     Running tests/concurrency.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/concurrency-9e818aeee9f5a865)

running 7 tests
test a_thousand_admitted_targets_keep_eight_active_backend_calls ... ignored, explicit CPUWeight10000 scale measurement with a controlled unavailable backend
test entire_batch_validates_before_start_and_duplicates_are_refused ... ok
test an_interrupted_disable_keeps_admission_closed_until_its_adapter_retires ... ok
test concurrency_is_eight_across_batches_and_all_ten_hosts_fail_independently ... ok
test authenticated_batches_retain_an_opaque_session_for_trusted_issuance ... ok
test component_off_retires_a_real_native_helper ... ok
test turning_off_drains_queued_work_and_reenable_never_resumes_old_batches ... ok

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

     Running tests/config_isolation.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/config_isolation-4c052ffa2763fa0a)

running 1 test
test configured_identity_paths_are_not_inherited_by_the_command_child ... ok

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

     Running tests/credentials.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/credentials-56c8bb7fa0901abf)

running 3 tests
test password_socket_refuses_an_unrelated_same_user_process ... ok
test password_helpers_prepare_a_fresh_private_root_and_remove_only_their_directory ... ok
test credential_helper_refuses_host_trust_and_permission_prompts ... ok

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

     Running tests/diagnostics.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/diagnostics-c6256406c6ab3818)

running 5 tests
test mesh_policy_requires_both_discovery_facts_and_a_transport_refusal ... ok
test remote_command_text_is_not_ssh_authority_and_never_enters_logs ... ok
test failed_join_retains_only_the_allowlisted_host_dns_error ... ok
test dynamic_public_trust_is_retained_without_becoming_file_only_admission ... ok
test effective_configuration_never_scans_a_proxy_or_invalid_endpoint ... ok

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

     Running tests/event_metadata.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/event_metadata-fb74d64a91ebc133)

running 1 test
test unsupported_host_reports_method_and_retry_never_replays_it_as_current ... ok

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

     Running tests/foreground.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/foreground-ea42b8ff6ec85942)

running 1 test
test configured_backgrounding_is_overridden_for_owned_bootstrap_commands ... ok

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

     Running tests/host_trust.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/host_trust-34ce022bb9284f9a)

running 2 tests
test configured_known_hosts_command_revocation_cannot_offer_first_contact ... ignored, run through research/ssh-client/measure.py with its synthetic public host key
test first_contact_needs_fresh_authority_and_never_replaces_existing_trust ... ignored, run through research/ssh-client/measure.py --negative-trust-oracle with its memory-held synthetic key

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

     Running tests/install.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/install-28c5c8776ffc4161)

running 29 tests
test command_failure_names_upload_join_install_and_start_separately ... ok
test fresh_cleanup_refuses_a_shared_writable_receipt_parent_before_mutation ... ok
test cleanup_receipt_cannot_authorize_a_replaced_unowned_directory ... ok
test acknowledged_linger_noop_does_not_own_later_external_enable ... ok
test foreign_files_and_another_attempt_lock_are_never_removed ... ok
test fresh_cleanup_resumes_after_base_removal_and_retires_its_receipt ... ok
test denied_linger_request_does_not_undo_a_later_external_enable ... ok
test fresh_cleanup_resumes_after_owner_marker_removal_with_a_fresh_session ... ok
test active_service_stop_failure_never_replaces_live_artifacts ... ok
test failed_upgrade_preserves_previous_binary_state_and_unit ... ok
test fresh_runtime_symlink_never_removes_foreign_empty_directories ... ok
test fresh_receipt_is_removed_before_transaction_rollback ... ok
test interrupted_linger_reply_retains_intent_for_cleanup ... ok
test fresh_runtime_empty_directories_do_not_block_rollback_and_retry ... ok
test fresh_rollback_resumes_after_transaction_directory_removal ... ok
test linked_owner_marker_is_refused_before_retiring_the_transaction ... ok
test fresh_runtime_unexpected_data_keeps_ownership_and_cleanup_receipt ... ok
test interrupted_upgrade_after_acknowledged_stop_restarts_the_previous_service ... ok
test interrupted_restore_recreates_links_without_deleting_the_original ... ok
test fresh_failure_removes_owned_artifacts_and_success_can_rejoin ... ok
test interrupted_rollback_never_deletes_already_restored_state_on_retry ... ok
test retry_cleanup_uses_fresh_session_and_preserves_privilege_consent ... ok
test linger_policy_denial_is_a_warning_and_owned_changes_are_reversible ... ok
test refused_previous_service_stop_only_removes_staging ... ok
test pending_fresh_cleanup_refuses_replacement_staging_until_finished ... ok
test writable_installation_is_refused_before_upload_or_cleanup ... ok
test malformed_or_exposed_cleanup_receipts_never_remove_the_owned_root ... ok
test rejoin_preserves_existing_host_identity_in_the_private_staging_state ... ok
test rollback_stop_refusal_retains_artifacts_for_later_cleanup ... ok

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

     Running tests/model.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/model-47ce6d8f579454b5)

running 4 tests
test check_is_exact_bounded_and_rejects_every_truncation ... ok
test addresses_never_become_options_or_shell_syntax ... ok
test consent_and_credential_references_are_the_only_request_authority ... ok
test root_consent_is_required_before_ssh_and_uid_zero_cannot_be_rootless ... ok

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

     Running tests/probe_check.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/probe_check-aa6f45376a1e61b2)

running 1 test
test manager_availability_does_not_request_its_private_environment ... ok

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

Gate output for merge 90247165280a1d1231151aa703ec713838706794: verify-fast-final.log, part 1/5 (verbatim). ```text Running as unit: run-p2976188-i49066311.scope; invocation ID: d92a056ab31840ae8b5d0f0e9c723daa METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=289.62 p99_ms=291.67 result=PASS ==> fmt ==> VT native fmt ==> CLI plugin compile-out disabled CLI plugin dependencies: absent from normal dependency graph Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) warning: variable does not need to be mutable --> crates/infraternal/src/cli/actions.rs:110:9 | 110 | let mut plugin = PluginDefinition::new( | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: `infraternal` (bin "infraternal" test) generated 1 warning (run `cargo fix --bin "infraternal" -p infraternal --tests` to apply 1 suggestion) Finished `test` profile [unoptimized + debuginfo] target(s) in 5.05s Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-3b46d02e044fd543) running 24 tests test cli::actions::tests::agent_session_integration_target_is_gated_by_agent_plugin ... ok test cli::actions::tests::no_default_plugins_register_no_component_commands ... ok test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok test cli::command_tree::tests::compiled_out_plugin_has_no_help_or_parse_path ... ok test cli::actions::tests::server_only_dependencies_are_removed_with_server_plugin ... ok test cli::actions::tests::compiled_out_mesh_has_no_registered_commands ... ok test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok test status_tests::custom_named_server_service_is_reported_as_running ... ok test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.62s ==> test Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 02s Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-33c5a16771df4842) running 64 tests test cli::actions::tests::enabled_mesh_plugin_registers_its_component_commands ... ok test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok test cli::actions::tests::registered_actions_include_plugin_permission_contract_fields ... ok test cli::actions::hosted_tests::production_descriptors_share_cli_registry_and_skills ... ok test cli::command_tree::backmerge_tests::removal_and_retention_inputs_keep_the_production_runtime_bindings ... ok test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok test cli::command_tree::backmerge_tests::restart_inherits_private_state_before_or_after_the_command ... ok test cli::command_tree::tests::server_init_parses_confirmation_plan_and_server_configuration ... ok test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok test cli::actions::factory_tests::plugin_command_materializes_only_its_owner_and_discovery_remains_complete ... ok test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok test cli::command_tree::tests::parser_uses_plugin_inputs_and_accepts_json_after_a_leaf_command ... ok test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok test cli::skills::tests::generated_skill_contains_front_matter_inputs_outputs_and_safety ... ok test embedded_cli::tests::dispatch_keeps_public_help_operator_modes_and_foreign_commands ... ok test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok test remote::tests::local_identity_load_refuses_symlink_and_shared_file ... ok test failure_data_tests::server_errors_keep_the_registered_result_data_shapes ... ok test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok test remote::tests::preparation_refuses_shared_and_symlinked_data_directories ... ok test remote::tests::oversized_or_invalid_invitation_fails_before_local_state_is_created ... ok test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok test remote::tests::join_dns_failure_reports_resolution_instead_of_generic_refusal ... ok test remote::tests::uid_and_privilege_mismatch_fails_before_key_generation ... ok test remote::tests::ordinary_join_keeps_the_foreground_connection_default ... ok test embedded_cli::tests::inherited_flags_keep_public_parser_validation_and_values ... ok test remote::tests::ssh_installation_can_enroll_before_starting_the_service ... ok test remote_server::tests::missing_ca_refuses_before_database_or_listener_creation ... ok test remote_server::tests::service_dry_run_preserves_remote_listener_and_private_trust_path ... ok test remote_server::tests::remote_activation_is_explicit_and_ca_override_requires_listener ... ok test restart::tests::default_restart_opens_the_receiver_target_exactly_once ... ok test remote_server::tests::failed_cold_configuration_still_disposes_handoff_stdin ... ok test restart::tests::private_control_endpoint_cannot_be_stolen_or_created_by_a_client ... ok test restart::tests::private_path_prefix_cannot_authorize_a_parent_directory_escape ... ok test remote_server::tests::independent_review_remote_operator_commands_accept_json_output ... ok test restart::tests::early_hangup_is_queued_until_control_installs_its_handler ... ok test restart::tests::replacement_never_exports_to_a_general_purpose_binary ... ok test restart::tests::restart_request_logs_kernel_peer_target_and_cold_outcome ... ok test restart::tests::restart_requests_use_the_servers_binary_and_reject_untrusted_paths ... ok test restart::tests::closed_reply_and_missing_reload_target_do_not_end_restart_control ... ok test restart::tests::root_owned_marked_target_requires_protected_root_parents ... ok test remote::tests::publication_is_private_and_never_replaces_existing_identity ... ok test restart::tests::runtime_directory_symlinks_and_public_permissions_are_refused ... ok test remote::tests::renewal_publication_replaces_only_certificate_and_preserves_private_metadata ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test restart::tests::reviewer_fifo_replacement_is_refused_without_waiting_for_a_writer ... ok test status_tests::custom_named_server_service_is_reported_as_running ... ok test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok test restart::tests::cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null ... ok test remote_server::tests::failed_restart_endpoint_does_not_prevent_http_serving ... ok test restart::tests::real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin ... ok test restart::tests::reload_reopens_install_path_when_the_running_inode_was_replaced ... ok test restart::tests::rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode ... ok test restart::tests::runtime_shutdown_never_waits_forever_on_a_blocking_waiter ... ok test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.41s Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_daemon-13ff2987ab904bcf) 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 44.10s Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_queues-1e6041ad696872db) 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 36.33s Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_review-31e4a4510a70dbc6) running 8 tests test reaped_shim_exit_survives_credit_after_starvation_deadline ... ok test last_typist_selects_its_own_real_pty_dimensions ... ok test initial_attach_requires_explicit_credit_before_replay ... ok test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok test retained_unwritten_input_survives_interleaved_ack_restart ... ok test local_session_counts_and_memory_refusals_follow_real_lifecycle ... ok test repeated_tiny_credit_pauses_preserve_shell_progress ... ok test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.96s Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_sessions-a62f2007428bd442) 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.13s Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/idle_canary-92b03be7558ff4b6) 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.23s Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-87e082b77639cc07) running 3 tests test human_remote_refusal_has_sections_and_next_steps_without_color ... ok test json_remote_run_refuses_missing_identity_without_reflecting_its_path ... ok test json_remote_server_refuses_before_creating_storage_or_binding ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s Running tests/session_bounds_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_bounds_review-bc86f61d44bfc7ea) running 1 test test attached_window_recovers_final_output_and_exit_after_shim_link_detaches ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.26s Running tests/session_retention.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_retention-a104d04ca590a00f) running 1 test test bounded_owned_exit_reconnects_as_ended_with_status ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.16s Running tests/shim.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/shim-c000a9366fcaed2c) running 13 tests test detached_shell_exit_reaps_even_with_a_live_background_descendant ... ok test detached_shell_exit_reaps_shim_within_one_second ... ok test disallowed_signal_only_disconnects_peer ... ok test double_fork_survives_parent_death ... ok test replacement_connection_and_malformed_limit ... ok test unowned_normal_exit_retires_promptly_and_records_status ... ok test real_shell_reconnect_resize_and_delivered_exit ... ok test owned_exit_releases_promptly_on_window_close ... ok test delivered_exit_cannot_release_another_owning_window ... ok test owned_exit_maximum_retires_with_status_even_with_an_unread_data_peer ... ok active test attached_backpressure_and_detached_progress ... ok test user_scope_survives_parent_unit_stop ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.46s Running tests/ssh_askpass.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/ssh_askpass-bd7248d3f9f1d216) running 3 tests test encrypted_key_without_passphrase_never_prompts_on_a_controlling_terminal ... ignored, run under the disposable controlling-terminal harness test real_cli_askpass_refuses_unregistered_parent_and_cleans_helper ... ok test real_cli_unlocks_an_encrypted_synthetic_key_on_private_pipes ... ok test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.13s Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_credit-abfa1ef4aba23d87) 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 23.23s Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_reconnect-69f97db79e168c8c) 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 18.84s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_agent-55009bb09fe52301) running 67 tests test daemon::gone_tests::scale_review::two_hundred_vanished_sessions_preserve_the_same_channel ... ignored, scale measurement; run alone under CPUWeight=10000 test daemon::readiness_tests::reply_lane_memory_at_1000_channels ... ignored, queue-only scale diagnostic; run alone without build/browser overlap, not whole-daemon memory test daemon::readiness_tests::uninstall_handoff_runs_only_after_a_successful_real_socket_write ... ok test daemon::readiness_tests::control_precedes_bulk_without_reordering_snapshot_notice ... ok test cli::tests::agent_actions_are_complete_and_unavailable_until_lifecycle_exists ... ok test daemon::session_commands::measurements::command_coordination_cost_against_existing_fifo ... ignored, release command coordination diagnostic, not end-to-end throughput; run without own build overlap test daemon::session_commands::tests::credit_above_one_wire_word_is_exact_and_idle_after_drain ... ok test daemon::session_commands::tests::credit_allowance_does_not_cross_ordered_command_barriers ... ok test daemon::session_commands::tests::credit_bursts_do_not_consume_ordered_input_capacity ... ok test daemon::session_commands::tests::input_and_resize_keep_their_shared_fifo_order_around_credit ... ok test daemon::gone_tests::a_vanished_session_gets_a_final_close_and_the_channel_stays_up ... ok test daemon::stream_memory_tests::terminal_stream_memory_at_200 ... ignored, weighted release measurement of 200 idle relay tasks test lifecycle::tests::directory_inode_changes_do_not_retire_the_same_process ... ok test daemon::session_commands::tests::zero_credit_is_idle_and_overflow_refuses_without_mutating_accounting ... ok test lifecycle::tests::process_birth_parser_handles_command_bytes_and_numeric_bounds ... ok test daemon::readiness_tests::saturated_replies_retire_connection_without_awaiting_writer_capacity ... ok test lifecycle::tests::window_ownership_and_process_identity_bound_live_counts ... 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::attachment_has_no_implicit_output_or_snapshot_credit ... 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 lifecycle::tests::nondumpable_process_keeps_its_authenticated_lifetime ... ok test daemon::remote_tests::wrong_enrolled_uid_is_refused_before_state_creation ... ok test remote_client::tests::expired_local_identity_stops_instead_of_retrying_forever ... ok test remote_client::tests::rootless_uid_mismatch_is_refused_before_dial ... ok test remote_client::tests::supervisor_300ms_quic_and_blocked_udp_fallback ... ignored, supervisor establishment diagnostic; run alone without builds or browsers test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test remote_client::tests::prefixed_control_keeps_coalesced_suffix_and_suppresses_only_its_greeting ... ok test remote_client::tests::tcp_winner_cancels_silent_udp_drivers_without_waiting_for_drain ... ok test daemon::remote_tests::cancelling_remote_dispatch_retires_the_borrowed_authenticated_channel ... ok test daemon::remote_tests::wrong_open_uid_is_rejected_while_control_remains_usable ... ok test remote_native_tests::bound_writer_uses_raw_frames_and_rejects_cross_writer_transmit ... ok test remote_native_tests::control_must_be_host_initiated_stream_zero_and_terminal_halves_cannot_impersonate_it ... ok test remote_client::tests::delayed_proxy_keeps_replies_bound_to_the_original_udp_client ... ok test remote_client::tests::unavailable_udp_does_not_add_seconds_before_tcp_admission ... ok test remote_native_tests::partial_native_write_cancellation_retires_both_directions ... ok test remote_native_tests::terminal::gone_review::retired_native_session_delivers_saved_status_then_final_close_before_retirement ... ok test remote_native_tests::terminal::credits::private_credit_burst_waits_for_its_shim_without_retiring_native_stream ... ok test remote_client::tests::tcp_proxy_preserves_spacing_between_packets_already_in_flight ... ok test remote_native_tests::terminal::gone_review::retiring_native_handshake_preserves_final_answer_with_inflight_commands ... ok test remote_native_tests::terminal::real_pty_resumes_native_writer_after_25_connection_replacements ... ignored, real CLI/shim oracle; set INFRATERNAL_TEST_BINARY and run alone under CPUWeight10000 test daemon::remote_tests::control_greeting_precedes_actions_and_odd_writers_are_refused ... 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 remote_native_tests::terminal::gone_review::vanished_native_session_delivers_final_close_before_stream_retirement ... 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 remote_client::tests::tcp_proxy_flushes_bounded_flood_before_half_close ... ok test remote_client::tests::winning_quic_drops_the_unfinished_tls_dial_before_control_dispatch ... ok test sessions::tests::bounds::discovery_recovers_more_than_128_authenticated_sockets ... ok test transport_diagnostics::quic_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap test transport_diagnostics::quic_bulk_50m_exact_bytes ... ignored, size investigation diagnostic; run alone without build or browser overlap test transport_diagnostics::tcp_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap test transport::remote_deadline_tests::remote_partial_frame_deadline_survives_receive_cancellation ... ok test transport::remote_deadline_tests::coalesced_partial_suffix_keeps_its_arrival_deadline ... ok test transport::remote_deadline_tests::queued_suffix_cannot_complete_an_expired_cancelled_frame ... ok test transport::remote_deadline_tests::wholly_idle_remote_channel_has_no_frame_expiry ... ok test remote_native_tests::terminal::gone_review::retired_native_status_bounds_final_reply_drain_for_a_stuck_peer ... ok test remote_native_tests::terminal::gone_review::vanished_native_session_bounds_final_reply_drain_for_a_stuck_peer ... ok test daemon::remote_tests::silent_authenticated_peer_has_a_greeting_deadline ... ok test result: ok. 56 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 5.87s Running tests/transport.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/transport-1684b2d50f3ced83) 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_mesh-850732030b85431f) running 1 test test cli::tests::mesh_actions_are_complete_with_optional_ssh_connectivity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/default_arrow-a4f0585450cc3f1a) 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/dev-backmerge/target/debug/deps/properties-3531fcee3ddf5930) running 14 tests test directional_grants_union_and_minimal_updates ... ok test exhausted_versions_reject_mutations_without_changing_state ... ok test overlaps_are_reported_without_silent_range_changes ... 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 join_to_same_tag_grants_both_initiation_directions ... 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 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 5.69s Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/rotation_time-21c724304f47a722) 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_api-3fd14f2bc447abb6) running 15 tests test action::tests::registry_keeps_plugin_ownership_and_exact_command_paths ... ok test action::tests::registry_rejects_inconsistent_json_schemas ... ok test action::tests::registry_rejects_missing_action_guidance_and_command_collisions ... ok test component_tests::component_declarations_cannot_create_servers ... ok test component_tests::destructive_actions_require_a_dry_run_and_every_action_has_instructions ... ok test action::tests::any_of_permissions_are_machine_readable_and_empty_authority_is_rejected ... ok test action::tests::command_result_schema_has_required_stable_fields_and_optional_next_step ... ok test action::tests::only_hidden_internal_routes_may_use_the_reserved_prefix ... ok test action::tests::command_result_schema_keeps_action_data_typed_inside_stable_envelope ... ok test routing::tests::topic_is_borrowed_and_other_filter_fields_are_left_to_the_plugin ... ok test tests::deferred_plugin_effect_waits_for_successful_reply_and_drops_on_cancellation ... ok test tests::registry_routes_only_declared_actions ... ok test routing::tests::invalid_or_oversized_topics_are_refused ... ok test tests::registry_rejects_oversized_json_before_plugin_dispatch ... ok test admission::tests::memory_refusal_round_trips_without_losing_legacy_error ... ok test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/routing_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/routing_review-36ddc27c5ff6e5f0) 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_backup-3ecef0badd3fbed3) running 1 test test cli::tests::backup_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_host_facts-b4ecdc58024bdef7) running 13 tests test memory::tests::default_floor_refuses_only_below_headroom_even_above_128_sessions ... ok test tests::compatibility_fields_are_kept_in_the_rust_shape_and_architecture_on_wire ... ok test tests::descriptor_declares_default_settings_actions_and_no_hidden_role_dependency ... ok test tests::linux_load_average_text_ignores_proc_metadata_and_rejects_invalid_values ... 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 session_counts_tests::host_owned_session_counts_are_additive_and_refresh_on_request ... ok test tests::runtime_disable_drops_cached_facts_and_reenable_collects_them_again ... ok test tests::macos_load_average_decodes_the_bounded_64_bit_sysctl_shape ... ok test tests::configured_memory_floor_refuses_with_current_host_counters ... ok test tests::os_release_uses_distribution_name_and_version_without_shell_evaluation ... ok test memory::tests::custom_policy_rounds_up_and_validates_all_settings_before_use ... ok test tests::static_facts_are_cached_and_live_counters_are_collected_only_when_requested ... ok test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_mesh-511a4bf9a22ffb59) 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/dev-backmerge/target/debug/deps/infraternal_plugin_relay-b92e7fc872866129) running 1 test test cli::tests::relay_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_remote-286c85db01c89fc3) running 12 tests test remote_quic::tests::wrong_server_name_never_yields_authenticated_connection ... ok test remote_tls::tests::untrusted_client_never_reaches_server_admission ... ok test uninstall::tests::bootstrap_lock_delays_uninstall_without_omitting_its_handler ... ok test remote_tls::tests::mutual_tls_delivers_exact_bytes_and_verified_leaf_fingerprints ... ok test uninstall::tests::uninstall_never_accepts_request_selected_paths_or_foreign_identity ... ok test remote_tls::tests::untrusted_server_or_wrong_server_name_is_refused_before_bytes ... ok test remote_quic::tests::repeated_native_id_has_distinct_server_writer_authority_and_preserves_suffix ... ok test remote_quic::tests::host_cannot_open_a_second_server_control_stream ... ok test remote_tls::tests::cancelled_partial_write_cannot_reuse_the_channel ... ok test uninstall::tests::retirement_signals_the_shell_after_its_foreground_job_exits ... ok test remote_quic::tests::acknowledged_idle_survives_and_a_silent_path_times_out ... ok test remote_tls::tests::stalled_write_retires_both_directions_without_idle_polling ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.10s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_ssh-09034dc0689fcdf8) running 13 tests test auth_once::tests::caller_cannot_choose_or_extend_the_expiry_clock ... ok test cli::tests::ssh_actions_are_complete_and_marked_unavailable ... ok test manifest::tests::node_provisioning_declares_an_existing_server_and_only_node_components ... ok test config::tests::unresolved_or_relative_public_paths_cannot_admit_first_contact ... ok test config::tests::trust_lookup_uses_every_explicit_alias_verbatim ... ok test config::tests::configured_private_sources_are_excluded_and_public_trust_is_retained ... ok test prompt::tests::reply_fixture ... ignored, private subprocess for the one-reply peer oracle test config::tests::malformed_public_policy_is_refused_before_it_can_change_command_arguments ... ok test auth_once::tests::each_method_consumes_once_and_expiry_erases_both_methods ... ok test transport::secret_tests::secret_input_has_a_fixed_bound_and_accepts_only_strings ... ok test auth_once::tests::invalid_material_is_refused_before_any_helper_or_scheduling ... ok test config::tests::flattened_quoted_public_filenames_are_refused_when_existing_trust_would_be_lost ... ok running 1 test test prompt::tests::reply_fixture ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 12 filtered out; finished in 0.01s test prompt::tests::helper_reply_requires_the_registered_parent_and_is_served_once ... ok test result: ok. 12 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/auth_order.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/auth_order-ba511af2879396f6) running 6 tests test later_command_auth_errors_never_restart_the_selected_method_sequence ... ok test trust_network_and_remote_command_failures_stop_without_loading_local_secrets ... ok test authentication_never_replays_a_mutating_first_command_or_reuses_a_failed_scope ... ok test only_exhausted_auth_returns_typed_choose_method ... ok test successful_authentication_is_reported_and_later_secrets_are_never_requested ... ok test cancelling_authentication_consumes_the_attempt_without_requesting_secrets ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/build_removal.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/build_removal-12d95e0577561718) running 1 test test build_without_default_plugins_excludes_ssh_dependency ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s Running tests/concurrency.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/concurrency-9e818aeee9f5a865) running 7 tests test a_thousand_admitted_targets_keep_eight_active_backend_calls ... ignored, explicit CPUWeight10000 scale measurement with a controlled unavailable backend test entire_batch_validates_before_start_and_duplicates_are_refused ... ok test an_interrupted_disable_keeps_admission_closed_until_its_adapter_retires ... ok test concurrency_is_eight_across_batches_and_all_ten_hosts_fail_independently ... ok test authenticated_batches_retain_an_opaque_session_for_trusted_issuance ... ok test component_off_retires_a_real_native_helper ... ok test turning_off_drains_queued_work_and_reenable_never_resumes_old_batches ... ok test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/config_isolation.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/config_isolation-4c052ffa2763fa0a) running 1 test test configured_identity_paths_are_not_inherited_by_the_command_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running tests/credentials.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/credentials-56c8bb7fa0901abf) running 3 tests test password_socket_refuses_an_unrelated_same_user_process ... ok test password_helpers_prepare_a_fresh_private_root_and_remove_only_their_directory ... ok test credential_helper_refuses_host_trust_and_permission_prompts ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/diagnostics.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/diagnostics-c6256406c6ab3818) running 5 tests test mesh_policy_requires_both_discovery_facts_and_a_transport_refusal ... ok test remote_command_text_is_not_ssh_authority_and_never_enters_logs ... ok test failed_join_retains_only_the_allowlisted_host_dns_error ... ok test dynamic_public_trust_is_retained_without_becoming_file_only_admission ... ok test effective_configuration_never_scans_a_proxy_or_invalid_endpoint ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/event_metadata.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/event_metadata-fb74d64a91ebc133) running 1 test test unsupported_host_reports_method_and_retry_never_replays_it_as_current ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/foreground.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/foreground-ea42b8ff6ec85942) running 1 test test configured_backgrounding_is_overridden_for_owned_bootstrap_commands ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s Running tests/host_trust.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/host_trust-34ce022bb9284f9a) running 2 tests test configured_known_hosts_command_revocation_cannot_offer_first_contact ... ignored, run through research/ssh-client/measure.py with its synthetic public host key test first_contact_needs_fresh_authority_and_never_replaces_existing_trust ... ignored, run through research/ssh-client/measure.py --negative-trust-oracle with its memory-held synthetic key test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/install.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/install-28c5c8776ffc4161) running 29 tests test command_failure_names_upload_join_install_and_start_separately ... ok test fresh_cleanup_refuses_a_shared_writable_receipt_parent_before_mutation ... ok test cleanup_receipt_cannot_authorize_a_replaced_unowned_directory ... ok test acknowledged_linger_noop_does_not_own_later_external_enable ... ok test foreign_files_and_another_attempt_lock_are_never_removed ... ok test fresh_cleanup_resumes_after_base_removal_and_retires_its_receipt ... ok test denied_linger_request_does_not_undo_a_later_external_enable ... ok test fresh_cleanup_resumes_after_owner_marker_removal_with_a_fresh_session ... ok test active_service_stop_failure_never_replaces_live_artifacts ... ok test failed_upgrade_preserves_previous_binary_state_and_unit ... ok test fresh_runtime_symlink_never_removes_foreign_empty_directories ... ok test fresh_receipt_is_removed_before_transaction_rollback ... ok test interrupted_linger_reply_retains_intent_for_cleanup ... ok test fresh_runtime_empty_directories_do_not_block_rollback_and_retry ... ok test fresh_rollback_resumes_after_transaction_directory_removal ... ok test linked_owner_marker_is_refused_before_retiring_the_transaction ... ok test fresh_runtime_unexpected_data_keeps_ownership_and_cleanup_receipt ... ok test interrupted_upgrade_after_acknowledged_stop_restarts_the_previous_service ... ok test interrupted_restore_recreates_links_without_deleting_the_original ... ok test fresh_failure_removes_owned_artifacts_and_success_can_rejoin ... ok test interrupted_rollback_never_deletes_already_restored_state_on_retry ... ok test retry_cleanup_uses_fresh_session_and_preserves_privilege_consent ... ok test linger_policy_denial_is_a_warning_and_owned_changes_are_reversible ... ok test refused_previous_service_stop_only_removes_staging ... ok test pending_fresh_cleanup_refuses_replacement_staging_until_finished ... ok test writable_installation_is_refused_before_upload_or_cleanup ... ok test malformed_or_exposed_cleanup_receipts_never_remove_the_owned_root ... ok test rejoin_preserves_existing_host_identity_in_the_private_staging_state ... ok test rollback_stop_refusal_retains_artifacts_for_later_cleanup ... ok test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.94s Running tests/model.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/model-47ce6d8f579454b5) running 4 tests test check_is_exact_bounded_and_rejects_every_truncation ... ok test addresses_never_become_options_or_shell_syntax ... ok test consent_and_credential_references_are_the_only_request_authority ... ok test root_consent_is_required_before_ssh_and_uid_zero_cannot_be_rootless ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/probe_check.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/probe_check-aa6f45376a1e61b2) running 1 test test manager_availability_does_not_request_its_private_environment ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s ```
Author
Owner

Gate output for merge 9024716528: verify-fast-final.log, part 2/5 (verbatim).

     Running tests/process.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/process-2293ddd9c4b2b81e)

running 5 tests
test cancellation_retires_the_helper_descendant_too ... ok
test completed_helper_retires_descendants_with_closed_pipes ... ok
test reviewer_ssh_helper_does_not_inherit_server_reload_mask ... ok
test oversized_remote_output_is_bounded_and_active_timeout_is_enforced ... ok
test group_identity_is_retained_until_inherited_pipes_finish ... ok

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

     Running tests/proxy_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/proxy_policy-9102030c0de790a1)

running 1 test
test unchecked_proxy_hops_are_refused_before_credential_helpers_or_network ... ok

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

     Running tests/real_ssh.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/real_ssh-880d0bf59f30aab0)

running 1 test
test actual_ssh_authentication_check_and_strict_host_key_rejection ... ignored, run through research/ssh-client/measure.py with the synthetic rootless sshd fixture

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

     Running tests/single_connection.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/single_connection-591d406e19cd5710)

running 1 test
test one_physical_connection_erases_helpers_and_refuses_reconnect ... ignored, run through the rootless real-sshd fixture, selecting this test only

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

     Running tests/source_completeness.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/source_completeness-708cbbd30d3deeb9)

running 1 test
test declared_public_modules_have_committed_sources ... ok

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

     Running tests/trust_round2.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/trust_round2-64018245a742684c)

running 2 tests
test long_data_directory_does_not_bound_the_ssh_helper_socket ... ignored, scripts/test-ssh-host-trust.py supplies the real multi-key target
test multi_key_target_trusts_once_and_reconnects_without_a_loop ... ignored, scripts/test-ssh-host-trust.py supplies a real multi-key sshd and memory-held credentials

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_protocol-e4eeb92d35d69a68)

running 7 tests
test stream_tests::split_mux_header_preserves_trailing_close ... ok
test stream_tests::all_short_frame_splits_match_direct_decoding ... 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 stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... 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/dev-backmerge/target/debug/deps/infraternal_server-bbd2e3486ad5e912)

running 323 tests
test auth::cookies::measurement::cookie_latency_at_50_sessions ... ignored, local optimized cookie reader measurement at 50 browser sessions
test auth::cookies::tests::duplicates_missing_invalid_and_nontext_fail_closed ... ok
test auth::cookies::tests::joined_split_reordered_and_other_cookies ... ok
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... 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::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::crypto::verifier_tests::fixture_waits_while_production_hashing_refuses_capacity ... 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::ca_administration_tests::actual_ca_unlock_cost_at_1000_administrator_records ... ignored, release real authority diagnostic at1000 memberships/copies; no concurrent own build/browser
test auth::tests::ca_administration_tests::actual_passkey_unlocks_cold_ca_once_and_leaves_no_extra_browser_session ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::ca_administration_tests::administrator_with_stale_tap_must_make_a_new_verified_proof_to_unlock ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::ca_administration_tests::bootstrap_requires_a_fresh_real_proof_and_publishes_only_wrapped_ca_material ... ok
test auth::tests::ca_administration_tests::concurrent_bootstrap_ceremonies_retain_one_issuer_and_replay_is_refused ... ok
test auth::tests::ca_administration_tests::http_tests::ca_body_admission_at_1000_requests ... ignored, 1000-request body admission diagnostic; run alone without builds
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::ca_administration_tests::foreign_browser_cannot_consume_the_original_ca_unlock_ceremony ... ok
test auth::tests::ca_administration_tests::http_tests::ca_finish_body_deadline_returns_its_admission_slot ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_exact_origin_and_live_cookie_are_required ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_parser_is_bounded_and_errors_do_not_reflect_wrapping_material ... ok
test auth::tests::ca_administration_tests::changed_generation_expired_session_or_removed_credential_cannot_unlock ... ok
test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_real_passkey_unlock_returns_only_lock_status_without_a_session_cookie ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_refuses_origin_and_cookie_before_decoding_wrapping_material ... ok
test auth::tests::ca_administration_tests::http_tests::ca_status_distinguishes_initial_setup_from_locked_retained_trust ... ok
test auth::tests::ca_administration_tests::http_tests::first_machine_certificate_setup_starts_a_fresh_passkey_ceremony ... ok
test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok
test auth::tests::ca_administration_tests::http_tests::independent_review_ca_body_reads_share_the_eight_request_admission_limit ... ok
test auth::tests::ca_administration_tests::http_tests::independent_review_ca_headers_are_refused_before_reading_an_unfinished_body ... ok
test auth::tests::ca_administration_tests::new_administrator_device_rewraps_pending_copy_and_role_generation_never_resurrects_it ... ok
test auth::tests::ca_administration_tests::ordinary_login_ceremony_has_no_ca_unlock_purpose ... ok
test auth::tests::ca_administration_tests::shipping_cli_tests::bootstrap_cli::fresh_release_bootstrap_join_renew_revoke_cuts_a_live_connection ... ignored, configured release E2E requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443
test auth::tests::ca_administration_tests::shipping_cli_tests::configured_release_cli_cold_lock_real_passkey_unlock_and_cold_restart ... ignored, configured release CLI proof needs INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443
test auth::tests::ca_administration_tests::pending_administrator_cannot_replace_the_last_retained_wrapped_copy ... ok
test auth::tests::ca_administration_tests::published_issuer_without_memory_projection_is_recovered_as_locked_trust ... ok
test auth::tests::ca_administration_tests::role_changes_require_fresh_purpose_bound_proofs_and_recheck_owner_permission ... ok
test auth::tests::ca_administration_tests::role_grant_is_pending_and_revoke_removes_old_copy_without_restoring_old_authority ... ok
test auth::tests::ca_membership_tests::administrator_guard_cost_at_1000_memberships ... ignored, optimized administrator guard diagnostic at1000 memberships; no own build/browser overlap
test auth::tests::ca_membership_tests::administrator_bootstrap_is_explicit_and_owner_flag_cannot_replace_revoked_role ... ok
test auth::tests::ca_membership_tests::administrator_copy_refuses_deleted_passkey_or_session ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::tests::ca_administration_tests::revoked_membership_or_original_session_cannot_finish_an_existing_ca_ceremony ... ok
test auth::tests::ca_membership_tests::administrator_copy_refuses_pending_expired_stale_or_future_session ... ok
test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok
test auth::tests::ca_administration_tests::wrong_wrapping_key_or_missing_user_verification_leaves_ca_locked ... 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::remote_removal_tests::fresh_removal_revokes_offline_host_and_cannot_replay ... ok
test auth::tests::remote_removal_tests::logout_or_role_loss_after_removal_start_preserves_host ... 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 has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok
test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day has been running for over 60 seconds
test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok
test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... 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_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::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::review_fresh_wait::review_mesh_delete_refused_when_freshness_expires_during_writer_wait ... ok
test auth::tests::socket_tests::review_liveness::review_mesh_watch_reports_liveness_expiry_without_another_edit ... 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_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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket has been running for over 60 seconds
test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close has been running for over 60 seconds
test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery has been running for over 60 seconds
test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session 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::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser has been running for over 60 seconds
test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies 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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket ... ok
test auth::tests::verified_passkey_tests::canceled_proof_before_writer_admission_leaves_no_new_session_or_pending_ceremony ... ok
test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok
test auth::tests::verified_passkey_tests::proof_only_ceremony_expiring_during_writer_wait_cannot_commit_a_counter_or_session ... ok
test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery ... ok
test auth::tests::verified_passkey_tests::proof_only_verification_preserves_monotone_registered_credential_counter ... ok
test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session ... ok
test auth::tests::verified_passkey_tests::verified_passkey_has_live_registered_identity_and_creates_no_session ... ok
test auth::tests::verified_passkey_tests::proof_only_verification_refuses_missing_uv_or_deleted_credential ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok
test auth::tests::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser ... ok
test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies ... ok
test auth::tests::tls_tests::standalone_tls_registration_session_split_cookies ... ok
test bootstrap_api::tests::a_client_request_during_a_pending_confirmation_keeps_the_batch ... ok
test bootstrap_api::tests::admission_stream_is_ordered_and_logout_retires_an_idle_socket ... ok
test bootstrap_api::tests::component_off_interrupts_a_stalled_host_key_confirmation_lookup ... ok
test bootstrap_api::tests::component_off_interrupts_a_stalled_progress_send ... ok
test bootstrap_api::tests::component_off_retires_idle_sockets_and_refuses_new_admission ... ok
test bootstrap_api::tests::control_frames_do_not_cancel_bootstrap_or_starve_progress ... ok
test bootstrap_runtime::remote_backend::canary_tests::readiness_accepts_authoritative_snapshot_output ... ok
test bootstrap_runtime::remote_backend::canary_tests::readiness_input_preserves_the_terminal_actor_and_host_connection ... ok
test bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload ... ok
test bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host ... ok
test bootstrap_runtime::remote_backend::tests::foreign_or_revoked_authority_never_opens_ssh ... ok
test bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate ... ok
test bootstrap_runtime::remote_backend::tests::unpublished_attempt_drop_releases_only_its_ownership ... ok
test bootstrap_runtime::tests::pending_integration_refuses_enrollment_vault_and_discovery ... ok
test ca::tests::signed_identity_has_only_server_constructed_host_authority_and_seven_days ... ok
test ca::tests::signing_boundary_at_1000_public_identities ... ignored, explicit signing-boundary diagnostic; not live renewal or connected-agent RSS
test ca::tests::source_mismatch_locked_and_uncovered_validity_fail_closed ... ok
test ca::wrapping::tests::bounded_decoder_rejects_duplicate_unknown_fields_and_exact_oversize ... ok
test ca::wrapping::tests::ciphertext_nonce_salt_and_issuer_tampering_fail_authenticated_decryption ... ok
test ca::wrapping::tests::creation_rejects_unbound_membership_and_malformed_copies_cannot_open ... ok
test ca::wrapping::tests::encrypted_copy_cost_at_1000_administrators ... ignored, optimized CA copy diagnostic; no own builds/browser overlap
test ca::wrapping::tests::invalid_issuer_key_binding_is_refused_before_a_copy_is_persisted ... ok
test ca::wrapping::tests::wrapped_seed_roundtrip_validates_the_same_issuer_key ... ok
test ca::wrapping::tests::wrong_key_member_epoch_or_issuer_cannot_unwrap_a_copy ... ok
test ca_bootstrap::tests::generated_remote_leaf_is_verifiable_after_cold_restart ... ok
test ca_copies::tests::copy_store_cost_at_1000_administrators ... ignored, release-only private CA-copy disk diagnostic; no own build/browser overlap
test ca_copies::tests::encrypted_copy_is_private_durable_and_bound_to_member_generation ... ok
test ca_copies::tests::removal_is_member_generation_scoped_and_idempotent ... ok
test ca_copies::tests::unsafe_copy_directory_or_file_is_refused_without_following_symlinks ... ok
test ca_handoff::shipping_tests::shipping_child ... ok
test ca_handoff::shipping_tests::shipping_restart_reload_rollback_and_cold_start ... ignored, explicit shipping-binary integration/benchmark; set INFRATERNAL_TEST_BINARY
test ca_handoff::tests::exec_child ... ok
test ca_handoff::tests::failed_null_open_or_duplication_closes_private_stdin ... ok
test bootstrap_api::tests::host_key_confirmation_rechecks_the_exact_live_owner_capability ... ok
test ca_handoff::tests::real_exec_failures_and_killed_receiver_never_unlock_a_cold_successor ... ok
test ca_handoff::tests::real_exec_retains_unlock_but_another_process_cannot_import_the_channel ... ok
test ca_handoff::tests::serialized_seed_frame_is_locked_and_excluded_from_core_dumps ... ok
test ca_handoff::tests::socketpair_preserves_unlock_and_cold_start_still_locks ... ok
test ca_handoff::tests::truncated_wrong_generation_and_wrong_version_leave_successor_locked ... ok
test ca_handoff_binary::tests::marker_is_an_exact_versioned_note_not_a_byte_substring ... ok
test ca_memory::tests::accepted_unlock_notifies_and_memory_handoff_preserves_signing_without_a_timer ... ok
test ca_memory::tests::cold_start_retains_public_trust_and_denied_unlock_leaves_signing_locked ... ok
test csr::tests::incomplete_suffix_oversized_forged_and_wrong_algorithm_requests_are_refused ... ok
test csr::tests::nonminimal_outer_lengths_and_real_oversized_requests_are_refused ... ok
test csr::tests::signed_cached_noncanonical_or_incomplete_shapes_are_refused ... ok
test csr::tests::signed_constructed_primitive_attribute_is_refused ... ok
test csr::tests::signed_noncanonical_ignored_values_are_refused ... ok
test csr::tests::verified_host_key_is_admitted_without_trusting_requested_identity ... ok
test embedded::regressions::child_spawn_disposes_inherited_stdin ... 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 ca_handoff::tests::parser_property_corpus_is_bounded_and_never_accepts_trailing_bytes ... 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::server_reload_mask_is_not_inherited_by_embedded_children ... 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 bootstrap_api::tests::logout_interrupts_a_stalled_host_key_confirmation_lookup ... ok
test enrollment::authority::tests::admission_uses_enrolled_uid_and_exact_public_identity_validity ... ok
test enrollment::authority::tests::renewal_preserves_overlap_and_refuses_changed_key_or_expired_predecessor ... ok
test enrollment::authority::tests::revocation_is_owner_bound_and_denies_admission_and_renewal_after_commit ... ok
test enrollment::migration_tests::remote_identity_and_sessions_upgrade_dev_v11_and_remain_idempotent ... ok
test mesh_api_tests::claude_review::claude_review_late_committing_observation_does_not_rewind_last_seen ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test bootstrap_api::tests::origin_owner_unlock_and_whole_request_consent_are_required ... ok
test mesh_api_tests::identity::identity_migration_preserves_inventory_and_retired_audit_ids ... 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 embedded::regressions::unresponsive_child_is_killed_and_reaped_within_the_shutdown_bound ... 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::mesh_api_scale_benchmark ... ignored, scale measurement; run on infraternal-dev under the weighted user scope
test mesh_api_tests::membership::review_scoped_membership_cannot_claim_hidden_node ... ok
test mesh_api_tests::inventory_lifecycle_preserves_policy_identity_and_audits_every_edit ... ok
test mesh_api_tests::parser_rejects_unknown_fields_user_endpoints_and_invalid_bounds ... ok
test mesh_api_tests::membership::scoped_membership_checks_pre_edit_host_scope ... ok
test bootstrap_api::tests::revocation_interrupts_a_stalled_progress_send ... ok
test mesh_api_tests::pagination::continuation_restarts_on_change_and_rechecks_permissions ... ok
test mesh_api_tests::pagination::an_unsendable_object_returns_a_sanitized_service_error ... ok
test mesh_api_tests::review_filtered::review_global_viewers_do_not_refresh_unrelated_filtered_inventory ... ok
test mesh_api_tests::shared_mesh_vectors_cover_each_production_action_and_wire_shape ... ok
test mesh_api_tests::review_null_policy::review_null_port_policy_does_not_create_unrestricted_grant ... ok
test mesh_api_tests::watch_deadline::watch_deadline_scale_benchmark ... ignored, weighted local scale measurement; run optimized without concurrent compilation
test remote_accept::tests::anonymous_capacity_and_single_source_cannot_consume_known_reserve ... ok
test mesh_api_tests::review_null_scope::review_null_role_scopes_preserve_denied_inventory_access ... ok
test remote_admission::tests::source_admission_cost_at_1000_sources ... ignored, optimized source admission diagnostic; no own build overlap
test remote_admission::tests::ports_do_not_change_source_capacity_and_mapped_addresses_share_it ... ok
test remote_enrollment::tests::invalid_csr_does_not_burn_token_and_join_returns_only_committed_authority ... ok
test remote_enrollment::tests::cold_locked_signer_preserves_admission_and_token_until_authenticated_unlock ... ok
test remote_http::tests::enrollment_api_at_1000_hosts ... ignored, explicit real HTTP-adapter/SQLite signing measurement at 1000 hosts; not transport or whole-daemon evidence
test remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked ... ok
test remote_enrollment::tests::invalid_invitations_never_load_the_private_signer ... ok
test remote_http::tests::invitation_publication_rechecks_session_after_host_creation ... ok
test bootstrap_api::tests::settings_public_key_requires_exact_origin_and_live_unlocked_owner ... ok
test remote_http::tests::revocation::abandoned_revocation_write_cannot_leave_committed_authority_live ... ok
test mesh_api_tests::scoped_grant_role_filters_inventory_and_cannot_cross_tags ... ok
test remote_http::tests::revocation::claude_review_anonymous_stalled_joins_cannot_block_owner_revocation ... ok
test remote_removal_http::tests::removal_parsers_refuse_positional_duplicate_and_unbounded_inputs ... ok
test remote_http::tests::revocation::permission_revoked_while_waiting_for_sqlite_writer_refuses_tombstone ... ok
test remote_runtime::tests::ephemeral_listener_pair_retries_real_udp_collision_without_leaking_tcp ... ok
test remote_runtime::tests::explicit_listener_pair_never_moves_an_occupied_operator_port ... ok
test remote_runtime::tests::independent_review::admitted_frame_write_fence_cost ... ignored, write-fence CPU diagnostic; run release alone, not whole-transport evidence
test remote_http::tests::revocation::cold_signer_does_not_block_owner_revocation_or_cancellation ... ok
test remote_http::tests::revocation::revocation_rechecks_locked_expired_logged_out_and_wrong_owner_sessions ... ok
test remote_runtime::tests::independent_review::review_expired_identity_must_refuse_new_attachment_on_existing_transport ... ok
test remote_runtime::tests::quic_actor_binds_durable_writer_and_recovery_offsets ... ok
test remote_runtime::tests::renewal_checks::renewal_refuses_same_issuer_wrong_key_purpose_or_lifetime_before_publication ... ok
test remote_runtime::tests::renewal_checks::renewal_validates_host_dates_json_and_durable_publication_before_ack ... ok
test remote_runtime::tests::claude_review_idle_anonymous_sockets_cannot_starve_host_handshakes ... ok
test remote_runtime::tests::revocation::expired_identity_must_refuse_new_attachment_on_existing_transport ... ok
test remote_runtime::tests::revocation::guard_bookkeeping_at_1000_hosts ... ignored, guard component diagnostic; run alone without builds or browser measurements
test remote_runtime::tests::independent_review::committed_tombstone_cannot_forward_input_before_finalizer_returns ... ok
test remote_runtime::tests::revocation::retirement::registry_retention_at_1000_actual_tls_hosts ... ignored, 1000-host registry diagnostic; optimized, FD limit8192, no own build/browser overlap
test remote_runtime::tests::independent_review::review_revocation_must_cancel_input_on_existing_tls_transport ... ok
test remote_runtime::tests::revocation::retirement::revoked_host_releases_its_registry_entry_and_retained_actor ... ok
test remote_runtime::tests::revocation::revocation_closes_admitted_idle_quic_connection ... ok
test remote_runtime::tests::tcp_actor_uses_enrolled_uid_and_replays_admission_hello ... ok
test remote_startup::tests::normal_cold_start_uses_public_trust_without_loading_or_generating_ca_key ... ok
test remote_startup::tests::symlink_shared_oversized_or_special_trust_files_fail_closed ... ok
test remote_startup::tests::wrong_issuer_key_name_or_unpinned_https_refuses_startup ... ok
test remote_runtime::tests::revocation::revocation_must_cancel_input_on_existing_tls_transport ... ok
test runtime::remote_demo_tests::cold_start::normal_cli_cold_start_keeps_enrolled_remote_terminal_while_signing_locked ... ignored, normal CLI cold-start proof requires static INFRATERNAL_REMOTE_TEST_BINARY and exclusive 4701/7443
test runtime::remote_demo_tests::real_host::o1_rootless_join_terminal_and_cleanup ... ignored, authorised o1 proof requires pinned INFRATERNAL_O1_KNOWN_HOSTS and aarch64 INFRATERNAL_REMOTE_TEST_BINARY; exclusive 4701/7443
test runtime::remote_demo_tests::real_host::o1_runtime_path_admits_real_unix_socket_address ... ok
test runtime::remote_demo_tests::remote_cli_enrollment_and_browser_terminal_two_processes ... ignored, two-process proof requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive port 4701
test remote_runtime::tests::revocation::admitted_guard_expires_and_prior_revocation_cannot_reregister ... ok
test bootstrap_api::tests::split_cookie_fields_preserve_bootstrap_owner_authority ... ok
test runtime::remote_demo_tests::renewal::half_life_requests_proof_on_live_authenticated_control ... ok
test runtime::remote_demo_tests::renewal_cli::cli_live_renewal_cost_and_durable_identity_on_unchanged_transport ... ignored, real CLI renewal measurement requires release binary and exclusive port4701; no own compilation/browser overlap
test runtime::remote_demo_tests::renewal_cli::flood::remote_cli_renewal_under_50m_load_preserves_every_byte_and_writer ... ignored, real CLI 50MiB renewal proof: exclusive4701 and release binary; no own build/browser overlap
test mesh_api_tests::review_frame_budget::review_mesh_design_point_frames_fit_shared_socket_budget ... ok
test runtime::remote_demo_tests::renewal_ack::unlock_renews_live_identity_only_after_publication_ack_with_terminal_intact ... ok
test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok
test runtime::remote_demo_tests::shipping_route::independent_review_configured_server_mounts_ca_unlock_routes ... 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::production_router_exposes_bootstrap_owner_admission ... ok
test runtime::remote_demo_tests::renewal_ack::failed_publication_retains_original_admission_without_interrupting_terminal ... 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::router_migrates_private_storage_and_serves_health ... ok
test server_tls::tests::standalone_https_disables_nagle_before_application_bytes ... ok
test runtime::remote_demo_tests::shipping_route::review_default_server_must_register_remote_join ... ok
test ssh_key::tests::concurrent_initialization_retains_one_identity_and_unwrap_cannot_replace_it ... ok
test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok
test ssh_key::tests::lock_during_administrator_unwrap_cannot_reinstall_private_material ... ok
test ssh_key::tests::first_start_is_wrapped_once_and_every_cold_start_is_locked ... ok
test ssh_key::tests::lock_generation_exhaustion_never_wraps_into_an_unlocked_source ... ok
test ssh_key::tests::malformed_existing_storage_is_refused_without_generating_a_replacement ... ok
test ssh_key::tests::unavailable_or_empty_custody_publishes_no_key ... ok
test ssh_key::tests::update_handoff_preserves_unlocked_identity_but_cold_restart_does_not ... ok
test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok
test websocket::cookie_tests::duplicate_cookie_fields_deny_socket_session ... ok
test websocket::cookie_tests::split_cookie_fields_preserve_socket_session ... ok
test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification
test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test bootstrap_runtime::key_authority_tests::key_export_rechecks_role_session_and_cold_lock ... ok
test ssh_key::tests::material_refuses_invalid_pem_and_non_ed25519_algorithms ... ok
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok
test remote_runtime::tests::revocation::retirement::old_expiry_cannot_remove_a_fresh_tls_replacement ... ok
test mesh_api_tests::watch_deadline::watch_deadline_matches_complete_filtered_snapshots ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::key_runtime_tests::configured_startup_generates_once_and_settings_shares_its_cold_lock ... ok

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

     Running tests/catalog_startup.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/catalog_startup-ca18602642947622)

running 1 test
test explicit_catalog_startup_remains_public_and_validates_before_storage ... ok

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

     Running tests/enrollment.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/enrollment-0d238b8f4f8c6672)

running 6 tests
test enrollment_storage_at_500_hosts ... ignored, explicit 500-host storage measurement; not a remote transport budget
test malformed_capabilities_and_certificate_overflow_are_refused_before_mutation ... ok
Gate output for merge 90247165280a1d1231151aa703ec713838706794: verify-fast-final.log, part 2/5 (verbatim). ```text Running tests/process.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/process-2293ddd9c4b2b81e) running 5 tests test cancellation_retires_the_helper_descendant_too ... ok test completed_helper_retires_descendants_with_closed_pipes ... ok test reviewer_ssh_helper_does_not_inherit_server_reload_mask ... ok test oversized_remote_output_is_bounded_and_active_timeout_is_enforced ... ok test group_identity_is_retained_until_inherited_pipes_finish ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s Running tests/proxy_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/proxy_policy-9102030c0de790a1) running 1 test test unchecked_proxy_hops_are_refused_before_credential_helpers_or_network ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s Running tests/real_ssh.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/real_ssh-880d0bf59f30aab0) running 1 test test actual_ssh_authentication_check_and_strict_host_key_rejection ... ignored, run through research/ssh-client/measure.py with the synthetic rootless sshd fixture test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/single_connection.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/single_connection-591d406e19cd5710) running 1 test test one_physical_connection_erases_helpers_and_refuses_reconnect ... ignored, run through the rootless real-sshd fixture, selecting this test only test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/source_completeness.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/source_completeness-708cbbd30d3deeb9) running 1 test test declared_public_modules_have_committed_sources ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/trust_round2.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/trust_round2-64018245a742684c) running 2 tests test long_data_directory_does_not_bound_the_ssh_helper_socket ... ignored, scripts/test-ssh-host-trust.py supplies the real multi-key target test multi_key_target_trusts_once_and_reconnects_without_a_loop ... ignored, scripts/test-ssh-host-trust.py supplies a real multi-key sshd and memory-held credentials test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_protocol-e4eeb92d35d69a68) running 7 tests test stream_tests::split_mux_header_preserves_trailing_close ... ok test stream_tests::all_short_frame_splits_match_direct_decoding ... 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 stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... 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/dev-backmerge/target/debug/deps/infraternal_server-bbd2e3486ad5e912) running 323 tests test auth::cookies::measurement::cookie_latency_at_50_sessions ... ignored, local optimized cookie reader measurement at 50 browser sessions test auth::cookies::tests::duplicates_missing_invalid_and_nontext_fail_closed ... ok test auth::cookies::tests::joined_split_reordered_and_other_cookies ... ok test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... 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::http::hostname_tests::authenticated_session_response_includes_system_hostname ... ok test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::crypto::verifier_tests::fixture_waits_while_production_hashing_refuses_capacity ... 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::ca_administration_tests::actual_ca_unlock_cost_at_1000_administrator_records ... ignored, release real authority diagnostic at1000 memberships/copies; no concurrent own build/browser test auth::tests::ca_administration_tests::actual_passkey_unlocks_cold_ca_once_and_leaves_no_extra_browser_session ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::ca_administration_tests::administrator_with_stale_tap_must_make_a_new_verified_proof_to_unlock ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::ca_administration_tests::bootstrap_requires_a_fresh_real_proof_and_publishes_only_wrapped_ca_material ... ok test auth::tests::ca_administration_tests::concurrent_bootstrap_ceremonies_retain_one_issuer_and_replay_is_refused ... ok test auth::tests::ca_administration_tests::http_tests::ca_body_admission_at_1000_requests ... ignored, 1000-request body admission diagnostic; run alone without builds test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::ca_administration_tests::foreign_browser_cannot_consume_the_original_ca_unlock_ceremony ... ok test auth::tests::ca_administration_tests::http_tests::ca_finish_body_deadline_returns_its_admission_slot ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_exact_origin_and_live_cookie_are_required ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_parser_is_bounded_and_errors_do_not_reflect_wrapping_material ... ok test auth::tests::ca_administration_tests::changed_generation_expired_session_or_removed_credential_cannot_unlock ... ok test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_real_passkey_unlock_returns_only_lock_status_without_a_session_cookie ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_refuses_origin_and_cookie_before_decoding_wrapping_material ... ok test auth::tests::ca_administration_tests::http_tests::ca_status_distinguishes_initial_setup_from_locked_retained_trust ... ok test auth::tests::ca_administration_tests::http_tests::first_machine_certificate_setup_starts_a_fresh_passkey_ceremony ... ok test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok test auth::tests::ca_administration_tests::http_tests::independent_review_ca_body_reads_share_the_eight_request_admission_limit ... ok test auth::tests::ca_administration_tests::http_tests::independent_review_ca_headers_are_refused_before_reading_an_unfinished_body ... ok test auth::tests::ca_administration_tests::new_administrator_device_rewraps_pending_copy_and_role_generation_never_resurrects_it ... ok test auth::tests::ca_administration_tests::ordinary_login_ceremony_has_no_ca_unlock_purpose ... ok test auth::tests::ca_administration_tests::shipping_cli_tests::bootstrap_cli::fresh_release_bootstrap_join_renew_revoke_cuts_a_live_connection ... ignored, configured release E2E requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443 test auth::tests::ca_administration_tests::shipping_cli_tests::configured_release_cli_cold_lock_real_passkey_unlock_and_cold_restart ... ignored, configured release CLI proof needs INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443 test auth::tests::ca_administration_tests::pending_administrator_cannot_replace_the_last_retained_wrapped_copy ... ok test auth::tests::ca_administration_tests::published_issuer_without_memory_projection_is_recovered_as_locked_trust ... ok test auth::tests::ca_administration_tests::role_changes_require_fresh_purpose_bound_proofs_and_recheck_owner_permission ... ok test auth::tests::ca_administration_tests::role_grant_is_pending_and_revoke_removes_old_copy_without_restoring_old_authority ... ok test auth::tests::ca_membership_tests::administrator_guard_cost_at_1000_memberships ... ignored, optimized administrator guard diagnostic at1000 memberships; no own build/browser overlap test auth::tests::ca_membership_tests::administrator_bootstrap_is_explicit_and_owner_flag_cannot_replace_revoked_role ... ok test auth::tests::ca_membership_tests::administrator_copy_refuses_deleted_passkey_or_session ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::tests::ca_administration_tests::revoked_membership_or_original_session_cannot_finish_an_existing_ca_ceremony ... ok test auth::tests::ca_membership_tests::administrator_copy_refuses_pending_expired_stale_or_future_session ... ok test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay ... ok test auth::tests::ca_administration_tests::wrong_wrapping_key_or_missing_user_verification_leaves_ca_locked ... 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::remote_removal_tests::fresh_removal_revokes_offline_host_and_cannot_replay ... ok test auth::tests::remote_removal_tests::logout_or_role_loss_after_removal_start_preserves_host ... 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 has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day has been running for over 60 seconds test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait ... ok test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day ... 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_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::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::review_fresh_wait::review_mesh_delete_refused_when_freshness_expires_during_writer_wait ... ok test auth::tests::socket_tests::review_liveness::review_mesh_watch_reports_liveness_expiry_without_another_edit ... 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_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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket has been running for over 60 seconds test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close has been running for over 60 seconds test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery has been running for over 60 seconds test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session 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::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser has been running for over 60 seconds test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies 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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket ... ok test auth::tests::verified_passkey_tests::canceled_proof_before_writer_admission_leaves_no_new_session_or_pending_ceremony ... ok test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok test auth::tests::verified_passkey_tests::proof_only_ceremony_expiring_during_writer_wait_cannot_commit_a_counter_or_session ... ok test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery ... ok test auth::tests::verified_passkey_tests::proof_only_verification_preserves_monotone_registered_credential_counter ... ok test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session ... ok test auth::tests::verified_passkey_tests::verified_passkey_has_live_registered_identity_and_creates_no_session ... ok test auth::tests::verified_passkey_tests::proof_only_verification_refuses_missing_uv_or_deleted_credential ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test auth::tests::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser ... ok test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies ... ok test auth::tests::tls_tests::standalone_tls_registration_session_split_cookies ... ok test bootstrap_api::tests::a_client_request_during_a_pending_confirmation_keeps_the_batch ... ok test bootstrap_api::tests::admission_stream_is_ordered_and_logout_retires_an_idle_socket ... ok test bootstrap_api::tests::component_off_interrupts_a_stalled_host_key_confirmation_lookup ... ok test bootstrap_api::tests::component_off_interrupts_a_stalled_progress_send ... ok test bootstrap_api::tests::component_off_retires_idle_sockets_and_refuses_new_admission ... ok test bootstrap_api::tests::control_frames_do_not_cancel_bootstrap_or_starve_progress ... ok test bootstrap_runtime::remote_backend::canary_tests::readiness_accepts_authoritative_snapshot_output ... ok test bootstrap_runtime::remote_backend::canary_tests::readiness_input_preserves_the_terminal_actor_and_host_connection ... ok test bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload ... ok test bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host ... ok test bootstrap_runtime::remote_backend::tests::foreign_or_revoked_authority_never_opens_ssh ... ok test bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate ... ok test bootstrap_runtime::remote_backend::tests::unpublished_attempt_drop_releases_only_its_ownership ... ok test bootstrap_runtime::tests::pending_integration_refuses_enrollment_vault_and_discovery ... ok test ca::tests::signed_identity_has_only_server_constructed_host_authority_and_seven_days ... ok test ca::tests::signing_boundary_at_1000_public_identities ... ignored, explicit signing-boundary diagnostic; not live renewal or connected-agent RSS test ca::tests::source_mismatch_locked_and_uncovered_validity_fail_closed ... ok test ca::wrapping::tests::bounded_decoder_rejects_duplicate_unknown_fields_and_exact_oversize ... ok test ca::wrapping::tests::ciphertext_nonce_salt_and_issuer_tampering_fail_authenticated_decryption ... ok test ca::wrapping::tests::creation_rejects_unbound_membership_and_malformed_copies_cannot_open ... ok test ca::wrapping::tests::encrypted_copy_cost_at_1000_administrators ... ignored, optimized CA copy diagnostic; no own builds/browser overlap test ca::wrapping::tests::invalid_issuer_key_binding_is_refused_before_a_copy_is_persisted ... ok test ca::wrapping::tests::wrapped_seed_roundtrip_validates_the_same_issuer_key ... ok test ca::wrapping::tests::wrong_key_member_epoch_or_issuer_cannot_unwrap_a_copy ... ok test ca_bootstrap::tests::generated_remote_leaf_is_verifiable_after_cold_restart ... ok test ca_copies::tests::copy_store_cost_at_1000_administrators ... ignored, release-only private CA-copy disk diagnostic; no own build/browser overlap test ca_copies::tests::encrypted_copy_is_private_durable_and_bound_to_member_generation ... ok test ca_copies::tests::removal_is_member_generation_scoped_and_idempotent ... ok test ca_copies::tests::unsafe_copy_directory_or_file_is_refused_without_following_symlinks ... ok test ca_handoff::shipping_tests::shipping_child ... ok test ca_handoff::shipping_tests::shipping_restart_reload_rollback_and_cold_start ... ignored, explicit shipping-binary integration/benchmark; set INFRATERNAL_TEST_BINARY test ca_handoff::tests::exec_child ... ok test ca_handoff::tests::failed_null_open_or_duplication_closes_private_stdin ... ok test bootstrap_api::tests::host_key_confirmation_rechecks_the_exact_live_owner_capability ... ok test ca_handoff::tests::real_exec_failures_and_killed_receiver_never_unlock_a_cold_successor ... ok test ca_handoff::tests::real_exec_retains_unlock_but_another_process_cannot_import_the_channel ... ok test ca_handoff::tests::serialized_seed_frame_is_locked_and_excluded_from_core_dumps ... ok test ca_handoff::tests::socketpair_preserves_unlock_and_cold_start_still_locks ... ok test ca_handoff::tests::truncated_wrong_generation_and_wrong_version_leave_successor_locked ... ok test ca_handoff_binary::tests::marker_is_an_exact_versioned_note_not_a_byte_substring ... ok test ca_memory::tests::accepted_unlock_notifies_and_memory_handoff_preserves_signing_without_a_timer ... ok test ca_memory::tests::cold_start_retains_public_trust_and_denied_unlock_leaves_signing_locked ... ok test csr::tests::incomplete_suffix_oversized_forged_and_wrong_algorithm_requests_are_refused ... ok test csr::tests::nonminimal_outer_lengths_and_real_oversized_requests_are_refused ... ok test csr::tests::signed_cached_noncanonical_or_incomplete_shapes_are_refused ... ok test csr::tests::signed_constructed_primitive_attribute_is_refused ... ok test csr::tests::signed_noncanonical_ignored_values_are_refused ... ok test csr::tests::verified_host_key_is_admitted_without_trusting_requested_identity ... ok test embedded::regressions::child_spawn_disposes_inherited_stdin ... 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 ca_handoff::tests::parser_property_corpus_is_bounded_and_never_accepts_trailing_bytes ... 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::server_reload_mask_is_not_inherited_by_embedded_children ... 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 bootstrap_api::tests::logout_interrupts_a_stalled_host_key_confirmation_lookup ... ok test enrollment::authority::tests::admission_uses_enrolled_uid_and_exact_public_identity_validity ... ok test enrollment::authority::tests::renewal_preserves_overlap_and_refuses_changed_key_or_expired_predecessor ... ok test enrollment::authority::tests::revocation_is_owner_bound_and_denies_admission_and_renewal_after_commit ... ok test enrollment::migration_tests::remote_identity_and_sessions_upgrade_dev_v11_and_remain_idempotent ... ok test mesh_api_tests::claude_review::claude_review_late_committing_observation_does_not_rewind_last_seen ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test bootstrap_api::tests::origin_owner_unlock_and_whole_request_consent_are_required ... ok test mesh_api_tests::identity::identity_migration_preserves_inventory_and_retired_audit_ids ... 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 embedded::regressions::unresponsive_child_is_killed_and_reaped_within_the_shutdown_bound ... 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::mesh_api_scale_benchmark ... ignored, scale measurement; run on infraternal-dev under the weighted user scope test mesh_api_tests::membership::review_scoped_membership_cannot_claim_hidden_node ... ok test mesh_api_tests::inventory_lifecycle_preserves_policy_identity_and_audits_every_edit ... ok test mesh_api_tests::parser_rejects_unknown_fields_user_endpoints_and_invalid_bounds ... ok test mesh_api_tests::membership::scoped_membership_checks_pre_edit_host_scope ... ok test bootstrap_api::tests::revocation_interrupts_a_stalled_progress_send ... ok test mesh_api_tests::pagination::continuation_restarts_on_change_and_rechecks_permissions ... ok test mesh_api_tests::pagination::an_unsendable_object_returns_a_sanitized_service_error ... ok test mesh_api_tests::review_filtered::review_global_viewers_do_not_refresh_unrelated_filtered_inventory ... ok test mesh_api_tests::shared_mesh_vectors_cover_each_production_action_and_wire_shape ... ok test mesh_api_tests::review_null_policy::review_null_port_policy_does_not_create_unrestricted_grant ... ok test mesh_api_tests::watch_deadline::watch_deadline_scale_benchmark ... ignored, weighted local scale measurement; run optimized without concurrent compilation test remote_accept::tests::anonymous_capacity_and_single_source_cannot_consume_known_reserve ... ok test mesh_api_tests::review_null_scope::review_null_role_scopes_preserve_denied_inventory_access ... ok test remote_admission::tests::source_admission_cost_at_1000_sources ... ignored, optimized source admission diagnostic; no own build overlap test remote_admission::tests::ports_do_not_change_source_capacity_and_mapped_addresses_share_it ... ok test remote_enrollment::tests::invalid_csr_does_not_burn_token_and_join_returns_only_committed_authority ... ok test remote_enrollment::tests::cold_locked_signer_preserves_admission_and_token_until_authenticated_unlock ... ok test remote_http::tests::enrollment_api_at_1000_hosts ... ignored, explicit real HTTP-adapter/SQLite signing measurement at 1000 hosts; not transport or whole-daemon evidence test remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked ... ok test remote_enrollment::tests::invalid_invitations_never_load_the_private_signer ... ok test remote_http::tests::invitation_publication_rechecks_session_after_host_creation ... ok test bootstrap_api::tests::settings_public_key_requires_exact_origin_and_live_unlocked_owner ... ok test remote_http::tests::revocation::abandoned_revocation_write_cannot_leave_committed_authority_live ... ok test mesh_api_tests::scoped_grant_role_filters_inventory_and_cannot_cross_tags ... ok test remote_http::tests::revocation::claude_review_anonymous_stalled_joins_cannot_block_owner_revocation ... ok test remote_removal_http::tests::removal_parsers_refuse_positional_duplicate_and_unbounded_inputs ... ok test remote_http::tests::revocation::permission_revoked_while_waiting_for_sqlite_writer_refuses_tombstone ... ok test remote_runtime::tests::ephemeral_listener_pair_retries_real_udp_collision_without_leaking_tcp ... ok test remote_runtime::tests::explicit_listener_pair_never_moves_an_occupied_operator_port ... ok test remote_runtime::tests::independent_review::admitted_frame_write_fence_cost ... ignored, write-fence CPU diagnostic; run release alone, not whole-transport evidence test remote_http::tests::revocation::cold_signer_does_not_block_owner_revocation_or_cancellation ... ok test remote_http::tests::revocation::revocation_rechecks_locked_expired_logged_out_and_wrong_owner_sessions ... ok test remote_runtime::tests::independent_review::review_expired_identity_must_refuse_new_attachment_on_existing_transport ... ok test remote_runtime::tests::quic_actor_binds_durable_writer_and_recovery_offsets ... ok test remote_runtime::tests::renewal_checks::renewal_refuses_same_issuer_wrong_key_purpose_or_lifetime_before_publication ... ok test remote_runtime::tests::renewal_checks::renewal_validates_host_dates_json_and_durable_publication_before_ack ... ok test remote_runtime::tests::claude_review_idle_anonymous_sockets_cannot_starve_host_handshakes ... ok test remote_runtime::tests::revocation::expired_identity_must_refuse_new_attachment_on_existing_transport ... ok test remote_runtime::tests::revocation::guard_bookkeeping_at_1000_hosts ... ignored, guard component diagnostic; run alone without builds or browser measurements test remote_runtime::tests::independent_review::committed_tombstone_cannot_forward_input_before_finalizer_returns ... ok test remote_runtime::tests::revocation::retirement::registry_retention_at_1000_actual_tls_hosts ... ignored, 1000-host registry diagnostic; optimized, FD limit8192, no own build/browser overlap test remote_runtime::tests::independent_review::review_revocation_must_cancel_input_on_existing_tls_transport ... ok test remote_runtime::tests::revocation::retirement::revoked_host_releases_its_registry_entry_and_retained_actor ... ok test remote_runtime::tests::revocation::revocation_closes_admitted_idle_quic_connection ... ok test remote_runtime::tests::tcp_actor_uses_enrolled_uid_and_replays_admission_hello ... ok test remote_startup::tests::normal_cold_start_uses_public_trust_without_loading_or_generating_ca_key ... ok test remote_startup::tests::symlink_shared_oversized_or_special_trust_files_fail_closed ... ok test remote_startup::tests::wrong_issuer_key_name_or_unpinned_https_refuses_startup ... ok test remote_runtime::tests::revocation::revocation_must_cancel_input_on_existing_tls_transport ... ok test runtime::remote_demo_tests::cold_start::normal_cli_cold_start_keeps_enrolled_remote_terminal_while_signing_locked ... ignored, normal CLI cold-start proof requires static INFRATERNAL_REMOTE_TEST_BINARY and exclusive 4701/7443 test runtime::remote_demo_tests::real_host::o1_rootless_join_terminal_and_cleanup ... ignored, authorised o1 proof requires pinned INFRATERNAL_O1_KNOWN_HOSTS and aarch64 INFRATERNAL_REMOTE_TEST_BINARY; exclusive 4701/7443 test runtime::remote_demo_tests::real_host::o1_runtime_path_admits_real_unix_socket_address ... ok test runtime::remote_demo_tests::remote_cli_enrollment_and_browser_terminal_two_processes ... ignored, two-process proof requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive port 4701 test remote_runtime::tests::revocation::admitted_guard_expires_and_prior_revocation_cannot_reregister ... ok test bootstrap_api::tests::split_cookie_fields_preserve_bootstrap_owner_authority ... ok test runtime::remote_demo_tests::renewal::half_life_requests_proof_on_live_authenticated_control ... ok test runtime::remote_demo_tests::renewal_cli::cli_live_renewal_cost_and_durable_identity_on_unchanged_transport ... ignored, real CLI renewal measurement requires release binary and exclusive port4701; no own compilation/browser overlap test runtime::remote_demo_tests::renewal_cli::flood::remote_cli_renewal_under_50m_load_preserves_every_byte_and_writer ... ignored, real CLI 50MiB renewal proof: exclusive4701 and release binary; no own build/browser overlap test mesh_api_tests::review_frame_budget::review_mesh_design_point_frames_fit_shared_socket_budget ... ok test runtime::remote_demo_tests::renewal_ack::unlock_renews_live_identity_only_after_publication_ack_with_terminal_intact ... ok test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok test runtime::remote_demo_tests::shipping_route::independent_review_configured_server_mounts_ca_unlock_routes ... 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::production_router_exposes_bootstrap_owner_admission ... ok test runtime::remote_demo_tests::renewal_ack::failed_publication_retains_original_admission_without_interrupting_terminal ... 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::router_migrates_private_storage_and_serves_health ... ok test server_tls::tests::standalone_https_disables_nagle_before_application_bytes ... ok test runtime::remote_demo_tests::shipping_route::review_default_server_must_register_remote_join ... ok test ssh_key::tests::concurrent_initialization_retains_one_identity_and_unwrap_cannot_replace_it ... ok test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok test ssh_key::tests::lock_during_administrator_unwrap_cannot_reinstall_private_material ... ok test ssh_key::tests::first_start_is_wrapped_once_and_every_cold_start_is_locked ... ok test ssh_key::tests::lock_generation_exhaustion_never_wraps_into_an_unlocked_source ... ok test ssh_key::tests::malformed_existing_storage_is_refused_without_generating_a_replacement ... ok test ssh_key::tests::unavailable_or_empty_custody_publishes_no_key ... ok test ssh_key::tests::update_handoff_preserves_unlocked_identity_but_cold_restart_does_not ... ok test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok test websocket::cookie_tests::duplicate_cookie_fields_deny_socket_session ... ok test websocket::cookie_tests::split_cookie_fields_preserve_socket_session ... ok test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test bootstrap_runtime::key_authority_tests::key_export_rechecks_role_session_and_cold_lock ... ok test ssh_key::tests::material_refuses_invalid_pem_and_non_ed25519_algorithms ... ok test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test remote_runtime::tests::revocation::retirement::old_expiry_cannot_remove_a_fresh_tls_replacement ... ok test mesh_api_tests::watch_deadline::watch_deadline_matches_complete_filtered_snapshots ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::key_runtime_tests::configured_startup_generates_once_and_settings_shares_its_cold_lock ... ok test result: ok. 291 passed; 0 failed; 32 ignored; 0 measured; 0 filtered out; finished in 396.70s Running tests/catalog_startup.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/catalog_startup-ca18602642947622) running 1 test test explicit_catalog_startup_remains_public_and_validates_before_storage ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running tests/enrollment.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/enrollment-0d238b8f4f8c6672) running 6 tests test enrollment_storage_at_500_hosts ... ignored, explicit 500-host storage measurement; not a remote transport budget test malformed_capabilities_and_certificate_overflow_are_refused_before_mutation ... ok ```
Author
Owner

Gate output for merge 9024716528: verify-fast-final.log, part 3/5 (verbatim).

test invalid_certificate_and_failed_insert_preserve_the_invitation ... ok
test concurrent_redemption_has_one_winner_and_one_certificate ... ok
test invitation_is_hashed_replaced_and_bound_to_owner_host_mode_and_exact_expiry ... ok
test revocation_tombstone_refuses_existing_and_new_invitations_after_restart ... ok

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

     Running tests/mesh_parser.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_parser-9bd0aada272982b9)

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

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

     Running tests/mesh_review_plugin.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_plugin-f577393de2906b4f)

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.07s

     Running tests/mesh_review_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_policy-8d46a6cf33b8df6b)

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.03s

     Running tests/mesh_review_role_scope.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_role_scope-ee6a310d1daaf0dc)

running 2 tests
test review_explicit_null_role_scopes_do_not_become_global_authority ... ok
test role_scopes_require_an_array_when_provided ... 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_host_review-cfada89dae174d23)

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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_settings_review-c630cb8796806d20)

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.59s

     Running tests/remote_plugin_contract.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_plugin_contract-c95e7f043b0a58a5)

running 1 test
test independent_review_core_build_without_features_omits_remote_transport ... ok

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_shim-8d88872fb599c816)

running 78 tests
test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test frame::checks::golden::every_frozen_message ... ok
test pty::child_signal_tests::child_signal_reset_spawn_cost_at_128_children ... ignored, child spawn diagnostic; run locally in a weighted scope without own build overlap
test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok
test ended::tests::bounded_record_preserves_status_and_rejects_malformed_or_linked_data ... ok
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok
test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement
test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... 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 locked_bytes::tests::anonymous_transfer_pages_are_locked_and_excluded_from_core_dumps ... 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::golden::exact_maximum_and_coalesced_frames ... ok
test session::measurements::budgets::allowlisted_signal_after_real_pty_exit_keeps_exit_ack_available ... ok
test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok

running 1 test
test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok

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

test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok
test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::saved_origin_survives_changed_margins ... ok
test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok
test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file
test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok
test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok
test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases
test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok
test terminal::fidelity::fidelity_cursor ... ok
test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok
test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok
test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok
test terminal::fidelity::fidelity_iso_protection_erase ... ok
test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_edge ... 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_rejects_unrepresentable_rep_without_mutating_source ... ok
test terminal::fidelity::fidelity_oracle_detects_hidden_state ... 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_saved_cursor_over_changed_edge ... ok
test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok
test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... 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_screen_entry_consumes_inherited_shift_before_saving ... ok
test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... 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::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... 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_native::allocation::resize_allocation_refusal_retires_native_handle ... ok
test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok
test terminal::fidelity::fidelity_variation_wrap_attributes ... ok
test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok
test terminal::fidelity::fidelity_recorded_corpus ... 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. 65 passed; 0 failed; 13 ignored; 0 measured; 0 filtered out; finished in 99.13s

     Running tests/detach.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/detach-af6bf43868555110)

running 2 tests
test detached_child_restores_default_signals_without_changing_parent ... ok
test closed_standard_descriptors_become_dev_null ... ok

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

     Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mouse-3ee544922f442de4)

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 1.04s

   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.29s

   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_backup

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_relay

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_remote

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/dev-backmerge/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
     │   │               └── infraternal-fuzz 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-fuzz v0.1.0
     │   └── infraternal-server v0.1.0
     │       ├── infraternal v0.1.0
     │       └── infraternal-fuzz v0.1.0 (*)
     ├── infraternal v0.1.0 (*)
     ├── infraternal-server v0.1.0 (*)
     └── sqlx-core v0.8.6
         ├── sqlx v0.8.6
         │   ├── infraternal-plugin-api v0.1.0
         │   │   ├── infraternal v0.1.0 (*)
         │   │   ├── infraternal-agent v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   ├── infraternal-mesh v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   └── infraternal-plugin-mesh v0.1.0
         │   │   │       ├── infraternal v0.1.0 (*)
         │   │   │       ├── infraternal-fuzz v0.1.0 (*)
         │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   ├── infraternal-plugin-backup v0.1.0
         │   │   │   └── infraternal v0.1.0 (*)
         │   │   ├── infraternal-plugin-host-facts v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   └── infraternal-fuzz v0.1.0 (*)
         │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
         │   │   ├── infraternal-plugin-relay v0.1.0
         │   │   │   └── infraternal v0.1.0 (*)
         │   │   ├── infraternal-plugin-remote v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   ├── infraternal-plugin-ssh v0.1.0
         │   │   │   ├── infraternal 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 'cpufeatures'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:50:1
   │  
50 │ ╭ cpufeatures 0.2.17 registry+https://github.com/rust-lang/crates.io-index
51 │ │ cpufeatures 0.3.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ cpufeatures v0.2.17
     ├── aes v0.8.4
     │   └── aes-gcm v0.10.3
     │       └── (dev) infraternal-server v0.1.0
     │           ├── infraternal v0.1.0
     │           └── infraternal-fuzz v0.1.0
     ├── argon2 v0.5.3
     │   └── infraternal-server v0.1.0 (*)
     ├── polyval v0.6.2
     │   └── ghash v0.5.1
     │       └── aes-gcm v0.10.3 (*)
     ├── sha1 v0.10.7
     │   ├── axum v0.8.9
     │   │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   └── 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-plugin-ssh v0.1.0
         │   ├── infraternal v0.1.0 (*)
         │   ├── infraternal-fuzz v0.1.0 (*)
         │   └── infraternal-server v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── sqlx-core v0.8.6
         │   ├── sqlx v0.8.6
         │   │   ├── infraternal-plugin-api v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-agent v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   ├── infraternal-mesh v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   └── infraternal-plugin-mesh v0.1.0
         │   │   │   │       ├── infraternal v0.1.0 (*)
         │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-backup v0.1.0
         │   │   │   │   └── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-host-facts v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-relay v0.1.0
         │   │   │   │   └── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-remote v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-ssh 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 (*)
   ├ cpufeatures v0.3.1
     └── chacha20 v0.10.2
         └── rand v0.10.3
             └── quinn-proto v0.11.19
                 └── quinn v0.11.12
                     ├── infraternal-agent v0.1.0
                     │   ├── infraternal v0.1.0
                     │   ├── infraternal-fuzz v0.1.0
                     │   └── infraternal-server v0.1.0
                     │       ├── infraternal v0.1.0 (*)
                     │       └── infraternal-fuzz v0.1.0 (*)
                     ├── infraternal-plugin-remote v0.1.0
                     │   ├── infraternal v0.1.0 (*)
                     │   ├── infraternal-agent v0.1.0 (*)
                     │   └── infraternal-server v0.1.0 (*)
                     └── infraternal-server v0.1.0 (*)

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:92:1
   │  
92 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
93 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
94 │ │ 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
     │   │       └── infraternal-fuzz 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-fuzz v0.1.0 (*)
     │   │   │   │   │   └── 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-plugin-ssh v0.1.0
     │   │   │       │   ├── infraternal v0.1.0 (*)
     │   │   │       │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   └── infraternal-server v0.1.0 (*)
     │   │   │       ├── infraternal-server v0.1.0 (*)
     │   │   │       ├── sqlx-core v0.8.6
     │   │   │       │   ├── sqlx v0.8.6
     │   │   │       │   │   ├── infraternal-plugin-api v0.1.0
     │   │   │       │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-agent v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-mesh v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-plugin-mesh v0.1.0
     │   │   │       │   │   │   │       ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   │       └── infraternal-server v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-backup v0.1.0
     │   │   │       │   │   │   │   └── infraternal v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-host-facts v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-relay v0.1.0
     │   │   │       │   │   │   │   └── infraternal v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-remote v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-ssh 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 (*)
     └── ring v0.17.14
         ├── quinn-proto v0.11.19
         │   └── quinn v0.11.12
         │       ├── infraternal-agent v0.1.0 (*)
         │       ├── infraternal-plugin-remote v0.1.0 (*)
         │       └── infraternal-server v0.1.0 (*)
         ├── rustls v0.23.45
         │   ├── infraternal-plugin-remote v0.1.0 (*)
         │   ├── quinn v0.11.12 (*)
         │   └── quinn-proto v0.11.19 (*)
         └── rustls-webpki v0.103.15
             └── rustls v0.23.45 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── infraternal-server v0.1.0
         │   │   ├── infraternal v0.1.0
         │   │   └── infraternal-fuzz v0.1.0
         │   ├── tungstenite v0.29.0
         │   │   └── tokio-tungstenite v0.29.0
         │   │       ├── axum v0.8.9
         │   │       │   ├── infraternal-fuzz v0.1.0 (*)
         │   │       │   └── 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-plugin-api v0.1.0
     │       │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
     │       │       │   │   ├── infraternal-fuzz v0.1.0 (*)
     │       │       │   │   ├── infraternal-mesh v0.1.0
     │       │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   │   └── infraternal-plugin-mesh v0.1.0
     │       │       │   │   │       ├── infraternal v0.1.0 (*)
     │       │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
     │       │       │   │   │       └── infraternal-server v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-backup v0.1.0
     │       │       │   │   │   └── infraternal v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-host-facts v0.1.0
     │       │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-relay v0.1.0
     │       │       │   │   │   └── infraternal v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-remote v0.1.0
     │       │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   │   │   └── infraternal-server v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-ssh v0.1.0
     │       │       │   │   │   ├── infraternal 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
     │       │               └── 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 v0.1.0 (*)
     │       │       │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
     │       │       │   ├── infraternal-server v0.1.0 (*)
     │       │       │   ├── tokio-openssl v0.6.5
     │       │       │   │   ├── axum-server v0.8.0 (*)
     │       │       │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
     │       │       │   │   └── (dev) infraternal-server v0.1.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 (*)
     │       └── (build) ring v0.17.14
     │           ├── quinn-proto v0.11.19
     │           │   └── quinn v0.11.12
     │           │       ├── infraternal-agent v0.1.0 (*)
     │           │       ├── infraternal-plugin-remote v0.1.0 (*)
     │           │       └── infraternal-server v0.1.0 (*)
     │           ├── rustls v0.23.45
     │           │   ├── infraternal-plugin-remote v0.1.0 (*)
     │           │   ├── quinn v0.11.12 (*)
     │           │   └── quinn-proto v0.11.19 (*)
     │           └── rustls-webpki v0.103.15
     │               └── rustls v0.23.45 (*)
     ├── quinn-proto v0.11.19 (*)
     ├── rand v0.10.3
     │   └── quinn-proto v0.11.19 (*)
     └── uuid v1.27.0
         ├── infraternal v0.1.0 (*)
         ├── infraternal-agent v0.1.0 (*)
         ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:98:1
   │  
98 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
99 │ │ 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-plugin-api v0.1.0
     │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
     │       │   │   ├── infraternal-fuzz v0.1.0 (*)
     │       │   │   ├── infraternal-mesh v0.1.0
     │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │   │   │   └── infraternal-plugin-mesh v0.1.0
     │       │   │   │       ├── infraternal v0.1.0 (*)
     │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
     │       │   │   │       └── infraternal-server v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-backup v0.1.0
     │       │   │   │   └── infraternal v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-host-facts v0.1.0
     │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-relay v0.1.0
     │       │   │   │   └── infraternal v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-remote v0.1.0
     │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │   │   │   └── infraternal-server v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-ssh v0.1.0
     │       │   │   │   ├── infraternal 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-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-fuzz v0.1.0
         │   │   │   └── infraternal-server v0.1.0
         │   │   │       ├── infraternal v0.1.0
         │   │   │       └── infraternal-fuzz 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 (*)
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   └── (dev) infraternal-server v0.1.0 (*)
         │   │   ├── infraternal v0.1.0 (*)
         │   │   └── (dev) infraternal-server v0.1.0 (*)
         │   └── (dev) infraternal-server v0.1.0 (*)
         └── sqlx-core v0.8.6
             ├── sqlx v0.8.6
             │   ├── infraternal-plugin-api v0.1.0
             │   │   ├── infraternal v0.1.0 (*)
             │   │   ├── infraternal-agent v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   ├── infraternal-fuzz v0.1.0 (*)
             │   │   │   └── infraternal-server v0.1.0 (*)
             │   │   ├── infraternal-fuzz v0.1.0 (*)
             │   │   ├── infraternal-mesh v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   └── infraternal-plugin-mesh v0.1.0
             │   │   │       ├── infraternal v0.1.0 (*)
             │   │   │       ├── infraternal-fuzz v0.1.0 (*)
             │   │   │       └── infraternal-server v0.1.0 (*)
             │   │   ├── infraternal-plugin-backup v0.1.0
             │   │   │   └── infraternal v0.1.0 (*)
             │   │   ├── infraternal-plugin-host-facts v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   ├── infraternal-agent v0.1.0 (*)
             │   │   │   └── infraternal-fuzz v0.1.0 (*)
             │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
             │   │   ├── infraternal-plugin-relay v0.1.0
             │   │   │   └── infraternal v0.1.0 (*)
             │   │   ├── infraternal-plugin-remote v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   ├── infraternal-agent v0.1.0 (*)
             │   │   │   └── infraternal-server v0.1.0 (*)
             │   │   ├── infraternal-plugin-ssh v0.1.0
             │   │   │   ├── infraternal 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/dev-backmerge/Cargo.lock:196:1
    │  
196 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index
197 │ │ 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
              │   │   └── infraternal-fuzz v0.1.0
              │   ├── tungstenite v0.29.0
              │   │   └── tokio-tungstenite v0.29.0
              │   │       ├── axum v0.8.9
              │   │       │   ├── infraternal-fuzz v0.1.0 (*)
              │   │       │   └── 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-plugin-api v0.1.0
          │       │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
Gate output for merge 90247165280a1d1231151aa703ec713838706794: verify-fast-final.log, part 3/5 (verbatim). ```text test invalid_certificate_and_failed_insert_preserve_the_invitation ... ok test concurrent_redemption_has_one_winner_and_one_certificate ... ok test invitation_is_hashed_replaced_and_bound_to_owner_host_mode_and_exact_expiry ... ok test revocation_tombstone_refuses_existing_and_new_invitations_after_restart ... ok test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.48s Running tests/mesh_parser.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_parser-9bd0aada272982b9) running 2 tests test nested_endpoint_and_policy_fields_are_strict_without_rejecting_valid_ports ... ok test review_grant_parser_rejects_unknown_nested_port_fields ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/mesh_review_plugin.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_plugin-f577393de2906b4f) 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.07s Running tests/mesh_review_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_policy-8d46a6cf33b8df6b) 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.03s Running tests/mesh_review_role_scope.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_role_scope-ee6a310d1daaf0dc) running 2 tests test review_explicit_null_role_scopes_do_not_become_global_authority ... ok test role_scopes_require_an_array_when_provided ... 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_host_review-cfada89dae174d23) 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_settings_review-c630cb8796806d20) 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.59s Running tests/remote_plugin_contract.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_plugin_contract-c95e7f043b0a58a5) running 1 test test independent_review_core_build_without_features_omits_remote_transport ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_shim-8d88872fb599c816) running 78 tests test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test frame::checks::tests::golden_and_fragmented ... ok test frame::checks::golden::every_frozen_message ... ok test pty::child_signal_tests::child_signal_reset_spawn_cost_at_128_children ... ignored, child spawn diagnostic; run locally in a weighted scope without own build overlap test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test session::inputs::tests::partial_writes_credit_only_the_owner_and_replay_trims_per_writer ... ok test ended::tests::bounded_record_preserves_status_and_rejects_malformed_or_linked_data ... ok test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test session::inputs::tests::identity_cap_preserves_all_existing_cursors ... ok test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... 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 locked_bytes::tests::anonymous_transfer_pages_are_locked_and_excluded_from_core_dumps ... 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::golden::exact_maximum_and_coalesced_frames ... ok test session::measurements::budgets::allowlisted_signal_after_real_pty_exit_keeps_exit_ack_available ... ok test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok running 1 test test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 77 filtered out; finished in 0.01s test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test terminal::checks::tests::long_unfinished_hyperlink_and_control_strings_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::saved_origin_survives_changed_margins ... ok test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok test terminal::checks::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok test terminal::fidelity::fidelity_cursor ... ok test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_state ... ok test terminal::fidelity::fidelity_iso_protection_erase ... ok test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_edge ... 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_rejects_unrepresentable_rep_without_mutating_source ... ok test terminal::fidelity::fidelity_oracle_detects_hidden_state ... 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_saved_cursor_over_changed_edge ... ok test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... 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_screen_entry_consumes_inherited_shift_before_saving ... ok test terminal::fidelity::fidelity_single_shift_survives_rep_seed ... 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::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... 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_native::allocation::resize_allocation_refusal_retires_native_handle ... ok test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok test terminal::fidelity::fidelity_variation_wrap_attributes ... ok test terminal::fidelity::fidelity_mouse_effective_fields_follow_order_independently_of_booleans ... ok test terminal::fidelity::fidelity_recorded_corpus ... 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. 65 passed; 0 failed; 13 ignored; 0 measured; 0 filtered out; finished in 99.13s Running tests/detach.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/detach-af6bf43868555110) running 2 tests test detached_child_restores_default_signals_without_changing_parent ... ok test closed_standard_descriptors_become_dev_null ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.28s Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mouse-3ee544922f442de4) 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 1.04s 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.29s 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_backup 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_relay 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_remote 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/dev-backmerge/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 │ │ └── infraternal-fuzz 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-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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 'cpufeatures' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:50:1 │ 50 │ ╭ cpufeatures 0.2.17 registry+https://github.com/rust-lang/crates.io-index 51 │ │ cpufeatures 0.3.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ cpufeatures v0.2.17 ├── aes v0.8.4 │ └── aes-gcm v0.10.3 │ └── (dev) infraternal-server v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── argon2 v0.5.3 │ └── infraternal-server v0.1.0 (*) ├── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── sha1 v0.10.7 │ ├── axum v0.8.9 │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── 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-plugin-ssh v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-fuzz v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh 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 (*) ├ cpufeatures v0.3.1 └── chacha20 v0.10.2 └── rand v0.10.3 └── quinn-proto v0.11.19 └── quinn v0.11.12 ├── infraternal-agent v0.1.0 │ ├── infraternal v0.1.0 │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-plugin-remote v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) └── infraternal-server v0.1.0 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:92:1 │ 92 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 93 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 94 │ │ 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 │ │ └── infraternal-fuzz 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-fuzz v0.1.0 (*) │ │ │ │ │ └── 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-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-ssh 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 (*) └── ring v0.17.14 ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── rustls v0.23.45 │ ├── infraternal-plugin-remote v0.1.0 (*) │ ├── quinn v0.11.12 (*) │ └── quinn-proto v0.11.19 (*) └── rustls-webpki v0.103.15 └── rustls v0.23.45 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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-plugin-api v0.1.0 │ │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ │ ├── infraternal 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 │ │ └── 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 v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.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 (*) │ └── (build) ring v0.17.14 │ ├── quinn-proto v0.11.19 │ │ └── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── rustls v0.23.45 │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── quinn v0.11.12 (*) │ │ └── quinn-proto v0.11.19 (*) │ └── rustls-webpki v0.103.15 │ └── rustls v0.23.45 (*) ├── quinn-proto v0.11.19 (*) ├── rand v0.10.3 │ └── quinn-proto v0.11.19 (*) └── uuid v1.27.0 ├── infraternal v0.1.0 (*) ├── infraternal-agent v0.1.0 (*) ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:98:1 │ 98 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 99 │ │ 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-plugin-api v0.1.0 │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal 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-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-fuzz v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-fuzz 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 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── infraternal v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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/dev-backmerge/Cargo.lock:196:1 │ 196 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 197 │ │ 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 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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-plugin-api v0.1.0 │ │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) ```
Author
Owner

Gate output for merge 9024716528: verify-fast-final.log, part 4/5 (verbatim).

          │       │       │   │   ├── infraternal-fuzz v0.1.0 (*)
          │       │       │   │   ├── infraternal-mesh v0.1.0
          │       │       │   │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   │   └── infraternal-plugin-mesh v0.1.0
          │       │       │   │   │       ├── infraternal v0.1.0 (*)
          │       │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
          │       │       │   │   │       └── infraternal-server v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-backup v0.1.0
          │       │       │   │   │   └── infraternal v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-host-facts v0.1.0
          │       │       │   │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-relay v0.1.0
          │       │       │   │   │   └── infraternal v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-remote v0.1.0
          │       │       │   │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   │   │   └── infraternal-server v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-ssh v0.1.0
          │       │       │   │   │   ├── infraternal 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
          │       │               └── 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 v0.1.0 (*)
          │       │       │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
          │       │       │   ├── infraternal-server v0.1.0 (*)
          │       │       │   ├── tokio-openssl v0.6.5
          │       │       │   │   ├── axum-server v0.8.0 (*)
          │       │       │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
          │       │       │   │   └── (dev) infraternal-server v0.1.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 (*)
          │       └── (build) ring v0.17.14
          │           ├── quinn-proto v0.11.19
          │           │   └── quinn v0.11.12
          │           │       ├── infraternal-agent v0.1.0 (*)
          │           │       ├── infraternal-plugin-remote v0.1.0 (*)
          │           │       └── infraternal-server v0.1.0 (*)
          │           ├── rustls v0.23.45
          │           │   ├── infraternal-plugin-remote v0.1.0 (*)
          │           │   ├── quinn v0.11.12 (*)
          │           │   └── quinn-proto v0.11.19 (*)
          │           └── rustls-webpki v0.103.15
          │               └── rustls v0.23.45 (*)
          ├── quinn-proto v0.11.19 (*)
          ├── rand v0.10.3
          │   └── quinn-proto v0.11.19 (*)
          └── uuid v1.27.0
              ├── infraternal v0.1.0 (*)
              ├── infraternal-agent v0.1.0 (*)
              ├── infraternal-plugin-ssh 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 3 duplicate entries for crate 'rand'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:198:1
    │  
198 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index
199 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index
200 │ │ rand 0.10.3 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
              └── infraternal-fuzz v0.1.0
    ├ rand v0.9.5
      ├── infraternal-server v0.1.0
      │   ├── infraternal v0.1.0
      │   └── infraternal-fuzz v0.1.0
      ├── tungstenite v0.29.0
      │   └── tokio-tungstenite v0.29.0
      │       ├── axum v0.8.9
      │       │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   └── 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 v0.10.3
      └── quinn-proto v0.11.19
          └── quinn v0.11.12
              ├── infraternal-agent v0.1.0
              │   ├── infraternal v0.1.0
              │   ├── infraternal-fuzz v0.1.0
              │   └── infraternal-server v0.1.0
              │       ├── infraternal v0.1.0 (*)
              │       └── infraternal-fuzz v0.1.0 (*)
              ├── infraternal-plugin-remote v0.1.0
              │   ├── infraternal v0.1.0 (*)
              │   ├── infraternal-agent v0.1.0 (*)
              │   └── infraternal-server v0.1.0 (*)
              └── infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:201:1
    │  
201 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index
202 │ │ 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
                  └── infraternal-fuzz v0.1.0
    ├ rand_chacha v0.9.0
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   ├── infraternal v0.1.0
      │   │   └── infraternal-fuzz v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   └── 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 3 duplicate entries for crate 'rand_core'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:203:1
    │  
203 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index
204 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index
205 │ │ rand_core 0.10.1 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
      │       └── infraternal-fuzz 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-fuzz v0.1.0 (*)
      │   │   │   │   └── 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-plugin-ssh v0.1.0
      │   │       │   ├── infraternal v0.1.0 (*)
      │   │       │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       ├── infraternal-server v0.1.0 (*)
      │   │       ├── sqlx-core v0.8.6
      │   │       │   ├── sqlx v0.8.6
      │   │       │   │   ├── infraternal-plugin-api v0.1.0
      │   │       │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-agent v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-mesh v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-plugin-mesh v0.1.0
      │   │       │   │   │   │       ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   │       └── infraternal-server v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-backup v0.1.0
      │   │       │   │   │   │   └── infraternal v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-host-facts v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-relay v0.1.0
      │   │       │   │   │   │   └── infraternal v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-remote v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-ssh 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
      │   │   └── infraternal-fuzz v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   └── 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 (*)
    ├ rand_core v0.10.1
      ├── chacha20 v0.10.2
      │   └── rand v0.10.3
      │       └── quinn-proto v0.11.19
      │           └── quinn v0.11.12
      │               ├── infraternal-agent v0.1.0
      │               │   ├── infraternal v0.1.0
      │               │   ├── infraternal-fuzz v0.1.0
      │               │   └── infraternal-server v0.1.0
      │               │       ├── infraternal v0.1.0 (*)
      │               │       └── infraternal-fuzz v0.1.0 (*)
      │               ├── infraternal-plugin-remote v0.1.0
      │               │   ├── infraternal v0.1.0 (*)
      │               │   ├── infraternal-agent v0.1.0 (*)
      │               │   └── infraternal-server v0.1.0 (*)
      │               └── infraternal-server v0.1.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-plugin-api v0.1.0
      │   │       │       │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-mesh v0.1.0
      │   │       │       │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   │   └── infraternal-plugin-mesh v0.1.0
      │   │       │       │   │   │       ├── infraternal v0.1.0 (*)
      │   │       │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
      │   │       │       │   │   │       └── infraternal-server v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-backup v0.1.0
      │   │       │       │   │   │   └── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-host-facts v0.1.0
      │   │       │       │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-relay v0.1.0
      │   │       │       │   │   │   └── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-ssh v0.1.0
      │   │       │       │   │   │   ├── infraternal 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
      │   │       │               └── 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 v0.1.0 (*)
      │   │       │       │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │       │       │   ├── infraternal-server v0.1.0 (*)
      │   │       │       │   ├── tokio-openssl v0.6.5
      │   │       │       │   │   ├── axum-server v0.8.0 (*)
      │   │       │       │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │       │       │   │   └── (dev) infraternal-server v0.1.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 (*)
      │   │       └── (build) ring v0.17.14
      │   │           ├── quinn-proto v0.11.19 (*)
      │   │           ├── rustls v0.23.45
      │   │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │           │   ├── quinn v0.11.12 (*)
      │   │           │   └── quinn-proto v0.11.19 (*)
      │   │           └── rustls-webpki v0.103.15
      │   │               └── rustls v0.23.45 (*)
      │   ├── quinn-proto v0.11.19 (*)
      │   ├── rand v0.10.3 (*)
      │   └── uuid v1.27.0
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── infraternal-plugin-ssh 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 (*)
      ├── rand v0.10.3 (*)
      └── rand_pcg v0.10.2
          └── quinn-proto v0.11.19 (*)

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:247:1
    │  
247 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
248 │ │ 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
      │       │   │           └── infraternal-fuzz 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 v0.1.0 (*)
      │           ├── infraternal-agent v0.1.0
      │           │   ├── infraternal v0.1.0 (*)
      │           │   ├── infraternal-fuzz v0.1.0 (*)
      │           │   └── infraternal-server 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 v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── infraternal-plugin-remote v0.1.0
      │       │   ├── infraternal v0.1.0 (*)
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   ├── axum-server v0.8.0 (*)
      │       │   ├── infraternal v0.1.0 (*)
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   └── (dev) infraternal-server v0.1.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-plugin-api v0.1.0
      │       │   ├── infraternal v0.1.0 (*)
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   ├── infraternal-mesh v0.1.0
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── infraternal-plugin-mesh v0.1.0
      │       │   │       ├── infraternal v0.1.0 (*)
      │       │   │       ├── infraternal-fuzz v0.1.0 (*)
      │       │   │       └── infraternal-server v0.1.0 (*)
      │       │   ├── infraternal-plugin-backup v0.1.0
      │       │   │   └── infraternal v0.1.0 (*)
      │       │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │       │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │       │   ├── infraternal-plugin-relay v0.1.0
      │       │   │   └── infraternal v0.1.0 (*)
      │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   ├── infraternal-plugin-ssh v0.1.0
      │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
      │       │   └── 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 v0.1.0 (*)
      │       │   │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── quinn v0.11.12
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── quinn-proto v0.11.19
      │       │   └── quinn v0.11.12 (*)
      │       ├── quinn-udp v0.5.16
      │       │   └── quinn v0.11.12 (*)
      │       ├── 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-plugin-remote 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-fuzz v0.1.0 (*)
      │       │       ├── infraternal-fuzz v0.1.0 (*)
      │       │       ├── (dev) infraternal-plugin-host-facts v0.1.0
      │       │       │   ├── infraternal v0.1.0 (*)
      │       │       │   ├── infraternal-agent v0.1.0 (*)
      │       │       │   └── infraternal-fuzz v0.1.0 (*)
      │       │       ├── infraternal-plugin-mesh v0.1.0
      │       │       │   ├── infraternal v0.1.0 (*)
      │       │       │   ├── infraternal-fuzz v0.1.0 (*)
      │       │       │   └── infraternal-server v0.1.0 (*)
      │       │       ├── infraternal-plugin-remote v0.1.0
      │       │       │   ├── infraternal v0.1.0 (*)
      │       │       │   ├── infraternal-agent v0.1.0 (*)
      │       │       │   └── infraternal-server 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 v0.1.0 (*)
      │   │   │               ├── infraternal-plugin-ssh v0.1.0
      │   │   │               │   ├── infraternal v0.1.0 (*)
      │   │   │               │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   │               │   └── infraternal-server v0.1.0 (*)
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal-plugin-api v0.1.0
      │   │   │               │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-mesh v0.1.0
      │   │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   │   │   └── infraternal-plugin-mesh v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-backup v0.1.0
      │   │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-relay v0.1.0
      │   │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-ssh 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-fuzz v0.1.0 (*)
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── futures-executor v0.3.34
      │       │   └── sqlx-sqlite v0.8.6 (*)
      │       ├── infraternal-plugin-mesh v0.1.0 (*)
      │       ├── (dev) infraternal-plugin-ssh v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── js-sys v0.3.106
      │       │   ├── getrandom v0.2.17
      │       │   │   ├── rand_core v0.6.4
      │       │   │   │   ├── bip39 v2.2.2
      │       │   │   │   │   └── infraternal-server 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 (*)
      │       │   │   │   │   │   │   └── tungstenite v0.29.0
      │       │   │   │   │   │   │       └── tokio-tungstenite v0.29.0
      │       │   │   │   │   │   │           ├── axum v0.8.9 (*)
      │       │   │   │   │   │   │           └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   │   │   │   └── sha2 v0.10.9
      │       │   │   │   │   │       ├── infraternal-plugin-ssh v0.1.0 (*)
      │       │   │   │   │   │       ├── infraternal-server v0.1.0 (*)
      │       │   │   │   │   │       ├── sqlx-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 (*)
      │       │   │   └── ring v0.17.14
      │       │   │       ├── quinn-proto v0.11.19
      │       │   │       │   └── quinn v0.11.12
      │       │   │       │       ├── infraternal-agent v0.1.0 (*)
      │       │   │       │       ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │       │       └── infraternal-server v0.1.0 (*)
      │       │   │       ├── rustls v0.23.45
      │       │   │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │       │   ├── quinn v0.11.12 (*)
      │       │   │       │   └── quinn-proto v0.11.19 (*)
      │       │   │       └── rustls-webpki v0.103.15
      │       │   │           └── rustls v0.23.45 (*)
      │       │   ├── 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 (*)
      │       │   │   │       ├── 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 v0.1.0 (*)
      │       │   │   │       │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   │   │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │   │       │       │   ├── infraternal-server v0.1.0 (*)
      │       │   │   │       │       │   ├── tokio-openssl v0.6.5
      │       │   │   │       │       │   │   ├── axum-server v0.8.0 (*)
      │       │   │   │       │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   │       │       │   │   ├── infraternal-agent v0.1.0 (*)
      │       │   │   │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │   │       │       │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   │       │       │   ├── webauthn-attestation-ca v0.5.5
      │       │   │   │       │       │   │   └── webauthn-rs-core v0.5.5 (*)
      │       │   │   │       │       │   └── 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 (*)
      │       │   │   │       └── (build) ring v0.17.14 (*)
      │       │   │   ├── quinn-proto v0.11.19 (*)
      │       │   │   ├── rand v0.10.3
      │       │   │   │   └── quinn-proto v0.11.19 (*)
      │       │   │   └── uuid v1.27.0
      │       │   │       ├── infraternal v0.1.0 (*)
      │       │   │       ├── infraternal-agent v0.1.0 (*)
      │       │   │       ├── infraternal-plugin-ssh 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 (*)
      │       │   ├── web-sys v0.3.106
      │       │   │   └── plotters v0.3.7
      │       │   │       └── criterion v0.7.0 (*)
      │       │   └── web-time v1.1.0
      │       │       ├── quinn v0.11.12 (*)
      │       │       ├── quinn-proto v0.11.19 (*)
      │       │       └── rustls-pki-types v1.15.1
      │       │           ├── quinn-proto v0.11.19 (*)
      │       │           ├── rustls v0.23.45 (*)
      │       │           └── rustls-webpki v0.103.15 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.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 v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── axum-server v0.8.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 v0.1.0 (*)
      │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   ├── infraternal-mesh v0.1.0 (*)
      │   │   ├── infraternal-plugin-api v0.1.0 (*)
      │   │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │   ├── infraternal-plugin-ssh v0.1.0 (*)
      │   │   ├── infraternal-server v0.1.0 (*)
Gate output for merge 90247165280a1d1231151aa703ec713838706794: verify-fast-final.log, part 4/5 (verbatim). ```text │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ │ ├── infraternal 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 │ │ └── 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 v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.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 (*) │ └── (build) ring v0.17.14 │ ├── quinn-proto v0.11.19 │ │ └── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── rustls v0.23.45 │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── quinn v0.11.12 (*) │ │ └── quinn-proto v0.11.19 (*) │ └── rustls-webpki v0.103.15 │ └── rustls v0.23.45 (*) ├── quinn-proto v0.11.19 (*) ├── rand v0.10.3 │ └── quinn-proto v0.11.19 (*) └── uuid v1.27.0 ├── infraternal v0.1.0 (*) ├── infraternal-agent v0.1.0 (*) ├── infraternal-plugin-ssh 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 3 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:198:1 │ 198 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 199 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index 200 │ │ rand 0.10.3 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 └── infraternal-fuzz v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── 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 v0.10.3 └── quinn-proto v0.11.19 └── quinn v0.11.12 ├── infraternal-agent v0.1.0 │ ├── infraternal v0.1.0 │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-plugin-remote v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:201:1 │ 201 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 202 │ │ 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 └── infraternal-fuzz v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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 3 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:203:1 │ 203 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 204 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index 205 │ │ rand_core 0.10.1 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 │ └── infraternal-fuzz 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-fuzz v0.1.0 (*) │ │ │ │ └── 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-plugin-ssh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-ssh 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 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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 (*) ├ rand_core v0.10.1 ├── chacha20 v0.10.2 │ └── rand v0.10.3 │ └── quinn-proto v0.11.19 │ └── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-fuzz v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.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-plugin-api v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ │ │ ├── infraternal 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 │ │ │ └── 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 v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ └── (dev) infraternal-server v0.1.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 (*) │ │ └── (build) ring v0.17.14 │ │ ├── quinn-proto v0.11.19 (*) │ │ ├── rustls v0.23.45 │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── quinn v0.11.12 (*) │ │ │ └── quinn-proto v0.11.19 (*) │ │ └── rustls-webpki v0.103.15 │ │ └── rustls v0.23.45 (*) │ ├── quinn-proto v0.11.19 (*) │ ├── rand v0.10.3 (*) │ └── uuid v1.27.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-ssh 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 (*) ├── rand v0.10.3 (*) └── rand_pcg v0.10.2 └── quinn-proto v0.11.19 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:247:1 │ 247 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 248 │ │ 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 │ │ │ └── infraternal-fuzz 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 v0.1.0 (*) │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server 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 v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ ├── axum-server v0.8.0 (*) │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.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-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) │ │ └── 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 v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── quinn-proto v0.11.19 │ │ └── quinn v0.11.12 (*) │ ├── quinn-udp v0.5.16 │ │ └── quinn v0.11.12 (*) │ ├── 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-plugin-remote 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-fuzz v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── (dev) infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server 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 v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-ssh 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-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ ├── (dev) infraternal-plugin-ssh v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ ├── getrandom v0.2.17 │ │ │ ├── rand_core v0.6.4 │ │ │ │ ├── bip39 v2.2.2 │ │ │ │ │ └── infraternal-server 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 (*) │ │ │ │ │ │ │ └── tungstenite v0.29.0 │ │ │ │ │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ │ │ │ │ ├── axum v0.8.9 (*) │ │ │ │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ │ │ │ └── sha2 v0.10.9 │ │ │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── sqlx-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 (*) │ │ │ └── ring v0.17.14 │ │ │ ├── quinn-proto v0.11.19 │ │ │ │ └── quinn v0.11.12 │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── rustls v0.23.45 │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ ├── quinn v0.11.12 (*) │ │ │ │ └── quinn-proto v0.11.19 (*) │ │ │ └── rustls-webpki v0.103.15 │ │ │ └── rustls v0.23.45 (*) │ │ ├── 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 (*) │ │ │ │ ├── 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 v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ │ │ │ └── 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 (*) │ │ │ │ └── (build) ring v0.17.14 (*) │ │ │ ├── quinn-proto v0.11.19 (*) │ │ │ ├── rand v0.10.3 │ │ │ │ └── quinn-proto v0.11.19 (*) │ │ │ └── uuid v1.27.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh 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 (*) │ │ ├── web-sys v0.3.106 │ │ │ └── plotters v0.3.7 │ │ │ └── criterion v0.7.0 (*) │ │ └── web-time v1.1.0 │ │ ├── quinn v0.11.12 (*) │ │ ├── quinn-proto v0.11.19 (*) │ │ └── rustls-pki-types v1.15.1 │ │ ├── quinn-proto v0.11.19 (*) │ │ ├── rustls v0.23.45 (*) │ │ └── rustls-webpki v0.103.15 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.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 v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.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 v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-api v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 (*) │ │ ├── infraternal-server v0.1.0 (*) ```
Author
Owner

Gate output for merge 9024716528: verify-fast-final.log, part 5/5 (verbatim).

      │   │   ├── 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 (*)
      │   │   └── zeroize v1.9.0
      │   │       ├── infraternal-plugin-ssh v0.1.0 (*)
      │   │       ├── infraternal-server v0.1.0 (*)
      │   │       ├── rustls v0.23.45 (*)
      │   │       └── rustls-pki-types v1.15.1 (*)
      │   └── 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 (*)
      │       ├── quinn v0.11.12 (*)
      │       ├── quinn-proto v0.11.19 (*)
      │       ├── 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-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 (*)
      │       │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── hyper v1.11.1 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── (dev) infraternal v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── infraternal-plugin-api v0.1.0 (*)
      │       ├── infraternal-plugin-mesh v0.1.0 (*)
      │       ├── infraternal-plugin-remote v0.1.0 (*)
      │       ├── infraternal-plugin-ssh v0.1.0 (*)
      │       ├── (dev) infraternal-server v0.1.0 (*)
      │       ├── quinn v0.11.12 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-openssl v0.6.5 (*)
      │       ├── 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
      │           ├── getrandom v0.2.17 (*)
      │           ├── getrandom v0.4.3 (*)
      │           ├── js-sys v0.3.106 (*)
      │           ├── plotters v0.3.7 (*)
      │           ├── web-sys v0.3.106 (*)
      │           └── web-time v1.1.0 (*)
      ├── 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/dev-backmerge/Cargo.lock:250:1
    │  
250 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index
251 │ │ 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
              │   │           └── infraternal-fuzz 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 v0.1.0
      │       │   │               ├── infraternal-plugin-ssh v0.1.0
      │       │   │               │   ├── infraternal v0.1.0 (*)
      │       │   │               │   ├── infraternal-fuzz v0.1.0
      │       │   │               │   └── infraternal-server v0.1.0
      │       │   │               │       ├── infraternal v0.1.0 (*)
      │       │   │               │       └── infraternal-fuzz v0.1.0 (*)
      │       │   │               ├── infraternal-server v0.1.0 (*)
      │       │   │               ├── sqlx-core v0.8.6
      │       │   │               │   ├── sqlx v0.8.6
      │       │   │               │   │   ├── infraternal-plugin-api v0.1.0
      │       │   │               │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-agent v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-server v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-mesh v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-plugin-mesh v0.1.0
      │       │   │               │   │   │   │       ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   │       └── infraternal-server v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-backup v0.1.0
      │       │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-host-facts v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-relay v0.1.0
      │       │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-remote v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-server v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:253:1
    │  
253 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index
254 │ │ 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
      │   │   │           └── infraternal-fuzz 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 v0.1.0 (*)
      │   └── infraternal-plugin-mesh v0.1.0
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-fuzz v0.1.0
      │       └── infraternal-server v0.1.0
      │           ├── infraternal v0.1.0 (*)
      │           └── infraternal-fuzz v0.1.0 (*)
      ├── infraternal-server v0.1.0 (*)
      ├── quinn v0.11.12
      │   ├── infraternal-agent v0.1.0
      │   │   ├── infraternal v0.1.0 (*)
      │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   └── infraternal-server v0.1.0 (*)
      │   ├── infraternal-plugin-remote v0.1.0
      │   │   ├── infraternal v0.1.0 (*)
      │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   └── infraternal-server v0.1.0 (*)
      │   └── infraternal-server v0.1.0 (*)
      ├── quinn-proto v0.11.19
      │   └── quinn v0.11.12 (*)
      ├── sqlx-core v0.8.6
      │   ├── sqlx v0.8.6
      │   │   ├── infraternal-plugin-api v0.1.0
      │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   │   ├── infraternal-mesh v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-backup v0.1.0
      │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-host-facts v0.1.0
      │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-relay v0.1.0
      │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-ssh v0.1.0
      │   │   │   │   ├── infraternal 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-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-fuzz v0.1.0 (*)
              │   └── 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/dev-backmerge/Cargo.lock:255:1
    │  
255 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index
256 │ │ 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
          │   │   │           └── infraternal-fuzz 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 v0.1.0 (*)
          │   └── infraternal-plugin-mesh v0.1.0
          │       ├── infraternal v0.1.0 (*)
          │       ├── infraternal-fuzz v0.1.0
          │       └── infraternal-server v0.1.0
          │           ├── infraternal v0.1.0 (*)
          │           └── infraternal-fuzz v0.1.0 (*)
          ├── infraternal-server v0.1.0 (*)
          ├── quinn v0.11.12
          │   ├── infraternal-agent v0.1.0
          │   │   ├── infraternal v0.1.0 (*)
          │   │   ├── infraternal-fuzz v0.1.0 (*)
          │   │   └── infraternal-server v0.1.0 (*)
          │   ├── infraternal-plugin-remote v0.1.0
          │   │   ├── infraternal v0.1.0 (*)
          │   │   ├── infraternal-agent v0.1.0 (*)
          │   │   └── infraternal-server v0.1.0 (*)
          │   └── infraternal-server v0.1.0 (*)
          ├── quinn-proto v0.11.19
          │   └── quinn v0.11.12 (*)
          ├── sqlx-core v0.8.6
          │   ├── sqlx v0.8.6
          │   │   ├── infraternal-plugin-api v0.1.0
          │   │   │   ├── infraternal v0.1.0 (*)
          │   │   │   ├── infraternal-agent v0.1.0 (*)
          │   │   │   ├── infraternal-fuzz v0.1.0 (*)
          │   │   │   ├── infraternal-mesh v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-backup v0.1.0
          │   │   │   │   └── infraternal v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-host-facts v0.1.0
          │   │   │   │   ├── infraternal v0.1.0 (*)
          │   │   │   │   ├── infraternal-agent v0.1.0 (*)
          │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-relay v0.1.0
          │   │   │   │   └── infraternal v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-remote v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-ssh v0.1.0
          │   │   │   │   ├── infraternal 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-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-fuzz v0.1.0 (*)
                  │   └── infraternal-server v0.1.0 (*)
                  └── (dev) infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:313:1
    │  
313 │ ╭ windows-sys 0.52.0 registry+https://github.com/rust-lang/crates.io-index
314 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.52.0
      └── ring v0.17.14
          ├── quinn-proto v0.11.19
          │   └── quinn v0.11.12
          │       ├── infraternal-agent v0.1.0
          │       │   ├── infraternal v0.1.0
          │       │   ├── infraternal-fuzz v0.1.0
          │       │   └── infraternal-server v0.1.0
          │       │       ├── infraternal v0.1.0 (*)
          │       │       └── infraternal-fuzz v0.1.0 (*)
          │       ├── infraternal-plugin-remote v0.1.0
          │       │   ├── infraternal v0.1.0 (*)
          │       │   ├── infraternal-agent v0.1.0 (*)
          │       │   └── infraternal-server v0.1.0 (*)
          │       └── infraternal-server v0.1.0 (*)
          ├── rustls v0.23.45
          │   ├── infraternal-plugin-remote v0.1.0 (*)
          │   ├── quinn v0.11.12 (*)
          │   └── quinn-proto v0.11.19 (*)
          └── rustls-webpki v0.103.15
              └── rustls v0.23.45 (*)
    ├ windows-sys v0.61.2
      ├── anstyle-query v1.1.5
      │   └── anstream v1.0.0
      │       └── clap_builder 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-fuzz v0.1.0 (*)
      │               │       ├── infraternal-fuzz v0.1.0 (*)
      │               │       ├── (dev) infraternal-plugin-host-facts v0.1.0
      │               │       │   ├── infraternal v0.1.0 (*)
      │               │       │   ├── infraternal-agent v0.1.0 (*)
      │               │       │   └── infraternal-fuzz v0.1.0 (*)
      │               │       ├── infraternal-plugin-mesh v0.1.0
      │               │       │   ├── infraternal v0.1.0 (*)
      │               │       │   ├── infraternal-fuzz v0.1.0 (*)
      │               │       │   └── infraternal-server v0.1.0 (*)
      │               │       ├── infraternal-plugin-remote v0.1.0
      │               │       │   ├── infraternal v0.1.0 (*)
      │               │       │   ├── infraternal-agent v0.1.0 (*)
      │               │       │   └── infraternal-server v0.1.0 (*)
      │               │       └── infraternal-server v0.1.0 (*)
      │               └── infraternal v0.1.0 (*)
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   └── signal-hook-registry v1.4.8
      │       └── tokio v1.53.2
      │           ├── axum v0.8.9
      │           │   ├── infraternal-fuzz v0.1.0 (*)
      │           │   └── infraternal-server v0.1.0 (*)
      │           ├── axum-server v0.8.0
      │           │   └── infraternal-server v0.1.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 (*)
      │           │   │   │   ├── infraternal v0.1.0 (*)
      │           │   │   │   └── (dev) infraternal-server v0.1.0 (*)
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── (dev) infraternal-server v0.1.0 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           ├── hyper v1.11.1 (*)
      │           ├── hyper-util v0.1.21 (*)
      │           ├── (dev) infraternal v0.1.0 (*)
      │           ├── infraternal-agent v0.1.0 (*)
      │           ├── infraternal-plugin-api v0.1.0
      │           │   ├── infraternal v0.1.0 (*)
      │           │   ├── infraternal-agent v0.1.0 (*)
      │           │   ├── infraternal-fuzz v0.1.0 (*)
      │           │   ├── infraternal-mesh v0.1.0
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── infraternal-plugin-mesh v0.1.0 (*)
      │           │   ├── infraternal-plugin-backup v0.1.0
      │           │   │   └── infraternal v0.1.0 (*)
      │           │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │           │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │           │   ├── infraternal-plugin-relay v0.1.0
      │           │   │   └── infraternal v0.1.0 (*)
      │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │           │   ├── infraternal-plugin-ssh v0.1.0
      │           │   │   ├── infraternal 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-plugin-remote v0.1.0 (*)
      │           ├── infraternal-plugin-ssh v0.1.0 (*)
      │           ├── (dev) infraternal-server v0.1.0 (*)
      │           ├── quinn v0.11.12
      │           │   ├── infraternal-agent v0.1.0 (*)
      │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │           │   └── infraternal-server v0.1.0 (*)
      │           ├── sqlx-core v0.8.6
      │           │   ├── sqlx v0.8.6
      │           │   │   ├── infraternal-plugin-api 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 (*)
      │           ├── tokio-openssl v0.6.5
      │           │   ├── axum-server v0.8.0 (*)
      │           │   ├── infraternal v0.1.0 (*)
      │           │   ├── infraternal-agent v0.1.0 (*)
      │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           ├── tokio-stream v0.1.19
      │           │   └── sqlx-core v0.8.6 (*)
      │           ├── tokio-tungstenite v0.29.0
      │           │   ├── axum v0.8.9 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           ├── tokio-util v0.7.19
      │           │   ├── h2 v0.4.19 (*)
      │           │   └── tower-http v0.6.11
      │           │       └── infraternal-server v0.1.0 (*)
      │           ├── tower v0.5.3
      │           │   ├── axum v0.8.9 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           └── tower-http v0.6.11 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2 (*)
      ├── nu-ansi-term v0.50.3
      │   └── tracing-subscriber v0.3.23
      │       └── infraternal-server v0.1.0 (*)
      ├── quinn-udp v0.5.16
      │   └── quinn v0.11.12 (*)
      ├── socket2 v0.6.5
      │   ├── quinn v0.11.12 (*)
      │   ├── quinn-udp v0.5.16 (*)
      │   └── tokio v1.53.2 (*)
      ├── tokio v1.53.2 (*)
      └── winapi-util v0.1.11
          ├── same-file v1.0.6
          │   └── walkdir v2.5.0
          │       ├── criterion v0.7.0 (*)
          │       └── sysctl v0.7.1
          │           └── infraternal-plugin-host-facts v0.1.0 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Blocking waiting for file lock on build directory
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 22m 35s
/home/kayg/.cache/codex-scratch/dev-backmerge/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: 20288048 bytes (baseline 16142672 + allowance 262144 = max 16404816)
binary exceeds the 16404816-byte size budget: 20288048 bytes

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| CLI plugin compile-out    | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | FAIL (1)     |
+---------------------------+--------------+
Gate output for merge 90247165280a1d1231151aa703ec713838706794: verify-fast-final.log, part 5/5 (verbatim). ```text │ │ ├── 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 (*) │ │ └── zeroize v1.9.0 │ │ ├── infraternal-plugin-ssh v0.1.0 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── rustls v0.23.45 (*) │ │ └── rustls-pki-types v1.15.1 (*) │ └── 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 (*) │ ├── quinn v0.11.12 (*) │ ├── quinn-proto v0.11.19 (*) │ ├── 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-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 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── (dev) infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 (*) │ ├── infraternal-plugin-ssh v0.1.0 (*) │ ├── (dev) infraternal-server v0.1.0 (*) │ ├── quinn v0.11.12 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 (*) │ ├── 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 │ ├── getrandom v0.2.17 (*) │ ├── getrandom v0.4.3 (*) │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ ├── web-sys v0.3.106 (*) │ └── web-time v1.1.0 (*) ├── 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/dev-backmerge/Cargo.lock:250:1 │ 250 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 251 │ │ 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 │ │ └── infraternal-fuzz 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 v0.1.0 │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 │ │ │ │ └── infraternal-server v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:253:1 │ 253 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 254 │ │ 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 │ │ │ └── infraternal-fuzz 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 v0.1.0 (*) │ └── infraternal-plugin-mesh v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal 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-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-fuzz v0.1.0 (*) │ └── 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/dev-backmerge/Cargo.lock:255:1 │ 255 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 256 │ │ 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 │ │ │ └── infraternal-fuzz 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 v0.1.0 (*) │ └── infraternal-plugin-mesh v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal 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-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-fuzz v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:313:1 │ 313 │ ╭ windows-sys 0.52.0 registry+https://github.com/rust-lang/crates.io-index 314 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.52.0 └── ring v0.17.14 ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-fuzz v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── rustls v0.23.45 │ ├── infraternal-plugin-remote v0.1.0 (*) │ ├── quinn v0.11.12 (*) │ └── quinn-proto v0.11.19 (*) └── rustls-webpki v0.103.15 └── rustls v0.23.45 (*) ├ windows-sys v0.61.2 ├── anstyle-query v1.1.5 │ └── anstream v1.0.0 │ └── clap_builder 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-fuzz v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── (dev) infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal v0.1.0 (*) ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ └── signal-hook-registry v1.4.8 │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.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 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── (dev) infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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-plugin-remote v0.1.0 (*) │ ├── infraternal-plugin-ssh v0.1.0 (*) │ ├── (dev) infraternal-server v0.1.0 (*) │ ├── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal-plugin-api 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 (*) │ ├── tokio-openssl v0.6.5 │ │ ├── axum-server v0.8.0 (*) │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 │ │ └── infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 (*) ├── nu-ansi-term v0.50.3 │ └── tracing-subscriber v0.3.23 │ └── infraternal-server v0.1.0 (*) ├── quinn-udp v0.5.16 │ └── quinn v0.11.12 (*) ├── socket2 v0.6.5 │ ├── quinn v0.11.12 (*) │ ├── quinn-udp v0.5.16 (*) │ └── tokio v1.53.2 (*) ├── tokio v1.53.2 (*) └── winapi-util v0.1.11 ├── same-file v1.0.6 │ └── walkdir v2.5.0 │ ├── criterion v0.7.0 (*) │ └── sysctl v0.7.1 │ └── infraternal-plugin-host-facts v0.1.0 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Blocking waiting for file lock on build directory Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `release` profile [optimized] target(s) in 22m 35s /home/kayg/.cache/codex-scratch/dev-backmerge/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: 20288048 bytes (baseline 16142672 + allowance 262144 = max 16404816) binary exceeds the 16404816-byte size budget: 20288048 bytes +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | FAIL (1) | +---------------------------+--------------+ ```
Author
Owner

Gate output for merge 9024716528: verify-ts.log, part 1/1 (verbatim).

Running as unit: run-p3382729-i49472787.scope; invocation ID: a4416c81f6e149c69b895e3e8828ec86

==> 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) [87.00ms]
$ bun x tsc --project tsconfig.json
bun test v1.4.2 (744846f84)

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

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

src/perf-detector.test.ts:
(pass) FrameDetector > estimates the refresh from the median and snaps it [1.62ms]
(pass) FrameDetector > nothing is a drop before the rate is known [0.13ms]
(pass) FrameDetector > a drop is over 1.5 refresh intervals, a freeze over 100 ms [0.25ms]
(pass) FrameDetector > the refresh only goes up: a slow page is not a slower display [0.25ms]
(pass) FrameDetector > the first frame after a pause is not an interval [0.12ms]
(pass) FrameDetector > fps, p95 and window read the ring [0.30ms]
(pass) FrameDetector > a throttled page (one frame a second) is neither a drop nor a freeze, and neither is its return [0.26ms]
(pass) FrameDetector > a lone long stall is still a freeze and is not a throttled run [0.11ms]

src/canvas/recency.test.ts:
(pass) touch moves an item to the front and never duplicates it [0.25ms]
(pass) repeating the front item changes nothing [0.06ms]
(pass) the list is capped, so the oldest items fall off [0.07ms]
(pass) top skips items that are no longer live, without losing them [0.08ms]
(pass) recentRows: five used windows in reverse order of use, from 54 windows [0.24ms]
(pass) recentRows: a view with three windows and no use shows them in order [0.04ms]
(pass) recentRows: used windows lead, the rest fill up to five in window order [0.07ms]

src/canvas/windows/details-facts.test.ts:
(pass) host facts become plain-language details rows [1.08ms]
(pass) unknown optional host facts stay absent instead of appearing as placeholders [0.25ms]
(pass) extended info off: the machine tab shows only the essentials, ungrouped, and there is no More section [0.41ms]
(pass) extended info on: every fact sits under System, Resources or Access [0.34ms]
(pass) the header follows the machine's own facts, not the platform the host list guessed [0.20ms]
(pass) before facts arrive the host's platform names the header [0.10ms]
(pass) a reported system with no platform mark still names the header and shows no mark [0.09ms]

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

src/canvas/mesh/layout.test.ts:
(pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [1.24ms]
(pass) the layout is deterministic and does not depend on input order [9.47ms]
(pass) no two cards overlap, and every card lies inside the graph [27.20ms]
(pass) the sheet is wider than tall, roughly 16:10 [2.24ms]
(pass) a pinned node stays where it was put and the others do not move [15.14ms]
(pass) a pin beyond the sheet grows the graph [0.36ms]
(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 [53.53ms]

src/canvas/layout/stops.test.ts:
(pass) a view that fits the viewport has one stop, centred [0.48ms]
(pass) a wide view has one stop per column and the last stop ends at the right edge [0.29ms]
(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.18ms]
(pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.25ms]
(pass) a small graph keeps one stop per node column [0.11ms]
(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.07ms]

src/canvas/layout/grid.test.ts:
(pass) split right in a stacked column makes a group: the window's column halves, its neighbours span both halves [1.16ms]
(pass) closing the new half gives the layout back exactly, in the model [6.25ms]
(pass) closing the window it came from makes the new half take its band, and the layout is one column again [0.62ms]
(pass) split right of a spanning window halves its span inside the existing columns, with the footprint unchanged [0.44ms]
(pass) split down in a group divides only the window's band: the partner window grows to keep its height [0.94ms]
(pass) closing the window split down gives its band back to the window above and to the partner [0.64ms]
(pass) a window split down in a plain column stacks under it and moves the windows below down [0.15ms]
(pass) new window right opens a full-size column after the whole group, never inside it [0.34ms]
(pass) runs: adjacent columns linked by a spanning window form one group, the rest stay plain [0.08ms]
(pass) spans are clamped to the columns that exist and a stale row is re-placed, never overlapped [0.12ms]
(pass) random sequences of split right, split down, new window right and close never break the grid [149.51ms]
(pass) closing every window of a group returns the view to nothing, with no problem on the way [0.38ms]
(pass) a full-width band under a group moves nothing and extends the group by one band [0.15ms]
(pass) a band inserted between two bands of one column grows the windows beside it and moves the rest [0.10ms]

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.11ms]
(pass) snapping rounds to whole cells [0.05ms]
(pass) reach follows grants through tags and keeps the relay [2.58ms]

src/canvas/sessions/live-inventory.test.ts:
(pass) inventory remembers a remote session and refuses a cross-host attach [1.13ms]

src/canvas/sessions/details-live.test.ts:
(pass) a refused host facts action stops its recurring timer [2.87ms]
(pass) a detected operating system supplies the live popover mark [1.04ms]

src/canvas/sessions/live.test.ts:
(pass) an enrolled host opens by UUID and splits keep that authority [6.15ms]
(pass) unknown and ambiguous labels never open an embedded shell [0.19ms]
(pass) removed hosts disappear from inventory and cannot route a new shell [0.24ms]

src/canvas/sessions/gone-review.test.ts:
(pass) selecting a known gone session keeps its final exited state [0.47ms]
(pass) a known retired status survives repeated selection and generic ended answers [0.19ms]

src/canvas/sessions/open-refusal.test.ts:
(pass) memory refusal retains the reason and current counters [1.95ms]
(pass) legacy refusals still work and malformed counters never reach the message [0.83ms]
(pass) product copy names the host and counters and never renders untrusted server text [3.67ms]
(pass) oversized refusal JSON is ignored before parsing [0.35ms]

src/canvas/model/document.test.ts:
(pass) a document holds references and layout, never content [0.74ms]
(pass) a document survives JSON and rebuilds the same columns [1.27ms]
(pass) a target that no longer exists is dropped, and an emptied column with it [0.23ms]
(pass) parseDocument rejects anything that is not a document of this format [4.64ms]
(pass) remote affinity survives reload and invalid UUIDs cannot become local references [0.28ms]
(pass) a version 1 document from before D212 loads, with its split pair and a full-size window [0.29ms]
(pass) a grouped view saves its spans and bands and loads back to the same grid (D212) [25.57ms]
(pass) a plain view is saved without spans or bands, exactly as before D212 [0.14ms]

src/canvas/addhost/real.test.ts:
(pass) parsing the server's data > a discovery row keeps only known fields and valid ids [0.40ms]
(pass) parsing the server's data > the server key needs its public key and fingerprint [0.06ms]
(pass) parsing the server's data > an install command needs a lifetime [0.05ms]
(pass) a server that lacks an endpoint > serving the web app (200, HTML) for an unknown path is 'not available' [9.12ms]
(pass) a server that lacks an endpoint > 404 discovery is an empty list; 500 discovery is an error to show [0.61ms]
(pass) a server that lacks an endpoint > private sign-in stays local until a target-bound socket start [2.01ms]
(pass) a server that lacks an endpoint > a wrong target consumes the reference without sending private input [0.62ms]
(pass) a server that lacks an endpoint > a local reference cannot change SSH address while keeping the target id [0.30ms]
(pass) a server that lacks an endpoint > closing before open discards queued sign-in even if a late open fires [0.20ms]
(pass) a server that lacks an endpoint > pre-open commands stay bounded and events after close cannot revive a run [0.50ms]
(pass) a server that lacks an endpoint > trust waits for the exact acknowledgement, and ignores another target [13.22ms]

src/canvas/addhost/authority.on-demand.test.ts:
(pass) CA wrapping matches the contract's HKDF domain and separates generations [18.22ms]

src/canvas/addhost/model.test.ts:
(pass) stagesOf > a host with no event is waiting everywhere [0.37ms]
(pass) stagesOf > check before sign-in is detecting how to sign in [0.22ms]
(pass) stagesOf > the sign-in report finishes detect and starts the system check [0.15ms]
(pass) stagesOf > install, facts and connect map to install, enrol and first session [0.20ms]
(pass) stagesOf > an auth failure before sign-in fails detect and says it in plain words, not the server's [0.22ms]
(pass) stagesOf > an unsupported host fails the system check, after sign-in [0.07ms]
(pass) stagesOf > an install failure fails the install stage and keeps the earlier ones done [0.07ms]
(pass) stagesOf > a new attempt starts over and forgets the old sign-in [0.11ms]
(pass) authLabel > names the method and a trusted network provider only [0.06ms]
(pass) guideFor > installation failures never claim that incomplete cleanup succeeded [0.15ms]
(pass) guideFor > each failure kind names its fix [0.11ms]
(pass) guideFor > mesh-policy words say possible, not certain [0.03ms]
(pass) parseTarget > reads user, host and port [0.22ms]
(pass) parseTarget > refuses what cannot name a host [0.04ms]
(pass) parseSshConfig > reads aliases with HostName, User and Port, skipping wildcards and Match [1.22ms]
(pass) parseSshConfig > recognises config text [0.08ms]
(pass) parseSshConfig > a hostname that is an option is dropped [0.07ms]
(pass) plain words > an unknown or missing failure gets the generic sentence, never the server's text [0.08ms]
(pass) plain words > no headline carries an arrow, an id or an API noun [0.24ms]
(pass) only a completed canonical host identity becomes terminal authority [0.13ms]
(pass) parseTarget > accepts user@host, host, user@host:port, IPv4 and bracketed IPv6 with an optional port [0.08ms]
(pass) parseTarget > rejects partial and malformed tokens, so they wait or show the hint [0.08ms]
(pass) matchListed > a name that is exactly one host's id or address names that host [0.16ms]
(pass) matchListed > a name that is also the start of another host's name is named but still prefixed [0.04ms]
(pass) matchListed > a partial name that starts several hosts names none and waits [0.04ms]
(pass) matchListed > a new name that starts no host is neither named nor waiting [0.07ms]
(pass) install diagnostics name the failed step and public host error [0.28ms]
(pass) missing payload tells the operator the architecture and expected server path [0.06ms]
(pass) an already added host says so and offers opening its existing terminal [0.04ms]

src/canvas/addhost/wizard.test.ts:
(pass) a saved-key prompt completing after close never starts an SSH attempt [0.76ms]
(pass) fresh CA requires setup before any SSH attempt and preserves root consent [0.32ms]
(pass) ready CA begins the requested installation mode without another prompt [0.18ms]
(pass) closing during CA confirmation never starts an SSH attempt [0.38ms]
(pass) a typed root login requires explicit consent before any installation [0.18ms]

../../packages/ui/src/spring.test.ts:
(pass) a missed frame does not stretch a settled spring [5.42ms]
(pass) motion follows elapsed time across frame rates and damping regimes [1.64ms]

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

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

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

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

test/recovery-wait.test.ts:
(pass) server remaining wait 0s is accepted through the capability policy maximum [7.52ms]
(pass) server remaining wait 86400s is accepted through the capability policy maximum [2.55ms]
(pass) server remaining wait 90000s is accepted through the capability policy maximum [1.90ms]
(pass) server remaining wait 172800s is accepted through the capability policy maximum [2.47ms]
(pass) malformed or excessive remaining wait -1 is denied [2.11ms]
(pass) malformed or excessive remaining wait 0.5 is denied [0.91ms]
(pass) malformed or excessive remaining wait 172801 is denied [1.52ms]
(pass) malformed or excessive remaining wait 9007199254740992 is denied [3.68ms]
(pass) malformed or excessive remaining wait 90000 is denied [4.92ms]

 154 pass
 0 fail
 11280 expect() calls
Ran 154 tests across 26 files. [1163.00ms]
$ bun run build.ts
built chunk-st9cmtfv.js, chunk-nha0rj7v.js, chunk-pymxpd8s.js, chunk-frrh7r75.js, chunk-as9ejyv4.js, chunk-9yqtg4bm.js, chunk-5gvm30xx.js, chunk-a895a34j.js, chunk-y9z35mse.js, chunk-gg6f6hz5.js, chunk-7pv2q1pv.js, chunk-fnvcht0d.js, chunk-0g3v75e7.js, main.js, chunk-kdcxvw7m.js, chunk-wn0fy536.js, chunk-gvfq7550.js, chunk-ds5vmej4.js, chunk-1ygheb8n.js, chunk-p07emknq.js, chunk-jkfrj4re.js, chunk-6xbv2xrg.js, chunk-zk8rjff3.js, chunk-axbkkqp1.js, chunk-ax1q0p6f.js, chunk-7eeb0h0x.js, chunk-7v3pzbcy.js, chunk-2fgf8q48.js, chunk-2hyv64vs.js, chunk-v7gpczkt.js, chunk-rp7j0xbt.js, chunk-jc3twpr8.js, chunk-h7qyd8wm.js, chunk-nf3vwrre.js, chunk-9099rps2.js, chunk-yy8tsnxh.js, chunk-m9ftbfk7.js, chunk-fextp724.js, chunk-28rbcdd5.js, chunk-61xwpgvs.js, chunk-ryy15zqq.js, chunk-npbv57fs.js, chunk-hdbnccvd.js, chunk-r2e4y8ht.js, chunk-84c8jnnr.js, chunk-a0k4jng9.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5hnjht6p.js, chunk-f2r0hhqc.js, chunk-8hdt2fh0.js, chunk-1z46kfv2.js, chunk-9xd3g65e.js
onDemand chunk-ryy15zqq.js: identity=552 gzip=406 brotli=307 bytes
critical chunk-ax1q0p6f.js: identity=703957 gzip=203942 brotli=165278 bytes
critical chunk-28rbcdd5.js: identity=39 gzip=39 brotli=39 bytes
deferred chunk-v7gpczkt.js: identity=93915 gzip=31921 brotli=28198 bytes
onDemand chunk-fnvcht0d.js: identity=4563 gzip=1607 brotli=1433 bytes
critical chunk-8hdt2fh0.js: identity=199 gzip=160 brotli=128 bytes
onDemand chunk-jc3twpr8.js: identity=540 gzip=353 brotli=313 bytes
onDemand chunk-2fgf8q48.js: identity=4575 gzip=2013 brotli=1779 bytes
critical chunk-1ygheb8n.js: identity=590 gzip=326 brotli=304 bytes
onDemand chunk-fextp724.js: identity=10496 gzip=4087 brotli=3734 bytes
onDemand chunk-nf3vwrre.js: identity=5359 gzip=2581 brotli=2302 bytes
onDemand chunk-7eeb0h0x.js: identity=6198 gzip=2791 brotli=2523 bytes
onDemand chunk-r2e4y8ht.js: identity=6773 gzip=3174 brotli=2888 bytes
onDemand chunk-a0k4jng9.js: identity=2316 gzip=1032 brotli=865 bytes
onDemand chunk-9yqtg4bm.js: identity=2188 gzip=1048 brotli=878 bytes
critical faulty-terminal.worker.js: identity=1086 gzip=558 brotli=486 bytes
critical backdrop.worker.js: identity=243 gzip=211 brotli=158 bytes
onDemand chunk-0g3v75e7.js: identity=2108 gzip=1037 brotli=870 bytes
critical chunk-6xbv2xrg.js: identity=1104 gzip=666 brotli=605 bytes
onDemand chunk-as9ejyv4.js: identity=3891 gzip=1737 brotli=1521 bytes
critical chunk-hdbnccvd.js: identity=162 gzip=150 brotli=146 bytes
onDemand chunk-yy8tsnxh.js: identity=7662 gzip=3396 brotli=2970 bytes
onDemand chunk-h7qyd8wm.js: identity=11529 gzip=4651 brotli=4250 bytes
critical chunk-st9cmtfv.js: identity=21235 gzip=6854 brotli=6128 bytes
onDemand chunk-gg6f6hz5.js: identity=2420 gzip=1197 brotli=1080 bytes
critical chunk-a895a34j.js: identity=88 gzip=88 brotli=74 bytes
onDemand chunk-9099rps2.js: identity=4640 gzip=1932 brotli=1705 bytes
critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes
critical chunk-kdcxvw7m.js: identity=8377 gzip=3575 brotli=3197 bytes
onDemand chunk-7pv2q1pv.js: identity=191 gzip=171 brotli=135 bytes
critical chunk-jkfrj4re.js: identity=386 gzip=237 brotli=196 bytes
critical chunk-f2r0hhqc.js: identity=128 gzip=109 brotli=111 bytes
onDemand chunk-7v3pzbcy.js: identity=2824 gzip=1385 brotli=1193 bytes
critical chunk-9xd3g65e.js: identity=39 gzip=39 brotli=39 bytes
onDemand chunk-84c8jnnr.js: identity=31920 gzip=12276 brotli=11048 bytes
deferred chunk-frrh7r75.js: identity=42608 gzip=16270 brotli=14307 bytes
critical chunk-5hnjht6p.js: identity=9810 gzip=4015 brotli=3454 bytes
onDemand chunk-m9ftbfk7.js: identity=13351 gzip=5012 brotli=4479 bytes
critical chunk-ds5vmej4.js: identity=17525 gzip=6115 brotli=5442 bytes
critical chunk-1z46kfv2.js: identity=41779 gzip=14279 brotli=12777 bytes
critical chunk-wn0fy536.js: identity=5443 gzip=2604 brotli=2379 bytes
critical chunk-5gvm30xx.js: identity=707 gzip=368 brotli=311 bytes
onDemand chunk-zk8rjff3.js: identity=1026 gzip=623 brotli=497 bytes
critical chunk-nha0rj7v.js: identity=2943 gzip=1315 brotli=1134 bytes
critical main.js: identity=109195 gzip=39819 brotli=34570 bytes
onDemand chunk-rp7j0xbt.js: identity=1170 gzip=705 brotli=590 bytes
critical chunk-p07emknq.js: identity=2519 gzip=1008 brotli=878 bytes
critical chunk-61xwpgvs.js: identity=49 gzip=49 brotli=49 bytes
critical chunk-gvfq7550.js: identity=12516 gzip=5003 brotli=4452 bytes
onDemand chunk-pymxpd8s.js: identity=5745 gzip=2167 brotli=1922 bytes
onDemand chunk-2hyv64vs.js: identity=1616 gzip=864 brotli=739 bytes
onDemand chunk-y9z35mse.js: identity=228 gzip=179 brotli=165 bytes
onDemand chunk-npbv57fs.js: identity=47781 gzip=15015 brotli=13348 bytes
JavaScript transfer, critical: identity=940209 gzip=291619/307200 brotli=242413/256000 bytes
JavaScript transfer, deferred: identity=136523 gzip=48191/51200 brotli=42505/45056 bytes
JavaScript transfer, onDemand: identity=181662 gzip=71439/20480 brotli=63534/18432 bytes
JavaScript transfer, onDemand largest chunk chunk-npbv57fs.js: gzip=15015/20480 brotli=13348/18432 bytes (class total gzip=71439 brotli=63534, 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/mesh-review-revocation.test.ts:
(pass) review forbidden event cancels pending snapshot publication [11.51ms]
(pass) subscription forbidden ends delivery before a late refresh rejection [1.64ms]
(pass) subscription not found ends delivery before a late refresh rejection [1.20ms]
(pass) subscription invalid input ends delivery before a late refresh rejection [1.24ms]
(pass) subscription mesh unavailable ends delivery before a late refresh rejection [3.58ms]
(pass) synchronous subscription refusal releases the transport exactly once [0.24ms]

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

src/mesh-review-paged-error.test.ts:
(pass) review earlier snapshot continuation failure cannot replace a newer complete refresh [6.19ms]
(pass) review earlier snapshot continuation cannot overwrite a delivered revision [2.89ms]
(pass) a newer paged event owns publication before an earlier refresh resumes [3.11ms]

src/mesh-review-refresh.test.ts:
(pass) review superseded refresh failure cannot replace authoritative resync [1.43ms]
(pass) superseded failure preserves a newer pending refresh [7.79ms]

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 [4962.19ms]
(pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [9.81ms]

src/mesh.test.ts:
(pass) Mesh actions map to their typed action IDs and JSON inputs [1.75ms]
(pass) Mesh watch coalesces change bursts and never publishes an older revision [4.29ms]
(pass) Mesh watch forwards server errors and stops delivering after unsubscribe [0.13ms]

src/mesh-review-continuation.test.ts:
(pass) review continuation stops after stop [1.57ms]
(pass) review continuation stops after forbidden [1.22ms]
(pass) review continuation stops after superseded [1.17ms]

src/mesh-pagination.test.ts:
(pass) list assembles bounded pages using the same filter [0.27ms]
(pass) a changed revision discards earlier pages before assembling its restart [0.12ms]
(pass) malformed continuation is refused: {"revision":1,"offset":0} [0.32ms]
(pass) malformed continuation is refused: {"revision":2,"offset":1} [0.02ms]
(pass) malformed continuation is refused: {"revision":1,"offset":2}
(pass) watch never publishes a partial page; withdrawn=false [1.39ms]
(pass) watch never publishes a partial page; withdrawn=true [1.20ms]
(pass) a superseding equal-revision resync wins over pending page assembly [1.56ms]

src/mesh-review-resync.test.ts:
(pass) review watch applies same-revision authoritative resync [0.22ms]
(pass) authoritative resync keeps priority over an equal-revision pending list [1.47ms]

src/mesh-vectors.test.ts:
(pass) every shared Mesh action vector passes through the typed client unchanged [1.46ms]
(pass) shared Mesh event vectors drive the typed watch adapter [7.42ms]

 36 pass
 0 fail
 34462 expect() calls
Ran 36 tests across 10 files. [5.09s]
Gate output for merge 90247165280a1d1231151aa703ec713838706794: verify-ts.log, part 1/1 (verbatim). ```text Running as unit: run-p3382729-i49472787.scope; invocation ID: a4416c81f6e149c69b895e3e8828ec86 ==> 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) [87.00ms] $ bun x tsc --project tsconfig.json bun test v1.4.2 (744846f84) precompress.test.ts: (pass) text sidecars round-trip deterministically; compressed formats remain identity [29.27ms] browser-build.test.ts: (pass) the browser renderer has no unresolved Vite Node-file shim request [36.73ms] src/perf-detector.test.ts: (pass) FrameDetector > estimates the refresh from the median and snaps it [1.62ms] (pass) FrameDetector > nothing is a drop before the rate is known [0.13ms] (pass) FrameDetector > a drop is over 1.5 refresh intervals, a freeze over 100 ms [0.25ms] (pass) FrameDetector > the refresh only goes up: a slow page is not a slower display [0.25ms] (pass) FrameDetector > the first frame after a pause is not an interval [0.12ms] (pass) FrameDetector > fps, p95 and window read the ring [0.30ms] (pass) FrameDetector > a throttled page (one frame a second) is neither a drop nor a freeze, and neither is its return [0.26ms] (pass) FrameDetector > a lone long stall is still a freeze and is not a throttled run [0.11ms] src/canvas/recency.test.ts: (pass) touch moves an item to the front and never duplicates it [0.25ms] (pass) repeating the front item changes nothing [0.06ms] (pass) the list is capped, so the oldest items fall off [0.07ms] (pass) top skips items that are no longer live, without losing them [0.08ms] (pass) recentRows: five used windows in reverse order of use, from 54 windows [0.24ms] (pass) recentRows: a view with three windows and no use shows them in order [0.04ms] (pass) recentRows: used windows lead, the rest fill up to five in window order [0.07ms] src/canvas/windows/details-facts.test.ts: (pass) host facts become plain-language details rows [1.08ms] (pass) unknown optional host facts stay absent instead of appearing as placeholders [0.25ms] (pass) extended info off: the machine tab shows only the essentials, ungrouped, and there is no More section [0.41ms] (pass) extended info on: every fact sits under System, Resources or Access [0.34ms] (pass) the header follows the machine's own facts, not the platform the host list guessed [0.20ms] (pass) before facts arrive the host's platform names the header [0.10ms] (pass) a reported system with no platform mark still names the header and shows no mark [0.09ms] src/canvas/mesh/protocol.test.ts: (pass) the server's own list becomes nodes, tags and grants, by name [1.67ms] (pass) without `access` (today's server) the person may view and may not edit [0.37ms] (pass) fields the server does not send are absent, never invented [0.23ms] (pass) anything that is not a list is refused, whole [6.40ms] (pass) a node's own tag list and the tag table agree even when a server sends only one [0.24ms] (pass) the subscription's events: a pushed list, a revision that invalidates, and the end of the subscription [0.39ms] (pass) answers carry the new revision, and a create the new arrow's id [0.13ms] (pass) endpoints go out as the server writes them: a node by id, a tag by name [0.15ms] src/canvas/mesh/layout.test.ts: (pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [1.24ms] (pass) the layout is deterministic and does not depend on input order [9.47ms] (pass) no two cards overlap, and every card lies inside the graph [27.20ms] (pass) the sheet is wider than tall, roughly 16:10 [2.24ms] (pass) a pinned node stays where it was put and the others do not move [15.14ms] (pass) a pin beyond the sheet grows the graph [0.36ms] (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 [53.53ms] src/canvas/layout/stops.test.ts: (pass) a view that fits the viewport has one stop, centred [0.48ms] (pass) a wide view has one stop per column and the last stop ends at the right edge [0.29ms] (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.18ms] (pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.25ms] (pass) a small graph keeps one stop per node column [0.11ms] (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.07ms] src/canvas/layout/grid.test.ts: (pass) split right in a stacked column makes a group: the window's column halves, its neighbours span both halves [1.16ms] (pass) closing the new half gives the layout back exactly, in the model [6.25ms] (pass) closing the window it came from makes the new half take its band, and the layout is one column again [0.62ms] (pass) split right of a spanning window halves its span inside the existing columns, with the footprint unchanged [0.44ms] (pass) split down in a group divides only the window's band: the partner window grows to keep its height [0.94ms] (pass) closing the window split down gives its band back to the window above and to the partner [0.64ms] (pass) a window split down in a plain column stacks under it and moves the windows below down [0.15ms] (pass) new window right opens a full-size column after the whole group, never inside it [0.34ms] (pass) runs: adjacent columns linked by a spanning window form one group, the rest stay plain [0.08ms] (pass) spans are clamped to the columns that exist and a stale row is re-placed, never overlapped [0.12ms] (pass) random sequences of split right, split down, new window right and close never break the grid [149.51ms] (pass) closing every window of a group returns the view to nothing, with no problem on the way [0.38ms] (pass) a full-width band under a group moves nothing and extends the group by one band [0.15ms] (pass) a band inserted between two bands of one column grows the windows beside it and moves the rest [0.10ms] 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.11ms] (pass) snapping rounds to whole cells [0.05ms] (pass) reach follows grants through tags and keeps the relay [2.58ms] src/canvas/sessions/live-inventory.test.ts: (pass) inventory remembers a remote session and refuses a cross-host attach [1.13ms] src/canvas/sessions/details-live.test.ts: (pass) a refused host facts action stops its recurring timer [2.87ms] (pass) a detected operating system supplies the live popover mark [1.04ms] src/canvas/sessions/live.test.ts: (pass) an enrolled host opens by UUID and splits keep that authority [6.15ms] (pass) unknown and ambiguous labels never open an embedded shell [0.19ms] (pass) removed hosts disappear from inventory and cannot route a new shell [0.24ms] src/canvas/sessions/gone-review.test.ts: (pass) selecting a known gone session keeps its final exited state [0.47ms] (pass) a known retired status survives repeated selection and generic ended answers [0.19ms] src/canvas/sessions/open-refusal.test.ts: (pass) memory refusal retains the reason and current counters [1.95ms] (pass) legacy refusals still work and malformed counters never reach the message [0.83ms] (pass) product copy names the host and counters and never renders untrusted server text [3.67ms] (pass) oversized refusal JSON is ignored before parsing [0.35ms] src/canvas/model/document.test.ts: (pass) a document holds references and layout, never content [0.74ms] (pass) a document survives JSON and rebuilds the same columns [1.27ms] (pass) a target that no longer exists is dropped, and an emptied column with it [0.23ms] (pass) parseDocument rejects anything that is not a document of this format [4.64ms] (pass) remote affinity survives reload and invalid UUIDs cannot become local references [0.28ms] (pass) a version 1 document from before D212 loads, with its split pair and a full-size window [0.29ms] (pass) a grouped view saves its spans and bands and loads back to the same grid (D212) [25.57ms] (pass) a plain view is saved without spans or bands, exactly as before D212 [0.14ms] src/canvas/addhost/real.test.ts: (pass) parsing the server's data > a discovery row keeps only known fields and valid ids [0.40ms] (pass) parsing the server's data > the server key needs its public key and fingerprint [0.06ms] (pass) parsing the server's data > an install command needs a lifetime [0.05ms] (pass) a server that lacks an endpoint > serving the web app (200, HTML) for an unknown path is 'not available' [9.12ms] (pass) a server that lacks an endpoint > 404 discovery is an empty list; 500 discovery is an error to show [0.61ms] (pass) a server that lacks an endpoint > private sign-in stays local until a target-bound socket start [2.01ms] (pass) a server that lacks an endpoint > a wrong target consumes the reference without sending private input [0.62ms] (pass) a server that lacks an endpoint > a local reference cannot change SSH address while keeping the target id [0.30ms] (pass) a server that lacks an endpoint > closing before open discards queued sign-in even if a late open fires [0.20ms] (pass) a server that lacks an endpoint > pre-open commands stay bounded and events after close cannot revive a run [0.50ms] (pass) a server that lacks an endpoint > trust waits for the exact acknowledgement, and ignores another target [13.22ms] src/canvas/addhost/authority.on-demand.test.ts: (pass) CA wrapping matches the contract's HKDF domain and separates generations [18.22ms] src/canvas/addhost/model.test.ts: (pass) stagesOf > a host with no event is waiting everywhere [0.37ms] (pass) stagesOf > check before sign-in is detecting how to sign in [0.22ms] (pass) stagesOf > the sign-in report finishes detect and starts the system check [0.15ms] (pass) stagesOf > install, facts and connect map to install, enrol and first session [0.20ms] (pass) stagesOf > an auth failure before sign-in fails detect and says it in plain words, not the server's [0.22ms] (pass) stagesOf > an unsupported host fails the system check, after sign-in [0.07ms] (pass) stagesOf > an install failure fails the install stage and keeps the earlier ones done [0.07ms] (pass) stagesOf > a new attempt starts over and forgets the old sign-in [0.11ms] (pass) authLabel > names the method and a trusted network provider only [0.06ms] (pass) guideFor > installation failures never claim that incomplete cleanup succeeded [0.15ms] (pass) guideFor > each failure kind names its fix [0.11ms] (pass) guideFor > mesh-policy words say possible, not certain [0.03ms] (pass) parseTarget > reads user, host and port [0.22ms] (pass) parseTarget > refuses what cannot name a host [0.04ms] (pass) parseSshConfig > reads aliases with HostName, User and Port, skipping wildcards and Match [1.22ms] (pass) parseSshConfig > recognises config text [0.08ms] (pass) parseSshConfig > a hostname that is an option is dropped [0.07ms] (pass) plain words > an unknown or missing failure gets the generic sentence, never the server's text [0.08ms] (pass) plain words > no headline carries an arrow, an id or an API noun [0.24ms] (pass) only a completed canonical host identity becomes terminal authority [0.13ms] (pass) parseTarget > accepts user@host, host, user@host:port, IPv4 and bracketed IPv6 with an optional port [0.08ms] (pass) parseTarget > rejects partial and malformed tokens, so they wait or show the hint [0.08ms] (pass) matchListed > a name that is exactly one host's id or address names that host [0.16ms] (pass) matchListed > a name that is also the start of another host's name is named but still prefixed [0.04ms] (pass) matchListed > a partial name that starts several hosts names none and waits [0.04ms] (pass) matchListed > a new name that starts no host is neither named nor waiting [0.07ms] (pass) install diagnostics name the failed step and public host error [0.28ms] (pass) missing payload tells the operator the architecture and expected server path [0.06ms] (pass) an already added host says so and offers opening its existing terminal [0.04ms] src/canvas/addhost/wizard.test.ts: (pass) a saved-key prompt completing after close never starts an SSH attempt [0.76ms] (pass) fresh CA requires setup before any SSH attempt and preserves root consent [0.32ms] (pass) ready CA begins the requested installation mode without another prompt [0.18ms] (pass) closing during CA confirmation never starts an SSH attempt [0.38ms] (pass) a typed root login requires explicit consent before any installation [0.18ms] ../../packages/ui/src/spring.test.ts: (pass) a missed frame does not stretch a settled spring [5.42ms] (pass) motion follows elapsed time across frame rates and damping regimes [1.64ms] chunk-classes.test.ts: (pass) the first screen is critical, the canvas product module and what only it uses are deferred [2.10ms] (pass) a chunk that both sides use stays critical [6.27ms] (pass) code only an action loads is on demand, even when the lazy canvas is what loads it [0.35ms] test/recovery-ui.test.ts: (pass) compiled recovery UI mode off obeys its URL boundary [13.69ms] (pass) compiled recovery UI mode preview obeys its URL boundary [10.27ms] (pass) compiled recovery UI mode 1 obeys its URL boundary [3.01ms] test/recovery-crypto.test.ts: (pass) HKDF siblings match independent implementation and bind unwrap to domain, account, kind and version [43.14ms] (pass) 100 repeated wrapping operations generate independent salts and nonces [42.20ms] test/recovery-rotation.test.ts: (pass) signed-in rotation sends only a local envelope and verifier after acknowledgement [18.57ms] (pass) abandoned word acknowledgement uploads nothing [10.36ms] (pass) settled acknowledgement cannot upload later (dismissed) [6.56ms] (pass) settled acknowledgement cannot upload later (no acknowledgement) [5.22ms] test/recovery-wait.test.ts: (pass) server remaining wait 0s is accepted through the capability policy maximum [7.52ms] (pass) server remaining wait 86400s is accepted through the capability policy maximum [2.55ms] (pass) server remaining wait 90000s is accepted through the capability policy maximum [1.90ms] (pass) server remaining wait 172800s is accepted through the capability policy maximum [2.47ms] (pass) malformed or excessive remaining wait -1 is denied [2.11ms] (pass) malformed or excessive remaining wait 0.5 is denied [0.91ms] (pass) malformed or excessive remaining wait 172801 is denied [1.52ms] (pass) malformed or excessive remaining wait 9007199254740992 is denied [3.68ms] (pass) malformed or excessive remaining wait 90000 is denied [4.92ms] 154 pass 0 fail 11280 expect() calls Ran 154 tests across 26 files. [1163.00ms] $ bun run build.ts built chunk-st9cmtfv.js, chunk-nha0rj7v.js, chunk-pymxpd8s.js, chunk-frrh7r75.js, chunk-as9ejyv4.js, chunk-9yqtg4bm.js, chunk-5gvm30xx.js, chunk-a895a34j.js, chunk-y9z35mse.js, chunk-gg6f6hz5.js, chunk-7pv2q1pv.js, chunk-fnvcht0d.js, chunk-0g3v75e7.js, main.js, chunk-kdcxvw7m.js, chunk-wn0fy536.js, chunk-gvfq7550.js, chunk-ds5vmej4.js, chunk-1ygheb8n.js, chunk-p07emknq.js, chunk-jkfrj4re.js, chunk-6xbv2xrg.js, chunk-zk8rjff3.js, chunk-axbkkqp1.js, chunk-ax1q0p6f.js, chunk-7eeb0h0x.js, chunk-7v3pzbcy.js, chunk-2fgf8q48.js, chunk-2hyv64vs.js, chunk-v7gpczkt.js, chunk-rp7j0xbt.js, chunk-jc3twpr8.js, chunk-h7qyd8wm.js, chunk-nf3vwrre.js, chunk-9099rps2.js, chunk-yy8tsnxh.js, chunk-m9ftbfk7.js, chunk-fextp724.js, chunk-28rbcdd5.js, chunk-61xwpgvs.js, chunk-ryy15zqq.js, chunk-npbv57fs.js, chunk-hdbnccvd.js, chunk-r2e4y8ht.js, chunk-84c8jnnr.js, chunk-a0k4jng9.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5hnjht6p.js, chunk-f2r0hhqc.js, chunk-8hdt2fh0.js, chunk-1z46kfv2.js, chunk-9xd3g65e.js onDemand chunk-ryy15zqq.js: identity=552 gzip=406 brotli=307 bytes critical chunk-ax1q0p6f.js: identity=703957 gzip=203942 brotli=165278 bytes critical chunk-28rbcdd5.js: identity=39 gzip=39 brotli=39 bytes deferred chunk-v7gpczkt.js: identity=93915 gzip=31921 brotli=28198 bytes onDemand chunk-fnvcht0d.js: identity=4563 gzip=1607 brotli=1433 bytes critical chunk-8hdt2fh0.js: identity=199 gzip=160 brotli=128 bytes onDemand chunk-jc3twpr8.js: identity=540 gzip=353 brotli=313 bytes onDemand chunk-2fgf8q48.js: identity=4575 gzip=2013 brotli=1779 bytes critical chunk-1ygheb8n.js: identity=590 gzip=326 brotli=304 bytes onDemand chunk-fextp724.js: identity=10496 gzip=4087 brotli=3734 bytes onDemand chunk-nf3vwrre.js: identity=5359 gzip=2581 brotli=2302 bytes onDemand chunk-7eeb0h0x.js: identity=6198 gzip=2791 brotli=2523 bytes onDemand chunk-r2e4y8ht.js: identity=6773 gzip=3174 brotli=2888 bytes onDemand chunk-a0k4jng9.js: identity=2316 gzip=1032 brotli=865 bytes onDemand chunk-9yqtg4bm.js: identity=2188 gzip=1048 brotli=878 bytes critical faulty-terminal.worker.js: identity=1086 gzip=558 brotli=486 bytes critical backdrop.worker.js: identity=243 gzip=211 brotli=158 bytes onDemand chunk-0g3v75e7.js: identity=2108 gzip=1037 brotli=870 bytes critical chunk-6xbv2xrg.js: identity=1104 gzip=666 brotli=605 bytes onDemand chunk-as9ejyv4.js: identity=3891 gzip=1737 brotli=1521 bytes critical chunk-hdbnccvd.js: identity=162 gzip=150 brotli=146 bytes onDemand chunk-yy8tsnxh.js: identity=7662 gzip=3396 brotli=2970 bytes onDemand chunk-h7qyd8wm.js: identity=11529 gzip=4651 brotli=4250 bytes critical chunk-st9cmtfv.js: identity=21235 gzip=6854 brotli=6128 bytes onDemand chunk-gg6f6hz5.js: identity=2420 gzip=1197 brotli=1080 bytes critical chunk-a895a34j.js: identity=88 gzip=88 brotli=74 bytes onDemand chunk-9099rps2.js: identity=4640 gzip=1932 brotli=1705 bytes critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes critical chunk-kdcxvw7m.js: identity=8377 gzip=3575 brotli=3197 bytes onDemand chunk-7pv2q1pv.js: identity=191 gzip=171 brotli=135 bytes critical chunk-jkfrj4re.js: identity=386 gzip=237 brotli=196 bytes critical chunk-f2r0hhqc.js: identity=128 gzip=109 brotli=111 bytes onDemand chunk-7v3pzbcy.js: identity=2824 gzip=1385 brotli=1193 bytes critical chunk-9xd3g65e.js: identity=39 gzip=39 brotli=39 bytes onDemand chunk-84c8jnnr.js: identity=31920 gzip=12276 brotli=11048 bytes deferred chunk-frrh7r75.js: identity=42608 gzip=16270 brotli=14307 bytes critical chunk-5hnjht6p.js: identity=9810 gzip=4015 brotli=3454 bytes onDemand chunk-m9ftbfk7.js: identity=13351 gzip=5012 brotli=4479 bytes critical chunk-ds5vmej4.js: identity=17525 gzip=6115 brotli=5442 bytes critical chunk-1z46kfv2.js: identity=41779 gzip=14279 brotli=12777 bytes critical chunk-wn0fy536.js: identity=5443 gzip=2604 brotli=2379 bytes critical chunk-5gvm30xx.js: identity=707 gzip=368 brotli=311 bytes onDemand chunk-zk8rjff3.js: identity=1026 gzip=623 brotli=497 bytes critical chunk-nha0rj7v.js: identity=2943 gzip=1315 brotli=1134 bytes critical main.js: identity=109195 gzip=39819 brotli=34570 bytes onDemand chunk-rp7j0xbt.js: identity=1170 gzip=705 brotli=590 bytes critical chunk-p07emknq.js: identity=2519 gzip=1008 brotli=878 bytes critical chunk-61xwpgvs.js: identity=49 gzip=49 brotli=49 bytes critical chunk-gvfq7550.js: identity=12516 gzip=5003 brotli=4452 bytes onDemand chunk-pymxpd8s.js: identity=5745 gzip=2167 brotli=1922 bytes onDemand chunk-2hyv64vs.js: identity=1616 gzip=864 brotli=739 bytes onDemand chunk-y9z35mse.js: identity=228 gzip=179 brotli=165 bytes onDemand chunk-npbv57fs.js: identity=47781 gzip=15015 brotli=13348 bytes JavaScript transfer, critical: identity=940209 gzip=291619/307200 brotli=242413/256000 bytes JavaScript transfer, deferred: identity=136523 gzip=48191/51200 brotli=42505/45056 bytes JavaScript transfer, onDemand: identity=181662 gzip=71439/20480 brotli=63534/18432 bytes JavaScript transfer, onDemand largest chunk chunk-npbv57fs.js: gzip=15015/20480 brotli=13348/18432 bytes (class total gzip=71439 brotli=63534, 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/mesh-review-revocation.test.ts: (pass) review forbidden event cancels pending snapshot publication [11.51ms] (pass) subscription forbidden ends delivery before a late refresh rejection [1.64ms] (pass) subscription not found ends delivery before a late refresh rejection [1.20ms] (pass) subscription invalid input ends delivery before a late refresh rejection [1.24ms] (pass) subscription mesh unavailable ends delivery before a late refresh rejection [3.58ms] (pass) synchronous subscription refusal releases the transport exactly once [0.24ms] src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [11.01ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.19ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.71ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.18ms] (pass) split mux header preserves trailing Close [0.16ms] src/mesh-review-paged-error.test.ts: (pass) review earlier snapshot continuation failure cannot replace a newer complete refresh [6.19ms] (pass) review earlier snapshot continuation cannot overwrite a delivered revision [2.89ms] (pass) a newer paged event owns publication before an earlier refresh resumes [3.11ms] src/mesh-review-refresh.test.ts: (pass) review superseded refresh failure cannot replace authoritative resync [1.43ms] (pass) superseded failure preserves a newer pending refresh [7.79ms] 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 [4962.19ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [9.81ms] src/mesh.test.ts: (pass) Mesh actions map to their typed action IDs and JSON inputs [1.75ms] (pass) Mesh watch coalesces change bursts and never publishes an older revision [4.29ms] (pass) Mesh watch forwards server errors and stops delivering after unsubscribe [0.13ms] src/mesh-review-continuation.test.ts: (pass) review continuation stops after stop [1.57ms] (pass) review continuation stops after forbidden [1.22ms] (pass) review continuation stops after superseded [1.17ms] src/mesh-pagination.test.ts: (pass) list assembles bounded pages using the same filter [0.27ms] (pass) a changed revision discards earlier pages before assembling its restart [0.12ms] (pass) malformed continuation is refused: {"revision":1,"offset":0} [0.32ms] (pass) malformed continuation is refused: {"revision":2,"offset":1} [0.02ms] (pass) malformed continuation is refused: {"revision":1,"offset":2} (pass) watch never publishes a partial page; withdrawn=false [1.39ms] (pass) watch never publishes a partial page; withdrawn=true [1.20ms] (pass) a superseding equal-revision resync wins over pending page assembly [1.56ms] src/mesh-review-resync.test.ts: (pass) review watch applies same-revision authoritative resync [0.22ms] (pass) authoritative resync keeps priority over an equal-revision pending list [1.47ms] src/mesh-vectors.test.ts: (pass) every shared Mesh action vector passes through the typed client unchanged [1.46ms] (pass) shared Mesh event vectors drive the typed watch adapter [7.42ms] 36 pass 0 fail 34462 expect() calls Ran 36 tests across 10 files. [5.09s] ```
Author
Owner

Merge 9024716528 is pushed only on dev-backmerge. Isolated add-host-prototype.spec.ts fails on both the merge and untouched production 6320f5b5: production 12 passed/2 failed (3.5m), armed chip expected 1/received 0 at line53 and closeReachable expected true/received false at line111. Logs: browser-isolated-add-host-prototype.spec.log and browser-production-add-host-prototype.spec.log, with load samples. Optional real host-facts also fails on both native binaries/fixtures: Kernel hidden in core view, low-memory count0 versus assumed1. Real-shell smoke passes; real static-binary desktop/phone ink/paper captures pass (1 test,29.4s), saved evidence/dev-backmerge/captures/canvas-real/. Complete browser suite and ARM size are still running; no UI changes or merge-only bug identified.

Merge 90247165280a1d1231151aa703ec713838706794 is pushed only on dev-backmerge. Isolated add-host-prototype.spec.ts fails on both the merge and untouched production 6320f5b5: production 12 passed/2 failed (3.5m), armed chip expected 1/received 0 at line53 and closeReachable expected true/received false at line111. Logs: browser-isolated-add-host-prototype.spec.log and browser-production-add-host-prototype.spec.log, with load samples. Optional real host-facts also fails on both native binaries/fixtures: Kernel hidden in core view, low-memory count0 versus assumed1. Real-shell smoke passes; real static-binary desktop/phone ink/paper captures pass (1 test,29.4s), saved evidence/dev-backmerge/captures/canvas-real/. Complete browser suite and ARM size are still running; no UI changes or merge-only bug identified.
Author
Owner

Merge 9024716528: aarch64 --locked release completed, statically linked with no PT_INTERP; accepted size overrun 18,056,792 bytes versus 13,817,816 maximum. Both architecture builds pass linkage checks; both CLI unavailable JSON checks pass. Isolated addhost-chips.spec.ts now passes; original failure was timing under load. Verbatim ARM output:

Running as unit: run-p3327342-i49417400.scope; invocation ID: c47388a34a604529aa93bc686ffaa4a0
   Compiling libc v0.2.190
   Compiling cfg-if v1.0.5
   Compiling pin-project-lite v0.2.17
   Compiling serde_core v1.0.229
   Compiling serde v1.0.229
   Compiling bytes v1.12.1
   Compiling memchr v2.8.3
   Compiling once_cell v1.21.4
   Compiling itoa v1.0.18
   Compiling log v0.4.34
   Compiling tracing-core v0.1.36
   Compiling futures-core v0.3.34
   Compiling zerofrom v0.1.8
   Compiling stable_deref_trait v1.2.1
   Compiling yoke v0.8.3
   Compiling errno v0.3.14
   Compiling socket2 v0.6.5
   Compiling smallvec v1.16.2
   Compiling signal-hook-registry v1.4.8
   Compiling tracing v0.1.44
   Compiling mio v1.2.4
   Compiling zerovec v0.11.8
   Compiling tokio v1.53.2
   Compiling futures-sink v0.3.34
   Compiling subtle v2.6.1
   Compiling slab v0.4.12
   Compiling generic-array v0.14.7
   Compiling typenum v1.20.1
   Compiling tinystr v0.8.4
   Compiling writeable v0.6.4
   Compiling litemap v0.8.3
   Compiling icu_locale_core v2.3.0
   Compiling num-traits v0.2.19
   Compiling potential_utf v0.1.6
   Compiling zerotrie v0.2.5
   Compiling utf8_iter v1.0.4
   Compiling icu_collections v2.3.0
   Compiling icu_provider v2.3.1
   Compiling crypto-common v0.1.7
   Compiling block-buffer v0.10.4
   Compiling icu_normalizer_data v2.3.0
   Compiling icu_properties_data v2.3.0
   Compiling percent-encoding v2.3.2
   Compiling equivalent v1.0.2
   Compiling digest v0.10.7
   Compiling icu_normalizer v2.3.0
   Compiling icu_properties v2.3.0
   Compiling form_urlencoded v1.2.2
   Compiling thiserror v2.0.21
   Compiling futures-task v0.3.34
   Compiling hashbrown v0.17.1
   Compiling futures-io v0.3.34
   Compiling futures-util v0.3.34
   Compiling indexmap v2.14.2
   Compiling idna_adapter v1.2.2
   Compiling cpufeatures v0.2.17
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling idna v1.1.0
   Compiling zmij v1.0.23
   Compiling serde_json v1.0.151
   Compiling url v2.5.8
   Compiling parking_lot_core v0.9.12
   Compiling futures-channel v0.3.34
   Compiling zerocopy v0.8.60
   Compiling crossbeam-utils v0.8.23
   Compiling allocator-api2 v0.2.21
   Compiling foldhash v0.1.5
   Compiling hashbrown v0.15.5
   Compiling parking_lot v0.12.5
   Compiling openssl-sys v0.9.117
   Compiling either v1.18.0
   Compiling getrandom v0.2.17
   Compiling parking v2.2.1
   Compiling rand_core v0.10.1
   Compiling ryu v1.0.23
   Compiling base64 v0.22.1
   Compiling bitflags v2.13.2
   Compiling crc-catalog v2.5.0
   Compiling crc v3.4.0
   Compiling serde_urlencoded v0.7.1
   Compiling event-listener v5.4.2
   Compiling futures-intrusive v0.5.0
   Compiling crossbeam-queue v0.3.14
   Compiling hashlink v0.10.0
   Compiling spin v0.9.9
   Compiling sha2 v0.10.9
   Compiling libsqlite3-sys v0.30.1
   Compiling tokio-stream v0.1.19
   Compiling getrandom v0.4.3
   Compiling sqlx-core v0.8.6
   Compiling flume v0.11.1
   Compiling futures-executor v0.3.34
   Compiling atoi v2.0.0
   Compiling http v1.5.0
   Compiling sqlx-sqlite v0.8.6
   Compiling ppv-lite86 v0.2.21
   Compiling getrandom v0.3.4
   Compiling sqlx v0.8.6
   Compiling foreign-types-shared v0.1.1
   Compiling foreign-types v0.3.2
   Compiling ring v0.17.14
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api)
   Compiling zeroize v1.9.0
   Compiling arrayvec v0.7.8
   Compiling minimal-lexical v0.2.1
   Compiling nom v7.1.3
   Compiling httparse v1.10.1
   Compiling thiserror v1.0.69
   Compiling memoffset v0.9.1
   Compiling rand_core v0.9.5
   Compiling http-body v1.1.0
   Compiling time-core v0.1.9
   Compiling deranged v0.5.8
   Compiling powerfmt v0.2.1
   Compiling untrusted v0.9.0
   Compiling num-conv v0.2.2
   Compiling time v0.3.55
   Compiling nix v0.30.1
   Compiling rand_chacha v0.9.0
   Compiling rusticata-macros v4.1.0
   Compiling rustls-pki-types v1.15.1
   Compiling tokio-util v0.7.19
   Compiling tower-service v0.3.3
   Compiling data-encoding v2.11.1
   Compiling tinyvec v1.13.3
   Compiling rustls v0.23.45
   Compiling asn1-rs v0.6.2
   Compiling rustls-webpki v0.103.15
   Compiling rand v0.9.5
   Compiling uuid v1.27.0
   Compiling chacha20 v0.10.2
   Compiling rand_core v0.6.4
   Compiling num-integer v0.1.47
   Compiling fnv v1.0.7
   Compiling httpdate v1.0.3
   Compiling try-lock v0.2.5
   Compiling base64 v0.21.7
   Compiling lazy_static v1.5.1
   Compiling atomic-waker v1.1.2
   Compiling h2 v0.4.19
   Compiling base64urlsafedata v0.5.5
   Compiling want v0.3.2
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim)
   Compiling oid-registry v0.7.1
   Compiling num-bigint v0.4.8
   Compiling quinn-udp v0.5.16
   Compiling rand v0.10.3
   Compiling vte v0.15.0
   Compiling rand_pcg v0.10.2
   Compiling tower-layer v0.3.3
   Compiling lru-slab v0.1.3
   Compiling rustc-hash v2.1.3
   Compiling mime v0.3.17
   Compiling quinn-proto v0.11.19
   Compiling quinn v0.11.12
   Compiling der-parser v9.0.0
   Compiling hyper v1.11.1
   Compiling http-body-util v0.1.5
   Compiling half v2.7.1
   Compiling sha1 v0.10.7
   Compiling utf8parse v0.2.2
   Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-protocol)
   Compiling sync_wrapper v1.0.2
   Compiling regex-syntax v0.8.11
   Compiling regex-automata v0.4.18
   Compiling anstyle-parse v1.0.0
   Compiling fs-err v3.3.2
   Compiling tungstenite v0.29.0
   Compiling serde_cbor_2 v0.13.0
   Compiling hyper-util v0.1.21
   Compiling x509-parser v0.16.0
   Compiling mime_guess v2.0.5
   Compiling webauthn-rs-proto v0.5.5
   Compiling rand_chacha v0.3.1
   Compiling hex-conservative v0.2.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 v1.0.14
   Compiling anstyle-query v1.1.5
   Compiling hex v0.4.3
   Compiling anstream v1.0.0
   Compiling password-hash v0.5.0
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling arc-swap v1.9.2
   Compiling tokio-tungstenite v0.29.0
   Compiling matchers v0.2.0
   Compiling tower v0.5.3
   Compiling axum-core v0.5.6
   Compiling sharded-slab v0.1.7
   Compiling infraternal-plugin-host-facts v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/host-facts)
   Compiling unicode-normalization v0.1.25
   Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh)
   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 nu-ansi-term v0.50.3
   Compiling strsim v0.11.1
   Compiling clap_lex v1.1.1
   Compiling matchit v0.8.4
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling axum v0.8.9
   Compiling clap_builder v4.6.7
   Compiling tracing-subscriber v0.3.23
   Compiling tower-http v0.6.11
   Compiling argon2 v0.5.3
   Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh)
   Compiling bip39 v2.2.2
   Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
   Compiling clap v4.6.7
   Compiling infraternal-plugin-relay v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/relay)
   Compiling infraternal-plugin-backup v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/backup)
   Compiling openssl v0.10.81
   Compiling tokio-openssl v0.6.5
   Compiling webauthn-attestation-ca v0.5.5
   Compiling webauthn-rs-core v0.5.5
   Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote)
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent)
   Compiling webauthn-rs v0.5.5
   Compiling axum-server v0.8.0
    Finished `release` profile [optimized] target(s) in 38m 26s
/home/kayg/.cache/codex-scratch/dev-backmerge/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 18056792 bytes (baseline 13555672 + allowance 262144 = max 13817816)
binary exceeds the 13817816-byte size budget: 18056792 bytes
Merge 90247165280a1d1231151aa703ec713838706794: aarch64 --locked release completed, statically linked with no PT_INTERP; accepted size overrun 18,056,792 bytes versus 13,817,816 maximum. Both architecture builds pass linkage checks; both CLI unavailable JSON checks pass. Isolated addhost-chips.spec.ts now passes; original failure was timing under load. Verbatim ARM output: ```text Running as unit: run-p3327342-i49417400.scope; invocation ID: c47388a34a604529aa93bc686ffaa4a0 Compiling libc v0.2.190 Compiling cfg-if v1.0.5 Compiling pin-project-lite v0.2.17 Compiling serde_core v1.0.229 Compiling serde v1.0.229 Compiling bytes v1.12.1 Compiling memchr v2.8.3 Compiling once_cell v1.21.4 Compiling itoa v1.0.18 Compiling log v0.4.34 Compiling tracing-core v0.1.36 Compiling futures-core v0.3.34 Compiling zerofrom v0.1.8 Compiling stable_deref_trait v1.2.1 Compiling yoke v0.8.3 Compiling errno v0.3.14 Compiling socket2 v0.6.5 Compiling smallvec v1.16.2 Compiling signal-hook-registry v1.4.8 Compiling tracing v0.1.44 Compiling mio v1.2.4 Compiling zerovec v0.11.8 Compiling tokio v1.53.2 Compiling futures-sink v0.3.34 Compiling subtle v2.6.1 Compiling slab v0.4.12 Compiling generic-array v0.14.7 Compiling typenum v1.20.1 Compiling tinystr v0.8.4 Compiling writeable v0.6.4 Compiling litemap v0.8.3 Compiling icu_locale_core v2.3.0 Compiling num-traits v0.2.19 Compiling potential_utf v0.1.6 Compiling zerotrie v0.2.5 Compiling utf8_iter v1.0.4 Compiling icu_collections v2.3.0 Compiling icu_provider v2.3.1 Compiling crypto-common v0.1.7 Compiling block-buffer v0.10.4 Compiling icu_normalizer_data v2.3.0 Compiling icu_properties_data v2.3.0 Compiling percent-encoding v2.3.2 Compiling equivalent v1.0.2 Compiling digest v0.10.7 Compiling icu_normalizer v2.3.0 Compiling icu_properties v2.3.0 Compiling form_urlencoded v1.2.2 Compiling thiserror v2.0.21 Compiling futures-task v0.3.34 Compiling hashbrown v0.17.1 Compiling futures-io v0.3.34 Compiling futures-util v0.3.34 Compiling indexmap v2.14.2 Compiling idna_adapter v1.2.2 Compiling cpufeatures v0.2.17 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling idna v1.1.0 Compiling zmij v1.0.23 Compiling serde_json v1.0.151 Compiling url v2.5.8 Compiling parking_lot_core v0.9.12 Compiling futures-channel v0.3.34 Compiling zerocopy v0.8.60 Compiling crossbeam-utils v0.8.23 Compiling allocator-api2 v0.2.21 Compiling foldhash v0.1.5 Compiling hashbrown v0.15.5 Compiling parking_lot v0.12.5 Compiling openssl-sys v0.9.117 Compiling either v1.18.0 Compiling getrandom v0.2.17 Compiling parking v2.2.1 Compiling rand_core v0.10.1 Compiling ryu v1.0.23 Compiling base64 v0.22.1 Compiling bitflags v2.13.2 Compiling crc-catalog v2.5.0 Compiling crc v3.4.0 Compiling serde_urlencoded v0.7.1 Compiling event-listener v5.4.2 Compiling futures-intrusive v0.5.0 Compiling crossbeam-queue v0.3.14 Compiling hashlink v0.10.0 Compiling spin v0.9.9 Compiling sha2 v0.10.9 Compiling libsqlite3-sys v0.30.1 Compiling tokio-stream v0.1.19 Compiling getrandom v0.4.3 Compiling sqlx-core v0.8.6 Compiling flume v0.11.1 Compiling futures-executor v0.3.34 Compiling atoi v2.0.0 Compiling http v1.5.0 Compiling sqlx-sqlite v0.8.6 Compiling ppv-lite86 v0.2.21 Compiling getrandom v0.3.4 Compiling sqlx v0.8.6 Compiling foreign-types-shared v0.1.1 Compiling foreign-types v0.3.2 Compiling ring v0.17.14 Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api) Compiling zeroize v1.9.0 Compiling arrayvec v0.7.8 Compiling minimal-lexical v0.2.1 Compiling nom v7.1.3 Compiling httparse v1.10.1 Compiling thiserror v1.0.69 Compiling memoffset v0.9.1 Compiling rand_core v0.9.5 Compiling http-body v1.1.0 Compiling time-core v0.1.9 Compiling deranged v0.5.8 Compiling powerfmt v0.2.1 Compiling untrusted v0.9.0 Compiling num-conv v0.2.2 Compiling time v0.3.55 Compiling nix v0.30.1 Compiling rand_chacha v0.9.0 Compiling rusticata-macros v4.1.0 Compiling rustls-pki-types v1.15.1 Compiling tokio-util v0.7.19 Compiling tower-service v0.3.3 Compiling data-encoding v2.11.1 Compiling tinyvec v1.13.3 Compiling rustls v0.23.45 Compiling asn1-rs v0.6.2 Compiling rustls-webpki v0.103.15 Compiling rand v0.9.5 Compiling uuid v1.27.0 Compiling chacha20 v0.10.2 Compiling rand_core v0.6.4 Compiling num-integer v0.1.47 Compiling fnv v1.0.7 Compiling httpdate v1.0.3 Compiling try-lock v0.2.5 Compiling base64 v0.21.7 Compiling lazy_static v1.5.1 Compiling atomic-waker v1.1.2 Compiling h2 v0.4.19 Compiling base64urlsafedata v0.5.5 Compiling want v0.3.2 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim) Compiling oid-registry v0.7.1 Compiling num-bigint v0.4.8 Compiling quinn-udp v0.5.16 Compiling rand v0.10.3 Compiling vte v0.15.0 Compiling rand_pcg v0.10.2 Compiling tower-layer v0.3.3 Compiling lru-slab v0.1.3 Compiling rustc-hash v2.1.3 Compiling mime v0.3.17 Compiling quinn-proto v0.11.19 Compiling quinn v0.11.12 Compiling der-parser v9.0.0 Compiling hyper v1.11.1 Compiling http-body-util v0.1.5 Compiling half v2.7.1 Compiling sha1 v0.10.7 Compiling utf8parse v0.2.2 Compiling infraternal-protocol v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-protocol) Compiling sync_wrapper v1.0.2 Compiling regex-syntax v0.8.11 Compiling regex-automata v0.4.18 Compiling anstyle-parse v1.0.0 Compiling fs-err v3.3.2 Compiling tungstenite v0.29.0 Compiling serde_cbor_2 v0.13.0 Compiling hyper-util v0.1.21 Compiling x509-parser v0.16.0 Compiling mime_guess v2.0.5 Compiling webauthn-rs-proto v0.5.5 Compiling rand_chacha v0.3.1 Compiling hex-conservative v0.2.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 v1.0.14 Compiling anstyle-query v1.1.5 Compiling hex v0.4.3 Compiling anstream v1.0.0 Compiling password-hash v0.5.0 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling arc-swap v1.9.2 Compiling tokio-tungstenite v0.29.0 Compiling matchers v0.2.0 Compiling tower v0.5.3 Compiling axum-core v0.5.6 Compiling sharded-slab v0.1.7 Compiling infraternal-plugin-host-facts v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/host-facts) Compiling unicode-normalization v0.1.25 Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh) 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 nu-ansi-term v0.50.3 Compiling strsim v0.11.1 Compiling clap_lex v1.1.1 Compiling matchit v0.8.4 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling axum v0.8.9 Compiling clap_builder v4.6.7 Compiling tracing-subscriber v0.3.23 Compiling tower-http v0.6.11 Compiling argon2 v0.5.3 Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh) Compiling bip39 v2.2.2 Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Compiling clap v4.6.7 Compiling infraternal-plugin-relay v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/relay) Compiling infraternal-plugin-backup v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/backup) Compiling openssl v0.10.81 Compiling tokio-openssl v0.6.5 Compiling webauthn-attestation-ca v0.5.5 Compiling webauthn-rs-core v0.5.5 Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent) Compiling webauthn-rs v0.5.5 Compiling axum-server v0.8.0 Finished `release` profile [optimized] target(s) in 38m 26s /home/kayg/.cache/codex-scratch/dev-backmerge/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 18056792 bytes (baseline 13555672 + allowance 262144 = max 13817816) binary exceeds the 13817816-byte size budget: 18056792 bytes ```
Author
Owner

Merge 9024716528: isolated canvas.spec.ts is 36 passed/2 failed on merge (6.6m) and production (6.3m). Persistent failures are touch resize height at line334 and Mac lock key labels at line631 (expected Ctrl/Shift, received glyphs). Logs browser-isolated-canvas.spec.log and browser-production-canvas.spec.log include load samples. Isolated addhost-wizard, addhost-chips, cell-metrics, clusters-flight and clusters-frames now pass; their earlier failures were timing under shared-host load. Full suite and remaining isolated files continue. No merge-only regression identified; no UI changes made.

Merge 90247165280a1d1231151aa703ec713838706794: isolated canvas.spec.ts is 36 passed/2 failed on merge (6.6m) and production (6.3m). Persistent failures are touch resize height at line334 and Mac lock key labels at line631 (expected Ctrl/Shift, received glyphs). Logs browser-isolated-canvas.spec.log and browser-production-canvas.spec.log include load samples. Isolated addhost-wizard, addhost-chips, cell-metrics, clusters-flight and clusters-frames now pass; their earlier failures were timing under shared-host load. Full suite and remaining isolated files continue. No merge-only regression identified; no UI changes made.
Author
Owner

Merge-only contract finding at crates/plugins/remote/src/cli.rs: new CLI action metadata declares JsonSchema::command_result() but deployed output.rs::report emits action/state/message/next, and removal may pass through its named hosted response. Existing generic-envelope fixtures do not execute those adapters. Proposed additive correction: keep all deployed bytes and hosted SchemaRef contracts; describe the remote operator object/optional known status fields without falsely requiring a dev envelope. Add a black-box binary regression with an explicit nonexistent --data path (no enrollment material read), observe failure before fixing metadata. This fix will be a separate atomic commit under D16/D202; no parser/auth/transport behavior or dependency changes.

Merge-only contract finding at crates/plugins/remote/src/cli.rs: new CLI action metadata declares JsonSchema::command_result() but deployed output.rs::report emits action/state/message/next, and removal may pass through its named hosted response. Existing generic-envelope fixtures do not execute those adapters. Proposed additive correction: keep all deployed bytes and hosted SchemaRef contracts; describe the remote operator object/optional known status fields without falsely requiring a dev envelope. Add a black-box binary regression with an explicit nonexistent --data path (no enrollment material read), observe failure before fixing metadata. This fix will be a separate atomic commit under D16/D202; no parser/auth/transport behavior or dependency changes.
Author
Owner

Fix-up gate had one auth socket session_gone failure: websocket unexpectedly None at auth/tests.rs:1731; that test passed in both earlier full gates. Exact rerun passes (1 passed,1.30s). Required detached dev baseline lacks this production #158 regression (0 selected,151 filtered), so no #118 waiver is applied. Complete fast gate is rerunning; all rows must pass except the known size ceiling. Baseline/rerun output is retained below verbatim.

Merge rerun:

Running as unit: run-p4165263-i50255128.scope; invocation ID: ef336275ad1541928d02e263a3068b0b
   Compiling sqlx-core v0.8.6
   Compiling sqlx-sqlite v0.8.6
   Compiling sqlx-macros-core v0.8.6
   Compiling uuid v1.27.0
   Compiling sqlx-macros v0.8.6
   Compiling sqlx v0.8.6
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim)
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api)
   Compiling webauthn-attestation-ca v0.5.5
   Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh)
   Compiling webauthn-rs-core v0.5.5
   Compiling tokio-openssl v0.6.5
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh)
   Compiling axum-server v0.8.0
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh)
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent)
warning: variable does not need to be mutable
  --> crates/infraternal-agent/src/cli.rs:14:9
   |
14 |     let mut plugin = PluginDefinition::new(
   |         ----^^^^^^
   |         |
   |         help: remove this `mut`
   |
   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: `infraternal-agent` (lib) generated 1 warning (run `cargo fix --lib -p infraternal-agent` to apply 1 suggestion)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 5m 21s
     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-281eeb97e9a78966)

running 1 test
test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok

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

Detached dev baseline:

Running as unit: run-p4178678-i50268542.scope; invocation ID: 0acb588f02c341e0a44af532c3f68dd7
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
   Compiling hyper v1.11.1
   Compiling nix v0.30.1
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-plugin-api)
   Compiling infraternal-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-mesh)
   Compiling hyper-util v0.1.21
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-server)
   Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-protocol)
   Compiling axum v0.8.9
   Compiling axum-server v0.8.0
   Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/plugins/mesh)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 4m 52s
     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-2e762f2bc8cf85aa)

running 0 tests

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

Fix-up gate had one auth socket session_gone failure: websocket unexpectedly None at auth/tests.rs:1731; that test passed in both earlier full gates. Exact rerun passes (1 passed,1.30s). Required detached dev baseline lacks this production #158 regression (0 selected,151 filtered), so no #118 waiver is applied. Complete fast gate is rerunning; all rows must pass except the known size ceiling. Baseline/rerun output is retained below verbatim. Merge rerun: ```text Running as unit: run-p4165263-i50255128.scope; invocation ID: ef336275ad1541928d02e263a3068b0b Compiling sqlx-core v0.8.6 Compiling sqlx-sqlite v0.8.6 Compiling sqlx-macros-core v0.8.6 Compiling uuid v1.27.0 Compiling sqlx-macros v0.8.6 Compiling sqlx v0.8.6 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim) Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api) Compiling webauthn-attestation-ca v0.5.5 Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh) Compiling webauthn-rs-core v0.5.5 Compiling tokio-openssl v0.6.5 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh) Compiling axum-server v0.8.0 Compiling webauthn-rs v0.5.5 Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent) warning: variable does not need to be mutable --> crates/infraternal-agent/src/cli.rs:14:9 | 14 | let mut plugin = PluginDefinition::new( | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: `infraternal-agent` (lib) generated 1 warning (run `cargo fix --lib -p infraternal-agent` to apply 1 suggestion) Finished `test` profile [unoptimized + debuginfo] target(s) in 5m 21s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-281eeb97e9a78966) running 1 test test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 196 filtered out; finished in 1.30s ``` Detached dev baseline: ```text Running as unit: run-p4178678-i50268542.scope; invocation ID: 0acb588f02c341e0a44af532c3f68dd7 Blocking waiting for file lock on package cache Blocking waiting for file lock on build directory Compiling hyper v1.11.1 Compiling nix v0.30.1 Compiling infraternal-plugin-api v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-plugin-api) Compiling infraternal-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-mesh) Compiling hyper-util v0.1.21 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-server) Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-protocol) Compiling axum v0.8.9 Compiling axum-server v0.8.0 Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/plugins/mesh) Finished `test` profile [unoptimized + debuginfo] target(s) in 4m 52s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-2e762f2bc8cf85aa) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 151 filtered out; finished in 0.00s ```
Author
Owner

Second CLI compatibility finding: production server setup-token --json exposes token at the root, while the dev handler retained in the merge exposes only data.token. To keep both readers, propose an additive root token alias on that command alone, retaining the versioned envelope and typed data.token. The server-owned output schema will declare the optional alias. Reuse the JSON serializer with an action-specific flattened wrapper; no private capability goes to logs or argv. Regression will use an unregistered synthetic response on a private fixture socket and exercise both JSON access paths without printing values. This will be a separate atomic fix after the metadata fix (D16/D202/D217, #163).

Second CLI compatibility finding: production server setup-token --json exposes token at the root, while the dev handler retained in the merge exposes only data.token. To keep both readers, propose an additive root token alias on that command alone, retaining the versioned envelope and typed data.token. The server-owned output schema will declare the optional alias. Reuse the JSON serializer with an action-specific flattened wrapper; no private capability goes to logs or argv. Regression will use an unregistered synthetic response on a private fixture socket and exercise both JSON access paths without printing values. This will be a separate atomic fix after the metadata fix (D16/D202/D217, #163).
Author
Owner

Metadata fix committed and pushed: b9f21b8237. Black-box remote response regression: before 0 passed/1 failed (missing schema_version), after 1 passed/0 failed. CLI unit tests 64 passed. Clean aggregate gate: 687 passed/0 failed/66 ignored; all rows except accepted static size pass, x86_64 20,290,864 bytes. Removed local workspace artifacts after dev baseline target reuse caused stale protocol metadata; external dependencies retained, later baseline targets must be separate. Full browser gate completed 423 passed/81 failed/38 skipped (2.5h); isolated diagnostics continue, with production parent reproductions. Setup-token additive root alias is the next separate compatibility fix.

Metadata fix committed and pushed: b9f21b8237ef5393c0a5bcbaea30e17e6acaeeb8. Black-box remote response regression: before 0 passed/1 failed (missing schema_version), after 1 passed/0 failed. CLI unit tests 64 passed. Clean aggregate gate: 687 passed/0 failed/66 ignored; all rows except accepted static size pass, x86_64 20,290,864 bytes. Removed local workspace artifacts after dev baseline target reuse caused stale protocol metadata; external dependencies retained, later baseline targets must be separate. Full browser gate completed 423 passed/81 failed/38 skipped (2.5h); isolated diagnostics continue, with production parent reproductions. Setup-token additive root alias is the next separate compatibility fix.
Author
Owner

Completed setup-output compatibility fix: f5a9d02cd9, pushed only dev-backmerge. Private synthetic fixture: before 0 passed/1 failed (legacy reader); after 1 passed/0 failed. Both root token and data.token readers now work; no registered credential read or logged. Required Nix fast gate: fmt, native fmt, compile-out, clippy, workspace tests and cargo-deny pass; x86 static-pie has no PT_INTERP, size 20,295,024 bytes versus known 16,404,816 ceiling. Verbatim output is retained in verify-fast-setup.log and will be attached in chunks. ARM --locked validation is running. Browser complete: 423 passed, 81 failed, 38 skipped; isolated comparisons ongoing for the last timing-sensitive case.

Completed setup-output compatibility fix: f5a9d02cd9092daf0320d49397912d9b86d3e304, pushed only dev-backmerge. Private synthetic fixture: before 0 passed/1 failed (legacy reader); after 1 passed/0 failed. Both root token and data.token readers now work; no registered credential read or logged. Required Nix fast gate: fmt, native fmt, compile-out, clippy, workspace tests and cargo-deny pass; x86 static-pie has no PT_INTERP, size 20,295,024 bytes versus known 16,404,816 ceiling. Verbatim output is retained in verify-fast-setup.log and will be attached in chunks. ARM --locked validation is running. Browser complete: 423 passed, 81 failed, 38 skipped; isolated comparisons ongoing for the last timing-sensitive case.
Author
Owner

Browser gate complete: 423 passed, 81 failed, 38 skipped (542 cases, 2.5h), port 4637. Every failed file was rerun alone; browser-matrix.md maps all 30 files to raw merge/production results. Persistent failures reproduce on production; timing-sensitive cases pass alone. Predictive screenshot initially passed on production at load 9.55/14.17/19.66, but the same hidden-overlay assertion subsequently fails on both merge and production at 27.57/30.40/29.48 and 39.04/34.32/31.14. Glyph case passes on both in those final runs. Browser source/harness/UI/codecs are byte-identical to production; real/server.ts differs but is unused by this gate. No UI changes made to satisfy stale expectations. Raw complete output and isolated output are attached verbatim in follow-up chunks. Production-build real PTY and four viewport/theme capture checks pass.

Browser gate complete: 423 passed, 81 failed, 38 skipped (542 cases, 2.5h), port 4637. Every failed file was rerun alone; browser-matrix.md maps all 30 files to raw merge/production results. Persistent failures reproduce on production; timing-sensitive cases pass alone. Predictive screenshot initially passed on production at load 9.55/14.17/19.66, but the same hidden-overlay assertion subsequently fails on both merge and production at 27.57/30.40/29.48 and 39.04/34.32/31.14. Glyph case passes on both in those final runs. Browser source/harness/UI/codecs are byte-identical to production; real/server.ts differs but is unused by this gate. No UI changes made to satisfy stale expectations. Raw complete output and isolated output are attached verbatim in follow-up chunks. Production-build real PTY and four viewport/theme capture checks pass.
Author
Owner

#163 verbatim evidence: verify-fast-setup.log (1/5)

Running as unit: run-p357735-i50641397.scope; invocation ID: 245820221f9343ad92bc9f66c8eaef75
METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=297.66 p99_ms=307.17 result=PASS

==> fmt

==> VT native fmt

==> CLI plugin compile-out
disabled CLI plugin dependencies: absent from normal dependency graph
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
warning: variable does not need to be mutable
   --> crates/infraternal/src/cli/actions.rs:110:9
    |
110 |     let mut plugin = PluginDefinition::new(
    |         ----^^^^^^
    |         |
    |         help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: `infraternal` (bin "infraternal" test) generated 1 warning (run `cargo fix --bin "infraternal" -p infraternal --tests` to apply 1 suggestion)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 2.45s
     Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-3b46d02e044fd543)

running 24 tests
test cli::actions::tests::agent_session_integration_target_is_gated_by_agent_plugin ... ok
test cli::actions::tests::compiled_out_mesh_has_no_registered_commands ... ok
test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok
test cli::actions::tests::server_only_dependencies_are_removed_with_server_plugin ... ok
test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok
test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok
test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok
test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok
test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok
test cli::actions::tests::no_default_plugins_register_no_component_commands ... ok
test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok
test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok
test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok
test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok
test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok
test cli::command_tree::tests::compiled_out_plugin_has_no_help_or_parse_path ... ok
test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok
test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok
test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok
test status_tests::custom_named_server_service_is_reported_as_running ... ok
test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok
test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok
test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok
test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok

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


==> clippy
    Checking infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
    Checking infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Checking infraternal-fuzz v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/fuzz)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.57s

==> test
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 03s
     Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-33c5a16771df4842)

running 64 tests
test cli::actions::tests::enabled_mesh_plugin_registers_its_component_commands ... ok
test cli::actions::hosted_tests::production_descriptors_share_cli_registry_and_skills ... ok
test cli::actions::tests::registered_actions_include_plugin_permission_contract_fields ... ok
test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok
test cli::actions::factory_tests::plugin_command_materializes_only_its_owner_and_discovery_remains_complete ... ok
test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok
test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok
test cli::command_tree::tests::server_init_parses_confirmation_plan_and_server_configuration ... ok
test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok
test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok
test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok
test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok
test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok
test cli::command_tree::tests::parser_uses_plugin_inputs_and_accepts_json_after_a_leaf_command ... ok
test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok
test cli::command_tree::backmerge_tests::removal_and_retention_inputs_keep_the_production_runtime_bindings ... ok
test cli::command_tree::backmerge_tests::restart_inherits_private_state_before_or_after_the_command ... ok
test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok
test embedded_cli::tests::dispatch_keeps_public_help_operator_modes_and_foreign_commands ... ok
test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok
test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok
test cli::skills::tests::generated_skill_contains_front_matter_inputs_outputs_and_safety ... ok
test remote::tests::local_identity_load_refuses_symlink_and_shared_file ... ok
test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok
test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok
test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok
test remote::tests::join_dns_failure_reports_resolution_instead_of_generic_refusal ... ok
test failure_data_tests::server_errors_keep_the_registered_result_data_shapes ... ok
test remote::tests::ordinary_join_keeps_the_foreground_connection_default ... ok
test remote::tests::preparation_refuses_shared_and_symlinked_data_directories ... ok
test remote::tests::oversized_or_invalid_invitation_fails_before_local_state_is_created ... ok
test embedded_cli::tests::inherited_flags_keep_public_parser_validation_and_values ... ok
test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok
test remote::tests::ssh_installation_can_enroll_before_starting_the_service ... ok
test remote::tests::uid_and_privilege_mismatch_fails_before_key_generation ... ok
test remote_server::tests::independent_review_remote_operator_commands_accept_json_output ... ok
test remote_server::tests::missing_ca_refuses_before_database_or_listener_creation ... ok
test remote_server::tests::service_dry_run_preserves_remote_listener_and_private_trust_path ... ok
test remote_server::tests::remote_activation_is_explicit_and_ca_override_requires_listener ... ok
test restart::tests::default_restart_opens_the_receiver_target_exactly_once ... ok
test restart::tests::private_control_endpoint_cannot_be_stolen_or_created_by_a_client ... ok
test restart::tests::private_path_prefix_cannot_authorize_a_parent_directory_escape ... ok
test remote::tests::publication_is_private_and_never_replaces_existing_identity ... ok
test restart::tests::early_hangup_is_queued_until_control_installs_its_handler ... ok
test remote_server::tests::failed_cold_configuration_still_disposes_handoff_stdin ... ok
test remote::tests::renewal_publication_replaces_only_certificate_and_preserves_private_metadata ... ok
test restart::tests::replacement_never_exports_to_a_general_purpose_binary ... ok
test restart::tests::restart_requests_use_the_servers_binary_and_reject_untrusted_paths ... ok
test restart::tests::root_owned_marked_target_requires_protected_root_parents ... ok
test restart::tests::reviewer_fifo_replacement_is_refused_without_waiting_for_a_writer ... ok
test restart::tests::runtime_directory_symlinks_and_public_permissions_are_refused ... ok
test restart::tests::closed_reply_and_missing_reload_target_do_not_end_restart_control ... ok
test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok
test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok
test status_tests::custom_named_server_service_is_reported_as_running ... ok
test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok
test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok
test restart::tests::restart_request_logs_kernel_peer_target_and_cold_outcome ... ok
test restart::tests::rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode ... ok
test restart::tests::cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null ... ok
test remote_server::tests::failed_restart_endpoint_does_not_prevent_http_serving ... ok
test restart::tests::real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin ... ok
test restart::tests::reload_reopens_install_path_when_the_running_inode_was_replaced ... ok
test restart::tests::runtime_shutdown_never_waits_forever_on_a_blocking_waiter ... ok

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

     Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_daemon-13ff2987ab904bcf)

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 43.99s

     Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_queues-1e6041ad696872db)

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 36.41s

     Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_review-31e4a4510a70dbc6)

running 8 tests
test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok
test reaped_shim_exit_survives_credit_after_starvation_deadline ... ok
test last_typist_selects_its_own_real_pty_dimensions ... ok
test initial_attach_requires_explicit_credit_before_replay ... ok
test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok
test retained_unwritten_input_survives_interleaved_ack_restart ... ok
test local_session_counts_and_memory_refusals_follow_real_lifecycle ... ok
test repeated_tiny_credit_pauses_preserve_shell_progress ... ok

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

     Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_sessions-a62f2007428bd442)

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.07s

     Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/idle_canary-92b03be7558ff4b6)

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.23s

     Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-87e082b77639cc07)

running 1 test
test remote_refusal_matches_its_declared_cli_output ... ok

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

     Running tests/session_bounds_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_bounds_review-bc86f61d44bfc7ea)

running 1 test
test attached_window_recovers_final_output_and_exit_after_shim_link_detaches ... ok

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

     Running tests/session_retention.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_retention-a104d04ca590a00f)

running 1 test
test bounded_owned_exit_reconnects_as_ended_with_status ... ok

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

     Running tests/setup_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/setup_output-13237b1463f39e50)

running 1 test
test setup_output_keeps_legacy_and_versioned_readers ... ok

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

     Running tests/shim.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/shim-c000a9366fcaed2c)

running 13 tests
test detached_shell_exit_reaps_shim_within_one_second ... ok
test disallowed_signal_only_disconnects_peer ... ok
test detached_shell_exit_reaps_even_with_a_live_background_descendant ... ok
test double_fork_survives_parent_death ... ok
test unowned_normal_exit_retires_promptly_and_records_status ... ok
test replacement_connection_and_malformed_limit ... ok
test real_shell_reconnect_resize_and_delivered_exit ... ok
test delivered_exit_cannot_release_another_owning_window ... ok
test owned_exit_releases_promptly_on_window_close ... ok
active
test owned_exit_maximum_retires_with_status_even_with_an_unread_data_peer ... ok
test user_scope_survives_parent_unit_stop ... ok
test attached_backpressure_and_detached_progress ... ok
test ring_wrap_snapshot_repaints_real_vim ... ok

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

     Running tests/ssh_askpass.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/ssh_askpass-bd7248d3f9f1d216)

running 3 tests
test encrypted_key_without_passphrase_never_prompts_on_a_controlling_terminal ... ignored, run under the disposable controlling-terminal harness
test real_cli_askpass_refuses_unregistered_parent_and_cleans_helper ... ok
test real_cli_unlocks_an_encrypted_synthetic_key_on_private_pipes ... ok

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

     Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_credit-abfa1ef4aba23d87)

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 21.69s

     Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_reconnect-69f97db79e168c8c)

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 18.05s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_agent-55009bb09fe52301)

running 67 tests
test daemon::gone_tests::scale_review::two_hundred_vanished_sessions_preserve_the_same_channel ... ignored, scale measurement; run alone under CPUWeight=10000
test daemon::readiness_tests::reply_lane_memory_at_1000_channels ... ignored, queue-only scale diagnostic; run alone without build/browser overlap, not whole-daemon memory
test cli::tests::agent_actions_are_complete_and_unavailable_until_lifecycle_exists ... ok
test daemon::readiness_tests::control_precedes_bulk_without_reordering_snapshot_notice ... ok
test daemon::readiness_tests::uninstall_handoff_runs_only_after_a_successful_real_socket_write ... ok
test daemon::session_commands::measurements::command_coordination_cost_against_existing_fifo ... ignored, release command coordination diagnostic, not end-to-end throughput; run without own build overlap
test daemon::session_commands::tests::credit_above_one_wire_word_is_exact_and_idle_after_drain ... ok
test daemon::session_commands::tests::credit_allowance_does_not_cross_ordered_command_barriers ... ok
test daemon::gone_tests::a_vanished_session_gets_a_final_close_and_the_channel_stays_up ... ok
test daemon::session_commands::tests::credit_bursts_do_not_consume_ordered_input_capacity ... ok
test daemon::session_commands::tests::input_and_resize_keep_their_shared_fifo_order_around_credit ... ok
test daemon::stream_memory_tests::terminal_stream_memory_at_200 ... ignored, weighted release measurement of 200 idle relay tasks
test lifecycle::tests::directory_inode_changes_do_not_retire_the_same_process ... ok
test daemon::session_commands::tests::zero_credit_is_idle_and_overflow_refuses_without_mutating_accounting ... ok
test lifecycle::tests::process_birth_parser_handles_command_bytes_and_numeric_bounds ... ok
test lifecycle::tests::window_ownership_and_process_identity_bound_live_counts ... ok
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 daemon::remote_tests::wrong_enrolled_uid_is_refused_before_state_creation ... 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 remote_client::tests::expired_local_identity_stops_instead_of_retrying_forever ... ok
test daemon::readiness_tests::saturated_replies_retire_connection_without_awaiting_writer_capacity ... ok
test lifecycle::tests::nondumpable_process_keeps_its_authenticated_lifetime ... ok
test remote_client::tests::rootless_uid_mismatch_is_refused_before_dial ... ok
test remote_client::tests::supervisor_300ms_quic_and_blocked_udp_fallback ... ignored, supervisor establishment diagnostic; run alone without builds or browsers
test daemon::remote_tests::wrong_open_uid_is_rejected_while_control_remains_usable ... ok
test daemon::remote_tests::cancelling_remote_dispatch_retires_the_borrowed_authenticated_channel ... ok
test remote_client::tests::tcp_winner_cancels_silent_udp_drivers_without_waiting_for_drain ... ok
test remote_client::tests::prefixed_control_keeps_coalesced_suffix_and_suppresses_only_its_greeting ... ok
test remote_client::tests::unavailable_udp_does_not_add_seconds_before_tcp_admission ... ok
test remote_native_tests::control_must_be_host_initiated_stream_zero_and_terminal_halves_cannot_impersonate_it ... ok
test remote_native_tests::bound_writer_uses_raw_frames_and_rejects_cross_writer_transmit ... ok
test remote_client::tests::delayed_proxy_keeps_replies_bound_to_the_original_udp_client ... ok
test remote_native_tests::terminal::gone_review::retired_native_session_delivers_saved_status_then_final_close_before_retirement ... ok
test remote_native_tests::partial_native_write_cancellation_retires_both_directions ... ok
test remote_native_tests::terminal::credits::private_credit_burst_waits_for_its_shim_without_retiring_native_stream ... ok
test remote_native_tests::terminal::gone_review::retiring_native_handshake_preserves_final_answer_with_inflight_commands ... ok
test remote_client::tests::tcp_proxy_preserves_spacing_between_packets_already_in_flight ... ok
test remote_native_tests::terminal::real_pty_resumes_native_writer_after_25_connection_replacements ... ignored, real CLI/shim oracle; set INFRATERNAL_TEST_BINARY and run alone under CPUWeight10000
test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok
test remote_native_tests::terminal::gone_review::vanished_native_session_delivers_final_close_before_stream_retirement ... 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 remote_client::tests::winning_quic_drops_the_unfinished_tls_dial_before_control_dispatch ... ok
test sessions::tests::bounds::discovery_recovers_more_than_128_authenticated_sockets ... ok
test daemon::remote_tests::control_greeting_precedes_actions_and_odd_writers_are_refused ... ok
test remote_client::tests::tcp_proxy_flushes_bounded_flood_before_half_close ... ok
test transport_diagnostics::quic_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap
test transport_diagnostics::quic_bulk_50m_exact_bytes ... ignored, size investigation diagnostic; run alone without build or browser overlap
test transport_diagnostics::tcp_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap
test transport::remote_deadline_tests::coalesced_partial_suffix_keeps_its_arrival_deadline ... ok
test transport::remote_deadline_tests::queued_suffix_cannot_complete_an_expired_cancelled_frame ... ok
test transport::remote_deadline_tests::remote_partial_frame_deadline_survives_receive_cancellation ... ok
test transport::remote_deadline_tests::wholly_idle_remote_channel_has_no_frame_expiry ... ok
test remote_native_tests::terminal::gone_review::retired_native_status_bounds_final_reply_drain_for_a_stuck_peer ... ok
test remote_native_tests::terminal::gone_review::vanished_native_session_bounds_final_reply_drain_for_a_stuck_peer ... ok
test daemon::remote_tests::silent_authenticated_peer_has_a_greeting_deadline ... ok

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

     Running tests/transport.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/transport-1684b2d50f3ced83)

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.04s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_mesh-850732030b85431f)

running 1 test
test cli::tests::mesh_actions_are_complete_with_optional_ssh_connectivity ... ok

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

     Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/default_arrow-a4f0585450cc3f1a)

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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/properties-3531fcee3ddf5930)

running 14 tests
test overlaps_are_reported_without_silent_range_changes ... ok
test directional_grants_union_and_minimal_updates ... ok
test join_to_same_tag_grants_both_initiation_directions ... ok
test names_versions_and_backend_status ... ok
test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok
test exhausted_versions_reject_mutations_without_changing_state ... ok
test private_material_never_enters_debug_or_coordination_serialization ... ok
test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok
test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok
test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok
test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... 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 14.24s

     Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/rotation_time-21c724304f47a722)

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.03s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_api-3fd14f2bc447abb6)

running 15 tests
test action::tests::command_result_schema_keeps_action_data_typed_inside_stable_envelope ... ok
test action::tests::any_of_permissions_are_machine_readable_and_empty_authority_is_rejected ... ok
test action::tests::command_result_schema_has_required_stable_fields_and_optional_next_step ... ok
test admission::tests::memory_refusal_round_trips_without_losing_legacy_error ... ok
test component_tests::component_declarations_cannot_create_servers ... ok
test component_tests::destructive_actions_require_a_dry_run_and_every_action_has_instructions ... ok
test action::tests::only_hidden_internal_routes_may_use_the_reserved_prefix ... ok
test action::tests::registry_rejects_inconsistent_json_schemas ... ok
test tests::registry_rejects_oversized_json_before_plugin_dispatch ... ok
test tests::registry_routes_only_declared_actions ... ok
test tests::deferred_plugin_effect_waits_for_successful_reply_and_drops_on_cancellation ... ok
test routing::tests::topic_is_borrowed_and_other_filter_fields_are_left_to_the_plugin ... ok
test action::tests::registry_rejects_missing_action_guidance_and_command_collisions ... ok
test routing::tests::invalid_or_oversized_topics_are_refused ... ok
test action::tests::registry_keeps_plugin_ownership_and_exact_command_paths ... ok

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

     Running tests/routing_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/routing_review-36ddc27c5ff6e5f0)

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.01s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_backup-3ecef0badd3fbed3)

running 1 test
test cli::tests::backup_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_host_facts-b4ecdc58024bdef7)

running 13 tests
test memory::tests::default_floor_refuses_only_below_headroom_even_above_128_sessions ... ok
test memory::tests::custom_policy_rounds_up_and_validates_all_settings_before_use ... ok
test tests::action_decoders_reject_unknown_and_oversized_fields ... ok
test tests::descriptor_declares_default_settings_actions_and_no_hidden_role_dependency ... ok
test tests::configured_memory_floor_refuses_with_current_host_counters ... ok
test tests::compatibility_fields_are_kept_in_the_rust_shape_and_architecture_on_wire ... ok
test tests::linux_load_average_text_ignores_proc_metadata_and_rejects_invalid_values ... ok
test tests::macos_load_average_decodes_the_bounded_64_bit_sysctl_shape ... ok
test tests::os_release_parser_rejects_unbounded_input_and_ignores_untrusted_lines ... ok
test tests::os_release_uses_distribution_name_and_version_without_shell_evaluation ... ok
test session_counts_tests::host_owned_session_counts_are_additive_and_refresh_on_request ... ok
test tests::runtime_disable_drops_cached_facts_and_reenable_collects_them_again ... ok
test tests::static_facts_are_cached_and_live_counters_are_collected_only_when_requested ... ok

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_mesh-511a4bf9a22ffb59)

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/dev-backmerge/target/debug/deps/infraternal_plugin_relay-b92e7fc872866129)

running 1 test
test cli::tests::relay_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_remote-286c85db01c89fc3)

running 12 tests
test remote_quic::tests::wrong_server_name_never_yields_authenticated_connection ... ok
test remote_tls::tests::untrusted_client_never_reaches_server_admission ... ok
test uninstall::tests::bootstrap_lock_delays_uninstall_without_omitting_its_handler ... ok
test remote_tls::tests::cancelled_partial_write_cannot_reuse_the_channel ... ok
test uninstall::tests::uninstall_never_accepts_request_selected_paths_or_foreign_identity ... ok
test remote_tls::tests::untrusted_server_or_wrong_server_name_is_refused_before_bytes ... ok
test remote_tls::tests::mutual_tls_delivers_exact_bytes_and_verified_leaf_fingerprints ... ok
test remote_quic::tests::host_cannot_open_a_second_server_control_stream ... ok
test remote_quic::tests::repeated_native_id_has_distinct_server_writer_authority_and_preserves_suffix ... ok
test uninstall::tests::retirement_signals_the_shell_after_its_foreground_job_exits ... ok
test remote_quic::tests::acknowledged_idle_survives_and_a_silent_path_times_out ... ok
test remote_tls::tests::stalled_write_retires_both_directions_without_idle_polling ... ok

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_ssh-09034dc0689fcdf8)

running 13 tests
test auth_once::tests::caller_cannot_choose_or_extend_the_expiry_clock ... ok
test auth_once::tests::invalid_material_is_refused_before_any_helper_or_scheduling ... ok
test cli::tests::ssh_actions_are_complete_and_marked_unavailable ... ok
test config::tests::flattened_quoted_public_filenames_are_refused_when_existing_trust_would_be_lost ... ok
test prompt::tests::reply_fixture ... ignored, private subprocess for the one-reply peer oracle
test config::tests::unresolved_or_relative_public_paths_cannot_admit_first_contact ... ok
test auth_once::tests::each_method_consumes_once_and_expiry_erases_both_methods ... ok
test config::tests::malformed_public_policy_is_refused_before_it_can_change_command_arguments ... ok
test manifest::tests::node_provisioning_declares_an_existing_server_and_only_node_components ... ok
test config::tests::trust_lookup_uses_every_explicit_alias_verbatim ... ok
test config::tests::configured_private_sources_are_excluded_and_public_trust_is_retained ... ok
test transport::secret_tests::secret_input_has_a_fixed_bound_and_accepts_only_strings ... ok

running 1 test
test prompt::tests::reply_fixture ... ok

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

test prompt::tests::helper_reply_requires_the_registered_parent_and_is_served_once ... ok

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

     Running tests/auth_order.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/auth_order-ba511af2879396f6)

running 6 tests
test only_exhausted_auth_returns_typed_choose_method ... ok
test authentication_never_replays_a_mutating_first_command_or_reuses_a_failed_scope ... ok
test trust_network_and_remote_command_failures_stop_without_loading_local_secrets ... ok
test successful_authentication_is_reported_and_later_secrets_are_never_requested ... ok
test cancelling_authentication_consumes_the_attempt_without_requesting_secrets ... ok
test later_command_auth_errors_never_restart_the_selected_method_sequence ... ok

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

     Running tests/build_removal.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/build_removal-12d95e0577561718)

running 1 test
test build_without_default_plugins_excludes_ssh_dependency ... ok

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

     Running tests/concurrency.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/concurrency-9e818aeee9f5a865)

running 7 tests
test a_thousand_admitted_targets_keep_eight_active_backend_calls ... ignored, explicit CPUWeight10000 scale measurement with a controlled unavailable backend
test entire_batch_validates_before_start_and_duplicates_are_refused ... ok
test an_interrupted_disable_keeps_admission_closed_until_its_adapter_retires ... ok
test authenticated_batches_retain_an_opaque_session_for_trusted_issuance ... ok
test concurrency_is_eight_across_batches_and_all_ten_hosts_fail_independently ... ok
test turning_off_drains_queued_work_and_reenable_never_resumes_old_batches ... ok
test component_off_retires_a_real_native_helper ... ok

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

     Running tests/config_isolation.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/config_isolation-4c052ffa2763fa0a)

running 1 test
test configured_identity_paths_are_not_inherited_by_the_command_child ... ok

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

     Running tests/credentials.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/credentials-56c8bb7fa0901abf)

running 3 tests
test password_helpers_prepare_a_fresh_private_root_and_remove_only_their_directory ... ok
test password_socket_refuses_an_unrelated_same_user_process ... ok
test credential_helper_refuses_host_trust_and_permission_prompts ... ok

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

     Running tests/diagnostics.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/diagnostics-c6256406c6ab3818)

running 5 tests
test effective_configuration_never_scans_a_proxy_or_invalid_endpoint ... ok
test mesh_policy_requires_both_discovery_facts_and_a_transport_refusal ... ok
test failed_join_retains_only_the_allowlisted_host_dns_error ... ok
test remote_command_text_is_not_ssh_authority_and_never_enters_logs ... ok
test dynamic_public_trust_is_retained_without_becoming_file_only_admission ... ok

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

     Running tests/event_metadata.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/event_metadata-fb74d64a91ebc133)

running 1 test
test unsupported_host_reports_method_and_retry_never_replays_it_as_current ... ok

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

     Running tests/foreground.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/foreground-ea42b8ff6ec85942)

running 1 test
test configured_backgrounding_is_overridden_for_owned_bootstrap_commands ... ok

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

     Running tests/host_trust.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/host_trust-34ce022bb9284f9a)

running 2 tests
test configured_known_hosts_command_revocation_cannot_offer_first_contact ... ignored, run through research/ssh-client/measure.py with its synthetic public host key
test first_contact_needs_fresh_authority_and_never_replaces_existing_trust ... ignored, run through research/ssh-client/measure.py --negative-trust-oracle with its memory-held synthetic key

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

     Running tests/install.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/install-28c5c8776ffc4161)

running 29 tests
test command_failure_names_upload_join_install_and_start_separately ... ok
test fresh_cleanup_refuses_a_shared_writable_receipt_parent_before_mutation ... ok
test fresh_cleanup_resumes_after_base_removal_and_retires_its_receipt ... ok
test cleanup_receipt_cannot_authorize_a_replaced_unowned_directory ... ok
test denied_linger_request_does_not_undo_a_later_external_enable ... ok
test acknowledged_linger_noop_does_not_own_later_external_enable ... ok
test foreign_files_and_another_attempt_lock_are_never_removed ... ok
test fresh_cleanup_resumes_after_owner_marker_removal_with_a_fresh_session ... ok
#163 verbatim evidence: verify-fast-setup.log (1/5) ```text Running as unit: run-p357735-i50641397.scope; invocation ID: 245820221f9343ad92bc9f66c8eaef75 METRIC name=network_rtt_selftest configured_rtt_ms=300 jitter_ms=30 loss=unsupported transport=tcp-stream n=3 p50_ms=297.66 p99_ms=307.17 result=PASS ==> fmt ==> VT native fmt ==> CLI plugin compile-out disabled CLI plugin dependencies: absent from normal dependency graph Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) warning: variable does not need to be mutable --> crates/infraternal/src/cli/actions.rs:110:9 | 110 | let mut plugin = PluginDefinition::new( | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: `infraternal` (bin "infraternal" test) generated 1 warning (run `cargo fix --bin "infraternal" -p infraternal --tests` to apply 1 suggestion) Finished `test` profile [unoptimized + debuginfo] target(s) in 2.45s Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-3b46d02e044fd543) running 24 tests test cli::actions::tests::agent_session_integration_target_is_gated_by_agent_plugin ... ok test cli::actions::tests::compiled_out_mesh_has_no_registered_commands ... ok test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok test cli::actions::tests::server_only_dependencies_are_removed_with_server_plugin ... ok test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok test cli::actions::tests::no_default_plugins_register_no_component_commands ... ok test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok test cli::command_tree::tests::compiled_out_plugin_has_no_help_or_parse_path ... ok test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok test status_tests::custom_named_server_service_is_reported_as_running ... ok test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s ==> clippy Checking infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Checking infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Checking infraternal-fuzz v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/fuzz) Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.57s ==> test Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 03s Running unittests src/main.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal-33c5a16771df4842) running 64 tests test cli::actions::tests::enabled_mesh_plugin_registers_its_component_commands ... ok test cli::actions::hosted_tests::production_descriptors_share_cli_registry_and_skills ... ok test cli::actions::tests::registered_actions_include_plugin_permission_contract_fields ... ok test cli::actions::tests::hidden_session_shim_is_registered_to_its_runtime_handler ... ok test cli::actions::factory_tests::plugin_command_materializes_only_its_owner_and_discovery_remains_complete ... ok test cli::command_tree::tests::hidden_session_shim_parser_uses_the_registered_input_schema ... ok test cli::actions::tests::every_registered_action_has_description_and_step_by_step_guidance ... ok test cli::command_tree::tests::server_init_parses_confirmation_plan_and_server_configuration ... ok test cli::command_tree::tests::skill_parser_accepts_a_multi_part_command_and_write_directory ... ok test cli::command_tree::tests::root_help_uses_registered_descriptions_and_long_action_guidance ... ok test cli::output::tests::json_snapshot_has_stable_versioned_fields_and_omits_absent_details ... ok test cli::output::tests::non_terminal_pretty_snapshot_has_aligned_details_and_table ... ok test cli::output::tests::pretty_snapshot_omits_empty_skill_write_sections ... ok test cli::command_tree::tests::parser_uses_plugin_inputs_and_accepts_json_after_a_leaf_command ... ok test cli::output::tests::pretty_tables_omit_empty_columns_and_rows ... ok test cli::command_tree::backmerge_tests::removal_and_retention_inputs_keep_the_production_runtime_bindings ... ok test cli::command_tree::backmerge_tests::restart_inherits_private_state_before_or_after_the_command ... ok test cli::output::tests::terminal_snapshot_uses_color_but_still_wraps_to_the_requested_width ... ok test embedded_cli::tests::dispatch_keeps_public_help_operator_modes_and_foreign_commands ... ok test failure_data_tests::unavailable_results_keep_registered_data_shapes ... ok test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test cli::skills::tests::generated_skill_contains_front_matter_inputs_outputs_and_safety ... ok test remote::tests::local_identity_load_refuses_symlink_and_shared_file ... ok test cli::output::tests::registered_action_output_schemas_accept_typed_json_envelopes ... ok test failure_data_tests::skill_errors_keep_the_registered_result_data_shape ... ok test dispatch_tests::hidden_session_shim_dispatches_from_the_registered_action ... ok test remote::tests::join_dns_failure_reports_resolution_instead_of_generic_refusal ... ok test failure_data_tests::server_errors_keep_the_registered_result_data_shapes ... ok test remote::tests::ordinary_join_keeps_the_foreground_connection_default ... ok test remote::tests::preparation_refuses_shared_and_symlinked_data_directories ... ok test remote::tests::oversized_or_invalid_invitation_fails_before_local_state_is_created ... ok test embedded_cli::tests::inherited_flags_keep_public_parser_validation_and_values ... ok test cli::skills::tests::writing_skills_creates_one_file_per_visible_action ... ok test remote::tests::ssh_installation_can_enroll_before_starting_the_service ... ok test remote::tests::uid_and_privilege_mismatch_fails_before_key_generation ... ok test remote_server::tests::independent_review_remote_operator_commands_accept_json_output ... ok test remote_server::tests::missing_ca_refuses_before_database_or_listener_creation ... ok test remote_server::tests::service_dry_run_preserves_remote_listener_and_private_trust_path ... ok test remote_server::tests::remote_activation_is_explicit_and_ca_override_requires_listener ... ok test restart::tests::default_restart_opens_the_receiver_target_exactly_once ... ok test restart::tests::private_control_endpoint_cannot_be_stolen_or_created_by_a_client ... ok test restart::tests::private_path_prefix_cannot_authorize_a_parent_directory_escape ... ok test remote::tests::publication_is_private_and_never_replaces_existing_identity ... ok test restart::tests::early_hangup_is_queued_until_control_installs_its_handler ... ok test remote_server::tests::failed_cold_configuration_still_disposes_handoff_stdin ... ok test remote::tests::renewal_publication_replaces_only_certificate_and_preserves_private_metadata ... ok test restart::tests::replacement_never_exports_to_a_general_purpose_binary ... ok test restart::tests::restart_requests_use_the_servers_binary_and_reject_untrusted_paths ... ok test restart::tests::root_owned_marked_target_requires_protected_root_parents ... ok test restart::tests::reviewer_fifo_replacement_is_refused_without_waiting_for_a_writer ... ok test restart::tests::runtime_directory_symlinks_and_public_permissions_are_refused ... ok test restart::tests::closed_reply_and_missing_reload_target_do_not_end_restart_control ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test startup_tests::process_dumpability_is_disabled_before_dispatch ... ok test status_tests::custom_named_server_service_is_reported_as_running ... ok test status_tests::custom_named_stopped_server_service_is_reported_as_stopped ... ok test status_tests::unrelated_services_do_not_appear_as_infraternal_servers ... ok test restart::tests::restart_request_logs_kernel_peer_target_and_cold_outcome ... ok test restart::tests::rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode ... ok test restart::tests::cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null ... ok test remote_server::tests::failed_restart_endpoint_does_not_prevent_http_serving ... ok test restart::tests::real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin ... ok test restart::tests::reload_reopens_install_path_when_the_running_inode_was_replaced ... ok test restart::tests::runtime_shutdown_never_waits_forever_on_a_blocking_waiter ... ok test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.41s Running tests/agent_daemon.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_daemon-13ff2987ab904bcf) 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 43.99s Running tests/agent_queues.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_queues-1e6041ad696872db) 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 36.41s Running tests/agent_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_review-31e4a4510a70dbc6) running 8 tests test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok test reaped_shim_exit_survives_credit_after_starvation_deadline ... ok test last_typist_selects_its_own_real_pty_dimensions ... ok test initial_attach_requires_explicit_credit_before_replay ... ok test two_writers_keep_independent_ack_and_exact_input_after_restart ... ok test retained_unwritten_input_survives_interleaved_ack_restart ... ok test local_session_counts_and_memory_refusals_follow_real_lifecycle ... ok test repeated_tiny_credit_pauses_preserve_shell_progress ... ok test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.43s Running tests/agent_sessions.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/agent_sessions-a62f2007428bd442) 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.07s Running tests/idle_canary.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/idle_canary-92b03be7558ff4b6) 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.23s Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-87e082b77639cc07) running 1 test test remote_refusal_matches_its_declared_cli_output ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/session_bounds_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_bounds_review-bc86f61d44bfc7ea) running 1 test test attached_window_recovers_final_output_and_exit_after_shim_link_detaches ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s Running tests/session_retention.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/session_retention-a104d04ca590a00f) running 1 test test bounded_owned_exit_reconnects_as_ended_with_status ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.85s Running tests/setup_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/setup_output-13237b1463f39e50) running 1 test test setup_output_keeps_legacy_and_versioned_readers ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/shim.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/shim-c000a9366fcaed2c) running 13 tests test detached_shell_exit_reaps_shim_within_one_second ... ok test disallowed_signal_only_disconnects_peer ... ok test detached_shell_exit_reaps_even_with_a_live_background_descendant ... ok test double_fork_survives_parent_death ... ok test unowned_normal_exit_retires_promptly_and_records_status ... ok test replacement_connection_and_malformed_limit ... ok test real_shell_reconnect_resize_and_delivered_exit ... ok test delivered_exit_cannot_release_another_owning_window ... ok test owned_exit_releases_promptly_on_window_close ... ok active test owned_exit_maximum_retires_with_status_even_with_an_unread_data_peer ... ok test user_scope_survives_parent_unit_stop ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.60s Running tests/ssh_askpass.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/ssh_askpass-bd7248d3f9f1d216) running 3 tests test encrypted_key_without_passphrase_never_prompts_on_a_controlling_terminal ... ignored, run under the disposable controlling-terminal harness test real_cli_askpass_refuses_unregistered_parent_and_cleans_helper ... ok test real_cli_unlocks_an_encrypted_synthetic_key_on_private_pipes ... ok test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.22s Running tests/vt_credit.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_credit-abfa1ef4aba23d87) 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 21.69s Running tests/vt_reconnect.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/vt_reconnect-69f97db79e168c8c) 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 18.05s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_agent-55009bb09fe52301) running 67 tests test daemon::gone_tests::scale_review::two_hundred_vanished_sessions_preserve_the_same_channel ... ignored, scale measurement; run alone under CPUWeight=10000 test daemon::readiness_tests::reply_lane_memory_at_1000_channels ... ignored, queue-only scale diagnostic; run alone without build/browser overlap, not whole-daemon memory test cli::tests::agent_actions_are_complete_and_unavailable_until_lifecycle_exists ... ok test daemon::readiness_tests::control_precedes_bulk_without_reordering_snapshot_notice ... ok test daemon::readiness_tests::uninstall_handoff_runs_only_after_a_successful_real_socket_write ... ok test daemon::session_commands::measurements::command_coordination_cost_against_existing_fifo ... ignored, release command coordination diagnostic, not end-to-end throughput; run without own build overlap test daemon::session_commands::tests::credit_above_one_wire_word_is_exact_and_idle_after_drain ... ok test daemon::session_commands::tests::credit_allowance_does_not_cross_ordered_command_barriers ... ok test daemon::gone_tests::a_vanished_session_gets_a_final_close_and_the_channel_stays_up ... ok test daemon::session_commands::tests::credit_bursts_do_not_consume_ordered_input_capacity ... ok test daemon::session_commands::tests::input_and_resize_keep_their_shared_fifo_order_around_credit ... ok test daemon::stream_memory_tests::terminal_stream_memory_at_200 ... ignored, weighted release measurement of 200 idle relay tasks test lifecycle::tests::directory_inode_changes_do_not_retire_the_same_process ... ok test daemon::session_commands::tests::zero_credit_is_idle_and_overflow_refuses_without_mutating_accounting ... ok test lifecycle::tests::process_birth_parser_handles_command_bytes_and_numeric_bounds ... ok test lifecycle::tests::window_ownership_and_process_identity_bound_live_counts ... ok 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 daemon::remote_tests::wrong_enrolled_uid_is_refused_before_state_creation ... 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 remote_client::tests::expired_local_identity_stops_instead_of_retrying_forever ... ok test daemon::readiness_tests::saturated_replies_retire_connection_without_awaiting_writer_capacity ... ok test lifecycle::tests::nondumpable_process_keeps_its_authenticated_lifetime ... ok test remote_client::tests::rootless_uid_mismatch_is_refused_before_dial ... ok test remote_client::tests::supervisor_300ms_quic_and_blocked_udp_fallback ... ignored, supervisor establishment diagnostic; run alone without builds or browsers test daemon::remote_tests::wrong_open_uid_is_rejected_while_control_remains_usable ... ok test daemon::remote_tests::cancelling_remote_dispatch_retires_the_borrowed_authenticated_channel ... ok test remote_client::tests::tcp_winner_cancels_silent_udp_drivers_without_waiting_for_drain ... ok test remote_client::tests::prefixed_control_keeps_coalesced_suffix_and_suppresses_only_its_greeting ... ok test remote_client::tests::unavailable_udp_does_not_add_seconds_before_tcp_admission ... ok test remote_native_tests::control_must_be_host_initiated_stream_zero_and_terminal_halves_cannot_impersonate_it ... ok test remote_native_tests::bound_writer_uses_raw_frames_and_rejects_cross_writer_transmit ... ok test remote_client::tests::delayed_proxy_keeps_replies_bound_to_the_original_udp_client ... ok test remote_native_tests::terminal::gone_review::retired_native_session_delivers_saved_status_then_final_close_before_retirement ... ok test remote_native_tests::partial_native_write_cancellation_retires_both_directions ... ok test remote_native_tests::terminal::credits::private_credit_burst_waits_for_its_shim_without_retiring_native_stream ... ok test remote_native_tests::terminal::gone_review::retiring_native_handshake_preserves_final_answer_with_inflight_commands ... ok test remote_client::tests::tcp_proxy_preserves_spacing_between_packets_already_in_flight ... ok test remote_native_tests::terminal::real_pty_resumes_native_writer_after_25_connection_replacements ... ignored, real CLI/shim oracle; set INFRATERNAL_TEST_BINARY and run alone under CPUWeight10000 test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok test remote_native_tests::terminal::gone_review::vanished_native_session_delivers_final_close_before_stream_retirement ... 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 remote_client::tests::winning_quic_drops_the_unfinished_tls_dial_before_control_dispatch ... ok test sessions::tests::bounds::discovery_recovers_more_than_128_authenticated_sockets ... ok test daemon::remote_tests::control_greeting_precedes_actions_and_odd_writers_are_refused ... ok test remote_client::tests::tcp_proxy_flushes_bounded_flood_before_half_close ... ok test transport_diagnostics::quic_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap test transport_diagnostics::quic_bulk_50m_exact_bytes ... ignored, size investigation diagnostic; run alone without build or browser overlap test transport_diagnostics::tcp_300ms_and_1000_connection_pairs ... ignored, diagnostic only; run alone without build or browser overlap test transport::remote_deadline_tests::coalesced_partial_suffix_keeps_its_arrival_deadline ... ok test transport::remote_deadline_tests::queued_suffix_cannot_complete_an_expired_cancelled_frame ... ok test transport::remote_deadline_tests::remote_partial_frame_deadline_survives_receive_cancellation ... ok test transport::remote_deadline_tests::wholly_idle_remote_channel_has_no_frame_expiry ... ok test remote_native_tests::terminal::gone_review::retired_native_status_bounds_final_reply_drain_for_a_stuck_peer ... ok test remote_native_tests::terminal::gone_review::vanished_native_session_bounds_final_reply_drain_for_a_stuck_peer ... ok test daemon::remote_tests::silent_authenticated_peer_has_a_greeting_deadline ... ok test result: ok. 56 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 5.28s Running tests/transport.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/transport-1684b2d50f3ced83) 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.04s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_mesh-850732030b85431f) running 1 test test cli::tests::mesh_actions_are_complete_with_optional_ssh_connectivity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/default_arrow.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/default_arrow-a4f0585450cc3f1a) 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/properties-3531fcee3ddf5930) running 14 tests test overlaps_are_reported_without_silent_range_changes ... ok test directional_grants_union_and_minimal_updates ... ok test join_to_same_tag_grants_both_initiation_directions ... ok test names_versions_and_backend_status ... ok test arrow_replacement_is_atomic_and_unrelated_nodes_keep_their_versions ... ok test exhausted_versions_reject_mutations_without_changing_state ... ok test private_material_never_enters_debug_or_coordination_serialization ... ok test checkpoint_after_suffix_change_restores_without_reallocating_addresses ... ok test public_checkpoint_preserves_addresses_rules_versions_and_overlap ... ok test server_rotation_has_continuous_keys_for_every_node_during_delivery ... ok test rotation_waits_for_overlap_and_delivery_and_removal_drops_every_key ... 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 14.24s Running tests/rotation_time.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/rotation_time-21c724304f47a722) 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.03s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_api-3fd14f2bc447abb6) running 15 tests test action::tests::command_result_schema_keeps_action_data_typed_inside_stable_envelope ... ok test action::tests::any_of_permissions_are_machine_readable_and_empty_authority_is_rejected ... ok test action::tests::command_result_schema_has_required_stable_fields_and_optional_next_step ... ok test admission::tests::memory_refusal_round_trips_without_losing_legacy_error ... ok test component_tests::component_declarations_cannot_create_servers ... ok test component_tests::destructive_actions_require_a_dry_run_and_every_action_has_instructions ... ok test action::tests::only_hidden_internal_routes_may_use_the_reserved_prefix ... ok test action::tests::registry_rejects_inconsistent_json_schemas ... ok test tests::registry_rejects_oversized_json_before_plugin_dispatch ... ok test tests::registry_routes_only_declared_actions ... ok test tests::deferred_plugin_effect_waits_for_successful_reply_and_drops_on_cancellation ... ok test routing::tests::topic_is_borrowed_and_other_filter_fields_are_left_to_the_plugin ... ok test action::tests::registry_rejects_missing_action_guidance_and_command_collisions ... ok test routing::tests::invalid_or_oversized_topics_are_refused ... ok test action::tests::registry_keeps_plugin_ownership_and_exact_command_paths ... ok test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running tests/routing_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/routing_review-36ddc27c5ff6e5f0) 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.01s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_backup-3ecef0badd3fbed3) running 1 test test cli::tests::backup_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_host_facts-b4ecdc58024bdef7) running 13 tests test memory::tests::default_floor_refuses_only_below_headroom_even_above_128_sessions ... ok test memory::tests::custom_policy_rounds_up_and_validates_all_settings_before_use ... ok test tests::action_decoders_reject_unknown_and_oversized_fields ... ok test tests::descriptor_declares_default_settings_actions_and_no_hidden_role_dependency ... ok test tests::configured_memory_floor_refuses_with_current_host_counters ... ok test tests::compatibility_fields_are_kept_in_the_rust_shape_and_architecture_on_wire ... ok test tests::linux_load_average_text_ignores_proc_metadata_and_rejects_invalid_values ... ok test tests::macos_load_average_decodes_the_bounded_64_bit_sysctl_shape ... ok test tests::os_release_parser_rejects_unbounded_input_and_ignores_untrusted_lines ... ok test tests::os_release_uses_distribution_name_and_version_without_shell_evaluation ... ok test session_counts_tests::host_owned_session_counts_are_additive_and_refresh_on_request ... ok test tests::runtime_disable_drops_cached_facts_and_reenable_collects_them_again ... ok test tests::static_facts_are_cached_and_live_counters_are_collected_only_when_requested ... ok test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_mesh-511a4bf9a22ffb59) 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/dev-backmerge/target/debug/deps/infraternal_plugin_relay-b92e7fc872866129) running 1 test test cli::tests::relay_actions_are_complete_and_unavailable_until_runtime_exists ... 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/dev-backmerge/target/debug/deps/infraternal_plugin_remote-286c85db01c89fc3) running 12 tests test remote_quic::tests::wrong_server_name_never_yields_authenticated_connection ... ok test remote_tls::tests::untrusted_client_never_reaches_server_admission ... ok test uninstall::tests::bootstrap_lock_delays_uninstall_without_omitting_its_handler ... ok test remote_tls::tests::cancelled_partial_write_cannot_reuse_the_channel ... ok test uninstall::tests::uninstall_never_accepts_request_selected_paths_or_foreign_identity ... ok test remote_tls::tests::untrusted_server_or_wrong_server_name_is_refused_before_bytes ... ok test remote_tls::tests::mutual_tls_delivers_exact_bytes_and_verified_leaf_fingerprints ... ok test remote_quic::tests::host_cannot_open_a_second_server_control_stream ... ok test remote_quic::tests::repeated_native_id_has_distinct_server_writer_authority_and_preserves_suffix ... ok test uninstall::tests::retirement_signals_the_shell_after_its_foreground_job_exits ... ok test remote_quic::tests::acknowledged_idle_survives_and_a_silent_path_times_out ... ok test remote_tls::tests::stalled_write_retires_both_directions_without_idle_polling ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.31s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_plugin_ssh-09034dc0689fcdf8) running 13 tests test auth_once::tests::caller_cannot_choose_or_extend_the_expiry_clock ... ok test auth_once::tests::invalid_material_is_refused_before_any_helper_or_scheduling ... ok test cli::tests::ssh_actions_are_complete_and_marked_unavailable ... ok test config::tests::flattened_quoted_public_filenames_are_refused_when_existing_trust_would_be_lost ... ok test prompt::tests::reply_fixture ... ignored, private subprocess for the one-reply peer oracle test config::tests::unresolved_or_relative_public_paths_cannot_admit_first_contact ... ok test auth_once::tests::each_method_consumes_once_and_expiry_erases_both_methods ... ok test config::tests::malformed_public_policy_is_refused_before_it_can_change_command_arguments ... ok test manifest::tests::node_provisioning_declares_an_existing_server_and_only_node_components ... ok test config::tests::trust_lookup_uses_every_explicit_alias_verbatim ... ok test config::tests::configured_private_sources_are_excluded_and_public_trust_is_retained ... ok test transport::secret_tests::secret_input_has_a_fixed_bound_and_accepts_only_strings ... ok running 1 test test prompt::tests::reply_fixture ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 12 filtered out; finished in 0.02s test prompt::tests::helper_reply_requires_the_registered_parent_and_is_served_once ... ok test result: ok. 12 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.06s Running tests/auth_order.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/auth_order-ba511af2879396f6) running 6 tests test only_exhausted_auth_returns_typed_choose_method ... ok test authentication_never_replays_a_mutating_first_command_or_reuses_a_failed_scope ... ok test trust_network_and_remote_command_failures_stop_without_loading_local_secrets ... ok test successful_authentication_is_reported_and_later_secrets_are_never_requested ... ok test cancelling_authentication_consumes_the_attempt_without_requesting_secrets ... ok test later_command_auth_errors_never_restart_the_selected_method_sequence ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/build_removal.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/build_removal-12d95e0577561718) running 1 test test build_without_default_plugins_excludes_ssh_dependency ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.57s Running tests/concurrency.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/concurrency-9e818aeee9f5a865) running 7 tests test a_thousand_admitted_targets_keep_eight_active_backend_calls ... ignored, explicit CPUWeight10000 scale measurement with a controlled unavailable backend test entire_batch_validates_before_start_and_duplicates_are_refused ... ok test an_interrupted_disable_keeps_admission_closed_until_its_adapter_retires ... ok test authenticated_batches_retain_an_opaque_session_for_trusted_issuance ... ok test concurrency_is_eight_across_batches_and_all_ten_hosts_fail_independently ... ok test turning_off_drains_queued_work_and_reenable_never_resumes_old_batches ... ok test component_off_retires_a_real_native_helper ... ok test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.07s Running tests/config_isolation.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/config_isolation-4c052ffa2763fa0a) running 1 test test configured_identity_paths_are_not_inherited_by_the_command_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s Running tests/credentials.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/credentials-56c8bb7fa0901abf) running 3 tests test password_helpers_prepare_a_fresh_private_root_and_remove_only_their_directory ... ok test password_socket_refuses_an_unrelated_same_user_process ... ok test credential_helper_refuses_host_trust_and_permission_prompts ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/diagnostics.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/diagnostics-c6256406c6ab3818) running 5 tests test effective_configuration_never_scans_a_proxy_or_invalid_endpoint ... ok test mesh_policy_requires_both_discovery_facts_and_a_transport_refusal ... ok test failed_join_retains_only_the_allowlisted_host_dns_error ... ok test remote_command_text_is_not_ssh_authority_and_never_enters_logs ... ok test dynamic_public_trust_is_retained_without_becoming_file_only_admission ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/event_metadata.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/event_metadata-fb74d64a91ebc133) running 1 test test unsupported_host_reports_method_and_retry_never_replays_it_as_current ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running tests/foreground.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/foreground-ea42b8ff6ec85942) running 1 test test configured_backgrounding_is_overridden_for_owned_bootstrap_commands ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s Running tests/host_trust.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/host_trust-34ce022bb9284f9a) running 2 tests test configured_known_hosts_command_revocation_cannot_offer_first_contact ... ignored, run through research/ssh-client/measure.py with its synthetic public host key test first_contact_needs_fresh_authority_and_never_replaces_existing_trust ... ignored, run through research/ssh-client/measure.py --negative-trust-oracle with its memory-held synthetic key test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/install.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/install-28c5c8776ffc4161) running 29 tests test command_failure_names_upload_join_install_and_start_separately ... ok test fresh_cleanup_refuses_a_shared_writable_receipt_parent_before_mutation ... ok test fresh_cleanup_resumes_after_base_removal_and_retires_its_receipt ... ok test cleanup_receipt_cannot_authorize_a_replaced_unowned_directory ... ok test denied_linger_request_does_not_undo_a_later_external_enable ... ok test acknowledged_linger_noop_does_not_own_later_external_enable ... ok test foreign_files_and_another_attempt_lock_are_never_removed ... ok test fresh_cleanup_resumes_after_owner_marker_removal_with_a_fresh_session ... ok ```
Author
Owner

#163 verbatim evidence: verify-fast-setup.log (2/5)

test active_service_stop_failure_never_replaces_live_artifacts ... ok
test failed_upgrade_preserves_previous_binary_state_and_unit ... ok
test fresh_receipt_is_removed_before_transaction_rollback ... ok
test fresh_runtime_symlink_never_removes_foreign_empty_directories ... ok
test interrupted_linger_reply_retains_intent_for_cleanup ... ok
test fresh_rollback_resumes_after_transaction_directory_removal ... ok
test linked_owner_marker_is_refused_before_retiring_the_transaction ... ok
test fresh_runtime_unexpected_data_keeps_ownership_and_cleanup_receipt ... ok
test fresh_runtime_empty_directories_do_not_block_rollback_and_retry ... ok
test fresh_failure_removes_owned_artifacts_and_success_can_rejoin ... ok
test interrupted_restore_recreates_links_without_deleting_the_original ... ok
test interrupted_upgrade_after_acknowledged_stop_restarts_the_previous_service ... ok
test refused_previous_service_stop_only_removes_staging ... ok
test interrupted_rollback_never_deletes_already_restored_state_on_retry ... ok
test pending_fresh_cleanup_refuses_replacement_staging_until_finished ... ok
test retry_cleanup_uses_fresh_session_and_preserves_privilege_consent ... ok
test writable_installation_is_refused_before_upload_or_cleanup ... ok
test linger_policy_denial_is_a_warning_and_owned_changes_are_reversible ... ok
test rejoin_preserves_existing_host_identity_in_the_private_staging_state ... ok
test malformed_or_exposed_cleanup_receipts_never_remove_the_owned_root ... ok
test rollback_stop_refusal_retains_artifacts_for_later_cleanup ... ok

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

     Running tests/model.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/model-47ce6d8f579454b5)

running 4 tests
test root_consent_is_required_before_ssh_and_uid_zero_cannot_be_rootless ... ok
test addresses_never_become_options_or_shell_syntax ... ok
test consent_and_credential_references_are_the_only_request_authority ... ok
test check_is_exact_bounded_and_rejects_every_truncation ... ok

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

     Running tests/probe_check.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/probe_check-aa6f45376a1e61b2)

running 1 test
test manager_availability_does_not_request_its_private_environment ... ok

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

     Running tests/process.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/process-2293ddd9c4b2b81e)

running 5 tests
test cancellation_retires_the_helper_descendant_too ... ok
test completed_helper_retires_descendants_with_closed_pipes ... ok
test oversized_remote_output_is_bounded_and_active_timeout_is_enforced ... ok
test reviewer_ssh_helper_does_not_inherit_server_reload_mask ... ok
test group_identity_is_retained_until_inherited_pipes_finish ... ok

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

     Running tests/proxy_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/proxy_policy-9102030c0de790a1)

running 1 test
test unchecked_proxy_hops_are_refused_before_credential_helpers_or_network ... ok

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

     Running tests/real_ssh.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/real_ssh-880d0bf59f30aab0)

running 1 test
test actual_ssh_authentication_check_and_strict_host_key_rejection ... ignored, run through research/ssh-client/measure.py with the synthetic rootless sshd fixture

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

     Running tests/single_connection.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/single_connection-591d406e19cd5710)

running 1 test
test one_physical_connection_erases_helpers_and_refuses_reconnect ... ignored, run through the rootless real-sshd fixture, selecting this test only

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

     Running tests/source_completeness.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/source_completeness-708cbbd30d3deeb9)

running 1 test
test declared_public_modules_have_committed_sources ... ok

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

     Running tests/trust_round2.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/trust_round2-64018245a742684c)

running 2 tests
test long_data_directory_does_not_bound_the_ssh_helper_socket ... ignored, scripts/test-ssh-host-trust.py supplies the real multi-key target
test multi_key_target_trusts_once_and_reconnects_without_a_loop ... ignored, scripts/test-ssh-host-trust.py supplies a real multi-key sshd and memory-held credentials

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_protocol-e4eeb92d35d69a68)

running 7 tests
test stream_tests::split_mux_header_preserves_trailing_close ... ok
test stream_tests::all_short_frame_splits_match_direct_decoding ... ok
test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... 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.05s

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-bbd2e3486ad5e912)

running 323 tests
test auth::cookies::measurement::cookie_latency_at_50_sessions ... ignored, local optimized cookie reader measurement at 50 browser sessions
test auth::cookies::tests::duplicates_missing_invalid_and_nontext_fail_closed ... ok
test auth::cookies::tests::joined_split_reordered_and_other_cookies ... ok
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... 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::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::crypto::verifier_tests::fixture_waits_while_production_hashing_refuses_capacity ... ok
test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok
test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok
test auth::tests::ca_administration_tests::actual_ca_unlock_cost_at_1000_administrator_records ... ignored, release real authority diagnostic at1000 memberships/copies; no concurrent own build/browser
test auth::tests::ca_administration_tests::actual_passkey_unlocks_cold_ca_once_and_leaves_no_extra_browser_session ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::ca_administration_tests::administrator_with_stale_tap_must_make_a_new_verified_proof_to_unlock ... ok
test auth::tests::ca_administration_tests::bootstrap_requires_a_fresh_real_proof_and_publishes_only_wrapped_ca_material ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::ca_administration_tests::concurrent_bootstrap_ceremonies_retain_one_issuer_and_replay_is_refused ... ok
test auth::tests::ca_administration_tests::http_tests::ca_body_admission_at_1000_requests ... ignored, 1000-request body admission diagnostic; run alone without builds
test auth::tests::ca_administration_tests::foreign_browser_cannot_consume_the_original_ca_unlock_ceremony ... ok
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::ca_administration_tests::http_tests::ca_finish_body_deadline_returns_its_admission_slot ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_exact_origin_and_live_cookie_are_required ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_parser_is_bounded_and_errors_do_not_reflect_wrapping_material ... ok
test auth::tests::ca_administration_tests::changed_generation_expired_session_or_removed_credential_cannot_unlock ... ok
test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_real_passkey_unlock_returns_only_lock_status_without_a_session_cookie ... ok
test auth::tests::ca_administration_tests::http_tests::ca_http_refuses_origin_and_cookie_before_decoding_wrapping_material ... ok
test auth::tests::ca_administration_tests::http_tests::ca_status_distinguishes_initial_setup_from_locked_retained_trust ... ok
test auth::tests::ca_administration_tests::http_tests::first_machine_certificate_setup_starts_a_fresh_passkey_ceremony ... ok
test auth::tests::ca_administration_tests::http_tests::independent_review_ca_body_reads_share_the_eight_request_admission_limit ... ok
test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok
test auth::tests::ca_administration_tests::http_tests::independent_review_ca_headers_are_refused_before_reading_an_unfinished_body ... ok
test auth::tests::ca_administration_tests::new_administrator_device_rewraps_pending_copy_and_role_generation_never_resurrects_it ... ok
test auth::tests::ca_administration_tests::ordinary_login_ceremony_has_no_ca_unlock_purpose ... ok
test auth::tests::ca_administration_tests::shipping_cli_tests::bootstrap_cli::fresh_release_bootstrap_join_renew_revoke_cuts_a_live_connection ... ignored, configured release E2E requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443
test auth::tests::ca_administration_tests::shipping_cli_tests::configured_release_cli_cold_lock_real_passkey_unlock_and_cold_restart ... ignored, configured release CLI proof needs INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443
test auth::tests::ca_administration_tests::pending_administrator_cannot_replace_the_last_retained_wrapped_copy ... ok
test auth::tests::ca_administration_tests::published_issuer_without_memory_projection_is_recovered_as_locked_trust ... ok
test auth::tests::ca_administration_tests::role_changes_require_fresh_purpose_bound_proofs_and_recheck_owner_permission ... ok
test auth::tests::ca_administration_tests::role_grant_is_pending_and_revoke_removes_old_copy_without_restoring_old_authority ... ok
test auth::tests::ca_membership_tests::administrator_guard_cost_at_1000_memberships ... ignored, optimized administrator guard diagnostic at1000 memberships; no own build/browser overlap
test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay has been running for over 60 seconds
test auth::tests::ca_membership_tests::administrator_bootstrap_is_explicit_and_owner_flag_cannot_replace_revoked_role ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes has been running for over 60 seconds
test auth::tests::ca_membership_tests::administrator_copy_refuses_deleted_passkey_or_session ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::tests::ca_administration_tests::revoked_membership_or_original_session_cannot_finish_an_existing_ca_ceremony ... ok
test auth::tests::ca_membership_tests::administrator_copy_refuses_pending_expired_stale_or_future_session ... ok
test auth::tests::ca_administration_tests::wrong_wrapping_key_or_missing_user_verification_leaves_ca_locked ... 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::remote_removal_tests::fresh_removal_revokes_offline_host_and_cannot_replay ... 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::remote_removal_tests::logout_or_role_loss_after_removal_start_preserves_host ... 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 has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok
test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed has been running for over 60 seconds
test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok
test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch has been running for over 60 seconds
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::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok
test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... ok
test auth::tests::setup_start_accepts_username_and_display_name ... 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_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::review_fresh_wait::review_mesh_delete_refused_when_freshness_expires_during_writer_wait ... ok
test auth::tests::socket_tests::review_liveness::review_mesh_watch_reports_liveness_expiry_without_another_edit ... 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_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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket has been running for over 60 seconds
test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close has been running for over 60 seconds
test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery has been running for over 60 seconds
test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session 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::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser has been running for over 60 seconds
test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies 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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket ... ok
test auth::tests::verified_passkey_tests::canceled_proof_before_writer_admission_leaves_no_new_session_or_pending_ceremony ... ok
test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok
test auth::tests::verified_passkey_tests::proof_only_ceremony_expiring_during_writer_wait_cannot_commit_a_counter_or_session ... ok
test auth::tests::verified_passkey_tests::proof_only_verification_preserves_monotone_registered_credential_counter ... ok
test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery ... ok
test auth::tests::verified_passkey_tests::verified_passkey_has_live_registered_identity_and_creates_no_session ... ok
test auth::tests::verified_passkey_tests::proof_only_verification_refuses_missing_uv_or_deleted_credential ... ok
test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok
test auth::tests::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser ... ok
test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies ... ok
test auth::tests::tls_tests::standalone_tls_registration_session_split_cookies ... ok
test bootstrap_api::tests::a_client_request_during_a_pending_confirmation_keeps_the_batch ... ok
test bootstrap_api::tests::admission_stream_is_ordered_and_logout_retires_an_idle_socket ... ok
test bootstrap_api::tests::component_off_interrupts_a_stalled_host_key_confirmation_lookup ... ok
test bootstrap_api::tests::component_off_interrupts_a_stalled_progress_send ... ok
test bootstrap_api::tests::component_off_retires_idle_sockets_and_refuses_new_admission ... ok
test bootstrap_api::tests::control_frames_do_not_cancel_bootstrap_or_starve_progress ... ok
test bootstrap_runtime::remote_backend::canary_tests::readiness_accepts_authoritative_snapshot_output ... ok
test bootstrap_runtime::remote_backend::canary_tests::readiness_input_preserves_the_terminal_actor_and_host_connection ... ok
test bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload ... ok
test bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host ... ok
test bootstrap_runtime::remote_backend::tests::foreign_or_revoked_authority_never_opens_ssh ... ok
test bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate ... ok
test bootstrap_runtime::remote_backend::tests::unpublished_attempt_drop_releases_only_its_ownership ... ok
test bootstrap_runtime::tests::pending_integration_refuses_enrollment_vault_and_discovery ... ok
test ca::tests::signed_identity_has_only_server_constructed_host_authority_and_seven_days ... ok
test ca::tests::signing_boundary_at_1000_public_identities ... ignored, explicit signing-boundary diagnostic; not live renewal or connected-agent RSS
test ca::tests::source_mismatch_locked_and_uncovered_validity_fail_closed ... ok
test ca::wrapping::tests::bounded_decoder_rejects_duplicate_unknown_fields_and_exact_oversize ... ok
test ca::wrapping::tests::ciphertext_nonce_salt_and_issuer_tampering_fail_authenticated_decryption ... ok
test ca::wrapping::tests::creation_rejects_unbound_membership_and_malformed_copies_cannot_open ... ok
test ca::wrapping::tests::encrypted_copy_cost_at_1000_administrators ... ignored, optimized CA copy diagnostic; no own builds/browser overlap
test ca::wrapping::tests::invalid_issuer_key_binding_is_refused_before_a_copy_is_persisted ... ok
test ca::wrapping::tests::wrapped_seed_roundtrip_validates_the_same_issuer_key ... ok
test ca::wrapping::tests::wrong_key_member_epoch_or_issuer_cannot_unwrap_a_copy ... ok
test ca_bootstrap::tests::generated_remote_leaf_is_verifiable_after_cold_restart ... ok
test ca_copies::tests::copy_store_cost_at_1000_administrators ... ignored, release-only private CA-copy disk diagnostic; no own build/browser overlap
test ca_copies::tests::encrypted_copy_is_private_durable_and_bound_to_member_generation ... ok
test ca_copies::tests::removal_is_member_generation_scoped_and_idempotent ... ok
test ca_copies::tests::unsafe_copy_directory_or_file_is_refused_without_following_symlinks ... ok
test ca_handoff::shipping_tests::shipping_child ... ok
test ca_handoff::shipping_tests::shipping_restart_reload_rollback_and_cold_start ... ignored, explicit shipping-binary integration/benchmark; set INFRATERNAL_TEST_BINARY
test ca_handoff::tests::exec_child ... ok
test ca_handoff::tests::failed_null_open_or_duplication_closes_private_stdin ... ok
test bootstrap_api::tests::host_key_confirmation_rechecks_the_exact_live_owner_capability ... ok
test ca_handoff::tests::parser_property_corpus_is_bounded_and_never_accepts_trailing_bytes ... ok
test ca_handoff::tests::real_exec_failures_and_killed_receiver_never_unlock_a_cold_successor ... ok
test ca_handoff::tests::serialized_seed_frame_is_locked_and_excluded_from_core_dumps ... ok
test ca_handoff::tests::socketpair_preserves_unlock_and_cold_start_still_locks ... ok
test ca_handoff::tests::truncated_wrong_generation_and_wrong_version_leave_successor_locked ... ok
test ca_handoff_binary::tests::marker_is_an_exact_versioned_note_not_a_byte_substring ... ok
test ca_memory::tests::accepted_unlock_notifies_and_memory_handoff_preserves_signing_without_a_timer ... ok
test ca_memory::tests::cold_start_retains_public_trust_and_denied_unlock_leaves_signing_locked ... ok
test csr::tests::incomplete_suffix_oversized_forged_and_wrong_algorithm_requests_are_refused ... ok
test csr::tests::nonminimal_outer_lengths_and_real_oversized_requests_are_refused ... ok
test csr::tests::signed_cached_noncanonical_or_incomplete_shapes_are_refused ... ok
test csr::tests::signed_constructed_primitive_attribute_is_refused ... ok
test csr::tests::signed_noncanonical_ignored_values_are_refused ... ok
test csr::tests::verified_host_key_is_admitted_without_trusting_requested_identity ... ok
test ca_handoff::tests::real_exec_retains_unlock_but_another_process_cannot_import_the_channel ... 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::child_spawn_disposes_inherited_stdin ... 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::server_reload_mask_is_not_inherited_by_embedded_children ... 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 embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test bootstrap_api::tests::logout_interrupts_a_stalled_host_key_confirmation_lookup ... ok
test enrollment::authority::tests::admission_uses_enrolled_uid_and_exact_public_identity_validity ... ok
test enrollment::authority::tests::renewal_preserves_overlap_and_refuses_changed_key_or_expired_predecessor ... ok
test enrollment::authority::tests::revocation_is_owner_bound_and_denies_admission_and_renewal_after_commit ... ok
test enrollment::migration_tests::remote_identity_and_sessions_upgrade_dev_v11_and_remain_idempotent ... ok
test embedded::regressions::unresponsive_child_is_killed_and_reaped_within_the_shutdown_bound ... ok
test bootstrap_api::tests::origin_owner_unlock_and_whole_request_consent_are_required ... ok
test mesh_api_tests::identity::identity_migration_preserves_inventory_and_retired_audit_ids ... ok
test mesh_api_tests::claude_review::claude_review_late_committing_observation_does_not_rewind_last_seen ... ok
test mesh_api_tests::concurrent_tag_edits_serialize_revisions_and_unique_names ... ok
test mesh_api_tests::claude_review::claude_review_scoped_grant_cannot_target_node_in_unscoped_tag ... 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::review_membership_change_notifies_other_visible_tag ... ok
test bootstrap_api::tests::revocation_interrupts_a_stalled_progress_send ... 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::invalidation::filtered_view_invalidations_follow_every_affected_host_tag ... ok
test mesh_api_tests::membership::review_scoped_membership_cannot_claim_hidden_node ... ok
test mesh_api_tests::parser_rejects_unknown_fields_user_endpoints_and_invalid_bounds ... ok
test mesh_api_tests::inventory_lifecycle_preserves_policy_identity_and_audits_every_edit ... ok
test bootstrap_api::tests::settings_public_key_requires_exact_origin_and_live_unlocked_owner ... ok
test mesh_api_tests::pagination::continuation_restarts_on_change_and_rechecks_permissions ... ok
test mesh_api_tests::membership::scoped_membership_checks_pre_edit_host_scope ... ok
test mesh_api_tests::pagination::an_unsendable_object_returns_a_sanitized_service_error ... ok
test mesh_api_tests::shared_mesh_vectors_cover_each_production_action_and_wire_shape ... ok
test mesh_api_tests::review_filtered::review_global_viewers_do_not_refresh_unrelated_filtered_inventory ... ok
test mesh_api_tests::watch_deadline::watch_deadline_scale_benchmark ... ignored, weighted local scale measurement; run optimized without concurrent compilation
test remote_accept::tests::anonymous_capacity_and_single_source_cannot_consume_known_reserve ... ok
test remote_admission::tests::ports_do_not_change_source_capacity_and_mapped_addresses_share_it ... ok
test remote_admission::tests::source_admission_cost_at_1000_sources ... ignored, optimized source admission diagnostic; no own build overlap
test remote_enrollment::tests::cold_locked_signer_preserves_admission_and_token_until_authenticated_unlock ... ok
test mesh_api_tests::review_null_policy::review_null_port_policy_does_not_create_unrestricted_grant ... ok
test remote_enrollment::tests::invalid_csr_does_not_burn_token_and_join_returns_only_committed_authority ... ok
test remote_http::tests::enrollment_api_at_1000_hosts ... ignored, explicit real HTTP-adapter/SQLite signing measurement at 1000 hosts; not transport or whole-daemon evidence
test remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked ... ok
test remote_enrollment::tests::invalid_invitations_never_load_the_private_signer ... ok
test bootstrap_api::tests::split_cookie_fields_preserve_bootstrap_owner_authority ... ok
test mesh_api_tests::review_null_scope::review_null_role_scopes_preserve_denied_inventory_access ... ok
test remote_http::tests::invitation_publication_rechecks_session_after_host_creation ... ok
test remote_http::tests::revocation::abandoned_revocation_write_cannot_leave_committed_authority_live ... ok
test remote_http::tests::revocation::claude_review_anonymous_stalled_joins_cannot_block_owner_revocation ... ok
test remote_removal_http::tests::removal_parsers_refuse_positional_duplicate_and_unbounded_inputs ... ok
test remote_http::tests::revocation::permission_revoked_while_waiting_for_sqlite_writer_refuses_tombstone ... ok
test remote_http::tests::revocation::revocation_rechecks_locked_expired_logged_out_and_wrong_owner_sessions ... ok
test remote_http::tests::revocation::cold_signer_does_not_block_owner_revocation_or_cancellation ... ok
test remote_runtime::tests::independent_review::admitted_frame_write_fence_cost ... ignored, write-fence CPU diagnostic; run release alone, not whole-transport evidence
test remote_runtime::tests::explicit_listener_pair_never_moves_an_occupied_operator_port ... ok
test remote_runtime::tests::ephemeral_listener_pair_retries_real_udp_collision_without_leaking_tcp ... ok
test mesh_api_tests::scoped_grant_role_filters_inventory_and_cannot_cross_tags ... ok
test remote_runtime::tests::independent_review::review_expired_identity_must_refuse_new_attachment_on_existing_transport ... ok
test remote_runtime::tests::renewal_checks::renewal_refuses_same_issuer_wrong_key_purpose_or_lifetime_before_publication ... ok
test remote_runtime::tests::claude_review_idle_anonymous_sockets_cannot_starve_host_handshakes ... ok
test remote_runtime::tests::renewal_checks::renewal_validates_host_dates_json_and_durable_publication_before_ack ... ok
test remote_runtime::tests::independent_review::committed_tombstone_cannot_forward_input_before_finalizer_returns ... ok
test remote_runtime::tests::revocation::guard_bookkeeping_at_1000_hosts ... ignored, guard component diagnostic; run alone without builds or browser measurements
test remote_runtime::tests::quic_actor_binds_durable_writer_and_recovery_offsets ... ok
test remote_runtime::tests::revocation::retirement::registry_retention_at_1000_actual_tls_hosts ... ignored, 1000-host registry diagnostic; optimized, FD limit8192, no own build/browser overlap
test remote_runtime::tests::independent_review::review_revocation_must_cancel_input_on_existing_tls_transport ... ok
test remote_runtime::tests::revocation::retirement::revoked_host_releases_its_registry_entry_and_retained_actor ... ok
test remote_runtime::tests::revocation::expired_identity_must_refuse_new_attachment_on_existing_transport ... ok
test remote_runtime::tests::revocation::revocation_closes_admitted_idle_quic_connection ... ok
test remote_startup::tests::normal_cold_start_uses_public_trust_without_loading_or_generating_ca_key ... ok
test remote_startup::tests::symlink_shared_oversized_or_special_trust_files_fail_closed ... ok
test remote_startup::tests::wrong_issuer_key_name_or_unpinned_https_refuses_startup ... ok
test remote_runtime::tests::tcp_actor_uses_enrolled_uid_and_replays_admission_hello ... ok
test runtime::remote_demo_tests::cold_start::normal_cli_cold_start_keeps_enrolled_remote_terminal_while_signing_locked ... ignored, normal CLI cold-start proof requires static INFRATERNAL_REMOTE_TEST_BINARY and exclusive 4701/7443
test runtime::remote_demo_tests::real_host::o1_rootless_join_terminal_and_cleanup ... ignored, authorised o1 proof requires pinned INFRATERNAL_O1_KNOWN_HOSTS and aarch64 INFRATERNAL_REMOTE_TEST_BINARY; exclusive 4701/7443
test runtime::remote_demo_tests::real_host::o1_runtime_path_admits_real_unix_socket_address ... ok
test runtime::remote_demo_tests::remote_cli_enrollment_and_browser_terminal_two_processes ... ignored, two-process proof requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive port 4701
test remote_runtime::tests::revocation::revocation_must_cancel_input_on_existing_tls_transport ... ok
test runtime::remote_demo_tests::renewal::half_life_requests_proof_on_live_authenticated_control ... ok
#163 verbatim evidence: verify-fast-setup.log (2/5) ```text test active_service_stop_failure_never_replaces_live_artifacts ... ok test failed_upgrade_preserves_previous_binary_state_and_unit ... ok test fresh_receipt_is_removed_before_transaction_rollback ... ok test fresh_runtime_symlink_never_removes_foreign_empty_directories ... ok test interrupted_linger_reply_retains_intent_for_cleanup ... ok test fresh_rollback_resumes_after_transaction_directory_removal ... ok test linked_owner_marker_is_refused_before_retiring_the_transaction ... ok test fresh_runtime_unexpected_data_keeps_ownership_and_cleanup_receipt ... ok test fresh_runtime_empty_directories_do_not_block_rollback_and_retry ... ok test fresh_failure_removes_owned_artifacts_and_success_can_rejoin ... ok test interrupted_restore_recreates_links_without_deleting_the_original ... ok test interrupted_upgrade_after_acknowledged_stop_restarts_the_previous_service ... ok test refused_previous_service_stop_only_removes_staging ... ok test interrupted_rollback_never_deletes_already_restored_state_on_retry ... ok test pending_fresh_cleanup_refuses_replacement_staging_until_finished ... ok test retry_cleanup_uses_fresh_session_and_preserves_privilege_consent ... ok test writable_installation_is_refused_before_upload_or_cleanup ... ok test linger_policy_denial_is_a_warning_and_owned_changes_are_reversible ... ok test rejoin_preserves_existing_host_identity_in_the_private_staging_state ... ok test malformed_or_exposed_cleanup_receipts_never_remove_the_owned_root ... ok test rollback_stop_refusal_retains_artifacts_for_later_cleanup ... ok test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.93s Running tests/model.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/model-47ce6d8f579454b5) running 4 tests test root_consent_is_required_before_ssh_and_uid_zero_cannot_be_rootless ... ok test addresses_never_become_options_or_shell_syntax ... ok test consent_and_credential_references_are_the_only_request_authority ... ok test check_is_exact_bounded_and_rejects_every_truncation ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/probe_check.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/probe_check-aa6f45376a1e61b2) running 1 test test manager_availability_does_not_request_its_private_environment ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s Running tests/process.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/process-2293ddd9c4b2b81e) running 5 tests test cancellation_retires_the_helper_descendant_too ... ok test completed_helper_retires_descendants_with_closed_pipes ... ok test oversized_remote_output_is_bounded_and_active_timeout_is_enforced ... ok test reviewer_ssh_helper_does_not_inherit_server_reload_mask ... ok test group_identity_is_retained_until_inherited_pipes_finish ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s Running tests/proxy_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/proxy_policy-9102030c0de790a1) running 1 test test unchecked_proxy_hops_are_refused_before_credential_helpers_or_network ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running tests/real_ssh.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/real_ssh-880d0bf59f30aab0) running 1 test test actual_ssh_authentication_check_and_strict_host_key_rejection ... ignored, run through research/ssh-client/measure.py with the synthetic rootless sshd fixture test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/single_connection.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/single_connection-591d406e19cd5710) running 1 test test one_physical_connection_erases_helpers_and_refuses_reconnect ... ignored, run through the rootless real-sshd fixture, selecting this test only test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/source_completeness.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/source_completeness-708cbbd30d3deeb9) running 1 test test declared_public_modules_have_committed_sources ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/trust_round2.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/trust_round2-64018245a742684c) running 2 tests test long_data_directory_does_not_bound_the_ssh_helper_socket ... ignored, scripts/test-ssh-host-trust.py supplies the real multi-key target test multi_key_target_trusts_once_and_reconnects_without_a_loop ... ignored, scripts/test-ssh-host-trust.py supplies a real multi-key sshd and memory-held credentials test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_protocol-e4eeb92d35d69a68) running 7 tests test stream_tests::split_mux_header_preserves_trailing_close ... ok test stream_tests::all_short_frame_splits_match_direct_decoding ... ok test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... 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.05s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-bbd2e3486ad5e912) running 323 tests test auth::cookies::measurement::cookie_latency_at_50_sessions ... ignored, local optimized cookie reader measurement at 50 browser sessions test auth::cookies::tests::duplicates_missing_invalid_and_nontext_fail_closed ... ok test auth::cookies::tests::joined_split_reordered_and_other_cookies ... ok test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::tests::aaguid_projection_rejects_malformed_cbor_corpus ... 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::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::crypto::verifier_tests::fixture_waits_while_production_hashing_refuses_capacity ... ok test auth::crypto::verifier_tests::recovery_capacity_denial_is_not_a_legacy_credential_signal ... ok test auth::crypto::verifier_tests::browser_secret_hashing_is_canonical_and_bounded ... ok test auth::tests::ca_administration_tests::actual_ca_unlock_cost_at_1000_administrator_records ... ignored, release real authority diagnostic at1000 memberships/copies; no concurrent own build/browser test auth::tests::ca_administration_tests::actual_passkey_unlocks_cold_ca_once_and_leaves_no_extra_browser_session ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::ca_administration_tests::administrator_with_stale_tap_must_make_a_new_verified_proof_to_unlock ... ok test auth::tests::ca_administration_tests::bootstrap_requires_a_fresh_real_proof_and_publishes_only_wrapped_ca_material ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::ca_administration_tests::concurrent_bootstrap_ceremonies_retain_one_issuer_and_replay_is_refused ... ok test auth::tests::ca_administration_tests::http_tests::ca_body_admission_at_1000_requests ... ignored, 1000-request body admission diagnostic; run alone without builds test auth::tests::ca_administration_tests::foreign_browser_cannot_consume_the_original_ca_unlock_ceremony ... ok test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::ca_administration_tests::http_tests::ca_finish_body_deadline_returns_its_admission_slot ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_exact_origin_and_live_cookie_are_required ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_parser_is_bounded_and_errors_do_not_reflect_wrapping_material ... ok test auth::tests::ca_administration_tests::changed_generation_expired_session_or_removed_credential_cannot_unlock ... ok test auth::tests::audit_recovery_after_page_discard_can_resume_at_original_deadline ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_real_passkey_unlock_returns_only_lock_status_without_a_session_cookie ... ok test auth::tests::ca_administration_tests::http_tests::ca_http_refuses_origin_and_cookie_before_decoding_wrapping_material ... ok test auth::tests::ca_administration_tests::http_tests::ca_status_distinguishes_initial_setup_from_locked_retained_trust ... ok test auth::tests::ca_administration_tests::http_tests::first_machine_certificate_setup_starts_a_fresh_passkey_ceremony ... ok test auth::tests::ca_administration_tests::http_tests::independent_review_ca_body_reads_share_the_eight_request_admission_limit ... ok test auth::tests::audit_recovery_pending_is_visible_to_signed_in_device ... ok test auth::tests::ca_administration_tests::http_tests::independent_review_ca_headers_are_refused_before_reading_an_unfinished_body ... ok test auth::tests::ca_administration_tests::new_administrator_device_rewraps_pending_copy_and_role_generation_never_resurrects_it ... ok test auth::tests::ca_administration_tests::ordinary_login_ceremony_has_no_ca_unlock_purpose ... ok test auth::tests::ca_administration_tests::shipping_cli_tests::bootstrap_cli::fresh_release_bootstrap_join_renew_revoke_cuts_a_live_connection ... ignored, configured release E2E requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443 test auth::tests::ca_administration_tests::shipping_cli_tests::configured_release_cli_cold_lock_real_passkey_unlock_and_cold_restart ... ignored, configured release CLI proof needs INFRATERNAL_REMOTE_TEST_BINARY and exclusive4701/7443 test auth::tests::ca_administration_tests::pending_administrator_cannot_replace_the_last_retained_wrapped_copy ... ok test auth::tests::ca_administration_tests::published_issuer_without_memory_projection_is_recovered_as_locked_trust ... ok test auth::tests::ca_administration_tests::role_changes_require_fresh_purpose_bound_proofs_and_recheck_owner_permission ... ok test auth::tests::ca_administration_tests::role_grant_is_pending_and_revoke_removes_old_copy_without_restoring_old_authority ... ok test auth::tests::ca_membership_tests::administrator_guard_cost_at_1000_memberships ... ignored, optimized administrator guard diagnostic at1000 memberships; no own build/browser overlap test auth::tests::audit_recovery_session_expiring_during_verification_keeps_delay has been running for over 60 seconds test auth::tests::ca_membership_tests::administrator_bootstrap_is_explicit_and_owner_flag_cannot_replace_revoked_role ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes has been running for over 60 seconds test auth::tests::ca_membership_tests::administrator_copy_refuses_deleted_passkey_or_session ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::tests::ca_administration_tests::revoked_membership_or_original_session_cannot_finish_an_existing_ca_ceremony ... ok test auth::tests::ca_membership_tests::administrator_copy_refuses_pending_expired_stale_or_future_session ... ok test auth::tests::ca_administration_tests::wrong_wrapping_key_or_missing_user_verification_leaves_ca_locked ... 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::remote_removal_tests::fresh_removal_revokes_offline_host_and_cannot_replay ... 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::remote_removal_tests::logout_or_role_loss_after_removal_start_preserves_host ... 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 has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_http_expired_ceremony_cannot_complete_after_writer_wait has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_server_clock_rollback_retains_deadline_and_reports_more_than_day has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_http_denials_and_recovery_admission ... ok test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed has been running for over 60 seconds test auth::tests::reviewer_tests::reviewer_http_expired_capability_cannot_complete_after_writer_wait ... ok test auth::tests::rotation_tests::recovery_rotation_cannot_follow_a_cookie_account_switch has been running for over 60 seconds 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::setup_check_is_non_consuming_and_closes_after_owner_creation ... ok test auth::tests::rotation_tests::recovery_phrase_routes_are_removed_and_words_fail_closed ... ok test auth::tests::setup_identity_validation_and_uniqueness ... ok test auth::tests::setup_start_accepts_username_and_display_name ... 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_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::review_fresh_wait::review_mesh_delete_refused_when_freshness_expires_during_writer_wait ... ok test auth::tests::socket_tests::review_liveness::review_mesh_watch_reports_liveness_expiry_without_another_edit ... 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_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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket has been running for over 60 seconds test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close has been running for over 60 seconds test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery has been running for over 60 seconds test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session 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::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser has been running for over 60 seconds test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies 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::socket_tests::session_gone::an_ended_or_unknown_session_gets_the_final_close_without_losing_the_socket ... ok test auth::tests::verified_passkey_tests::canceled_proof_before_writer_admission_leaves_no_new_session_or_pending_ceremony ... ok test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok test auth::tests::verified_passkey_tests::proof_only_ceremony_expiring_during_writer_wait_cannot_commit_a_counter_or_session ... ok test auth::tests::verified_passkey_tests::proof_only_verification_preserves_monotone_registered_credential_counter ... ok test auth::tests::socket_tests::terminal_exit::retired_exit_preserves_status_without_claiming_final_output_delivery ... ok test auth::tests::verified_passkey_tests::verified_passkey_has_live_registered_identity_and_creates_no_session ... ok test auth::tests::verified_passkey_tests::proof_only_verification_refuses_missing_uv_or_deleted_credential ... ok test auth::tests::socket_tests::terminal_exit::terminal_exit_persists_once_under_current_ownership_and_session ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test auth::tests::terminal_refusal_tests::memory_refusal_preserves_reason_and_counters_to_browser ... ok test auth::tests::tls_tests::proxy_tls_registration_session_split_cookies ... ok test auth::tests::tls_tests::standalone_tls_registration_session_split_cookies ... ok test bootstrap_api::tests::a_client_request_during_a_pending_confirmation_keeps_the_batch ... ok test bootstrap_api::tests::admission_stream_is_ordered_and_logout_retires_an_idle_socket ... ok test bootstrap_api::tests::component_off_interrupts_a_stalled_host_key_confirmation_lookup ... ok test bootstrap_api::tests::component_off_interrupts_a_stalled_progress_send ... ok test bootstrap_api::tests::component_off_retires_idle_sockets_and_refuses_new_admission ... ok test bootstrap_api::tests::control_frames_do_not_cancel_bootstrap_or_starve_progress ... ok test bootstrap_runtime::remote_backend::canary_tests::readiness_accepts_authoritative_snapshot_output ... ok test bootstrap_runtime::remote_backend::canary_tests::readiness_input_preserves_the_terminal_actor_and_host_connection ... ok test bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload ... ok test bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host ... ok test bootstrap_runtime::remote_backend::tests::foreign_or_revoked_authority_never_opens_ssh ... ok test bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate ... ok test bootstrap_runtime::remote_backend::tests::unpublished_attempt_drop_releases_only_its_ownership ... ok test bootstrap_runtime::tests::pending_integration_refuses_enrollment_vault_and_discovery ... ok test ca::tests::signed_identity_has_only_server_constructed_host_authority_and_seven_days ... ok test ca::tests::signing_boundary_at_1000_public_identities ... ignored, explicit signing-boundary diagnostic; not live renewal or connected-agent RSS test ca::tests::source_mismatch_locked_and_uncovered_validity_fail_closed ... ok test ca::wrapping::tests::bounded_decoder_rejects_duplicate_unknown_fields_and_exact_oversize ... ok test ca::wrapping::tests::ciphertext_nonce_salt_and_issuer_tampering_fail_authenticated_decryption ... ok test ca::wrapping::tests::creation_rejects_unbound_membership_and_malformed_copies_cannot_open ... ok test ca::wrapping::tests::encrypted_copy_cost_at_1000_administrators ... ignored, optimized CA copy diagnostic; no own builds/browser overlap test ca::wrapping::tests::invalid_issuer_key_binding_is_refused_before_a_copy_is_persisted ... ok test ca::wrapping::tests::wrapped_seed_roundtrip_validates_the_same_issuer_key ... ok test ca::wrapping::tests::wrong_key_member_epoch_or_issuer_cannot_unwrap_a_copy ... ok test ca_bootstrap::tests::generated_remote_leaf_is_verifiable_after_cold_restart ... ok test ca_copies::tests::copy_store_cost_at_1000_administrators ... ignored, release-only private CA-copy disk diagnostic; no own build/browser overlap test ca_copies::tests::encrypted_copy_is_private_durable_and_bound_to_member_generation ... ok test ca_copies::tests::removal_is_member_generation_scoped_and_idempotent ... ok test ca_copies::tests::unsafe_copy_directory_or_file_is_refused_without_following_symlinks ... ok test ca_handoff::shipping_tests::shipping_child ... ok test ca_handoff::shipping_tests::shipping_restart_reload_rollback_and_cold_start ... ignored, explicit shipping-binary integration/benchmark; set INFRATERNAL_TEST_BINARY test ca_handoff::tests::exec_child ... ok test ca_handoff::tests::failed_null_open_or_duplication_closes_private_stdin ... ok test bootstrap_api::tests::host_key_confirmation_rechecks_the_exact_live_owner_capability ... ok test ca_handoff::tests::parser_property_corpus_is_bounded_and_never_accepts_trailing_bytes ... ok test ca_handoff::tests::real_exec_failures_and_killed_receiver_never_unlock_a_cold_successor ... ok test ca_handoff::tests::serialized_seed_frame_is_locked_and_excluded_from_core_dumps ... ok test ca_handoff::tests::socketpair_preserves_unlock_and_cold_start_still_locks ... ok test ca_handoff::tests::truncated_wrong_generation_and_wrong_version_leave_successor_locked ... ok test ca_handoff_binary::tests::marker_is_an_exact_versioned_note_not_a_byte_substring ... ok test ca_memory::tests::accepted_unlock_notifies_and_memory_handoff_preserves_signing_without_a_timer ... ok test ca_memory::tests::cold_start_retains_public_trust_and_denied_unlock_leaves_signing_locked ... ok test csr::tests::incomplete_suffix_oversized_forged_and_wrong_algorithm_requests_are_refused ... ok test csr::tests::nonminimal_outer_lengths_and_real_oversized_requests_are_refused ... ok test csr::tests::signed_cached_noncanonical_or_incomplete_shapes_are_refused ... ok test csr::tests::signed_constructed_primitive_attribute_is_refused ... ok test csr::tests::signed_noncanonical_ignored_values_are_refused ... ok test csr::tests::verified_host_key_is_admitted_without_trusting_requested_identity ... ok test ca_handoff::tests::real_exec_retains_unlock_but_another_process_cannot_import_the_channel ... 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::child_spawn_disposes_inherited_stdin ... 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::server_reload_mask_is_not_inherited_by_embedded_children ... 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 embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test bootstrap_api::tests::logout_interrupts_a_stalled_host_key_confirmation_lookup ... ok test enrollment::authority::tests::admission_uses_enrolled_uid_and_exact_public_identity_validity ... ok test enrollment::authority::tests::renewal_preserves_overlap_and_refuses_changed_key_or_expired_predecessor ... ok test enrollment::authority::tests::revocation_is_owner_bound_and_denies_admission_and_renewal_after_commit ... ok test enrollment::migration_tests::remote_identity_and_sessions_upgrade_dev_v11_and_remain_idempotent ... ok test embedded::regressions::unresponsive_child_is_killed_and_reaped_within_the_shutdown_bound ... ok test bootstrap_api::tests::origin_owner_unlock_and_whole_request_consent_are_required ... ok test mesh_api_tests::identity::identity_migration_preserves_inventory_and_retired_audit_ids ... ok test mesh_api_tests::claude_review::claude_review_late_committing_observation_does_not_rewind_last_seen ... ok test mesh_api_tests::concurrent_tag_edits_serialize_revisions_and_unique_names ... ok test mesh_api_tests::claude_review::claude_review_scoped_grant_cannot_target_node_in_unscoped_tag ... 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::review_membership_change_notifies_other_visible_tag ... ok test bootstrap_api::tests::revocation_interrupts_a_stalled_progress_send ... 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::invalidation::filtered_view_invalidations_follow_every_affected_host_tag ... ok test mesh_api_tests::membership::review_scoped_membership_cannot_claim_hidden_node ... ok test mesh_api_tests::parser_rejects_unknown_fields_user_endpoints_and_invalid_bounds ... ok test mesh_api_tests::inventory_lifecycle_preserves_policy_identity_and_audits_every_edit ... ok test bootstrap_api::tests::settings_public_key_requires_exact_origin_and_live_unlocked_owner ... ok test mesh_api_tests::pagination::continuation_restarts_on_change_and_rechecks_permissions ... ok test mesh_api_tests::membership::scoped_membership_checks_pre_edit_host_scope ... ok test mesh_api_tests::pagination::an_unsendable_object_returns_a_sanitized_service_error ... ok test mesh_api_tests::shared_mesh_vectors_cover_each_production_action_and_wire_shape ... ok test mesh_api_tests::review_filtered::review_global_viewers_do_not_refresh_unrelated_filtered_inventory ... ok test mesh_api_tests::watch_deadline::watch_deadline_scale_benchmark ... ignored, weighted local scale measurement; run optimized without concurrent compilation test remote_accept::tests::anonymous_capacity_and_single_source_cannot_consume_known_reserve ... ok test remote_admission::tests::ports_do_not_change_source_capacity_and_mapped_addresses_share_it ... ok test remote_admission::tests::source_admission_cost_at_1000_sources ... ignored, optimized source admission diagnostic; no own build overlap test remote_enrollment::tests::cold_locked_signer_preserves_admission_and_token_until_authenticated_unlock ... ok test mesh_api_tests::review_null_policy::review_null_port_policy_does_not_create_unrestricted_grant ... ok test remote_enrollment::tests::invalid_csr_does_not_burn_token_and_join_returns_only_committed_authority ... ok test remote_http::tests::enrollment_api_at_1000_hosts ... ignored, explicit real HTTP-adapter/SQLite signing measurement at 1000 hosts; not transport or whole-daemon evidence test remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked ... ok test remote_enrollment::tests::invalid_invitations_never_load_the_private_signer ... ok test bootstrap_api::tests::split_cookie_fields_preserve_bootstrap_owner_authority ... ok test mesh_api_tests::review_null_scope::review_null_role_scopes_preserve_denied_inventory_access ... ok test remote_http::tests::invitation_publication_rechecks_session_after_host_creation ... ok test remote_http::tests::revocation::abandoned_revocation_write_cannot_leave_committed_authority_live ... ok test remote_http::tests::revocation::claude_review_anonymous_stalled_joins_cannot_block_owner_revocation ... ok test remote_removal_http::tests::removal_parsers_refuse_positional_duplicate_and_unbounded_inputs ... ok test remote_http::tests::revocation::permission_revoked_while_waiting_for_sqlite_writer_refuses_tombstone ... ok test remote_http::tests::revocation::revocation_rechecks_locked_expired_logged_out_and_wrong_owner_sessions ... ok test remote_http::tests::revocation::cold_signer_does_not_block_owner_revocation_or_cancellation ... ok test remote_runtime::tests::independent_review::admitted_frame_write_fence_cost ... ignored, write-fence CPU diagnostic; run release alone, not whole-transport evidence test remote_runtime::tests::explicit_listener_pair_never_moves_an_occupied_operator_port ... ok test remote_runtime::tests::ephemeral_listener_pair_retries_real_udp_collision_without_leaking_tcp ... ok test mesh_api_tests::scoped_grant_role_filters_inventory_and_cannot_cross_tags ... ok test remote_runtime::tests::independent_review::review_expired_identity_must_refuse_new_attachment_on_existing_transport ... ok test remote_runtime::tests::renewal_checks::renewal_refuses_same_issuer_wrong_key_purpose_or_lifetime_before_publication ... ok test remote_runtime::tests::claude_review_idle_anonymous_sockets_cannot_starve_host_handshakes ... ok test remote_runtime::tests::renewal_checks::renewal_validates_host_dates_json_and_durable_publication_before_ack ... ok test remote_runtime::tests::independent_review::committed_tombstone_cannot_forward_input_before_finalizer_returns ... ok test remote_runtime::tests::revocation::guard_bookkeeping_at_1000_hosts ... ignored, guard component diagnostic; run alone without builds or browser measurements test remote_runtime::tests::quic_actor_binds_durable_writer_and_recovery_offsets ... ok test remote_runtime::tests::revocation::retirement::registry_retention_at_1000_actual_tls_hosts ... ignored, 1000-host registry diagnostic; optimized, FD limit8192, no own build/browser overlap test remote_runtime::tests::independent_review::review_revocation_must_cancel_input_on_existing_tls_transport ... ok test remote_runtime::tests::revocation::retirement::revoked_host_releases_its_registry_entry_and_retained_actor ... ok test remote_runtime::tests::revocation::expired_identity_must_refuse_new_attachment_on_existing_transport ... ok test remote_runtime::tests::revocation::revocation_closes_admitted_idle_quic_connection ... ok test remote_startup::tests::normal_cold_start_uses_public_trust_without_loading_or_generating_ca_key ... ok test remote_startup::tests::symlink_shared_oversized_or_special_trust_files_fail_closed ... ok test remote_startup::tests::wrong_issuer_key_name_or_unpinned_https_refuses_startup ... ok test remote_runtime::tests::tcp_actor_uses_enrolled_uid_and_replays_admission_hello ... ok test runtime::remote_demo_tests::cold_start::normal_cli_cold_start_keeps_enrolled_remote_terminal_while_signing_locked ... ignored, normal CLI cold-start proof requires static INFRATERNAL_REMOTE_TEST_BINARY and exclusive 4701/7443 test runtime::remote_demo_tests::real_host::o1_rootless_join_terminal_and_cleanup ... ignored, authorised o1 proof requires pinned INFRATERNAL_O1_KNOWN_HOSTS and aarch64 INFRATERNAL_REMOTE_TEST_BINARY; exclusive 4701/7443 test runtime::remote_demo_tests::real_host::o1_runtime_path_admits_real_unix_socket_address ... ok test runtime::remote_demo_tests::remote_cli_enrollment_and_browser_terminal_two_processes ... ignored, two-process proof requires INFRATERNAL_REMOTE_TEST_BINARY and exclusive port 4701 test remote_runtime::tests::revocation::revocation_must_cancel_input_on_existing_tls_transport ... ok test runtime::remote_demo_tests::renewal::half_life_requests_proof_on_live_authenticated_control ... ok ```
Author
Owner

#163 verbatim evidence: verify-fast-setup.log (3/5)

test remote_runtime::tests::revocation::admitted_guard_expires_and_prior_revocation_cannot_reregister ... ok
test runtime::remote_demo_tests::renewal_cli::cli_live_renewal_cost_and_durable_identity_on_unchanged_transport ... ignored, real CLI renewal measurement requires release binary and exclusive port4701; no own compilation/browser overlap
test runtime::remote_demo_tests::renewal_cli::flood::remote_cli_renewal_under_50m_load_preserves_every_byte_and_writer ... ignored, real CLI 50MiB renewal proof: exclusive4701 and release binary; no own build/browser overlap
test runtime::remote_demo_tests::shipping_route::independent_review_configured_server_mounts_ca_unlock_routes ... ok
test bootstrap_runtime::key_authority_tests::key_export_rechecks_role_session_and_cold_lock ... ok
test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok
test runtime::remote_demo_tests::renewal_ack::failed_publication_retains_original_admission_without_interrupting_terminal ... 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::remote_demo_tests::shipping_route::review_default_server_must_register_remote_join ... ok
test runtime::tests::production_router_exposes_bootstrap_owner_admission ... 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::remote_demo_tests::renewal_ack::unlock_renews_live_identity_only_after_publication_ack_with_terminal_intact ... ok
test server_tls::tests::standalone_https_disables_nagle_before_application_bytes ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test ssh_key::tests::concurrent_initialization_retains_one_identity_and_unwrap_cannot_replace_it ... ok
test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok
test ssh_key::tests::lock_during_administrator_unwrap_cannot_reinstall_private_material ... ok
test ssh_key::tests::first_start_is_wrapped_once_and_every_cold_start_is_locked ... ok
test remote_runtime::tests::revocation::retirement::old_expiry_cannot_remove_a_fresh_tls_replacement ... ok
test ssh_key::tests::lock_generation_exhaustion_never_wraps_into_an_unlocked_source ... ok
test ssh_key::tests::unavailable_or_empty_custody_publishes_no_key ... ok
test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok
test ssh_key::tests::update_handoff_preserves_unlocked_identity_but_cold_restart_does_not ... ok
test websocket::cookie_tests::duplicate_cookie_fields_deny_socket_session ... ok
test websocket::cookie_tests::split_cookie_fields_preserve_socket_session ... ok
test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification
test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test ssh_key::tests::malformed_existing_storage_is_refused_without_generating_a_replacement ... ok
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test mesh_api_tests::review_frame_budget::review_mesh_design_point_frames_fit_shared_socket_budget ... ok
test ssh_key::tests::material_refuses_invalid_pem_and_non_ed25519_algorithms ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::key_runtime_tests::configured_startup_generates_once_and_settings_shares_its_cold_lock ... ok
test mesh_api_tests::watch_deadline::watch_deadline_matches_complete_filtered_snapshots ... ok

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

     Running tests/catalog_startup.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/catalog_startup-ca18602642947622)

running 1 test
test explicit_catalog_startup_remains_public_and_validates_before_storage ... ok

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

     Running tests/enrollment.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/enrollment-0d238b8f4f8c6672)

running 6 tests
test enrollment_storage_at_500_hosts ... ignored, explicit 500-host storage measurement; not a remote transport budget
test invalid_certificate_and_failed_insert_preserve_the_invitation ... ok
test concurrent_redemption_has_one_winner_and_one_certificate ... ok
test malformed_capabilities_and_certificate_overflow_are_refused_before_mutation ... ok
test invitation_is_hashed_replaced_and_bound_to_owner_host_mode_and_exact_expiry ... ok
test revocation_tombstone_refuses_existing_and_new_invitations_after_restart ... ok

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

     Running tests/mesh_parser.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_parser-9bd0aada272982b9)

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.01s

     Running tests/mesh_review_plugin.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_plugin-f577393de2906b4f)

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.07s

     Running tests/mesh_review_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_policy-8d46a6cf33b8df6b)

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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_role_scope-ee6a310d1daaf0dc)

running 2 tests
test review_explicit_null_role_scopes_do_not_become_global_authority ... ok
test role_scopes_require_an_array_when_provided ... 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_host_review-cfada89dae174d23)

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_reenable_preserves_cancelled_calls_until_delivery ... ok
test review_disable_withdraws_view_and_keeps_socket ... ok
test review_disable_answers_inflight_call ... ok
test review_exited_worker_ends_its_subscriptions ... ok

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

     Running tests/plugin_settings_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_settings_review-c630cb8796806d20)

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 3.76s

     Running tests/remote_plugin_contract.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_plugin_contract-c95e7f043b0a58a5)

running 1 test
test independent_review_core_build_without_features_omits_remote_transport ... ok

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

     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_shim-8d88872fb599c816)

running 78 tests
test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement
test frame::checks::tests::golden_and_fragmented ... ok
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok
test ended::tests::bounded_record_preserves_status_and_rejects_malformed_or_linked_data ... ok
test pty::child_signal_tests::child_signal_reset_spawn_cost_at_128_children ... ignored, child spawn diagnostic; run locally in a weighted scope without own build overlap
test locked_bytes::tests::anonymous_transfer_pages_are_locked_and_excluded_from_core_dumps ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile

running 1 test
test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok
test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement
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::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 frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok

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

test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok
test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok
test session::measurements::budgets::allowlisted_signal_after_real_pty_exit_keeps_exit_ack_available ... 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::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok
test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::saved_origin_survives_changed_margins ... ok
test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok
test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok
test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok
test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file
test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok
test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok
test terminal::fidelity::fidelity_cursor ... ok
test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok
test terminal::fidelity::fidelity_iso_protection_erase ... ok
test terminal::fidelity::fidelity_edge ... ok
test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_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_oracle_detects_hidden_state ... ok
test terminal::fidelity::fidelity_f1_rep ... ok
test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok
test terminal::fidelity::fidelity_saved_modes_future_restore ... ok
test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok
test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases
test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok
test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok
test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok
test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... 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_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::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok
test terminal::fidelity::fidelity_variation_tail_attributes ... 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_native::allocation::resize_allocation_refusal_retires_native_handle ... ok
test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok
test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok
test terminal::fidelity::fidelity_extended_smoke ... ok
test terminal::fidelity::fidelity_seeded_smoke ... ok

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

     Running tests/detach.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/detach-af6bf43868555110)

running 2 tests
test detached_child_restores_default_signals_without_changing_parent ... ok
test closed_standard_descriptors_become_dev_null ... ok

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

     Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mouse-3ee544922f442de4)

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 9.19s

   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 3.04s

   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_backup

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_relay

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_remote

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/dev-backmerge/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
     │   │               └── infraternal-fuzz 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-fuzz v0.1.0
     │   └── infraternal-server v0.1.0
     │       ├── infraternal v0.1.0
     │       └── infraternal-fuzz v0.1.0 (*)
     ├── infraternal v0.1.0 (*)
     ├── infraternal-server v0.1.0 (*)
     └── sqlx-core v0.8.6
         ├── sqlx v0.8.6
         │   ├── infraternal-plugin-api v0.1.0
         │   │   ├── infraternal v0.1.0 (*)
         │   │   ├── infraternal-agent v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   ├── infraternal-mesh v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   └── infraternal-plugin-mesh v0.1.0
         │   │   │       ├── infraternal v0.1.0 (*)
         │   │   │       ├── infraternal-fuzz v0.1.0 (*)
         │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   ├── infraternal-plugin-backup v0.1.0
         │   │   │   └── infraternal v0.1.0 (*)
         │   │   ├── infraternal-plugin-host-facts v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   └── infraternal-fuzz v0.1.0 (*)
         │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
         │   │   ├── infraternal-plugin-relay v0.1.0
         │   │   │   └── infraternal v0.1.0 (*)
         │   │   ├── infraternal-plugin-remote v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   ├── infraternal-plugin-ssh v0.1.0
         │   │   │   ├── infraternal 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 'cpufeatures'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:50:1
   │  
50 │ ╭ cpufeatures 0.2.17 registry+https://github.com/rust-lang/crates.io-index
51 │ │ cpufeatures 0.3.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ cpufeatures v0.2.17
     ├── aes v0.8.4
     │   └── aes-gcm v0.10.3
     │       └── (dev) infraternal-server v0.1.0
     │           ├── infraternal v0.1.0
     │           └── infraternal-fuzz v0.1.0
     ├── argon2 v0.5.3
     │   └── infraternal-server v0.1.0 (*)
     ├── polyval v0.6.2
     │   └── ghash v0.5.1
     │       └── aes-gcm v0.10.3 (*)
     ├── sha1 v0.10.7
     │   ├── axum v0.8.9
     │   │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   └── 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-plugin-ssh v0.1.0
         │   ├── infraternal v0.1.0 (*)
         │   ├── infraternal-fuzz v0.1.0 (*)
         │   └── infraternal-server v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── sqlx-core v0.8.6
         │   ├── sqlx v0.8.6
         │   │   ├── infraternal-plugin-api v0.1.0
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-agent v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   │   ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   ├── infraternal-mesh v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   └── infraternal-plugin-mesh v0.1.0
         │   │   │   │       ├── infraternal v0.1.0 (*)
         │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
         │   │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-backup v0.1.0
         │   │   │   │   └── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-host-facts v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-relay v0.1.0
         │   │   │   │   └── infraternal v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-remote v0.1.0
         │   │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   │   ├── infraternal-agent v0.1.0 (*)
         │   │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   │   ├── infraternal-plugin-ssh 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 (*)
   ├ cpufeatures v0.3.1
     └── chacha20 v0.10.2
         └── rand v0.10.3
             └── quinn-proto v0.11.19
                 └── quinn v0.11.12
                     ├── infraternal-agent v0.1.0
                     │   ├── infraternal v0.1.0
                     │   ├── infraternal-fuzz v0.1.0
                     │   └── infraternal-server v0.1.0
                     │       ├── infraternal v0.1.0 (*)
                     │       └── infraternal-fuzz v0.1.0 (*)
                     ├── infraternal-plugin-remote v0.1.0
                     │   ├── infraternal v0.1.0 (*)
                     │   ├── infraternal-agent v0.1.0 (*)
                     │   └── infraternal-server v0.1.0 (*)
                     └── infraternal-server v0.1.0 (*)

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:92:1
   │  
92 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
93 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
94 │ │ 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
     │   │       └── infraternal-fuzz 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-fuzz v0.1.0 (*)
     │   │   │   │   │   └── 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-plugin-ssh v0.1.0
     │   │   │       │   ├── infraternal v0.1.0 (*)
     │   │   │       │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   └── infraternal-server v0.1.0 (*)
     │   │   │       ├── infraternal-server v0.1.0 (*)
     │   │   │       ├── sqlx-core v0.8.6
     │   │   │       │   ├── sqlx v0.8.6
     │   │   │       │   │   ├── infraternal-plugin-api v0.1.0
     │   │   │       │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-agent v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-mesh v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-plugin-mesh v0.1.0
     │   │   │       │   │   │   │       ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   │       └── infraternal-server v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-backup v0.1.0
     │   │   │       │   │   │   │   └── infraternal v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-host-facts v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-relay v0.1.0
     │   │   │       │   │   │   │   └── infraternal v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-remote v0.1.0
     │   │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
     │   │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
     │   │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
     │   │   │       │   │   │   ├── infraternal-plugin-ssh 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 (*)
     └── ring v0.17.14
         ├── quinn-proto v0.11.19
         │   └── quinn v0.11.12
         │       ├── infraternal-agent v0.1.0 (*)
         │       ├── infraternal-plugin-remote v0.1.0 (*)
         │       └── infraternal-server v0.1.0 (*)
         ├── rustls v0.23.45
         │   ├── infraternal-plugin-remote v0.1.0 (*)
         │   ├── quinn v0.11.12 (*)
         │   └── quinn-proto v0.11.19 (*)
         └── rustls-webpki v0.103.15
             └── rustls v0.23.45 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── infraternal-server v0.1.0
         │   │   ├── infraternal v0.1.0
         │   │   └── infraternal-fuzz v0.1.0
         │   ├── tungstenite v0.29.0
         │   │   └── tokio-tungstenite v0.29.0
         │   │       ├── axum v0.8.9
         │   │       │   ├── infraternal-fuzz v0.1.0 (*)
         │   │       │   └── 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-plugin-api v0.1.0
     │       │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
     │       │       │   │   ├── infraternal-fuzz v0.1.0 (*)
     │       │       │   │   ├── infraternal-mesh v0.1.0
     │       │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   │   └── infraternal-plugin-mesh v0.1.0
     │       │       │   │   │       ├── infraternal v0.1.0 (*)
     │       │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
     │       │       │   │   │       └── infraternal-server v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-backup v0.1.0
     │       │       │   │   │   └── infraternal v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-host-facts v0.1.0
     │       │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-relay v0.1.0
     │       │       │   │   │   └── infraternal v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-remote v0.1.0
     │       │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   │   │   └── infraternal-server v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-ssh v0.1.0
     │       │       │   │   │   ├── infraternal 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
     │       │               └── 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 v0.1.0 (*)
     │       │       │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
     │       │       │   ├── infraternal-server v0.1.0 (*)
     │       │       │   ├── tokio-openssl v0.6.5
     │       │       │   │   ├── axum-server v0.8.0 (*)
     │       │       │   │   ├── infraternal v0.1.0 (*)
     │       │       │   │   ├── infraternal-agent v0.1.0 (*)
     │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
     │       │       │   │   └── (dev) infraternal-server v0.1.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 (*)
     │       └── (build) ring v0.17.14
     │           ├── quinn-proto v0.11.19
     │           │   └── quinn v0.11.12
     │           │       ├── infraternal-agent v0.1.0 (*)
     │           │       ├── infraternal-plugin-remote v0.1.0 (*)
     │           │       └── infraternal-server v0.1.0 (*)
     │           ├── rustls v0.23.45
     │           │   ├── infraternal-plugin-remote v0.1.0 (*)
     │           │   ├── quinn v0.11.12 (*)
     │           │   └── quinn-proto v0.11.19 (*)
     │           └── rustls-webpki v0.103.15
     │               └── rustls v0.23.45 (*)
     ├── quinn-proto v0.11.19 (*)
     ├── rand v0.10.3
     │   └── quinn-proto v0.11.19 (*)
     └── uuid v1.27.0
         ├── infraternal v0.1.0 (*)
         ├── infraternal-agent v0.1.0 (*)
         ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:98:1
   │  
98 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
99 │ │ 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-plugin-api v0.1.0
     │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
     │       │   │   ├── infraternal-fuzz v0.1.0 (*)
     │       │   │   ├── infraternal-mesh v0.1.0
     │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │   │   │   └── infraternal-plugin-mesh v0.1.0
#163 verbatim evidence: verify-fast-setup.log (3/5) ```text test remote_runtime::tests::revocation::admitted_guard_expires_and_prior_revocation_cannot_reregister ... ok test runtime::remote_demo_tests::renewal_cli::cli_live_renewal_cost_and_durable_identity_on_unchanged_transport ... ignored, real CLI renewal measurement requires release binary and exclusive port4701; no own compilation/browser overlap test runtime::remote_demo_tests::renewal_cli::flood::remote_cli_renewal_under_50m_load_preserves_every_byte_and_writer ... ignored, real CLI 50MiB renewal proof: exclusive4701 and release binary; no own build/browser overlap test runtime::remote_demo_tests::shipping_route::independent_review_configured_server_mounts_ca_unlock_routes ... ok test bootstrap_runtime::key_authority_tests::key_export_rechecks_role_session_and_cold_lock ... ok test runtime::reviewer_admission::reviewer_recovery_source_limit_covers_all_routes_without_forwarding_bypass ... ok test runtime::remote_demo_tests::renewal_ack::failed_publication_retains_original_admission_without_interrupting_terminal ... 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::remote_demo_tests::shipping_route::review_default_server_must_register_remote_join ... ok test runtime::tests::production_router_exposes_bootstrap_owner_admission ... 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::remote_demo_tests::renewal_ack::unlock_renews_live_identity_only_after_publication_ack_with_terminal_intact ... ok test server_tls::tests::standalone_https_disables_nagle_before_application_bytes ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test ssh_key::tests::concurrent_initialization_retains_one_identity_and_unwrap_cannot_replace_it ... ok test runtime::tests::startup_with_owner_unlinks_stale_setup_token_socket ... ok test ssh_key::tests::lock_during_administrator_unwrap_cannot_reinstall_private_material ... ok test ssh_key::tests::first_start_is_wrapped_once_and_every_cold_start_is_locked ... ok test remote_runtime::tests::revocation::retirement::old_expiry_cannot_remove_a_fresh_tls_replacement ... ok test ssh_key::tests::lock_generation_exhaustion_never_wraps_into_an_unlocked_source ... ok test ssh_key::tests::unavailable_or_empty_custody_publishes_no_key ... ok test web_assets::tests::encodings_and_identity_have_correct_headers_and_sizes ... ok test ssh_key::tests::update_handoff_preserves_unlocked_identity_but_cold_restart_does_not ... ok test websocket::cookie_tests::duplicate_cookie_fields_deny_socket_session ... ok test websocket::cookie_tests::split_cookie_fields_preserve_socket_session ... ok test websocket::recovery_notification_bench::recovery_notification_state_at_socket_capacity ... ignored, notification state sizing diagnostic, not allocator-inclusive RSS certification test web_assets::tests::spa_and_mutable_assets_revalidate_and_missing_brotli_uses_gzip ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test ssh_key::tests::malformed_existing_storage_is_refused_without_generating_a_replacement ... ok test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test mesh_api_tests::review_frame_budget::review_mesh_design_point_frames_fit_shared_socket_budget ... ok test ssh_key::tests::material_refuses_invalid_pem_and_non_ed25519_algorithms ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::key_runtime_tests::configured_startup_generates_once_and_settings_shares_its_cold_lock ... ok test mesh_api_tests::watch_deadline::watch_deadline_matches_complete_filtered_snapshots ... ok test result: ok. 291 passed; 0 failed; 32 ignored; 0 measured; 0 filtered out; finished in 511.54s Running tests/catalog_startup.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/catalog_startup-ca18602642947622) running 1 test test explicit_catalog_startup_remains_public_and_validates_before_storage ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/enrollment.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/enrollment-0d238b8f4f8c6672) running 6 tests test enrollment_storage_at_500_hosts ... ignored, explicit 500-host storage measurement; not a remote transport budget test invalid_certificate_and_failed_insert_preserve_the_invitation ... ok test concurrent_redemption_has_one_winner_and_one_certificate ... ok test malformed_capabilities_and_certificate_overflow_are_refused_before_mutation ... ok test invitation_is_hashed_replaced_and_bound_to_owner_host_mode_and_exact_expiry ... ok test revocation_tombstone_refuses_existing_and_new_invitations_after_restart ... ok test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.32s Running tests/mesh_parser.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_parser-9bd0aada272982b9) 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.01s Running tests/mesh_review_plugin.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_plugin-f577393de2906b4f) 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.07s Running tests/mesh_review_policy.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_policy-8d46a6cf33b8df6b) 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mesh_review_role_scope-ee6a310d1daaf0dc) running 2 tests test review_explicit_null_role_scopes_do_not_become_global_authority ... ok test role_scopes_require_an_array_when_provided ... 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 (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_host_review-cfada89dae174d23) 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_reenable_preserves_cancelled_calls_until_delivery ... ok test review_disable_withdraws_view_and_keeps_socket ... ok test review_disable_answers_inflight_call ... ok test review_exited_worker_ends_its_subscriptions ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s Running tests/plugin_settings_review.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/plugin_settings_review-c630cb8796806d20) 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 3.76s Running tests/remote_plugin_contract.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_plugin_contract-c95e7f043b0a58a5) running 1 test test independent_review_core_build_without_features_omits_remote_transport ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_shim-8d88872fb599c816) running 78 tests test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement test frame::checks::tests::golden_and_fragmented ... ok test frame::checks::golden::every_frozen_message ... ok test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test frame::checks::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok test ended::tests::bounded_record_preserves_status_and_rejects_malformed_or_linked_data ... ok test pty::child_signal_tests::child_signal_reset_spawn_cost_at_128_children ... ignored, child spawn diagnostic; run locally in a weighted scope without own build overlap test locked_bytes::tests::anonymous_transfer_pages_are_locked_and_excluded_from_core_dumps ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile running 1 test test frame::checks::approximate_snapshot_codec_is_bounded_and_canonical ... ok test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement 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::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 frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 77 filtered out; finished in 0.06s test pty::child_signal_tests::child_reset_restores_ignored_dispositions_and_leaves_parent_mask ... ok test terminal::checks::tests::implicit_hyperlinks_retain_groups_across_rows_and_continuation ... ok test session::measurements::budgets::allowlisted_signal_after_real_pty_exit_keeps_exit_ack_available ... 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::approximate_repaint_keeps_complete_pending_syntax_or_omits_it_whole ... ok test terminal::checks::tests::retained_alternate_saved_cursor_and_keyboard_stack_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::saved_origin_survives_changed_margins ... ok test terminal::fidelity::fidelity_charset_mapped_wide_space_is_explicitly_rejected ... ok test terminal::checks::tests::pending_wrap_and_saved_wrap_continue_with_wide_cells ... ok test session::resize_checks::native_resize_refusal_preserves_peer_and_pty ... ok test terminal::fidelity::fidelity_diagnostic_fixture ... ignored, diagnostic replay of an explicitly selected fixture file test terminal::fidelity::fidelity_extended_nightly ... ignored, nightly expanded differential corpus: 20,000 deterministic cases test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::byte_budget_prunes_history_and_resize_remains_repaintable ... ok test terminal::fidelity::fidelity_fresh_c_redraw_default_is_explicitly_rejected ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test terminal::fidelity::fidelity_cursor ... ok test terminal::fidelity::fidelity_inherited_protection_off_mode_is_explicitly_rejected ... ok test terminal::fidelity::fidelity_iso_protection_erase ... ok test terminal::fidelity::fidelity_edge ... ok test terminal::checks::tests::unfinished_sequence_over_frame_limit_fails_without_losing_runtime_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_oracle_detects_hidden_state ... ok test terminal::fidelity::fidelity_f1_rep ... ok test terminal::fidelity::fidelity_iso_protection_does_not_keep_rep_scratch ... ok test terminal::fidelity::fidelity_saved_modes_future_restore ... ok test terminal::fidelity::fidelity_rejects_unrepresentable_rep_without_mutating_source ... ok test terminal::fidelity::fidelity_seeded_nightly ... ignored, nightly differential corpus: 20,000 deterministic cases test terminal::fidelity::fidelity_saved_cursor_over_changed_edge ... ok test terminal::fidelity::fidelity_semantic_validation_matches_exported_history_extent ... ok test terminal::checks::approximate_repaint_is_bounded_clips_at_complete_cells_and_preserves_source ... ok test terminal::fidelity::fidelity_snapshot_history_tail_contains_no_padding_rows ... 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_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::resize_recovery::complete_ring_restores_screens_mouse_and_unfinished_syntax ... ok test terminal::fidelity::fidelity_variation_tail_attributes ... 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_native::allocation::resize_allocation_refusal_retires_native_handle ... ok test terminal::resize_recovery::ring_gap_requires_clean_approximate_recovery ... ok test terminal::resize_recovery::earlier_geometry_changes_require_approximation_even_with_origin_coverage ... ok test terminal::fidelity::fidelity_extended_smoke ... ok test terminal::fidelity::fidelity_seeded_smoke ... ok test result: ok. 65 passed; 0 failed; 13 ignored; 0 measured; 0 filtered out; finished in 60.36s Running tests/detach.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/detach-af6bf43868555110) running 2 tests test detached_child_restores_default_signals_without_changing_parent ... ok test closed_standard_descriptors_become_dev_null ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.09s Running tests/mouse.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/mouse-3ee544922f442de4) 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 9.19s 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 3.04s 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_backup 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_relay 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_remote 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/dev-backmerge/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 │ │ └── infraternal-fuzz 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-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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 'cpufeatures' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:50:1 │ 50 │ ╭ cpufeatures 0.2.17 registry+https://github.com/rust-lang/crates.io-index 51 │ │ cpufeatures 0.3.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ cpufeatures v0.2.17 ├── aes v0.8.4 │ └── aes-gcm v0.10.3 │ └── (dev) infraternal-server v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── argon2 v0.5.3 │ └── infraternal-server v0.1.0 (*) ├── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── sha1 v0.10.7 │ ├── axum v0.8.9 │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── 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-plugin-ssh v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-fuzz v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh 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 (*) ├ cpufeatures v0.3.1 └── chacha20 v0.10.2 └── rand v0.10.3 └── quinn-proto v0.11.19 └── quinn v0.11.12 ├── infraternal-agent v0.1.0 │ ├── infraternal v0.1.0 │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-plugin-remote v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) └── infraternal-server v0.1.0 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:92:1 │ 92 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 93 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 94 │ │ 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 │ │ └── infraternal-fuzz 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-fuzz v0.1.0 (*) │ │ │ │ │ └── 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-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-ssh 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 (*) └── ring v0.17.14 ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── rustls v0.23.45 │ ├── infraternal-plugin-remote v0.1.0 (*) │ ├── quinn v0.11.12 (*) │ └── quinn-proto v0.11.19 (*) └── rustls-webpki v0.103.15 └── rustls v0.23.45 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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-plugin-api v0.1.0 │ │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ │ ├── infraternal 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 │ │ └── 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 v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.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 (*) │ └── (build) ring v0.17.14 │ ├── quinn-proto v0.11.19 │ │ └── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── rustls v0.23.45 │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── quinn v0.11.12 (*) │ │ └── quinn-proto v0.11.19 (*) │ └── rustls-webpki v0.103.15 │ └── rustls v0.23.45 (*) ├── quinn-proto v0.11.19 (*) ├── rand v0.10.3 │ └── quinn-proto v0.11.19 (*) └── uuid v1.27.0 ├── infraternal v0.1.0 (*) ├── infraternal-agent v0.1.0 (*) ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:98:1 │ 98 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 99 │ │ 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-plugin-api v0.1.0 │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-plugin-mesh v0.1.0 ```
Author
Owner

#163 verbatim evidence: verify-fast-setup.log (4/5)

     │       │   │   │       ├── infraternal v0.1.0 (*)
     │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
     │       │   │   │       └── infraternal-server v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-backup v0.1.0
     │       │   │   │   └── infraternal v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-host-facts v0.1.0
     │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-relay v0.1.0
     │       │   │   │   └── infraternal v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-remote v0.1.0
     │       │   │   │   ├── infraternal v0.1.0 (*)
     │       │   │   │   ├── infraternal-agent v0.1.0 (*)
     │       │   │   │   └── infraternal-server v0.1.0 (*)
     │       │   │   ├── infraternal-plugin-ssh v0.1.0
     │       │   │   │   ├── infraternal 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-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-fuzz v0.1.0
         │   │   │   └── infraternal-server v0.1.0
         │   │   │       ├── infraternal v0.1.0
         │   │   │       └── infraternal-fuzz 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 (*)
         │   │   │   ├── infraternal v0.1.0 (*)
         │   │   │   └── (dev) infraternal-server v0.1.0 (*)
         │   │   ├── infraternal v0.1.0 (*)
         │   │   └── (dev) infraternal-server v0.1.0 (*)
         │   └── (dev) infraternal-server v0.1.0 (*)
         └── sqlx-core v0.8.6
             ├── sqlx v0.8.6
             │   ├── infraternal-plugin-api v0.1.0
             │   │   ├── infraternal v0.1.0 (*)
             │   │   ├── infraternal-agent v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   ├── infraternal-fuzz v0.1.0 (*)
             │   │   │   └── infraternal-server v0.1.0 (*)
             │   │   ├── infraternal-fuzz v0.1.0 (*)
             │   │   ├── infraternal-mesh v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   └── infraternal-plugin-mesh v0.1.0
             │   │   │       ├── infraternal v0.1.0 (*)
             │   │   │       ├── infraternal-fuzz v0.1.0 (*)
             │   │   │       └── infraternal-server v0.1.0 (*)
             │   │   ├── infraternal-plugin-backup v0.1.0
             │   │   │   └── infraternal v0.1.0 (*)
             │   │   ├── infraternal-plugin-host-facts v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   ├── infraternal-agent v0.1.0 (*)
             │   │   │   └── infraternal-fuzz v0.1.0 (*)
             │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
             │   │   ├── infraternal-plugin-relay v0.1.0
             │   │   │   └── infraternal v0.1.0 (*)
             │   │   ├── infraternal-plugin-remote v0.1.0
             │   │   │   ├── infraternal v0.1.0 (*)
             │   │   │   ├── infraternal-agent v0.1.0 (*)
             │   │   │   └── infraternal-server v0.1.0 (*)
             │   │   ├── infraternal-plugin-ssh v0.1.0
             │   │   │   ├── infraternal 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/dev-backmerge/Cargo.lock:196:1
    │  
196 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index
197 │ │ 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
              │   │   └── infraternal-fuzz v0.1.0
              │   ├── tungstenite v0.29.0
              │   │   └── tokio-tungstenite v0.29.0
              │   │       ├── axum v0.8.9
              │   │       │   ├── infraternal-fuzz v0.1.0 (*)
              │   │       │   └── 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-plugin-api v0.1.0
          │       │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
          │       │       │   │   ├── infraternal-fuzz v0.1.0 (*)
          │       │       │   │   ├── infraternal-mesh v0.1.0
          │       │       │   │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   │   └── infraternal-plugin-mesh v0.1.0
          │       │       │   │   │       ├── infraternal v0.1.0 (*)
          │       │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
          │       │       │   │   │       └── infraternal-server v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-backup v0.1.0
          │       │       │   │   │   └── infraternal v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-host-facts v0.1.0
          │       │       │   │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-relay v0.1.0
          │       │       │   │   │   └── infraternal v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-remote v0.1.0
          │       │       │   │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   │   │   └── infraternal-server v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-ssh v0.1.0
          │       │       │   │   │   ├── infraternal 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
          │       │               └── 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 v0.1.0 (*)
          │       │       │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
          │       │       │   ├── infraternal-server v0.1.0 (*)
          │       │       │   ├── tokio-openssl v0.6.5
          │       │       │   │   ├── axum-server v0.8.0 (*)
          │       │       │   │   ├── infraternal v0.1.0 (*)
          │       │       │   │   ├── infraternal-agent v0.1.0 (*)
          │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
          │       │       │   │   └── (dev) infraternal-server v0.1.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 (*)
          │       └── (build) ring v0.17.14
          │           ├── quinn-proto v0.11.19
          │           │   └── quinn v0.11.12
          │           │       ├── infraternal-agent v0.1.0 (*)
          │           │       ├── infraternal-plugin-remote v0.1.0 (*)
          │           │       └── infraternal-server v0.1.0 (*)
          │           ├── rustls v0.23.45
          │           │   ├── infraternal-plugin-remote v0.1.0 (*)
          │           │   ├── quinn v0.11.12 (*)
          │           │   └── quinn-proto v0.11.19 (*)
          │           └── rustls-webpki v0.103.15
          │               └── rustls v0.23.45 (*)
          ├── quinn-proto v0.11.19 (*)
          ├── rand v0.10.3
          │   └── quinn-proto v0.11.19 (*)
          └── uuid v1.27.0
              ├── infraternal v0.1.0 (*)
              ├── infraternal-agent v0.1.0 (*)
              ├── infraternal-plugin-ssh 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 3 duplicate entries for crate 'rand'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:198:1
    │  
198 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index
199 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index
200 │ │ rand 0.10.3 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
              └── infraternal-fuzz v0.1.0
    ├ rand v0.9.5
      ├── infraternal-server v0.1.0
      │   ├── infraternal v0.1.0
      │   └── infraternal-fuzz v0.1.0
      ├── tungstenite v0.29.0
      │   └── tokio-tungstenite v0.29.0
      │       ├── axum v0.8.9
      │       │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   └── 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 v0.10.3
      └── quinn-proto v0.11.19
          └── quinn v0.11.12
              ├── infraternal-agent v0.1.0
              │   ├── infraternal v0.1.0
              │   ├── infraternal-fuzz v0.1.0
              │   └── infraternal-server v0.1.0
              │       ├── infraternal v0.1.0 (*)
              │       └── infraternal-fuzz v0.1.0 (*)
              ├── infraternal-plugin-remote v0.1.0
              │   ├── infraternal v0.1.0 (*)
              │   ├── infraternal-agent v0.1.0 (*)
              │   └── infraternal-server v0.1.0 (*)
              └── infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:201:1
    │  
201 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index
202 │ │ 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
                  └── infraternal-fuzz v0.1.0
    ├ rand_chacha v0.9.0
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   ├── infraternal v0.1.0
      │   │   └── infraternal-fuzz v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   └── 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 3 duplicate entries for crate 'rand_core'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:203:1
    │  
203 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index
204 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index
205 │ │ rand_core 0.10.1 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
      │       └── infraternal-fuzz 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-fuzz v0.1.0 (*)
      │   │   │   │   └── 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-plugin-ssh v0.1.0
      │   │       │   ├── infraternal v0.1.0 (*)
      │   │       │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       ├── infraternal-server v0.1.0 (*)
      │   │       ├── sqlx-core v0.8.6
      │   │       │   ├── sqlx v0.8.6
      │   │       │   │   ├── infraternal-plugin-api v0.1.0
      │   │       │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-agent v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-mesh v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-plugin-mesh v0.1.0
      │   │       │   │   │   │       ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   │       └── infraternal-server v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-backup v0.1.0
      │   │       │   │   │   │   └── infraternal v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-host-facts v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-relay v0.1.0
      │   │       │   │   │   │   └── infraternal v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-remote v0.1.0
      │   │       │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │       │   │   │   ├── infraternal-plugin-ssh 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
      │   │   └── infraternal-fuzz v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │   └── 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 (*)
    ├ rand_core v0.10.1
      ├── chacha20 v0.10.2
      │   └── rand v0.10.3
      │       └── quinn-proto v0.11.19
      │           └── quinn v0.11.12
      │               ├── infraternal-agent v0.1.0
      │               │   ├── infraternal v0.1.0
      │               │   ├── infraternal-fuzz v0.1.0
      │               │   └── infraternal-server v0.1.0
      │               │       ├── infraternal v0.1.0 (*)
      │               │       └── infraternal-fuzz v0.1.0 (*)
      │               ├── infraternal-plugin-remote v0.1.0
      │               │   ├── infraternal v0.1.0 (*)
      │               │   ├── infraternal-agent v0.1.0 (*)
      │               │   └── infraternal-server v0.1.0 (*)
      │               └── infraternal-server v0.1.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-plugin-api v0.1.0
      │   │       │       │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-mesh v0.1.0
      │   │       │       │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   │   └── infraternal-plugin-mesh v0.1.0
      │   │       │       │   │   │       ├── infraternal v0.1.0 (*)
      │   │       │       │   │   │       ├── infraternal-fuzz v0.1.0 (*)
      │   │       │       │   │   │       └── infraternal-server v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-backup v0.1.0
      │   │       │       │   │   │   └── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-host-facts v0.1.0
      │   │       │       │   │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-relay v0.1.0
      │   │       │       │   │   │   └── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-ssh v0.1.0
      │   │       │       │   │   │   ├── infraternal 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
      │   │       │               └── 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 v0.1.0 (*)
      │   │       │       │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │       │       │   ├── infraternal-server v0.1.0 (*)
      │   │       │       │   ├── tokio-openssl v0.6.5
      │   │       │       │   │   ├── axum-server v0.8.0 (*)
      │   │       │       │   │   ├── infraternal v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-agent v0.1.0 (*)
      │   │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │       │       │   │   └── (dev) infraternal-server v0.1.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 (*)
      │   │       └── (build) ring v0.17.14
      │   │           ├── quinn-proto v0.11.19 (*)
      │   │           ├── rustls v0.23.45
      │   │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │           │   ├── quinn v0.11.12 (*)
      │   │           │   └── quinn-proto v0.11.19 (*)
      │   │           └── rustls-webpki v0.103.15
      │   │               └── rustls v0.23.45 (*)
      │   ├── quinn-proto v0.11.19 (*)
      │   ├── rand v0.10.3 (*)
      │   └── uuid v1.27.0
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── infraternal-plugin-ssh 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 (*)
      ├── rand v0.10.3 (*)
      └── rand_pcg v0.10.2
          └── quinn-proto v0.11.19 (*)

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:247:1
    │  
247 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
248 │ │ 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
      │       │   │           └── infraternal-fuzz 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 v0.1.0 (*)
      │           ├── infraternal-agent v0.1.0
      │           │   ├── infraternal v0.1.0 (*)
      │           │   ├── infraternal-fuzz v0.1.0 (*)
      │           │   └── infraternal-server 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 v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── infraternal-plugin-remote v0.1.0
      │       │   ├── infraternal v0.1.0 (*)
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   ├── axum-server v0.8.0 (*)
      │       │   ├── infraternal v0.1.0 (*)
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   └── (dev) infraternal-server v0.1.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-plugin-api v0.1.0
      │       │   ├── infraternal v0.1.0 (*)
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   ├── infraternal-mesh v0.1.0
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── infraternal-plugin-mesh v0.1.0
      │       │   │       ├── infraternal v0.1.0 (*)
      │       │   │       ├── infraternal-fuzz v0.1.0 (*)
      │       │   │       └── infraternal-server v0.1.0 (*)
      │       │   ├── infraternal-plugin-backup v0.1.0
      │       │   │   └── infraternal v0.1.0 (*)
      │       │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │       │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │       │   ├── infraternal-plugin-relay v0.1.0
      │       │   │   └── infraternal v0.1.0 (*)
      │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   ├── infraternal-plugin-ssh v0.1.0
      │       │   │   ├── infraternal 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-fuzz v0.1.0 (*)
      │       │   └── 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 v0.1.0 (*)
      │       │   │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── quinn v0.11.12
      │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── quinn-proto v0.11.19
      │       │   └── quinn v0.11.12 (*)
      │       ├── quinn-udp v0.5.16
      │       │   └── quinn v0.11.12 (*)
      │       ├── 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-plugin-remote 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-fuzz v0.1.0 (*)
      │       │       ├── infraternal-fuzz v0.1.0 (*)
      │       │       ├── (dev) infraternal-plugin-host-facts v0.1.0
      │       │       │   ├── infraternal v0.1.0 (*)
      │       │       │   ├── infraternal-agent v0.1.0 (*)
      │       │       │   └── infraternal-fuzz v0.1.0 (*)
      │       │       ├── infraternal-plugin-mesh v0.1.0
      │       │       │   ├── infraternal v0.1.0 (*)
      │       │       │   ├── infraternal-fuzz v0.1.0 (*)
      │       │       │   └── infraternal-server v0.1.0 (*)
      │       │       ├── infraternal-plugin-remote v0.1.0
      │       │       │   ├── infraternal v0.1.0 (*)
      │       │       │   ├── infraternal-agent v0.1.0 (*)
      │       │       │   └── infraternal-server 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 v0.1.0 (*)
      │   │   │               ├── infraternal-plugin-ssh v0.1.0
      │   │   │               │   ├── infraternal v0.1.0 (*)
      │   │   │               │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   │               │   └── infraternal-server v0.1.0 (*)
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal-plugin-api v0.1.0
      │   │   │               │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-mesh v0.1.0
      │   │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   │   │   └── infraternal-plugin-mesh v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-backup v0.1.0
      │   │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-relay v0.1.0
      │   │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │   │               │   │   │   ├── infraternal-plugin-ssh 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 (*)
#163 verbatim evidence: verify-fast-setup.log (4/5) ```text │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal 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-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-fuzz v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-fuzz 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 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── infraternal v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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/dev-backmerge/Cargo.lock:196:1 │ 196 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 197 │ │ 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 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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-plugin-api v0.1.0 │ │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ │ ├── infraternal 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 │ │ └── 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 v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.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 (*) │ └── (build) ring v0.17.14 │ ├── quinn-proto v0.11.19 │ │ └── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── rustls v0.23.45 │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── quinn v0.11.12 (*) │ │ └── quinn-proto v0.11.19 (*) │ └── rustls-webpki v0.103.15 │ └── rustls v0.23.45 (*) ├── quinn-proto v0.11.19 (*) ├── rand v0.10.3 │ └── quinn-proto v0.11.19 (*) └── uuid v1.27.0 ├── infraternal v0.1.0 (*) ├── infraternal-agent v0.1.0 (*) ├── infraternal-plugin-ssh 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 3 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:198:1 │ 198 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 199 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index 200 │ │ rand 0.10.3 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 └── infraternal-fuzz v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── 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 v0.10.3 └── quinn-proto v0.11.19 └── quinn v0.11.12 ├── infraternal-agent v0.1.0 │ ├── infraternal v0.1.0 │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-plugin-remote v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:201:1 │ 201 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 202 │ │ 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 └── infraternal-fuzz v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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 3 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:203:1 │ 203 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 204 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index 205 │ │ rand_core 0.10.1 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 │ └── infraternal-fuzz 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-fuzz v0.1.0 (*) │ │ │ │ └── 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-plugin-ssh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-ssh 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 │ │ └── infraternal-fuzz v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── 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 (*) ├ rand_core v0.10.1 ├── chacha20 v0.10.2 │ └── rand v0.10.3 │ └── quinn-proto v0.11.19 │ └── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-fuzz v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.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-plugin-api v0.1.0 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ │ │ ├── infraternal 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 │ │ │ └── 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 v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ └── (dev) infraternal-server v0.1.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 (*) │ │ └── (build) ring v0.17.14 │ │ ├── quinn-proto v0.11.19 (*) │ │ ├── rustls v0.23.45 │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── quinn v0.11.12 (*) │ │ │ └── quinn-proto v0.11.19 (*) │ │ └── rustls-webpki v0.103.15 │ │ └── rustls v0.23.45 (*) │ ├── quinn-proto v0.11.19 (*) │ ├── rand v0.10.3 (*) │ └── uuid v1.27.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-ssh 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 (*) ├── rand v0.10.3 (*) └── rand_pcg v0.10.2 └── quinn-proto v0.11.19 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:247:1 │ 247 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 248 │ │ 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 │ │ │ └── infraternal-fuzz 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 v0.1.0 (*) │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server 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 v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ ├── axum-server v0.8.0 (*) │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.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-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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-fuzz v0.1.0 (*) │ │ └── 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 v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── quinn-proto v0.11.19 │ │ └── quinn v0.11.12 (*) │ ├── quinn-udp v0.5.16 │ │ └── quinn v0.11.12 (*) │ ├── 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-plugin-remote 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-fuzz v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── (dev) infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server 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 v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-ssh 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 (*) ```
Author
Owner

#163 verbatim evidence: verify-fast-setup.log (5/5)

      │   ├── 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-fuzz v0.1.0 (*)
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── futures-executor v0.3.34
      │       │   └── sqlx-sqlite v0.8.6 (*)
      │       ├── infraternal-plugin-mesh v0.1.0 (*)
      │       ├── (dev) infraternal-plugin-ssh v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── js-sys v0.3.106
      │       │   ├── getrandom v0.2.17
      │       │   │   ├── rand_core v0.6.4
      │       │   │   │   ├── bip39 v2.2.2
      │       │   │   │   │   └── infraternal-server 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 (*)
      │       │   │   │   │   │   │   └── tungstenite v0.29.0
      │       │   │   │   │   │   │       └── tokio-tungstenite v0.29.0
      │       │   │   │   │   │   │           ├── axum v0.8.9 (*)
      │       │   │   │   │   │   │           └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   │   │   │   └── sha2 v0.10.9
      │       │   │   │   │   │       ├── infraternal-plugin-ssh v0.1.0 (*)
      │       │   │   │   │   │       ├── infraternal-server v0.1.0 (*)
      │       │   │   │   │   │       ├── sqlx-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 (*)
      │       │   │   └── ring v0.17.14
      │       │   │       ├── quinn-proto v0.11.19
      │       │   │       │   └── quinn v0.11.12
      │       │   │       │       ├── infraternal-agent v0.1.0 (*)
      │       │   │       │       ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │       │       └── infraternal-server v0.1.0 (*)
      │       │   │       ├── rustls v0.23.45
      │       │   │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │       │   ├── quinn v0.11.12 (*)
      │       │   │       │   └── quinn-proto v0.11.19 (*)
      │       │   │       └── rustls-webpki v0.103.15
      │       │   │           └── rustls v0.23.45 (*)
      │       │   ├── 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 (*)
      │       │   │   │       ├── 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 v0.1.0 (*)
      │       │   │   │       │       │   ├── infraternal-agent v0.1.0 (*)
      │       │   │   │       │       │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │   │       │       │   ├── infraternal-server v0.1.0 (*)
      │       │   │   │       │       │   ├── tokio-openssl v0.6.5
      │       │   │   │       │       │   │   ├── axum-server v0.8.0 (*)
      │       │   │   │       │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   │       │       │   │   ├── infraternal-agent v0.1.0 (*)
      │       │   │   │       │       │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │       │   │   │       │       │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   │       │       │   ├── webauthn-attestation-ca v0.5.5
      │       │   │   │       │       │   │   └── webauthn-rs-core v0.5.5 (*)
      │       │   │   │       │       │   └── 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 (*)
      │       │   │   │       └── (build) ring v0.17.14 (*)
      │       │   │   ├── quinn-proto v0.11.19 (*)
      │       │   │   ├── rand v0.10.3
      │       │   │   │   └── quinn-proto v0.11.19 (*)
      │       │   │   └── uuid v1.27.0
      │       │   │       ├── infraternal v0.1.0 (*)
      │       │   │       ├── infraternal-agent v0.1.0 (*)
      │       │   │       ├── infraternal-plugin-ssh 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 (*)
      │       │   ├── web-sys v0.3.106
      │       │   │   └── plotters v0.3.7
      │       │   │       └── criterion v0.7.0 (*)
      │       │   └── web-time v1.1.0
      │       │       ├── quinn v0.11.12 (*)
      │       │       ├── quinn-proto v0.11.19 (*)
      │       │       └── rustls-pki-types v1.15.1
      │       │           ├── quinn-proto v0.11.19 (*)
      │       │           ├── rustls v0.23.45 (*)
      │       │           └── rustls-webpki v0.103.15 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.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 v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── axum-server v0.8.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 v0.1.0 (*)
      │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   ├── infraternal-mesh v0.1.0 (*)
      │   │   ├── infraternal-plugin-api v0.1.0 (*)
      │   │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │   ├── infraternal-plugin-ssh 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 (*)
      │   │   └── zeroize v1.9.0
      │   │       ├── infraternal-plugin-ssh v0.1.0 (*)
      │   │       ├── infraternal-server v0.1.0 (*)
      │   │       ├── rustls v0.23.45 (*)
      │   │       └── rustls-pki-types v1.15.1 (*)
      │   └── 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 (*)
      │       ├── quinn v0.11.12 (*)
      │       ├── quinn-proto v0.11.19 (*)
      │       ├── 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-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 (*)
      │       │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── (dev) infraternal-server v0.1.0 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── hyper v1.11.1 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── (dev) infraternal v0.1.0 (*)
      │       ├── infraternal-agent v0.1.0 (*)
      │       ├── infraternal-plugin-api v0.1.0 (*)
      │       ├── infraternal-plugin-mesh v0.1.0 (*)
      │       ├── infraternal-plugin-remote v0.1.0 (*)
      │       ├── infraternal-plugin-ssh v0.1.0 (*)
      │       ├── (dev) infraternal-server v0.1.0 (*)
      │       ├── quinn v0.11.12 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-openssl v0.6.5 (*)
      │       ├── 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
      │           ├── getrandom v0.2.17 (*)
      │           ├── getrandom v0.4.3 (*)
      │           ├── js-sys v0.3.106 (*)
      │           ├── plotters v0.3.7 (*)
      │           ├── web-sys v0.3.106 (*)
      │           └── web-time v1.1.0 (*)
      ├── 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/dev-backmerge/Cargo.lock:250:1
    │  
250 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index
251 │ │ 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
              │   │           └── infraternal-fuzz 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 v0.1.0
      │       │   │               ├── infraternal-plugin-ssh v0.1.0
      │       │   │               │   ├── infraternal v0.1.0 (*)
      │       │   │               │   ├── infraternal-fuzz v0.1.0
      │       │   │               │   └── infraternal-server v0.1.0
      │       │   │               │       ├── infraternal v0.1.0 (*)
      │       │   │               │       └── infraternal-fuzz v0.1.0 (*)
      │       │   │               ├── infraternal-server v0.1.0 (*)
      │       │   │               ├── sqlx-core v0.8.6
      │       │   │               │   ├── sqlx v0.8.6
      │       │   │               │   │   ├── infraternal-plugin-api v0.1.0
      │       │   │               │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-agent v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-server v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-mesh v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-plugin-mesh v0.1.0
      │       │   │               │   │   │   │       ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │       ├── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   │       └── infraternal-server v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-backup v0.1.0
      │       │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-host-facts v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-relay v0.1.0
      │       │   │               │   │   │   │   └── infraternal v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-remote v0.1.0
      │       │   │               │   │   │   │   ├── infraternal v0.1.0 (*)
      │       │   │               │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │       │   │               │   │   │   │   └── infraternal-server v0.1.0 (*)
      │       │   │               │   │   │   ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:253:1
    │  
253 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index
254 │ │ 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
      │   │   │           └── infraternal-fuzz 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 v0.1.0 (*)
      │   └── infraternal-plugin-mesh v0.1.0
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-fuzz v0.1.0
      │       └── infraternal-server v0.1.0
      │           ├── infraternal v0.1.0 (*)
      │           └── infraternal-fuzz v0.1.0 (*)
      ├── infraternal-server v0.1.0 (*)
      ├── quinn v0.11.12
      │   ├── infraternal-agent v0.1.0
      │   │   ├── infraternal v0.1.0 (*)
      │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   └── infraternal-server v0.1.0 (*)
      │   ├── infraternal-plugin-remote v0.1.0
      │   │   ├── infraternal v0.1.0 (*)
      │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   └── infraternal-server v0.1.0 (*)
      │   └── infraternal-server v0.1.0 (*)
      ├── quinn-proto v0.11.19
      │   └── quinn v0.11.12 (*)
      ├── sqlx-core v0.8.6
      │   ├── sqlx v0.8.6
      │   │   ├── infraternal-plugin-api v0.1.0
      │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   │   ├── infraternal-fuzz v0.1.0 (*)
      │   │   │   ├── infraternal-mesh v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-backup v0.1.0
      │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-host-facts v0.1.0
      │   │   │   │   ├── infraternal v0.1.0 (*)
      │   │   │   │   ├── infraternal-agent v0.1.0 (*)
      │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-relay v0.1.0
      │   │   │   │   └── infraternal v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-remote v0.1.0 (*)
      │   │   │   ├── infraternal-plugin-ssh v0.1.0
      │   │   │   │   ├── infraternal 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-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-fuzz v0.1.0 (*)
              │   └── 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/dev-backmerge/Cargo.lock:255:1
    │  
255 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index
256 │ │ 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
          │   │   │           └── infraternal-fuzz 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 v0.1.0 (*)
          │   └── infraternal-plugin-mesh v0.1.0
          │       ├── infraternal v0.1.0 (*)
          │       ├── infraternal-fuzz v0.1.0
          │       └── infraternal-server v0.1.0
          │           ├── infraternal v0.1.0 (*)
          │           └── infraternal-fuzz v0.1.0 (*)
          ├── infraternal-server v0.1.0 (*)
          ├── quinn v0.11.12
          │   ├── infraternal-agent v0.1.0
          │   │   ├── infraternal v0.1.0 (*)
          │   │   ├── infraternal-fuzz v0.1.0 (*)
          │   │   └── infraternal-server v0.1.0 (*)
          │   ├── infraternal-plugin-remote v0.1.0
          │   │   ├── infraternal v0.1.0 (*)
          │   │   ├── infraternal-agent v0.1.0 (*)
          │   │   └── infraternal-server v0.1.0 (*)
          │   └── infraternal-server v0.1.0 (*)
          ├── quinn-proto v0.11.19
          │   └── quinn v0.11.12 (*)
          ├── sqlx-core v0.8.6
          │   ├── sqlx v0.8.6
          │   │   ├── infraternal-plugin-api v0.1.0
          │   │   │   ├── infraternal v0.1.0 (*)
          │   │   │   ├── infraternal-agent v0.1.0 (*)
          │   │   │   ├── infraternal-fuzz v0.1.0 (*)
          │   │   │   ├── infraternal-mesh v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-backup v0.1.0
          │   │   │   │   └── infraternal v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-host-facts v0.1.0
          │   │   │   │   ├── infraternal v0.1.0 (*)
          │   │   │   │   ├── infraternal-agent v0.1.0 (*)
          │   │   │   │   └── infraternal-fuzz v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-mesh v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-relay v0.1.0
          │   │   │   │   └── infraternal v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-remote v0.1.0 (*)
          │   │   │   ├── infraternal-plugin-ssh v0.1.0
          │   │   │   │   ├── infraternal 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-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-fuzz v0.1.0 (*)
                  │   └── infraternal-server v0.1.0 (*)
                  └── (dev) infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:313:1
    │  
313 │ ╭ windows-sys 0.52.0 registry+https://github.com/rust-lang/crates.io-index
314 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.52.0
      └── ring v0.17.14
          ├── quinn-proto v0.11.19
          │   └── quinn v0.11.12
          │       ├── infraternal-agent v0.1.0
          │       │   ├── infraternal v0.1.0
          │       │   ├── infraternal-fuzz v0.1.0
          │       │   └── infraternal-server v0.1.0
          │       │       ├── infraternal v0.1.0 (*)
          │       │       └── infraternal-fuzz v0.1.0 (*)
          │       ├── infraternal-plugin-remote v0.1.0
          │       │   ├── infraternal v0.1.0 (*)
          │       │   ├── infraternal-agent v0.1.0 (*)
          │       │   └── infraternal-server v0.1.0 (*)
          │       └── infraternal-server v0.1.0 (*)
          ├── rustls v0.23.45
          │   ├── infraternal-plugin-remote v0.1.0 (*)
          │   ├── quinn v0.11.12 (*)
          │   └── quinn-proto v0.11.19 (*)
          └── rustls-webpki v0.103.15
              └── rustls v0.23.45 (*)
    ├ windows-sys v0.61.2
      ├── anstyle-query v1.1.5
      │   └── anstream v1.0.0
      │       └── clap_builder 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-fuzz v0.1.0 (*)
      │               │       ├── infraternal-fuzz v0.1.0 (*)
      │               │       ├── (dev) infraternal-plugin-host-facts v0.1.0
      │               │       │   ├── infraternal v0.1.0 (*)
      │               │       │   ├── infraternal-agent v0.1.0 (*)
      │               │       │   └── infraternal-fuzz v0.1.0 (*)
      │               │       ├── infraternal-plugin-mesh v0.1.0
      │               │       │   ├── infraternal v0.1.0 (*)
      │               │       │   ├── infraternal-fuzz v0.1.0 (*)
      │               │       │   └── infraternal-server v0.1.0 (*)
      │               │       ├── infraternal-plugin-remote v0.1.0
      │               │       │   ├── infraternal v0.1.0 (*)
      │               │       │   ├── infraternal-agent v0.1.0 (*)
      │               │       │   └── infraternal-server v0.1.0 (*)
      │               │       └── infraternal-server v0.1.0 (*)
      │               └── infraternal v0.1.0 (*)
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   └── signal-hook-registry v1.4.8
      │       └── tokio v1.53.2
      │           ├── axum v0.8.9
      │           │   ├── infraternal-fuzz v0.1.0 (*)
      │           │   └── infraternal-server v0.1.0 (*)
      │           ├── axum-server v0.8.0
      │           │   └── infraternal-server v0.1.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 (*)
      │           │   │   │   ├── infraternal v0.1.0 (*)
      │           │   │   │   └── (dev) infraternal-server v0.1.0 (*)
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── (dev) infraternal-server v0.1.0 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           ├── hyper v1.11.1 (*)
      │           ├── hyper-util v0.1.21 (*)
      │           ├── (dev) infraternal v0.1.0 (*)
      │           ├── infraternal-agent v0.1.0 (*)
      │           ├── infraternal-plugin-api v0.1.0
      │           │   ├── infraternal v0.1.0 (*)
      │           │   ├── infraternal-agent v0.1.0 (*)
      │           │   ├── infraternal-fuzz v0.1.0 (*)
      │           │   ├── infraternal-mesh v0.1.0
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── infraternal-plugin-mesh v0.1.0 (*)
      │           │   ├── infraternal-plugin-backup v0.1.0
      │           │   │   └── infraternal v0.1.0 (*)
      │           │   ├── infraternal-plugin-host-facts v0.1.0 (*)
      │           │   ├── infraternal-plugin-mesh v0.1.0 (*)
      │           │   ├── infraternal-plugin-relay v0.1.0
      │           │   │   └── infraternal v0.1.0 (*)
      │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │           │   ├── infraternal-plugin-ssh v0.1.0
      │           │   │   ├── infraternal 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-plugin-remote v0.1.0 (*)
      │           ├── infraternal-plugin-ssh v0.1.0 (*)
      │           ├── (dev) infraternal-server v0.1.0 (*)
      │           ├── quinn v0.11.12
      │           │   ├── infraternal-agent v0.1.0 (*)
      │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │           │   └── infraternal-server v0.1.0 (*)
      │           ├── sqlx-core v0.8.6
      │           │   ├── sqlx v0.8.6
      │           │   │   ├── infraternal-plugin-api 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 (*)
      │           ├── tokio-openssl v0.6.5
      │           │   ├── axum-server v0.8.0 (*)
      │           │   ├── infraternal v0.1.0 (*)
      │           │   ├── infraternal-agent v0.1.0 (*)
      │           │   ├── infraternal-plugin-remote v0.1.0 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           ├── tokio-stream v0.1.19
      │           │   └── sqlx-core v0.8.6 (*)
      │           ├── tokio-tungstenite v0.29.0
      │           │   ├── axum v0.8.9 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           ├── tokio-util v0.7.19
      │           │   ├── h2 v0.4.19 (*)
      │           │   └── tower-http v0.6.11
      │           │       └── infraternal-server v0.1.0 (*)
      │           ├── tower v0.5.3
      │           │   ├── axum v0.8.9 (*)
      │           │   └── (dev) infraternal-server v0.1.0 (*)
      │           └── tower-http v0.6.11 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2 (*)
      ├── nu-ansi-term v0.50.3
      │   └── tracing-subscriber v0.3.23
      │       └── infraternal-server v0.1.0 (*)
      ├── quinn-udp v0.5.16
      │   └── quinn v0.11.12 (*)
      ├── socket2 v0.6.5
      │   ├── quinn v0.11.12 (*)
      │   ├── quinn-udp v0.5.16 (*)
      │   └── tokio v1.53.2 (*)
      ├── tokio v1.53.2 (*)
      └── winapi-util v0.1.11
          ├── same-file v1.0.6
          │   └── walkdir v2.5.0
          │       ├── criterion v0.7.0 (*)
          │       └── sysctl v0.7.1
          │           └── infraternal-plugin-host-facts v0.1.0 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 5m 33s
/home/kayg/.cache/codex-scratch/dev-backmerge/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: 20295024 bytes (baseline 16142672 + allowance 262144 = max 16404816)
binary exceeds the 16404816-byte size budget: 20295024 bytes

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| CLI plugin compile-out    | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | FAIL (1)     |
+---------------------------+--------------+
#163 verbatim evidence: verify-fast-setup.log (5/5) ```text │ ├── 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-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ ├── (dev) infraternal-plugin-ssh v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ ├── getrandom v0.2.17 │ │ │ ├── rand_core v0.6.4 │ │ │ │ ├── bip39 v2.2.2 │ │ │ │ │ └── infraternal-server 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 (*) │ │ │ │ │ │ │ └── tungstenite v0.29.0 │ │ │ │ │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ │ │ │ │ ├── axum v0.8.9 (*) │ │ │ │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ │ │ │ └── sha2 v0.10.9 │ │ │ │ │ │ ├── infraternal-plugin-ssh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── sqlx-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 (*) │ │ │ └── ring v0.17.14 │ │ │ ├── quinn-proto v0.11.19 │ │ │ │ └── quinn v0.11.12 │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── rustls v0.23.45 │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ ├── quinn v0.11.12 (*) │ │ │ │ └── quinn-proto v0.11.19 (*) │ │ │ └── rustls-webpki v0.103.15 │ │ │ └── rustls v0.23.45 (*) │ │ ├── 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 (*) │ │ │ │ ├── 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 v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ │ │ │ ├── axum-server v0.8.0 (*) │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ │ │ │ └── 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 (*) │ │ │ │ └── (build) ring v0.17.14 (*) │ │ │ ├── quinn-proto v0.11.19 (*) │ │ │ ├── rand v0.10.3 │ │ │ │ └── quinn-proto v0.11.19 (*) │ │ │ └── uuid v1.27.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh 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 (*) │ │ ├── web-sys v0.3.106 │ │ │ └── plotters v0.3.7 │ │ │ └── criterion v0.7.0 (*) │ │ └── web-time v1.1.0 │ │ ├── quinn v0.11.12 (*) │ │ ├── quinn-proto v0.11.19 (*) │ │ └── rustls-pki-types v1.15.1 │ │ ├── quinn-proto v0.11.19 (*) │ │ ├── rustls v0.23.45 (*) │ │ └── rustls-webpki v0.103.15 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.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 v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.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 v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-api v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── infraternal-plugin-ssh 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 (*) │ │ └── zeroize v1.9.0 │ │ ├── infraternal-plugin-ssh v0.1.0 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── rustls v0.23.45 (*) │ │ └── rustls-pki-types v1.15.1 (*) │ └── 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 (*) │ ├── quinn v0.11.12 (*) │ ├── quinn-proto v0.11.19 (*) │ ├── 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-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 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── (dev) infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 (*) │ ├── infraternal-plugin-mesh v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 (*) │ ├── infraternal-plugin-ssh v0.1.0 (*) │ ├── (dev) infraternal-server v0.1.0 (*) │ ├── quinn v0.11.12 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 (*) │ ├── 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 │ ├── getrandom v0.2.17 (*) │ ├── getrandom v0.4.3 (*) │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ ├── web-sys v0.3.106 (*) │ └── web-time v1.1.0 (*) ├── 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/dev-backmerge/Cargo.lock:250:1 │ 250 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 251 │ │ 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 │ │ └── infraternal-fuzz 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 v0.1.0 │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-fuzz v0.1.0 │ │ │ │ └── infraternal-server v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-agent v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-plugin-mesh v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ │ │ ├── infraternal-plugin-ssh 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/dev-backmerge/Cargo.lock:253:1 │ 253 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 254 │ │ 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 │ │ │ └── infraternal-fuzz 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 v0.1.0 (*) │ └── infraternal-plugin-mesh v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal 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-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-fuzz v0.1.0 (*) │ └── 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/dev-backmerge/Cargo.lock:255:1 │ 255 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 256 │ │ 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 │ │ │ └── infraternal-fuzz 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 v0.1.0 (*) │ └── infraternal-plugin-mesh v0.1.0 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-fuzz v0.1.0 │ └── infraternal-server v0.1.0 │ ├── infraternal v0.1.0 (*) │ └── infraternal-fuzz v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal-plugin-api v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-host-facts v0.1.0 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ │ ├── infraternal 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-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-fuzz v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/Cargo.lock:313:1 │ 313 │ ╭ windows-sys 0.52.0 registry+https://github.com/rust-lang/crates.io-index 314 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.52.0 └── ring v0.17.14 ├── quinn-proto v0.11.19 │ └── quinn v0.11.12 │ ├── infraternal-agent v0.1.0 │ │ ├── infraternal v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-fuzz v0.1.0 (*) │ ├── infraternal-plugin-remote v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── rustls v0.23.45 │ ├── infraternal-plugin-remote v0.1.0 (*) │ ├── quinn v0.11.12 (*) │ └── quinn-proto v0.11.19 (*) └── rustls-webpki v0.103.15 └── rustls v0.23.45 (*) ├ windows-sys v0.61.2 ├── anstyle-query v1.1.5 │ └── anstream v1.0.0 │ └── clap_builder 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-fuzz v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── (dev) infraternal-plugin-host-facts v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ ├── infraternal-agent v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ └── infraternal v0.1.0 (*) ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ └── signal-hook-registry v1.4.8 │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.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 (*) │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── (dev) infraternal v0.1.0 (*) │ ├── infraternal-agent v0.1.0 (*) │ ├── infraternal-plugin-api v0.1.0 │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-fuzz v0.1.0 (*) │ │ ├── infraternal-mesh v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-backup v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-host-facts v0.1.0 (*) │ │ ├── infraternal-plugin-mesh v0.1.0 (*) │ │ ├── infraternal-plugin-relay v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ ├── infraternal-plugin-ssh v0.1.0 │ │ │ ├── infraternal 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-plugin-remote v0.1.0 (*) │ ├── infraternal-plugin-ssh v0.1.0 (*) │ ├── (dev) infraternal-server v0.1.0 (*) │ ├── quinn v0.11.12 │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal-plugin-api 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 (*) │ ├── tokio-openssl v0.6.5 │ │ ├── axum-server v0.8.0 (*) │ │ ├── infraternal v0.1.0 (*) │ │ ├── infraternal-agent v0.1.0 (*) │ │ ├── infraternal-plugin-remote v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 │ │ └── infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 (*) ├── nu-ansi-term v0.50.3 │ └── tracing-subscriber v0.3.23 │ └── infraternal-server v0.1.0 (*) ├── quinn-udp v0.5.16 │ └── quinn v0.11.12 (*) ├── socket2 v0.6.5 │ ├── quinn v0.11.12 (*) │ ├── quinn-udp v0.5.16 (*) │ └── tokio v1.53.2 (*) ├── tokio v1.53.2 (*) └── winapi-util v0.1.11 ├── same-file v1.0.6 │ └── walkdir v2.5.0 │ ├── criterion v0.7.0 (*) │ └── sysctl v0.7.1 │ └── infraternal-plugin-host-facts v0.1.0 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `release` profile [optimized] target(s) in 5m 33s /home/kayg/.cache/codex-scratch/dev-backmerge/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: 20295024 bytes (baseline 16142672 + allowance 262144 = max 16404816) binary exceeds the 16404816-byte size budget: 20295024 bytes +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | FAIL (1) | +---------------------------+--------------+ ```
Author
Owner

#163 verbatim evidence: playwright-scoped.log (1/7)

Running as unit: run-p3168566-i49258684.scope; invocation ID: 07e9060b831f4a5e9ace33e49eb84785
[WebServer] $ bun run build.ts
[WebServer] built chunk-bnj6r67r.js, chunk-tvynw18r.js, chunk-rr0kvt7w.js, chunk-b5qzwpce.js, chunk-mv2ahd7z.js, chunk-s4qyaw6n.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-f2f1t9bt.js, chunk-3ccck2vf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-emq06ygg.js, chunk-7nczvd3c.js, chunk-yyavwnt8.js, chunk-2tsdc1nh.js, chunk-yvhhqffe.js, chunk-3htyf13b.js, chunk-mnyqdsbx.js, chunk-fvnwnpb1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-r4tpd3ny.js, chunk-bwmsktwq.js, chunk-dzb2a5v4.js, chunk-5h2k8s0e.js, chunk-8gqdshxw.js, chunk-knp1tq5r.js, chunk-q28nn8sj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-7s9170gn.js, chunk-1ctb841n.js, chunk-6170yqjh.js, chunk-jxd89xqh.js, chunk-1d0qvnvb.js, chunk-jysetjf3.js, chunk-axbkkqp1.js, chunk-dyxhqspe.js, chunk-8d2b3n41.js, chunk-j0e859jk.js, chunk-twet11z6.js, chunk-zbckfcp1.js, chunk-qvcgkx50.js, chunk-v86b5paa.js, chunk-tytj4wdc.js, chunk-0674vrhh.js, chunk-w67w218a.js, chunk-va7fbhq4.js, chunk-2e4yh13p.js, chunk-2y2tvdr2.js, chunk-hyayjy0s.js, chunk-xf0jnavj.js, chunk-f2frmgj8.js, chunk-3v3fxjxs.js, chunk-hj6363dt.js, chunk-brqse20z.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-7gkz75b6.js, chunk-fn1gk1av.js, chunk-0sxn500c.js, chunk-nvdf9kep.js, chunk-20tw4eam.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4638
[WebServer] latency proxy listening on http://localhost:4637; upstream port=4638

Running 542 tests using 1 worker

(node:3170598) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓    1 test/access-states.spec.ts:43:5 › 1440x900 › sign-in, unreachable and loading share the lede-to-action gap and equal padding (4.7s)
  ✓    2 test/access-states.spec.ts:85:7 › 1440x900 › sign-in failure (cancelled passkey) sits centred above the action with the card's gap (3.9s)
  ✓    3 test/access-states.spec.ts:85:7 › 1440x900 › sign-in failure (rate limited) sits centred above the action with the card's gap (2.7s)
  ✓    4 test/access-states.spec.ts:85:7 › 1440x900 › sign-in failure (offline) sits centred above the action with the card's gap (3.4s)
  ✓    5 test/access-states.spec.ts:43:5 › 393x852 › sign-in, unreachable and loading share the lede-to-action gap and equal padding (4.4s)
  ✓    6 test/access-states.spec.ts:85:7 › 393x852 › sign-in failure (cancelled passkey) sits centred above the action with the card's gap (3.6s)
  ✓    7 test/access-states.spec.ts:85:7 › 393x852 › sign-in failure (rate limited) sits centred above the action with the card's gap (3.6s)
  ✓    8 test/access-states.spec.ts:85:7 › 393x852 › sign-in failure (offline) sits centred above the action with the card's gap (3.4s)
  ✓    9 test/access-states.spec.ts:43:5 › 375x667 › sign-in, unreachable and loading share the lede-to-action gap and equal padding (4.9s)
  ✓   10 test/access-states.spec.ts:85:7 › 375x667 › sign-in failure (cancelled passkey) sits centred above the action with the card's gap (3.3s)
  ✓   11 test/access-states.spec.ts:85:7 › 375x667 › sign-in failure (rate limited) sits centred above the action with the card's gap (3.5s)
  ✓   12 test/access-states.spec.ts:85:7 › 375x667 › sign-in failure (offline) sits centred above the action with the card's gap (3.3s)
  ✘   13 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (12.8s)
(node:3184493) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   14 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (10.6s)
  ✓   15 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (7.5s)
  ✓   16 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (12.8s)
  ✓   17 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (10.3s)
  ✓   18 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (13.9s)
  ✓   19 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (19.3s)
  ✓   20 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (12.6s)
  ✓   21 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (12.0s)
  ✓   22 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (9.5s)
  ✓   23 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.9s)
  ✓   24 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (8.4s)
  ✓   25 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (9.3s)
  ✓   26 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (9.6s)
  -   27 test/addhost-captures.spec.ts:73:5 › captures 1440x900 ink
  -   28 test/addhost-captures.spec.ts:73:5 › captures 1440x900 paper
  -   29 test/addhost-captures.spec.ts:73:5 › captures 393x852 ink
  -   30 test/addhost-captures.spec.ts:73:5 › captures 393x852 paper
  ✓   31 test/addhost-chips.spec.ts:43:1 › typing kayg@o2 and clicking Continue proceeds with that host, with no tick (9.7s)
  ✓   32 test/addhost-chips.spec.ts:57:1 › a@h1 b@h2,c@h3 gives chips for the ended targets; the last one waits as text until it is ended (10.1s)
  ✓   33 test/addhost-chips.spec.ts:72:1 › pasting three lines gives three chips (8.7s)
  ✓   34 test/addhost-chips.spec.ts:82:1 › an invalid token shows the hint and never blocks the chips beside it (9.7s)
  ✓   35 test/addhost-chips.spec.ts:101:1 › with only an invalid token the hint shows once it is ended, and Continue stays disabled (10.0s)
  ✓   36 test/addhost-chips.spec.ts:114:1 › a token that names a discovered host chips at once and is ticked in the list (8.2s)
  ✓   37 test/addhost-chips.spec.ts:125:1 › Backspace on an empty field turns the last chip back into text (10.4s)
  ✓   38 test/addhost-chips.spec.ts:137:1 › Tab ends a typed token (9.2s)
  ✓   39 test/addhost-chips.spec.ts:148:1 › a listed host ticked in the list becomes a chip, and removing the chip unticks it (9.8s)
  -   40 test/addhost-chips.spec.ts:159:5 › captures 1440x900 ink
  -   41 test/addhost-chips.spec.ts:159:5 › captures 1440x900 paper
  -   42 test/addhost-chips.spec.ts:159:5 › captures 393x852 ink
  -   43 test/addhost-chips.spec.ts:159:5 › captures 393x852 paper
  ✓   44 test/addhost-chips.spec.ts:179:1 › a token typed while the host list is still loading chips when the list arrives (14.8s)
  ✓   45 test/addhost-wizard.spec.ts:46:1 › the toolbar button and the palette open the wizard (10.9s)
  ✓   46 test/addhost-wizard.spec.ts:60:1 › network access: detected, shown by name, and the host lands in Console and the sidebar (16.1s)
  ✓   47 test/addhost-wizard.spec.ts:81:1 › closing the flow window from its own frame ends the wizard (12.5s)
  ✓   48 test/addhost-wizard.spec.ts:90:1 › the server's own key is the fallback when the network does not sign in (18.1s)
  ✓   49 test/addhost-wizard.spec.ts:99:1 › a batch shows every host's own progress and opens every host (21.9s)
  ✓   50 test/addhost-wizard.spec.ts:110:1 › all automatic methods refused: asked to choose, and a password is sent once and never kept (25.5s)
  ✓   51 test/addhost-wizard.spec.ts:136:1 › a pasted private key signs in as the user's key (22.6s)
  ✓   52 test/addhost-wizard.spec.ts:149:1 › a saved key (unlocked with the passkey) is offered only when the browser holds one (21.4s)
  ✓   53 test/addhost-wizard.spec.ts:162:1 › without a saved key the choice does not offer one (16.0s)
  ✓   54 test/addhost-wizard.spec.ts:170:1 › the server key is shown to copy; adding it and trying again signs in (18.2s)
  ✓   55 test/addhost-wizard.spec.ts:185:1 › a locked server key is still shown, with the reason (16.6s)
  ✓   56 test/addhost-wizard.spec.ts:193:1 › no server key to show: the choice is paste or password only (16.1s)
  ✓   57 test/addhost-wizard.spec.ts:202:1 › an unknown host key shows its fingerprint and is never trusted without a click (23.0s)
  ✓   58 test/addhost-wizard.spec.ts:219:1 › a host that does not answer: what happened, Retry, and the one-line install from the host (22.9s)
  ✓   59 test/addhost-wizard.spec.ts:235:1 › a mesh policy block says possible, not certain (13.6s)
  ✓   60 test/addhost-wizard.spec.ts:248:1 › an unsupported host cannot be retried; an install failure can (24.4s)
  ✓   61 test/addhost-wizard.spec.ts:265:1 › one refusal without choose_method still offers another way to sign in (12.7s)
  ✓   62 test/addhost-wizard.spec.ts:272:1 › empty, loading and error states of discovery (16.9s)
  ✓   63 test/addhost-wizard.spec.ts:297:1 › an SSH config pasted into the field becomes chips (8.7s)
  ✓   64 test/addhost-wizard.spec.ts:311:1 › closing mid-install asks first, and cancelling ends the run (16.1s)
  ✓   65 test/addhost-wizard.spec.ts:326:1 › the wizard works on a phone and keeps the footer on screen (8.6s)
  ✓   66 test/addhost-wizard.spec.ts:350:3 › fresh CA explains passkey confirmation before starting SSH (12.2s)
  ✓   67 test/addhost-wizard.spec.ts:350:3 › locked CA explains passkey confirmation before starting SSH (13.4s)
  ✓   68 test/addhost-wizard.spec.ts:368:1 › a canvas flow remains nonmodal (9.5s)
  ✓   69 test/addhost-wizard.spec.ts:374:1 › Escape in the palette leaves the add-host flow open (10.7s)
  ✓   70 test/addhost-wizard.spec.ts:388:1 › Tab can leave a canvas flow (7.6s)
  ✓   71 test/addhost-wizard.spec.ts:397:1 › a typed root login requires consent and cannot pretend to install as a user (11.0s)
  -   72 test/audit-recovery.spec.ts:7:1 › audit recovery words remain inside the browser
  -   73 test/audit-recovery.spec.ts:34:1 › successful verifier path sends no legacy words
  -   74 test/audit-recovery.spec.ts:58:3 › retryable verifier failure 429 never sends legacy words
  -   75 test/audit-recovery.spec.ts:58:3 › retryable verifier failure 503 never sends legacy words
  ✓   76 test/auth-binary.spec.ts:15:3 › auth binary boundary: buffer (788ms)
  ✓   77 test/auth-binary.spec.ts:15:3 › auth binary boundary: view (1.0s)
  ✓   78 test/auth-binary.spec.ts:15:3 › auth binary boundary: data-view (817ms)
  ✓   79 test/auth-binary.spec.ts:15:3 › auth binary boundary: wide-view (1.1s)
  ✓   80 test/auth-binary.spec.ts:15:3 › auth binary boundary: array (1.0s)
  ✓   81 test/auth-binary.spec.ts:15:3 › auth binary boundary: realm (907ms)
  ✓   82 test/auth-binary.spec.ts:15:3 › auth binary boundary: realm-view (952ms)
  ✓   83 test/auth-binary.spec.ts:15:3 › auth binary boundary: invalid (1.2s)
AUTH_BINARY_TIMING {"old_us":0.42000000000000004,"normalized_us":0.4239999997615814,"count":100000}
  ✓   84 test/auth-binary.spec.ts:80:1 › binary normalization cost at 50 concurrent login equivalents (1.0s)
  ✓   85 test/ca-unlock.spec.ts:42:3 › locked then unlocked (desktop) (13.9s)
  ✓   86 test/ca-unlock.spec.ts:42:3 › locked then unlocked (phone) (16.9s)
  ✓   87 test/ca-unlock.spec.ts:71:1 › the palette row runs the ceremony and the lock clears (13.1s)
  ✓   88 test/ca-unlock.spec.ts:84:1 › already unlocked: no palette row, Settings says Unlocked with no button (12.4s)
  ✓   89 test/ca-unlock.spec.ts:94:1 › a viewer who is not an administrator sees the state and no button (10.8s)
  ✓   90 test/canvas.spec.ts:30:1 › desktop: horizontal trackpad scrolling pans the canvas over a terminal and rests on whole pixels (11.1s)
  ✓   91 test/canvas.spec.ts:50:1 › desktop: a click on an inactive window activates it without moving focus into it (9.6s)
  ✓   92 test/canvas.spec.ts:63:1 › touch: a tap activates without the keyboard, two fingers pan the canvas (12.3s)
  ✓   93 test/canvas.spec.ts:88:1 › details popover: keys left, values right, each cell copies with a tick (10.4s)
  ✓   94 test/canvas.spec.ts:111:1 › live terminal: the cursor stays on its text inside the window card (9.7s)
  ✓   95 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 1 (a window wide enough for 87 columns) (12.2s)
  ✓   96 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 2 (a window wide enough for 87 columns) (9.9s)
  ✓   97 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 1440×900 (9.2s)
  ✓   98 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 393×852 (10.4s)
  ✓   99 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 375×667 (9.4s)
  ✓  100 test/canvas.spec.ts:172:1 › every floating card uses the one overlay material (9.8s)
  ✓  101 test/canvas.spec.ts:191:1 › a connection failure shows in the shared toast, never as a floating status box (10.8s)
  ✓  102 test/canvas.spec.ts:208:1 › desktop: edges and corners resize with the right cursors, neighbours shift and never overlap (12.4s)
  ✓  103 test/canvas.spec.ts:250:1 › desktop: a window cannot shrink below about 40 columns by 10 rows (10.0s)
resize frame cost over 40 frames: median 0.80 ms, p95 9.10 ms, max 10.20 ms
  ✓  104 test/canvas.spec.ts:265:1 › desktop: the live terminal refits once on release, not on every frame, and each frame costs under 16 ms (12.6s)
  ✘  105 test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it (10.9s)
(node:3316122) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  106 test/canvas.spec.ts:344:1 › sidebar footer: the person and settings pills line up, press, and open Settings with About; no version pill (12.5s)
  ✓  107 test/canvas.spec.ts:401:1 › palette: About infraternal opens Settings, About, and is found by version, build and commit (12.7s)
  ✓  108 test/canvas.spec.ts:418:1 › lock: the icon appears near a window's top edge, locks with a click, stays, and unlocks with Ctrl+Shift+L (10.2s)
  ✓  109 test/canvas.spec.ts:464:1 › lock: wheel and canvas gestures inside the locked window never pan; outside it still does; other windows are ignored (11.2s)
  ✓  110 test/canvas.spec.ts:494:1 › lock: Ctrl+K reaches the terminal on Linux and Windows while locked, and opens the palette when unlocked (8.9s)
  ✓  111 test/canvas.spec.ts:522:1 › lock: on macOS, ⌘K still opens the palette while locked and offers Unlock window (7.7s)
  ✓  112 test/canvas.spec.ts:541:1 › lock (touch): there is no frame lock on a phone; the palette locks (8.1s)
  ✓  113 test/canvas.spec.ts:552:1 › lock: one click on an unfocused window's lock focuses that window and locks it (8.3s)
  ✓  114 test/canvas.spec.ts:576:1 › shortcuts: ? morphs the capsule into the list, current area first, one shortcut per action; Esc, ? and a click outside morph it back (8.9s)
  ✘  115 test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K (13.1s)
(node:3323682) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  116 test/canvas.spec.ts:638:1 › shortcuts (reduced motion): the panel crossfades without any shape travel (9.9s)
  ✓  117 test/canvas.spec.ts:653:1 › empty canvas: a click in the gap clears the active window and its highlight; keys go to canvas navigation (9.2s)
  ✓  118 test/canvas.spec.ts:677:1 › empty canvas (touch): a tap in the gap clears the active window (8.8s)
  ✓  119 test/canvas.spec.ts:695:1 › details popover tabs: the selected capsule glides (does not jump) and the keyboard moves it instantly (9.8s)
  ✓  120 test/canvas.spec.ts:728:1 › copyable values: the highlight hugs the text with even padding, on keys and right-aligned values (8.4s)
  ✓  121 test/canvas.spec.ts:751:1 › a normal preview session never writes text bottom left: reload, a failing session check, state messages (15.1s)
  ✓  122 test/canvas.spec.ts:799:1 › copy works from a plain-http, non-localhost origin: no async clipboard, the fallback copies and the feedback plays (7.5s)
  ✓  123 test/canvas.spec.ts:840:1 › top pill: the host's operating-system icon replaces the connection dot and follows the active window (11.5s)
  ✓  124 test/canvas.spec.ts:852:1 › palette (desktop): centred, as tall as its results, never closer than a quarter of the viewport to the top or bottom (16.0s)
  ✓  125 test/canvas.spec.ts:890:1 › palette (phone): keeps its placement under the top bar, inside the safe area (12.2s)
  ✓  126 test/canvas.spec.ts:904:1 › palette: Ctrl+K then typing within 20 ms lands every character; arrow selection has no transition (10.3s)
  ✓  127 test/canvas.spec.ts:925:1 › clear and frosted cards blur what is behind them by more than a line of text, so letters never read through (23.4s)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[32.58,33.09,37.44],"scenario":"desktop-dpr2"}
  ✘  128 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 (7.7s)
(node:3340109) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[31.21,32.74,37.26],"scenario":"mobile-dpr3"}
CELL_METRICS {"dpr":3,"cols":40,"rows":40,"fontSize":13,"cellWidth":8,"cellHeight":17,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":13,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":17,"heightRatio":1.3076923076923077,"canvasWidth":960,"canvasHeight":2040,"expectedCanvasWidth":960,"expectedCanvasHeight":2040,"boxSeamInk":[9,9,9],"fontLoaded":true}
RENDER_BENCH mobile-dpr3 {"redrawP50Ms":1.600000023841858,"redrawP95Ms":15.5,"bytes":10000000,"elapsedMs":1034.2999999523163,"writeCpuMs":829.5999999642372,"p95FrameMs":16.700000000000728,"maxFrameMs":449.59999997615796,"wasmMemoryBytes":12713984,"effectiveMegabytesPerSecond":9.668374746650898}
  ✓  129 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 3 (9.1s)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[29.19,32.26,37.05],"scenario":"desktop-dpr1"}
CELL_METRICS {"dpr":1,"cols":170,"rows":44,"fontSize":14,"cellWidth":8,"cellHeight":18,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":14,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":18,"heightRatio":1.2857142857142858,"canvasWidth":1360,"canvasHeight":792,"expectedCanvasWidth":1360,"expectedCanvasHeight":792,"boxSeamInk":[9,9,9],"fontLoaded":true}
  ✓  130 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 1 (8.6s)
APPEARANCE 
  theme:mocha 810 ms (restyled 2537 elements, style 162 layout 2 paint 85 raster 622)
  theme:latte 890 ms (restyled 3063 elements, style 276 layout 3 paint 62 raster 825)
  theme:tokyo 244 ms (restyled 3279 elements, style 104 layout 2 paint 17 raster 165)
  card:2 219 ms (restyled 262 elements, style 143 layout 2 paint 15 raster 84)
  card:3 267 ms (restyled 262 elements, style 20 layout 5 paint 8 raster 12)
  card:4 330 ms (restyled 264 elements, style 31 layout 1 paint 9 raster 13)
  windows:2 575 ms (restyled 32 elements, style 11 layout 2 paint 34 raster 82)
  windows:3 62 ms (restyled 40 elements, style 8 layout 1 paint 5 raster 90)
  windows:4 31 ms (restyled 36 elements, style 3 layout 3 paint 5 raster 37)
  card:1 115 ms (restyled 270 elements, style 20 layout 2 paint 5 raster 10)
  card:4 22 ms (restyled 268 elements, style 8 layout 1 paint 4 raster 10)
  bg:none 81 ms (restyled 27 elements, style 6 layout 1 paint 3 raster 15)
  bg:mesh 142 ms (restyled 29 elements, style 9 layout 1 paint 5 raster 108) | worst 890 ms
  ✓  131 test/clusters-appearance.spec.ts:9:1 › appearance switches never freeze the page (50.9s)
BENCH idle           frames {"n":83,"p50":16.7,"p95":116.7,"p99":183.3,"max":183.3,"over8":83} | raster 30 (3 ms) paint 54 layerize 146 drawFrame 0 compositeLayers 0
BENCH split burst    frames {"n":9,"p50":183.3,"p95":466.6,"p99":466.6,"max":466.6,"over8":9} | raster 5 (0 ms) paint 10 layerize 20 drawFrame 0 compositeLayers 0
BENCH windows on the canvas: 23
BENCH idle many      frames {"n":89,"p50":16.7,"p95":116.7,"p99":166.7,"max":166.7,"over8":89} | raster 24 (3 ms) paint 48 layerize 156 drawFrame 0 compositeLayers 0
BENCH view flights   frames {"n":38,"p50":133.3,"p95":549.9,"p99":733.2,"max":733.2,"over8":38} | raster 834 (634 ms) paint 500 layerize 83 drawFrame 0 compositeLayers 0
BENCH rapid switches frames {"n":14,"p50":383.3,"p95":550,"p99":550,"max":550,"over8":14} | raster 614 (814 ms) paint 252 layerize 30 drawFrame 0 compositeLayers 0
BENCH close burst    frames {"n":10,"p50":166.6,"p95":416.6,"p99":416.6,"max":416.6,"over8":10} | raster 71 (35 ms) paint 81 layerize 24 drawFrame 0 compositeLayers 0
  ✓  132 test/clusters-bench.spec.ts:35:1 › frame cost per scenario at DPR 2 with the owner's look (41.1s)
close X desktop w-build-01 {"dx":0,"dy":0,"box":[8,8]}
close X desktop w-nix-cache {"dx":0,"dy":0,"box":[8,8]}
close X desktop w-studio-mac {"dx":0,"dy":0,"box":[8,8]}
close X desktop w-containers {"dx":0,"dy":0,"box":[8,8]}
close X desktop w-logs {"dx":0,"dy":0,"box":[8,8]}
  ✓  133 test/clusters-close-centre.spec.ts:30:3 › the X is centred in its close button on every window type (desktop) (14.3s)
close X phone w-build-01 {"dx":0,"dy":0,"box":[8.666666666666666,8.666666666666666]}
close X phone w-containers {"dx":0,"dy":0,"box":[8.666666666666666,8.666666666666666]}
  ✓  134 test/clusters-close-centre.spec.ts:30:3 › the X is centred in its close button on every window type (phone) (13.8s)
FLIGHT {"pointer":808,"pointerBack":1212,"key":206,"key2":198}
  ✘  135 test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms (28.5s)
(node:3355278) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  136 test/clusters-frame.spec.ts:40:1 › the lock glyph is whole on every window, lone or not, at the top of the view (10.8s)
  ✓  137 test/clusters-frame.spec.ts:116:1 › every window resizes from its own edges and corners (D195) (1.2m)
FRAMES 1x zoom {"n":13,"p50":166.7,"p95":433.3,"max":433.3,"dropped":13,"cpuMs":1060} pan {"n":13,"p50":166.7,"p95":316.6,"max":316.6,"dropped":12,"cpuMs":940}
  ✘  138 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU (13.9s)
(node:3374901) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
FRAMES 4x zoom {"n":13,"p50":166.8,"p95":350,"max":350,"dropped":13,"cpuMs":1970} pan {"n":12,"p50":149.9,"p95":566.6,"max":566.6,"dropped":12,"cpuMs":2020}
  ✘  139 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU (15.2s)
(node:3378486) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GLASS level 2: mid-flight 10/10 cards, 4/4 windows; mid-close 11/11 cards, 4/4 windows, 8 animations playing
  ✓  140 test/clusters-glass-motion.spec.ts:17:3 › card level 2: the blur is on during a camera flight and during a close reflow (13.8s)
GLASS level 3: mid-flight 10/10 cards, 3/3 windows; mid-close 11/11 cards, 4/4 windows, 8 animations playing
  ✓  141 test/clusters-glass-motion.spec.ts:17:3 › card level 3: the blur is on during a camera flight and during a close reflow (12.2s)
GLASS level 4: mid-flight 10/10 cards, 4/4 windows; mid-close 11/11 cards, 4/4 windows, 8 animations playing
  ✓  142 test/clusters-glass-motion.spec.ts:17:3 › card level 4: the blur is on during a camera flight and during a close reflow (13.0s)
  ✘  143 test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change (12.8s)
(node:3389231) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  144 test/clusters-grid.spec.ts:109:3 › split right in a stacked column (D212) › by ⌘K: Split right on the stacked window gives the same layout (12.0s)
  ✓  145 test/clusters-grid.spec.ts:128:3 › split right in a stacked column (D212) › by mouse: the header pill's split right on the middle window divides it the same way (12.4s)
  ✓  146 test/clusters-grid.spec.ts:144:3 › split right in a stacked column (D212) › closing the new half gives back the layout it came from, widths and heights (12.5s)
  ✘  147 test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves (12.3s)
(node:3394209) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  148 test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns (11.9s)
(node:3394763) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  149 test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group (12.2s)
(node:3395856) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  150 test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it (11.7s)
(node:3396869) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  151 test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height (2.0m)
(node:3411407) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  152 test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view (2.0m)
(node:3425032) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  153 test/clusters-grid.spec.ts:254:3 › camera and saved layout with a group (D212) › the saved document holds the span, so a reload places the group the same way (12.0s)
  ✓  154 test/clusters-grid.spec.ts:268:3 › phone 393x852 with a group (D212) › split right in a stacked column keeps every window on the screen and never scrolls the page sideways (12.3s)
  ✓  155 test/clusters-grid.spec.ts:292:3 › moving a window of a group by its pill (D212) › a grouped window dragged to the far column lands there: no overlap, the footprint unchanged, the group closes its hole (16.0s)
  ✓  156 test/clusters-grid.spec.ts:320:3 › title first in a narrow half (TASTE, D212) › a half too narrow for its actions keeps its title, shows one ⋯, and the menu holds every action (12.5s)
  ✓  157 test/clusters-grid.spec.ts:343:3 › title first in a narrow half (TASTE, D212) › a wide window keeps its actions in the header, and no ⋯ is shown (9.8s)
  ✘  158 test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen (13.3s)
(node:3433476) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
keyboard split: silhouette seen 0 max rAF gap 233.3 ms, long frames after the first 0.8 s [133.29999999999927,33.399999999999636,149.90000000000146,33.29999999999927,166.79999999999927,33.30000000000109,200,83.29999999999927,100.10000000000036,33.29999999999927,33.30000000000109,50,33.30000000000109,66.69999999999891,33.30000000000109,49.899999999999636,33.400000000001455,66.69999999999891,133.3000000000011,33.400000000001455,50,66.69999999999891,49.899999999999636,33.29999999999927,33.399999999999636,33.29999999999927,33.29999999999927,33.29999999999927,66.70000000000073,116.59999999999854,50,50,33.29999999999927,33.29999999999927,66.60000000000036,33.399999999999636,150,33.399999999999636,33.30000000000109,149.89999999999964,50,33.29999999999927]
  ✘  159 test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames (17.8s)
(node:3435524) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  160 test/clusters-keyboard-split.spec.ts:57:1 › a pointer split still plays the silhouette (14.5s)
  ✓  161 test/clusters-logs.spec.ts:19:1 › the backlog fills the window, is varied, and stays on the newest line (17.0s)
  ✓  162 test/clusters-logs.spec.ts:39:1 › scrolling up stops the follow and shows Jump to latest (19.4s)
MEM scene 1 {"nearMB":83,"layerMB":595.4,"layers":62,"biggest":[[4200,720,["Overlap"],"?"],[444,4438,["Overlap"],"?"],[1104,1304,["Overlap"],"?"],[960,1320,["Overlap"],"?"],[1200,720,["Trivial3DTransform"],"?"],[684,1127,["Trivial3DTransform","WillChangeTransform","WillChangeOpacity"],"?"],[670,1113,["Trivial3DTransform","WillChangeTransform","WillChangeOpacity"],"?"],[371,1457,["Overlap"],"?"],[355,1237,["Overlap"],"?"],[355,1178,["Overlap"],"?"],[385,686,["Overlap"],"?"],[474,549,["Overlap"],"?"]],"canvases":[[960,1275]],"canvasMB":4.7,"counters":{"documents":4,"nodes":6443,"jsEventListeners":782},"metrics":{}}
  ✓  163 test/clusters-memory.spec.ts:47:3 › memory: scene 1 on a phone holds little (12.9s)
MEM scene 6 {"nearMB":116.6,"layerMB":242.2,"layers":36,"biggest":[[444,4454,["Overlap"],"pre.canvas-preview.cl-preview"],[960,1320,["Overlap"],"section.cl"],[1200,720,["Trivial3DTransform"],"section.cl"],[683,1126,["Trivial3DTransform","WillChangeTransform","WillChangeOpacity"],"div.ui-canvas-backdrop-layer"],[385,686,["Overlap"],"div.cl-col"],[474,549,["Overlap"],"div.cl-col"],[393,659,["RootScroller","OverflowScrolling"],"#document."],[393,659,["Overlap"],"body.style"],[385,549,["Overlap"],"div.cl-col"],[385,549,["Overlap"],"div.cl-col"],[349,549,["Overlap"],"div.cl-col"],[320,425,["Canvas"],"canvas.style"]],"canvases":[[960,1275]],"canvasMB":4.7,"counters":{"documents":4,"nodes":6408,"jsEventListeners":782},"metrics":{}}
  ✓  164 test/clusters-memory.spec.ts:47:3 › memory: scene 6 on a phone holds little (11.3s)
MEM hidden {"nearMB":27.2,"layerMB":27.2,"layers":20,"canvases":[[0,0]]}
  ✓  165 test/clusters-memory.spec.ts:60:1 › memory: a hidden page releases its surfaces and a shown page draws them again (10.7s)
REFLOW split: main thread 254 ms | Layerize 2 ms x3 | Commit 54 ms x3 | style 2 ms | paint 1 ms | FireAnimationFrame 10 ms x5
REFLOW split again: main thread 154 ms | Layerize 3 ms x3 | Commit 27 ms x3 | style 3 ms | paint 39 ms | FireAnimationFrame 0 ms x3
REFLOW close: main thread 229 ms | Layerize 26 ms x3 | Commit 32 ms x3 | style 13 ms | paint 19 ms | FireAnimationFrame 18 ms x7
REFLOW close again: main thread 316 ms | Layerize 3 ms x2 | Commit 72 ms x2 | style 10 ms | paint 18 ms | FireAnimationFrame 39 ms x12
  ✓  166 test/clusters-reflow-cost.spec.ts:8:1 › a close and a split cost the main thread little (21.0s)
gap 30 presses 20: most panels at once 0, end []
  ✘  167 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell (17.3s)
(node:3452310) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
gap 30 presses 21: most panels at once 1, end []
  ✘  168 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell (16.8s)
(node:3456226) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
gap 120 presses 20: most panels at once 0, end []
  ✘  169 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell (19.3s)
(node:3460373) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
gap 120 presses 21: most panels at once 0, end []
  ✘  170 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell (19.1s)
(node:3463599) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  171 test/clusters-shortcuts.spec.ts:46:3 › Close window › ten quick presses close exactly ten windows, the sessions stay alive, and nothing animates (18.8s)
  ✓  172 test/clusters-shortcuts.spec.ts:70:3 › Close window › auto-repeat is ignored: holding the key closes one window (13.1s)
  ✓  173 test/clusters-shortcuts.spec.ts:82:3 › Close window › focus moves to the neighbour at once, so the next press closes that one (13.2s)
  ✓  174 test/clusters-shortcuts.spec.ts:94:3 › Close window › Close window is in ⌘K with its label (11.8s)
  ✓  175 test/clusters-shortcuts.spec.ts:107:3 › the shortcuts panel (?) › it shows the alternates on the same row, quieter, and Close window with its chord (10.7s)
  ✓  176 test/clusters-shortcuts.spec.ts:127:3 › the shortcuts panel (?) › opened on the canvas, Canvas is first; opened inside a focused terminal, Terminal is first (12.7s)
first/right {"new":{"l":256,"r":479,"t":60,"b":884},"old":{"l":20,"r":244,"t":60,"b":884}}
first/down {"new":{"l":20,"r":244,"t":478,"b":884},"old":{"l":20,"r":244,"t":60,"b":466}}
middle/right {"new":{"l":608,"r":831,"t":60,"b":884},"old":{"l":372,"r":596,"t":60,"b":884}}
middle/down {"new":{"l":608,"r":832,"t":478,"b":884},"old":{"l":608,"r":832,"t":60,"b":466}}
last/right {"new":{"l":1197,"r":1420,"t":60,"b":884},"old":{"l":961,"r":1185,"t":60,"b":884}}
last/down {"new":{"l":1197,"r":1420,"t":478,"b":884},"old":{"l":1197,"r":1420,"t":60,"b":466}}
  ✓  177 test/clusters-split-camera.spec.ts:51:1 › keyboard splits at 54 windows land fully on screen, beside or below the old window, which stays in view (33.4s)
mocha down frames 23 worst spike 0.0000
  ✓  178 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting down on mocha (12.6s)
mocha right frames 16 worst spike 0.0000
  ✓  179 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting right on mocha (15.1s)
latte down frames 12 worst spike 0.0000
  ✓  180 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting down on latte (15.1s)
latte right frames 23 worst spike 0.0002
  ✓  181 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting right on latte (16.6s)
  ✓  182 test/clusters-split-focus.spec.ts:72:1 › phone 393x852: a split lands you in the new window, ten times (33.8s)
  ✓  183 test/clusters-split-focus.spec.ts:78:1 › phone 440x956: a split lands you in the new window, ten times (39.6s)
  ✓  184 test/clusters-split-focus.spec.ts:84:1 › desktop 1440x900: a split lands you in the new window, ten times (26.7s)
  ✓  185 test/clusters-split-focus.spec.ts:128:1 › phone: closing a window never makes a neighbour overshoot, ten times (58.7s)
  ✓  186 test/clusters-split-focus.spec.ts:134:1 › desktop: closing a window never makes a neighbour overshoot, ten times (56.2s)
  -  187 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 1440x900 ink: a stacked column through the four actions
  -  188 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 1440x900 paper: a stacked column through the four actions
  -  189 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 393x852 ink: a stacked column through the four actions
  -  190 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 393x852 paper: a stacked column through the four actions
  ✓  191 test/clusters-stray-tooltip.spec.ts:17:1 › a session row never shows its aria-label as a tooltip (21.9s)
  ✓  192 test/clusters-stray-tooltip.spec.ts:23:1 › a button with its own text is never a tooltip trigger, even while its text is not rendered (12.8s)
  ✓  193 test/clusters-stray-tooltip.spec.ts:38:1 › a hover tooltip goes when its element is removed or the view changes (17.3s)
  ✘  194 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows (18.4s)
#163 verbatim evidence: playwright-scoped.log (1/7) ```text Running as unit: run-p3168566-i49258684.scope; invocation ID: 07e9060b831f4a5e9ace33e49eb84785 [WebServer] $ bun run build.ts [WebServer] built chunk-bnj6r67r.js, chunk-tvynw18r.js, chunk-rr0kvt7w.js, chunk-b5qzwpce.js, chunk-mv2ahd7z.js, chunk-s4qyaw6n.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-f2f1t9bt.js, chunk-3ccck2vf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-emq06ygg.js, chunk-7nczvd3c.js, chunk-yyavwnt8.js, chunk-2tsdc1nh.js, chunk-yvhhqffe.js, chunk-3htyf13b.js, chunk-mnyqdsbx.js, chunk-fvnwnpb1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-r4tpd3ny.js, chunk-bwmsktwq.js, chunk-dzb2a5v4.js, chunk-5h2k8s0e.js, chunk-8gqdshxw.js, chunk-knp1tq5r.js, chunk-q28nn8sj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-7s9170gn.js, chunk-1ctb841n.js, chunk-6170yqjh.js, chunk-jxd89xqh.js, chunk-1d0qvnvb.js, chunk-jysetjf3.js, chunk-axbkkqp1.js, chunk-dyxhqspe.js, chunk-8d2b3n41.js, chunk-j0e859jk.js, chunk-twet11z6.js, chunk-zbckfcp1.js, chunk-qvcgkx50.js, chunk-v86b5paa.js, chunk-tytj4wdc.js, chunk-0674vrhh.js, chunk-w67w218a.js, chunk-va7fbhq4.js, chunk-2e4yh13p.js, chunk-2y2tvdr2.js, chunk-hyayjy0s.js, chunk-xf0jnavj.js, chunk-f2frmgj8.js, chunk-3v3fxjxs.js, chunk-hj6363dt.js, chunk-brqse20z.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-7gkz75b6.js, chunk-fn1gk1av.js, chunk-0sxn500c.js, chunk-nvdf9kep.js, chunk-20tw4eam.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4638 [WebServer] latency proxy listening on http://localhost:4637; upstream port=4638 Running 542 tests using 1 worker (node:3170598) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/access-states.spec.ts:43:5 › 1440x900 › sign-in, unreachable and loading share the lede-to-action gap and equal padding (4.7s) ✓ 2 test/access-states.spec.ts:85:7 › 1440x900 › sign-in failure (cancelled passkey) sits centred above the action with the card's gap (3.9s) ✓ 3 test/access-states.spec.ts:85:7 › 1440x900 › sign-in failure (rate limited) sits centred above the action with the card's gap (2.7s) ✓ 4 test/access-states.spec.ts:85:7 › 1440x900 › sign-in failure (offline) sits centred above the action with the card's gap (3.4s) ✓ 5 test/access-states.spec.ts:43:5 › 393x852 › sign-in, unreachable and loading share the lede-to-action gap and equal padding (4.4s) ✓ 6 test/access-states.spec.ts:85:7 › 393x852 › sign-in failure (cancelled passkey) sits centred above the action with the card's gap (3.6s) ✓ 7 test/access-states.spec.ts:85:7 › 393x852 › sign-in failure (rate limited) sits centred above the action with the card's gap (3.6s) ✓ 8 test/access-states.spec.ts:85:7 › 393x852 › sign-in failure (offline) sits centred above the action with the card's gap (3.4s) ✓ 9 test/access-states.spec.ts:43:5 › 375x667 › sign-in, unreachable and loading share the lede-to-action gap and equal padding (4.9s) ✓ 10 test/access-states.spec.ts:85:7 › 375x667 › sign-in failure (cancelled passkey) sits centred above the action with the card's gap (3.3s) ✓ 11 test/access-states.spec.ts:85:7 › 375x667 › sign-in failure (rate limited) sits centred above the action with the card's gap (3.5s) ✓ 12 test/access-states.spec.ts:85:7 › 375x667 › sign-in failure (offline) sits centred above the action with the card's gap (3.3s) ✘ 13 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (12.8s) (node:3184493) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 14 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (10.6s) ✓ 15 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (7.5s) ✓ 16 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (12.8s) ✓ 17 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (10.3s) ✓ 18 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (13.9s) ✓ 19 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (19.3s) ✓ 20 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (12.6s) ✓ 21 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (12.0s) ✓ 22 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (9.5s) ✓ 23 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.9s) ✓ 24 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (8.4s) ✓ 25 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (9.3s) ✓ 26 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (9.6s) - 27 test/addhost-captures.spec.ts:73:5 › captures 1440x900 ink - 28 test/addhost-captures.spec.ts:73:5 › captures 1440x900 paper - 29 test/addhost-captures.spec.ts:73:5 › captures 393x852 ink - 30 test/addhost-captures.spec.ts:73:5 › captures 393x852 paper ✓ 31 test/addhost-chips.spec.ts:43:1 › typing kayg@o2 and clicking Continue proceeds with that host, with no tick (9.7s) ✓ 32 test/addhost-chips.spec.ts:57:1 › a@h1 b@h2,c@h3 gives chips for the ended targets; the last one waits as text until it is ended (10.1s) ✓ 33 test/addhost-chips.spec.ts:72:1 › pasting three lines gives three chips (8.7s) ✓ 34 test/addhost-chips.spec.ts:82:1 › an invalid token shows the hint and never blocks the chips beside it (9.7s) ✓ 35 test/addhost-chips.spec.ts:101:1 › with only an invalid token the hint shows once it is ended, and Continue stays disabled (10.0s) ✓ 36 test/addhost-chips.spec.ts:114:1 › a token that names a discovered host chips at once and is ticked in the list (8.2s) ✓ 37 test/addhost-chips.spec.ts:125:1 › Backspace on an empty field turns the last chip back into text (10.4s) ✓ 38 test/addhost-chips.spec.ts:137:1 › Tab ends a typed token (9.2s) ✓ 39 test/addhost-chips.spec.ts:148:1 › a listed host ticked in the list becomes a chip, and removing the chip unticks it (9.8s) - 40 test/addhost-chips.spec.ts:159:5 › captures 1440x900 ink - 41 test/addhost-chips.spec.ts:159:5 › captures 1440x900 paper - 42 test/addhost-chips.spec.ts:159:5 › captures 393x852 ink - 43 test/addhost-chips.spec.ts:159:5 › captures 393x852 paper ✓ 44 test/addhost-chips.spec.ts:179:1 › a token typed while the host list is still loading chips when the list arrives (14.8s) ✓ 45 test/addhost-wizard.spec.ts:46:1 › the toolbar button and the palette open the wizard (10.9s) ✓ 46 test/addhost-wizard.spec.ts:60:1 › network access: detected, shown by name, and the host lands in Console and the sidebar (16.1s) ✓ 47 test/addhost-wizard.spec.ts:81:1 › closing the flow window from its own frame ends the wizard (12.5s) ✓ 48 test/addhost-wizard.spec.ts:90:1 › the server's own key is the fallback when the network does not sign in (18.1s) ✓ 49 test/addhost-wizard.spec.ts:99:1 › a batch shows every host's own progress and opens every host (21.9s) ✓ 50 test/addhost-wizard.spec.ts:110:1 › all automatic methods refused: asked to choose, and a password is sent once and never kept (25.5s) ✓ 51 test/addhost-wizard.spec.ts:136:1 › a pasted private key signs in as the user's key (22.6s) ✓ 52 test/addhost-wizard.spec.ts:149:1 › a saved key (unlocked with the passkey) is offered only when the browser holds one (21.4s) ✓ 53 test/addhost-wizard.spec.ts:162:1 › without a saved key the choice does not offer one (16.0s) ✓ 54 test/addhost-wizard.spec.ts:170:1 › the server key is shown to copy; adding it and trying again signs in (18.2s) ✓ 55 test/addhost-wizard.spec.ts:185:1 › a locked server key is still shown, with the reason (16.6s) ✓ 56 test/addhost-wizard.spec.ts:193:1 › no server key to show: the choice is paste or password only (16.1s) ✓ 57 test/addhost-wizard.spec.ts:202:1 › an unknown host key shows its fingerprint and is never trusted without a click (23.0s) ✓ 58 test/addhost-wizard.spec.ts:219:1 › a host that does not answer: what happened, Retry, and the one-line install from the host (22.9s) ✓ 59 test/addhost-wizard.spec.ts:235:1 › a mesh policy block says possible, not certain (13.6s) ✓ 60 test/addhost-wizard.spec.ts:248:1 › an unsupported host cannot be retried; an install failure can (24.4s) ✓ 61 test/addhost-wizard.spec.ts:265:1 › one refusal without choose_method still offers another way to sign in (12.7s) ✓ 62 test/addhost-wizard.spec.ts:272:1 › empty, loading and error states of discovery (16.9s) ✓ 63 test/addhost-wizard.spec.ts:297:1 › an SSH config pasted into the field becomes chips (8.7s) ✓ 64 test/addhost-wizard.spec.ts:311:1 › closing mid-install asks first, and cancelling ends the run (16.1s) ✓ 65 test/addhost-wizard.spec.ts:326:1 › the wizard works on a phone and keeps the footer on screen (8.6s) ✓ 66 test/addhost-wizard.spec.ts:350:3 › fresh CA explains passkey confirmation before starting SSH (12.2s) ✓ 67 test/addhost-wizard.spec.ts:350:3 › locked CA explains passkey confirmation before starting SSH (13.4s) ✓ 68 test/addhost-wizard.spec.ts:368:1 › a canvas flow remains nonmodal (9.5s) ✓ 69 test/addhost-wizard.spec.ts:374:1 › Escape in the palette leaves the add-host flow open (10.7s) ✓ 70 test/addhost-wizard.spec.ts:388:1 › Tab can leave a canvas flow (7.6s) ✓ 71 test/addhost-wizard.spec.ts:397:1 › a typed root login requires consent and cannot pretend to install as a user (11.0s) - 72 test/audit-recovery.spec.ts:7:1 › audit recovery words remain inside the browser - 73 test/audit-recovery.spec.ts:34:1 › successful verifier path sends no legacy words - 74 test/audit-recovery.spec.ts:58:3 › retryable verifier failure 429 never sends legacy words - 75 test/audit-recovery.spec.ts:58:3 › retryable verifier failure 503 never sends legacy words ✓ 76 test/auth-binary.spec.ts:15:3 › auth binary boundary: buffer (788ms) ✓ 77 test/auth-binary.spec.ts:15:3 › auth binary boundary: view (1.0s) ✓ 78 test/auth-binary.spec.ts:15:3 › auth binary boundary: data-view (817ms) ✓ 79 test/auth-binary.spec.ts:15:3 › auth binary boundary: wide-view (1.1s) ✓ 80 test/auth-binary.spec.ts:15:3 › auth binary boundary: array (1.0s) ✓ 81 test/auth-binary.spec.ts:15:3 › auth binary boundary: realm (907ms) ✓ 82 test/auth-binary.spec.ts:15:3 › auth binary boundary: realm-view (952ms) ✓ 83 test/auth-binary.spec.ts:15:3 › auth binary boundary: invalid (1.2s) AUTH_BINARY_TIMING {"old_us":0.42000000000000004,"normalized_us":0.4239999997615814,"count":100000} ✓ 84 test/auth-binary.spec.ts:80:1 › binary normalization cost at 50 concurrent login equivalents (1.0s) ✓ 85 test/ca-unlock.spec.ts:42:3 › locked then unlocked (desktop) (13.9s) ✓ 86 test/ca-unlock.spec.ts:42:3 › locked then unlocked (phone) (16.9s) ✓ 87 test/ca-unlock.spec.ts:71:1 › the palette row runs the ceremony and the lock clears (13.1s) ✓ 88 test/ca-unlock.spec.ts:84:1 › already unlocked: no palette row, Settings says Unlocked with no button (12.4s) ✓ 89 test/ca-unlock.spec.ts:94:1 › a viewer who is not an administrator sees the state and no button (10.8s) ✓ 90 test/canvas.spec.ts:30:1 › desktop: horizontal trackpad scrolling pans the canvas over a terminal and rests on whole pixels (11.1s) ✓ 91 test/canvas.spec.ts:50:1 › desktop: a click on an inactive window activates it without moving focus into it (9.6s) ✓ 92 test/canvas.spec.ts:63:1 › touch: a tap activates without the keyboard, two fingers pan the canvas (12.3s) ✓ 93 test/canvas.spec.ts:88:1 › details popover: keys left, values right, each cell copies with a tick (10.4s) ✓ 94 test/canvas.spec.ts:111:1 › live terminal: the cursor stays on its text inside the window card (9.7s) ✓ 95 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 1 (a window wide enough for 87 columns) (12.2s) ✓ 96 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 2 (a window wide enough for 87 columns) (9.9s) ✓ 97 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 1440×900 (9.2s) ✓ 98 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 393×852 (10.4s) ✓ 99 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 375×667 (9.4s) ✓ 100 test/canvas.spec.ts:172:1 › every floating card uses the one overlay material (9.8s) ✓ 101 test/canvas.spec.ts:191:1 › a connection failure shows in the shared toast, never as a floating status box (10.8s) ✓ 102 test/canvas.spec.ts:208:1 › desktop: edges and corners resize with the right cursors, neighbours shift and never overlap (12.4s) ✓ 103 test/canvas.spec.ts:250:1 › desktop: a window cannot shrink below about 40 columns by 10 rows (10.0s) resize frame cost over 40 frames: median 0.80 ms, p95 9.10 ms, max 10.20 ms ✓ 104 test/canvas.spec.ts:265:1 › desktop: the live terminal refits once on release, not on every frame, and each frame costs under 16 ms (12.6s) ✘ 105 test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it (10.9s) (node:3316122) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 106 test/canvas.spec.ts:344:1 › sidebar footer: the person and settings pills line up, press, and open Settings with About; no version pill (12.5s) ✓ 107 test/canvas.spec.ts:401:1 › palette: About infraternal opens Settings, About, and is found by version, build and commit (12.7s) ✓ 108 test/canvas.spec.ts:418:1 › lock: the icon appears near a window's top edge, locks with a click, stays, and unlocks with Ctrl+Shift+L (10.2s) ✓ 109 test/canvas.spec.ts:464:1 › lock: wheel and canvas gestures inside the locked window never pan; outside it still does; other windows are ignored (11.2s) ✓ 110 test/canvas.spec.ts:494:1 › lock: Ctrl+K reaches the terminal on Linux and Windows while locked, and opens the palette when unlocked (8.9s) ✓ 111 test/canvas.spec.ts:522:1 › lock: on macOS, ⌘K still opens the palette while locked and offers Unlock window (7.7s) ✓ 112 test/canvas.spec.ts:541:1 › lock (touch): there is no frame lock on a phone; the palette locks (8.1s) ✓ 113 test/canvas.spec.ts:552:1 › lock: one click on an unfocused window's lock focuses that window and locks it (8.3s) ✓ 114 test/canvas.spec.ts:576:1 › shortcuts: ? morphs the capsule into the list, current area first, one shortcut per action; Esc, ? and a click outside morph it back (8.9s) ✘ 115 test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K (13.1s) (node:3323682) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 116 test/canvas.spec.ts:638:1 › shortcuts (reduced motion): the panel crossfades without any shape travel (9.9s) ✓ 117 test/canvas.spec.ts:653:1 › empty canvas: a click in the gap clears the active window and its highlight; keys go to canvas navigation (9.2s) ✓ 118 test/canvas.spec.ts:677:1 › empty canvas (touch): a tap in the gap clears the active window (8.8s) ✓ 119 test/canvas.spec.ts:695:1 › details popover tabs: the selected capsule glides (does not jump) and the keyboard moves it instantly (9.8s) ✓ 120 test/canvas.spec.ts:728:1 › copyable values: the highlight hugs the text with even padding, on keys and right-aligned values (8.4s) ✓ 121 test/canvas.spec.ts:751:1 › a normal preview session never writes text bottom left: reload, a failing session check, state messages (15.1s) ✓ 122 test/canvas.spec.ts:799:1 › copy works from a plain-http, non-localhost origin: no async clipboard, the fallback copies and the feedback plays (7.5s) ✓ 123 test/canvas.spec.ts:840:1 › top pill: the host's operating-system icon replaces the connection dot and follows the active window (11.5s) ✓ 124 test/canvas.spec.ts:852:1 › palette (desktop): centred, as tall as its results, never closer than a quarter of the viewport to the top or bottom (16.0s) ✓ 125 test/canvas.spec.ts:890:1 › palette (phone): keeps its placement under the top bar, inside the safe area (12.2s) ✓ 126 test/canvas.spec.ts:904:1 › palette: Ctrl+K then typing within 20 ms lands every character; arrow selection has no transition (10.3s) ✓ 127 test/canvas.spec.ts:925:1 › clear and frosted cards blur what is behind them by more than a line of text, so letters never read through (23.4s) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[32.58,33.09,37.44],"scenario":"desktop-dpr2"} ✘ 128 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 (7.7s) (node:3340109) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[31.21,32.74,37.26],"scenario":"mobile-dpr3"} CELL_METRICS {"dpr":3,"cols":40,"rows":40,"fontSize":13,"cellWidth":8,"cellHeight":17,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":13,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":17,"heightRatio":1.3076923076923077,"canvasWidth":960,"canvasHeight":2040,"expectedCanvasWidth":960,"expectedCanvasHeight":2040,"boxSeamInk":[9,9,9],"fontLoaded":true} RENDER_BENCH mobile-dpr3 {"redrawP50Ms":1.600000023841858,"redrawP95Ms":15.5,"bytes":10000000,"elapsedMs":1034.2999999523163,"writeCpuMs":829.5999999642372,"p95FrameMs":16.700000000000728,"maxFrameMs":449.59999997615796,"wasmMemoryBytes":12713984,"effectiveMegabytesPerSecond":9.668374746650898} ✓ 129 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 3 (9.1s) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[29.19,32.26,37.05],"scenario":"desktop-dpr1"} CELL_METRICS {"dpr":1,"cols":170,"rows":44,"fontSize":14,"cellWidth":8,"cellHeight":18,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":14,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":18,"heightRatio":1.2857142857142858,"canvasWidth":1360,"canvasHeight":792,"expectedCanvasWidth":1360,"expectedCanvasHeight":792,"boxSeamInk":[9,9,9],"fontLoaded":true} ✓ 130 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 1 (8.6s) APPEARANCE theme:mocha 810 ms (restyled 2537 elements, style 162 layout 2 paint 85 raster 622) theme:latte 890 ms (restyled 3063 elements, style 276 layout 3 paint 62 raster 825) theme:tokyo 244 ms (restyled 3279 elements, style 104 layout 2 paint 17 raster 165) card:2 219 ms (restyled 262 elements, style 143 layout 2 paint 15 raster 84) card:3 267 ms (restyled 262 elements, style 20 layout 5 paint 8 raster 12) card:4 330 ms (restyled 264 elements, style 31 layout 1 paint 9 raster 13) windows:2 575 ms (restyled 32 elements, style 11 layout 2 paint 34 raster 82) windows:3 62 ms (restyled 40 elements, style 8 layout 1 paint 5 raster 90) windows:4 31 ms (restyled 36 elements, style 3 layout 3 paint 5 raster 37) card:1 115 ms (restyled 270 elements, style 20 layout 2 paint 5 raster 10) card:4 22 ms (restyled 268 elements, style 8 layout 1 paint 4 raster 10) bg:none 81 ms (restyled 27 elements, style 6 layout 1 paint 3 raster 15) bg:mesh 142 ms (restyled 29 elements, style 9 layout 1 paint 5 raster 108) | worst 890 ms ✓ 131 test/clusters-appearance.spec.ts:9:1 › appearance switches never freeze the page (50.9s) BENCH idle frames {"n":83,"p50":16.7,"p95":116.7,"p99":183.3,"max":183.3,"over8":83} | raster 30 (3 ms) paint 54 layerize 146 drawFrame 0 compositeLayers 0 BENCH split burst frames {"n":9,"p50":183.3,"p95":466.6,"p99":466.6,"max":466.6,"over8":9} | raster 5 (0 ms) paint 10 layerize 20 drawFrame 0 compositeLayers 0 BENCH windows on the canvas: 23 BENCH idle many frames {"n":89,"p50":16.7,"p95":116.7,"p99":166.7,"max":166.7,"over8":89} | raster 24 (3 ms) paint 48 layerize 156 drawFrame 0 compositeLayers 0 BENCH view flights frames {"n":38,"p50":133.3,"p95":549.9,"p99":733.2,"max":733.2,"over8":38} | raster 834 (634 ms) paint 500 layerize 83 drawFrame 0 compositeLayers 0 BENCH rapid switches frames {"n":14,"p50":383.3,"p95":550,"p99":550,"max":550,"over8":14} | raster 614 (814 ms) paint 252 layerize 30 drawFrame 0 compositeLayers 0 BENCH close burst frames {"n":10,"p50":166.6,"p95":416.6,"p99":416.6,"max":416.6,"over8":10} | raster 71 (35 ms) paint 81 layerize 24 drawFrame 0 compositeLayers 0 ✓ 132 test/clusters-bench.spec.ts:35:1 › frame cost per scenario at DPR 2 with the owner's look (41.1s) close X desktop w-build-01 {"dx":0,"dy":0,"box":[8,8]} close X desktop w-nix-cache {"dx":0,"dy":0,"box":[8,8]} close X desktop w-studio-mac {"dx":0,"dy":0,"box":[8,8]} close X desktop w-containers {"dx":0,"dy":0,"box":[8,8]} close X desktop w-logs {"dx":0,"dy":0,"box":[8,8]} ✓ 133 test/clusters-close-centre.spec.ts:30:3 › the X is centred in its close button on every window type (desktop) (14.3s) close X phone w-build-01 {"dx":0,"dy":0,"box":[8.666666666666666,8.666666666666666]} close X phone w-containers {"dx":0,"dy":0,"box":[8.666666666666666,8.666666666666666]} ✓ 134 test/clusters-close-centre.spec.ts:30:3 › the X is centred in its close button on every window type (phone) (13.8s) FLIGHT {"pointer":808,"pointerBack":1212,"key":206,"key2":198} ✘ 135 test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms (28.5s) (node:3355278) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 136 test/clusters-frame.spec.ts:40:1 › the lock glyph is whole on every window, lone or not, at the top of the view (10.8s) ✓ 137 test/clusters-frame.spec.ts:116:1 › every window resizes from its own edges and corners (D195) (1.2m) FRAMES 1x zoom {"n":13,"p50":166.7,"p95":433.3,"max":433.3,"dropped":13,"cpuMs":1060} pan {"n":13,"p50":166.7,"p95":316.6,"max":316.6,"dropped":12,"cpuMs":940} ✘ 138 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU (13.9s) (node:3374901) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) FRAMES 4x zoom {"n":13,"p50":166.8,"p95":350,"max":350,"dropped":13,"cpuMs":1970} pan {"n":12,"p50":149.9,"p95":566.6,"max":566.6,"dropped":12,"cpuMs":2020} ✘ 139 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU (15.2s) (node:3378486) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GLASS level 2: mid-flight 10/10 cards, 4/4 windows; mid-close 11/11 cards, 4/4 windows, 8 animations playing ✓ 140 test/clusters-glass-motion.spec.ts:17:3 › card level 2: the blur is on during a camera flight and during a close reflow (13.8s) GLASS level 3: mid-flight 10/10 cards, 3/3 windows; mid-close 11/11 cards, 4/4 windows, 8 animations playing ✓ 141 test/clusters-glass-motion.spec.ts:17:3 › card level 3: the blur is on during a camera flight and during a close reflow (12.2s) GLASS level 4: mid-flight 10/10 cards, 4/4 windows; mid-close 11/11 cards, 4/4 windows, 8 animations playing ✓ 142 test/clusters-glass-motion.spec.ts:17:3 › card level 4: the blur is on during a camera flight and during a close reflow (13.0s) ✘ 143 test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change (12.8s) (node:3389231) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 144 test/clusters-grid.spec.ts:109:3 › split right in a stacked column (D212) › by ⌘K: Split right on the stacked window gives the same layout (12.0s) ✓ 145 test/clusters-grid.spec.ts:128:3 › split right in a stacked column (D212) › by mouse: the header pill's split right on the middle window divides it the same way (12.4s) ✓ 146 test/clusters-grid.spec.ts:144:3 › split right in a stacked column (D212) › closing the new half gives back the layout it came from, widths and heights (12.5s) ✘ 147 test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves (12.3s) (node:3394209) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 148 test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns (11.9s) (node:3394763) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 149 test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group (12.2s) (node:3395856) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 150 test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it (11.7s) (node:3396869) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 151 test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height (2.0m) (node:3411407) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 152 test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view (2.0m) (node:3425032) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 153 test/clusters-grid.spec.ts:254:3 › camera and saved layout with a group (D212) › the saved document holds the span, so a reload places the group the same way (12.0s) ✓ 154 test/clusters-grid.spec.ts:268:3 › phone 393x852 with a group (D212) › split right in a stacked column keeps every window on the screen and never scrolls the page sideways (12.3s) ✓ 155 test/clusters-grid.spec.ts:292:3 › moving a window of a group by its pill (D212) › a grouped window dragged to the far column lands there: no overlap, the footprint unchanged, the group closes its hole (16.0s) ✓ 156 test/clusters-grid.spec.ts:320:3 › title first in a narrow half (TASTE, D212) › a half too narrow for its actions keeps its title, shows one ⋯, and the menu holds every action (12.5s) ✓ 157 test/clusters-grid.spec.ts:343:3 › title first in a narrow half (TASTE, D212) › a wide window keeps its actions in the header, and no ⋯ is shown (9.8s) ✘ 158 test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen (13.3s) (node:3433476) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) keyboard split: silhouette seen 0 max rAF gap 233.3 ms, long frames after the first 0.8 s [133.29999999999927,33.399999999999636,149.90000000000146,33.29999999999927,166.79999999999927,33.30000000000109,200,83.29999999999927,100.10000000000036,33.29999999999927,33.30000000000109,50,33.30000000000109,66.69999999999891,33.30000000000109,49.899999999999636,33.400000000001455,66.69999999999891,133.3000000000011,33.400000000001455,50,66.69999999999891,49.899999999999636,33.29999999999927,33.399999999999636,33.29999999999927,33.29999999999927,33.29999999999927,66.70000000000073,116.59999999999854,50,50,33.29999999999927,33.29999999999927,66.60000000000036,33.399999999999636,150,33.399999999999636,33.30000000000109,149.89999999999964,50,33.29999999999927] ✘ 159 test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames (17.8s) (node:3435524) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 160 test/clusters-keyboard-split.spec.ts:57:1 › a pointer split still plays the silhouette (14.5s) ✓ 161 test/clusters-logs.spec.ts:19:1 › the backlog fills the window, is varied, and stays on the newest line (17.0s) ✓ 162 test/clusters-logs.spec.ts:39:1 › scrolling up stops the follow and shows Jump to latest (19.4s) MEM scene 1 {"nearMB":83,"layerMB":595.4,"layers":62,"biggest":[[4200,720,["Overlap"],"?"],[444,4438,["Overlap"],"?"],[1104,1304,["Overlap"],"?"],[960,1320,["Overlap"],"?"],[1200,720,["Trivial3DTransform"],"?"],[684,1127,["Trivial3DTransform","WillChangeTransform","WillChangeOpacity"],"?"],[670,1113,["Trivial3DTransform","WillChangeTransform","WillChangeOpacity"],"?"],[371,1457,["Overlap"],"?"],[355,1237,["Overlap"],"?"],[355,1178,["Overlap"],"?"],[385,686,["Overlap"],"?"],[474,549,["Overlap"],"?"]],"canvases":[[960,1275]],"canvasMB":4.7,"counters":{"documents":4,"nodes":6443,"jsEventListeners":782},"metrics":{}} ✓ 163 test/clusters-memory.spec.ts:47:3 › memory: scene 1 on a phone holds little (12.9s) MEM scene 6 {"nearMB":116.6,"layerMB":242.2,"layers":36,"biggest":[[444,4454,["Overlap"],"pre.canvas-preview.cl-preview"],[960,1320,["Overlap"],"section.cl"],[1200,720,["Trivial3DTransform"],"section.cl"],[683,1126,["Trivial3DTransform","WillChangeTransform","WillChangeOpacity"],"div.ui-canvas-backdrop-layer"],[385,686,["Overlap"],"div.cl-col"],[474,549,["Overlap"],"div.cl-col"],[393,659,["RootScroller","OverflowScrolling"],"#document."],[393,659,["Overlap"],"body.style"],[385,549,["Overlap"],"div.cl-col"],[385,549,["Overlap"],"div.cl-col"],[349,549,["Overlap"],"div.cl-col"],[320,425,["Canvas"],"canvas.style"]],"canvases":[[960,1275]],"canvasMB":4.7,"counters":{"documents":4,"nodes":6408,"jsEventListeners":782},"metrics":{}} ✓ 164 test/clusters-memory.spec.ts:47:3 › memory: scene 6 on a phone holds little (11.3s) MEM hidden {"nearMB":27.2,"layerMB":27.2,"layers":20,"canvases":[[0,0]]} ✓ 165 test/clusters-memory.spec.ts:60:1 › memory: a hidden page releases its surfaces and a shown page draws them again (10.7s) REFLOW split: main thread 254 ms | Layerize 2 ms x3 | Commit 54 ms x3 | style 2 ms | paint 1 ms | FireAnimationFrame 10 ms x5 REFLOW split again: main thread 154 ms | Layerize 3 ms x3 | Commit 27 ms x3 | style 3 ms | paint 39 ms | FireAnimationFrame 0 ms x3 REFLOW close: main thread 229 ms | Layerize 26 ms x3 | Commit 32 ms x3 | style 13 ms | paint 19 ms | FireAnimationFrame 18 ms x7 REFLOW close again: main thread 316 ms | Layerize 3 ms x2 | Commit 72 ms x2 | style 10 ms | paint 18 ms | FireAnimationFrame 39 ms x12 ✓ 166 test/clusters-reflow-cost.spec.ts:8:1 › a close and a split cost the main thread little (21.0s) gap 30 presses 20: most panels at once 0, end [] ✘ 167 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell (17.3s) (node:3452310) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) gap 30 presses 21: most panels at once 1, end [] ✘ 168 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell (16.8s) (node:3456226) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) gap 120 presses 20: most panels at once 0, end [] ✘ 169 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell (19.3s) (node:3460373) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) gap 120 presses 21: most panels at once 0, end [] ✘ 170 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell (19.1s) (node:3463599) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 171 test/clusters-shortcuts.spec.ts:46:3 › Close window › ten quick presses close exactly ten windows, the sessions stay alive, and nothing animates (18.8s) ✓ 172 test/clusters-shortcuts.spec.ts:70:3 › Close window › auto-repeat is ignored: holding the key closes one window (13.1s) ✓ 173 test/clusters-shortcuts.spec.ts:82:3 › Close window › focus moves to the neighbour at once, so the next press closes that one (13.2s) ✓ 174 test/clusters-shortcuts.spec.ts:94:3 › Close window › Close window is in ⌘K with its label (11.8s) ✓ 175 test/clusters-shortcuts.spec.ts:107:3 › the shortcuts panel (?) › it shows the alternates on the same row, quieter, and Close window with its chord (10.7s) ✓ 176 test/clusters-shortcuts.spec.ts:127:3 › the shortcuts panel (?) › opened on the canvas, Canvas is first; opened inside a focused terminal, Terminal is first (12.7s) first/right {"new":{"l":256,"r":479,"t":60,"b":884},"old":{"l":20,"r":244,"t":60,"b":884}} first/down {"new":{"l":20,"r":244,"t":478,"b":884},"old":{"l":20,"r":244,"t":60,"b":466}} middle/right {"new":{"l":608,"r":831,"t":60,"b":884},"old":{"l":372,"r":596,"t":60,"b":884}} middle/down {"new":{"l":608,"r":832,"t":478,"b":884},"old":{"l":608,"r":832,"t":60,"b":466}} last/right {"new":{"l":1197,"r":1420,"t":60,"b":884},"old":{"l":961,"r":1185,"t":60,"b":884}} last/down {"new":{"l":1197,"r":1420,"t":478,"b":884},"old":{"l":1197,"r":1420,"t":60,"b":466}} ✓ 177 test/clusters-split-camera.spec.ts:51:1 › keyboard splits at 54 windows land fully on screen, beside or below the old window, which stays in view (33.4s) mocha down frames 23 worst spike 0.0000 ✓ 178 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting down on mocha (12.6s) mocha right frames 16 worst spike 0.0000 ✓ 179 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting right on mocha (15.1s) latte down frames 12 worst spike 0.0000 ✓ 180 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting down on latte (15.1s) latte right frames 23 worst spike 0.0002 ✓ 181 test/clusters-split-flash.spec.ts:51:3 › no flash when splitting right on latte (16.6s) ✓ 182 test/clusters-split-focus.spec.ts:72:1 › phone 393x852: a split lands you in the new window, ten times (33.8s) ✓ 183 test/clusters-split-focus.spec.ts:78:1 › phone 440x956: a split lands you in the new window, ten times (39.6s) ✓ 184 test/clusters-split-focus.spec.ts:84:1 › desktop 1440x900: a split lands you in the new window, ten times (26.7s) ✓ 185 test/clusters-split-focus.spec.ts:128:1 › phone: closing a window never makes a neighbour overshoot, ten times (58.7s) ✓ 186 test/clusters-split-focus.spec.ts:134:1 › desktop: closing a window never makes a neighbour overshoot, ten times (56.2s) - 187 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 1440x900 ink: a stacked column through the four actions - 188 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 1440x900 paper: a stacked column through the four actions - 189 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 393x852 ink: a stacked column through the four actions - 190 test/clusters-splits-captures.spec.ts:42:7 › D212 captures › 393x852 paper: a stacked column through the four actions ✓ 191 test/clusters-stray-tooltip.spec.ts:17:1 › a session row never shows its aria-label as a tooltip (21.9s) ✓ 192 test/clusters-stray-tooltip.spec.ts:23:1 › a button with its own text is never a tooltip trigger, even while its text is not rendered (12.8s) ✓ 193 test/clusters-stray-tooltip.spec.ts:38:1 › a hover tooltip goes when its element is removed or the view changes (17.3s) ✘ 194 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows (18.4s) ```
Author
Owner

#163 verbatim evidence: playwright-scoped.log (2/7)

(node:3535671) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  195 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column (27.0s)
(node:3542380) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  196 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows (15.8s)
(node:3546168) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  197 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column (24.4s)
(node:3552984) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  198 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (17.8s)
(node:3554829) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  199 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (18.1s)
(node:3558120) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
THEME
  instant: worst frame gap 383/683/883/1017/350/517 ms (max 1017), first frame after 355/508/0/977/484/353 ms
  viewtransition: worst frame gap 950/1533/950/1000/2100/2117 ms (max 2117), first frame after 1578/1534/1114/1254/2318/2100 ms
  ✓  200 test/clusters-theme-transition.spec.ts:27:1 › theme switch: instant against a view transition (41.9s)
d212 layout work at 57+ windows (ms, median / max over 5 rounds): {"canvas:split:right":{"median":57.1,"max":116.8},"canvas:split:down":{"median":64.3,"max":101.8},"canvas:new:right":{"median":58.4,"max":102.3},"canvas:new:below":{"median":56.8,"max":113.5}}
  ✓  201 test/clusters-window-actions-bench.spec.ts:25:1 › one window action with 54 windows costs at most 8 ms of layout work (49.8s)
d212 group layout work at 60+ windows (ms, median / max over 5 rounds), load {"before":"50.87","cpus":8} after 49.69: {"canvas:split:right (in a group)":{"median":17,"max":41.1},"canvas:split:down (in a group)":{"median":19.8,"max":34.1}}
  ✓  202 test/clusters-window-actions-bench.spec.ts:69:1 › the group actions cost at most 8 ms of layout work with 57 windows (32.4s)
  ✓  203 test/clusters-window-actions.spec.ts:77:3 › keys (Linux and Windows chords; Mac chords are in the last test) › split right divides the window: the footprint is unchanged and the neighbours stay put (11.5s)
  ✓  204 test/clusters-window-actions.spec.ts:91:3 › keys (Linux and Windows chords; Mac chords are in the last test) › split down halves the window's height and keeps its column's width (12.9s)
  ✓  205 test/clusters-window-actions.spec.ts:103:3 › keys (Linux and Windows chords; Mac chords are in the last test) › new window right opens a full-size column beside the window and grows the footprint by one column (12.4s)
  ✓  206 test/clusters-window-actions.spec.ts:115:3 › keys (Linux and Windows chords; Mac chords are in the last test) › new window below adds a full-size window under the window and grows its column (13.0s)
  ✓  207 test/clusters-window-actions.spec.ts:130:3 › keys (Linux and Windows chords; Mac chords are in the last test) › holding a key adds one split only, and a key action plays no silhouette (15.0s)
  ✓  208 test/clusters-window-actions.spec.ts:146:3 › ⌘K palette › each of the four actions is in ⌘K with its exact label, and runs (16.0s)
  ✓  209 test/clusters-window-actions.spec.ts:158:3 › ⌘K palette › Split right from ⌘K divides a lone window; New window below from ⌘K grows its column (15.4s)
  ✓  210 test/clusters-window-actions.spec.ts:179:3 › mouse › the header pill's split right and split down divide the window, with the droplet (15.3s)
  ✓  211 test/clusters-window-actions.spec.ts:193:3 › mouse › the canvas row's new window items open a window by mouse, without splitting (13.8s)
  ✓  212 test/clusters-window-actions.spec.ts:210:3 › the rules that hold across actions › split right in a stacked column divides only that window's column: a group, the footprint unchanged (D212) (11.8s)
  ✓  213 test/clusters-window-actions.spec.ts:224:3 › the rules that hold across actions › closing a split half gives its width back, so the layout returns to what it was (12.2s)
  ✓  214 test/clusters-window-actions.spec.ts:243:3 › on a Mac the chords are ⌘D, ⌘⇧D, ⌘↩ and ⌘⇧↩ (D222) › each Mac chord runs its own action, and Control+Option+Shift+D is nothing (15.5s)
  ✓  215 test/clusters-window-label.spec.ts:7:1 › hover list rows name each window, not the heading (12.2s)
ZOOMTOP Frosted zoom out (23 windows): Paint 26.7, FunctionCall 22.1, UpdateLayoutTree 14.1, EventDispatch 11.4, Commit 7.8, FireAnimationFrame 7.6, TimerFire 6.0, Layerize 3.3, MinorGC 2.4, V8.GC_SCAVENGER 2.3
ZOOMSUM Frosted zoom out (23 windows) total 1757 ms main 705 raster 1052 per step 48.8 ms, restyled/step 4
ZOOM Frosted zoom out (23 windows): 6 frames | per frame: main 117.6 ms, raster 175.3 ms, total 292.9 ms | Layerize 3.3 Commit 7.8 style 14.1 ms/frame (23 elements) | main breakdown ms/frame: FunctionCall 22.1 Layout 1.2 PrePaint 0.8 Paint 26.7 FireAnimationFrame 7.6 HitTest 0.2 UpdateLayer 0.4
ZOOMTOP Frosted zoom in: EventDispatch 161.1, UpdateLayoutTree 138.9, Paint 48.2, FunctionCall 32.6, TimerFire 20.6, Commit 14.9, MinorGC 3.4, V8.GC_SCAVENGER 3.4, V8.GC_SCAVENGER_SCAVENGE 3.4, V8.GC_SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS 3.0
ZOOMSUM Frosted zoom in total 1374 ms main 1016 raster 358 per step 38.2 ms, restyled/step 51
ZOOM Frosted zoom in: 3 frames | per frame: main 338.6 ms, raster 119.4 ms, total 458.0 ms | Layerize 1.3 Commit 14.9 style 138.9 ms/frame (611 elements) | main breakdown ms/frame: FunctionCall 32.6 Layout 1.1 PrePaint 0.9 Paint 48.2 FireAnimationFrame 0.6 HitTest 0.2 UpdateLayer 0.1
ZOOM Frosted zoom 0.75 -> 0.32 -> 0.75
  ✘  216 test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted (21.6s)
(node:3609254) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ZOOMTOP Solid zoom out (23 windows): Paint 31.4, EventDispatch 19.3, UpdateLayoutTree 14.6, Commit 8.3, Layerize 7.6, PrePaint 3.7, FunctionCall 2.5, Layout 1.3, TimerFire 1.2, MinorGC 1.1
ZOOMSUM Solid zoom out (23 windows) total 7197 ms main 3996 raster 3201 per step 199.9 ms, restyled/step 63
ZOOM Solid zoom out (23 windows): 38 frames | per frame: main 105.2 ms, raster 84.2 ms, total 189.4 ms | Layerize 7.6 Commit 8.3 style 14.6 ms/frame (60 elements) | main breakdown ms/frame: FunctionCall 2.5 Layout 1.3 PrePaint 3.7 Paint 31.4 FireAnimationFrame 0.4 HitTest 0.1 UpdateLayer 0.3
ZOOMTOP Solid zoom in: Commit 13.5, Paint 8.4, EventDispatch 5.8, Layerize 5.0, FunctionCall 3.6, UpdateLayoutTree 2.9, UpdateLayer 2.4, MajorGC 2.3, V8.GC_MARK_COMPACTOR 2.3, TimerFire 1.6
ZOOMSUM Solid zoom in total 3862 ms main 2030 raster 1832 per step 107.3 ms, restyled/step 7
ZOOM Solid zoom in: 24 frames | per frame: main 84.6 ms, raster 76.3 ms, total 160.9 ms | Layerize 5.0 Commit 13.5 style 2.9 ms/frame (11 elements) | main breakdown ms/frame: FunctionCall 3.6 Layout 0.2 PrePaint 0.8 Paint 8.4 FireAnimationFrame 1.1 HitTest 0.1 UpdateLayer 2.4
ZOOM Solid zoom 0.75 -> 0.32 -> 0.75
  ✓  217 test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Solid (27.0s)
  ✓  218 test/clusters.spec.ts:32:1 › the six scenes load from the palette and the mockup tag, without a page error (16.7s)
  ✓  219 test/clusters.spec.ts:50:1 › overview: three views, thumbnails, a hover summary, and the views listed in the sidebar and the palette (12.1s)
  ✓  220 test/clusters.spec.ts:78:1 › fly in: a view click springs the camera in and the windows go live above 60 percent (12.9s)
  ✓  221 test/clusters.spec.ts:90:1 › D194: terminal windows draw no arrows and have no connector; arrows live only in the Mesh view (9.3s)
  ✓  222 test/clusters.spec.ts:104:1 › a window kind decides its controls, and a terminal splits (17.1s)
  ✓  223 test/clusters.spec.ts:118:1 › split right divides the window beside it, split down stacks below it, from the header, the shortcuts and the palette (13.7s)
  ✓  224 test/clusters.spec.ts:159:1 › canvas lock off frees pan and zoom in place; the overview is its own action (8.7s)
  ✓  225 test/clusters.spec.ts:180:1 › the dots sit on the gradient: the gradient shows everywhere, the dot layers are plain tiles with no cover or mask (5.7s)
  ✓  226 test/clusters.spec.ts:203:1 › mesh: hover names a grant, dragging a head or tail unsnaps it, snaps to another node and asks before moving; dropping on empty canvas asks to remove (13.3s)
  ✓  227 test/clusters.spec.ts:260:1 › mesh: dragging an arrow's end shows the real arrow, snaps within the radius onto the node's edge, and lets go beyond it (13.4s)
  ✓  228 test/clusters.spec.ts:306:1 › scrolling past the ends of a view never leaves it, and the pill always names the view on screen (49.5s)
  ✓  229 test/clusters.spec.ts:334:1 › container shell: the camera stays, the pill morphs into a floating terminal that resizes with its aspect locked and expands into Console (13.9s)
  ✓  230 test/clusters.spec.ts:364:1 › the palette opens a shell by name from anywhere: in Console the camera flies to it (7.1s)
  ✓  231 test/clusters.spec.ts:376:1 › the capsule lists the views with their shortcuts (7.5s)
  ✓  232 test/clusters.spec.ts:385:1 › access by grants: a viewer sees only Console with two hosts; an operator sees all three views (9.4s)
  ✓  233 test/clusters.spec.ts:397:1 › structure: a dragged view snaps to the grid, pushes a neighbour aside and never overlaps (12.9s)
  ✓  234 test/clusters.spec.ts:411:1 › structure: a window dragged by its pill lands in another column (10.3s)
  ✓  235 test/clusters.spec.ts:453:1 › canvas lock on a phone: two fingers move one column at a time, pinch does nothing, the toggle frees the canvas (13.7s)
  ✓  236 test/clusters.spec.ts:493:1 › canvas lock on a phone: tapping a neighbour that peeks in moves there; two fingers step windows in a column (10.2s)
  ✓  237 test/clusters.spec.ts:510:1 › snap on desktop: wheel and trackpad move between windows and columns, ctrl-wheel does not zoom (9.2s)
  ✘  238 test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows (15.3s)
(node:3638723) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  239 test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row (7.3s)
(node:3639516) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  240 test/clusters.spec.ts:608:1 › toolbar: a long press edits it in place (hide with a badge, a tray brings it back, drag reorders), and the layout is the account's until this device overrides it (17.6s)
  ✓  241 test/clusters.spec.ts:656:1 › shortcuts: Settings lists the registry, a row rebinds with a conflict warning, and the new key works everywhere (18.4s)
  ✓  242 test/clusters.spec.ts:685:1 › the top pill: a horizontal swipe steps to the next view and the canvas lock re-engages (12.9s)
MOTION_COST {"viewJump":7.299999952316284,"windowStep":12.100000023841858,"canvasLockToggle":0.699999988079071,"keyJumpMoved":0}
  ✘  243 test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate (13.3s)
(node:3644827) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  244 test/clusters.spec.ts:727:1 › canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next (8.8s)
  ✓  245 test/clusters.spec.ts:765:1 › toolbar: the row stack follows the finger one to one (a swipe down moves it down and reveals the canvas row) (9.3s)
SPLIT_COST frames=5 avgDrawMs=0.120 maxDrawMs=0.20 durationMs=718
  ✓  246 test/clusters.spec.ts:786:1 › droplet split: a goo layer exists only while it runs, the gap pulls past its rest size and wobbles back, and each frame costs under 4 ms (9.3s)
  ✓  247 test/clusters.spec.ts:805:1 › closing re-tiles: the remaining window of a column takes the whole column (bottom closed, then top closed) (16.6s)
  ✓  248 test/clusters.spec.ts:819:1 › closing the last window of a column removes the column, its neighbours close the gap, and the canvas lock re-snaps (8.2s)
  ✘  249 test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal (6.9s)
(node:3649361) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  250 test/clusters.spec.ts:863:1 › devices: the name edits in place, a sign-out asks first, and a device switch offers to continue once (21.4s)
  ✓  251 test/clusters.spec.ts:913:1 › sharing: the dialog sends a view; the recipient gets their own copy named after the sender, with no-access windows, and nothing is replaced (16.9s)
  ✓  252 test/clusters.spec.ts:941:1 › team layouts: followers see a marker and a read-only copy that follows the publisher live, until they unlink it (22.6s)
  ✓  253 test/clusters.spec.ts:972:1 › a restarted mock never strands an open preview tab: an unknown session cookie gets a fresh mock session (6.8s)
  ✓  254 test/clusters.spec.ts:1010:1 › descenders: g j p q y fit inside the window pill, a Mesh node pill, the view label and the top pill (13.1s)
  ✓  255 test/clusters.spec.ts:1021:1 › the window lock sits at the exact centre of its window and the title pill yields (9.2s)
  ✓  256 test/clusters.spec.ts:1052:1 › toolbar rows snap: a short drag springs back, a longer one commits, and the stack never rests between rows (24.8s)
  ✘  257 test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px (18.7s)
(node:3660769) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  258 test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus (8.6s)
(node:3662113) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  259 test/core-screen.spec.ts:65:1 › curated overlay materials preserve foreground contrast in every theme (167ms)
  ✘  260 test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots (23.3s)
(node:3665051) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-1440x900-sidebar-open-comparison.png
UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-1440x900-palette-open-comparison.png
UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-393x852-sidebar-open-comparison.png
UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-393x852-palette-open-comparison.png
  ✓  261 test/core-screen.spec.ts:253:1 › UI font choice persists and captures ink screenshots at phone and desktop sizes (1.2m)
  ✓  262 test/dead-session.spec.ts:27:1 › a dead session ends quietly: one attach, an ended state, and a new shell in the same window (21.1s)
  ✓  263 test/dead-session.spec.ts:82:30 › a retired session carries exit 7 through the same final ended path (13.8s)
  ✓  264 test/dead-session.spec.ts:82:30 › a retired session carries exit 0 through the same final ended path (13.8s)
  ✓  265 test/dead-session.spec.ts:107:1 › a drop between saved status and final Close resumes to the same ended answer (15.1s)
  ✓  266 test/detached-output.spec.ts:4:1 › owned output drains while detached before the next Attach (8.7s)
  ✓  267 test/details.spec.ts:17:1 › a click on the pill opens the popover, with plain names and a subtitle for the technical one (8.9s)
  ✓  268 test/details.spec.ts:39:1 › dragging the pill moves the window and opens nothing (8.6s)
  ✓  269 test/details.spec.ts:53:1 › the keyboard opens it instantly and Escape closes it; a press outside closes it (7.4s)
  ✓  270 test/details.spec.ts:68:1 › on a phone the popover stays inside the visual viewport and above the key row (7.9s)
  ✓  271 test/focus-ring.spec.ts:22:1 › clicks and shortcuts draw no focus ring; Tab does (8.3s)
FONT_BENCH {"font":"maple-mono-nf","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":3.600000023841858,"load":[24.99,29.06,36.04],"cores":8}
LINE86 {"font":"maple-mono-nf","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":686,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8}
  ✓  272 test/font-metrics.spec.ts:18:3 › Maple Mono NF: 86-character line keeps the cursor on its cell at DPR 1 (8.2s)
FONT_BENCH {"font":"maple-mono-nf","dpr":2,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":0.9000000357627869,"load":[24.43,28.87,35.94],"cores":8}
LINE86 {"font":"maple-mono-nf","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1375,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16}
  ✓  273 test/font-metrics.spec.ts:18:3 › Maple Mono NF: 86-character line keeps the cursor on its cell at DPR 2 (8.5s)
FONT_BENCH {"font":"maple-mono-nf","dpr":3,"redrawP50Ms":0.8999999761581421,"redrawP95Ms":10.399999976158142,"load":[23.73,28.57,35.76],"cores":8}
LINE86 {"font":"maple-mono-nf","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":2064,"lastInk":2062,"inkAfter":0,"barMin":0,"dpr":3,"cellWidthPx":24}
  ✓  274 test/font-metrics.spec.ts:18:3 › Maple Mono NF: 86-character line keeps the cursor on its cell at DPR 3 (9.6s)
FONT_BENCH {"font":"geist-mono","dpr":1,"redrawP50Ms":2.100000023841858,"redrawP95Ms":10.300000011920929,"load":[24.19,28.5,35.66],"cores":8}
LINE86 {"font":"geist-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8}
  ✓  275 test/font-metrics.spec.ts:18:3 › Geist Mono: 86-character line keeps the cursor on its cell at DPR 1 (9.4s)
FONT_BENCH {"font":"geist-mono","dpr":2,"redrawP50Ms":0.5999999642372131,"redrawP95Ms":7.5,"load":[24.36,28.4,35.56],"cores":8}
LINE86 {"font":"geist-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16}
  ✓  276 test/font-metrics.spec.ts:18:3 › Geist Mono: 86-character line keeps the cursor on its cell at DPR 2 (8.7s)
FONT_BENCH {"font":"jetbrains-mono","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":16.69999998807907,"load":[23.94,28.17,35.4],"cores":8}
LINE86 {"font":"jetbrains-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":686,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8}
  ✓  277 test/font-metrics.spec.ts:18:3 › JetBrains Mono: 86-character line keeps the cursor on its cell at DPR 1 (7.7s)
FONT_BENCH {"font":"jetbrains-mono","dpr":2,"redrawP50Ms":0.5999999642372131,"redrawP95Ms":8.399999976158142,"load":[23.71,28.05,35.33],"cores":8}
LINE86 {"font":"jetbrains-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16}
  ✓  278 test/font-metrics.spec.ts:18:3 › JetBrains Mono: 86-character line keeps the cursor on its cell at DPR 2 (7.3s)
FONT_BENCH {"font":"commit-mono","dpr":1,"redrawP50Ms":0.699999988079071,"redrawP95Ms":6,"load":[23.17,27.87,35.23],"cores":8}
LINE86 {"font":"commit-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8}
  ✓  279 test/font-metrics.spec.ts:18:3 › Commit Mono: 86-character line keeps the cursor on its cell at DPR 1 (7.2s)
FONT_BENCH {"font":"commit-mono","dpr":2,"redrawP50Ms":0.800000011920929,"redrawP95Ms":5.399999976158142,"load":[24.22,27.94,35.17],"cores":8}
LINE86 {"font":"commit-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1375,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16}
  ✓  280 test/font-metrics.spec.ts:18:3 › Commit Mono: 86-character line keeps the cursor on its cell at DPR 2 (8.7s)
FONT_BENCH {"font":"monaspace-neon","dpr":1,"redrawP50Ms":0.699999988079071,"redrawP95Ms":8.600000023841858,"load":[25.09,28.01,35.12],"cores":8}
LINE86 {"font":"monaspace-neon","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":774,"lastInk":772,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":9}
  ✓  281 test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 1 (8.9s)
  ✘  282 test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 (6.5s)
(node:3702884) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
FONT_BENCH {"font":"ibm-plex-mono","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":7.600000023841858,"load":[24.34,27.69,34.89],"cores":8}
LINE86 {"font":"ibm-plex-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":686,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8}
  ✓  283 test/font-metrics.spec.ts:18:3 › IBM Plex Mono: 86-character line keeps the cursor on its cell at DPR 1 (6.9s)
FONT_BENCH {"font":"ibm-plex-mono","dpr":2,"redrawP50Ms":1.199999988079071,"redrawP95Ms":6.899999976158142,"load":[23.19,27.39,34.76],"cores":8}
LINE86 {"font":"ibm-plex-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1375,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16}
  ✓  284 test/font-metrics.spec.ts:18:3 › IBM Plex Mono: 86-character line keeps the cursor on its cell at DPR 2 (7.1s)
FONT_BENCH {"font":"cascadia-code","dpr":1,"redrawP50Ms":0.9000000357627869,"redrawP95Ms":3.400000035762787,"load":[22.37,27.08,34.58],"cores":8}
LINE86 {"font":"cascadia-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8}
  ✓  285 test/font-metrics.spec.ts:18:3 › Cascadia Code: 86-character line keeps the cursor on its cell at DPR 1 (6.2s)
FONT_BENCH {"font":"cascadia-code","dpr":2,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":1,"load":[21.78,26.88,34.47],"cores":8}
LINE86 {"font":"cascadia-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16}
  ✓  286 test/font-metrics.spec.ts:18:3 › Cascadia Code: 86-character line keeps the cursor on its cell at DPR 2 (6.3s)
FONT_BENCH {"font":"fira-code","dpr":1,"redrawP50Ms":0.5,"redrawP95Ms":0.800000011920929,"load":[20.59,26.55,34.33],"cores":8}
LINE86 {"font":"fira-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":774,"lastInk":773,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":9}
  ✓  287 test/font-metrics.spec.ts:18:3 › Fira Code: 86-character line keeps the cursor on its cell at DPR 1 (6.3s)
FONT_BENCH {"font":"fira-code","dpr":2,"redrawP50Ms":0.9000000357627869,"redrawP95Ms":4.300000011920929,"load":[19.03,26.02,34.07],"cores":8}
LINE86 {"font":"fira-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":1548,"lastInk":1546,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":18}
  ✓  288 test/font-metrics.spec.ts:18:3 › Fira Code: 86-character line keeps the cursor on its cell at DPR 2 (7.0s)
FONT_BENCH {"font":"source-code-pro","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":4.899999976158142,"load":[18.3,25.75,33.94],"cores":8}
LINE86 {"font":"source-code-pro","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8}
  ✓  289 test/font-metrics.spec.ts:18:3 › Source Code Pro: 86-character line keeps the cursor on its cell at DPR 1 (6.8s)
FONT_BENCH {"font":"source-code-pro","dpr":2,"redrawP50Ms":0.7000000476837158,"redrawP95Ms":9.399999976158142,"load":[18.76,25.72,33.89],"cores":8}
LINE86 {"font":"source-code-pro","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16}
  ✓  290 test/font-metrics.spec.ts:18:3 › Source Code Pro: 86-character line keeps the cursor on its cell at DPR 2 (7.1s)
POWERLINE {"arrow":1,"branch":0.9722222222222222,"house":0.7222222222222222,"node":0.6666666666666666}
  ✓  291 test/font-metrics.spec.ts:90:1 › powerline and icon glyphs draw as real glyphs, not missing-glyph boxes (9.4s)
LIGATURE_PROBE {"font":"maple-mono-nf","autoVsSpaced":462,"speedVsSpaced":0}
  ✓  292 test/font-metrics.spec.ts:139:3 › Maple Mono NF: terminal ligatures stay off, optimizeSpeed makes that deterministic (861ms)
LIGATURE_PROBE {"font":"geist-mono","autoVsSpaced":0,"speedVsSpaced":0}
  ✓  293 test/font-metrics.spec.ts:139:3 › Geist Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (854ms)
LIGATURE_PROBE {"font":"jetbrains-mono","autoVsSpaced":463,"speedVsSpaced":0}
  ✓  294 test/font-metrics.spec.ts:139:3 › JetBrains Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (833ms)
LIGATURE_PROBE {"font":"commit-mono","autoVsSpaced":94,"speedVsSpaced":0}
  ✓  295 test/font-metrics.spec.ts:139:3 › Commit Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (906ms)
LIGATURE_PROBE {"font":"monaspace-neon","autoVsSpaced":297,"speedVsSpaced":0}
  ✓  296 test/font-metrics.spec.ts:139:3 › Monaspace Neon: terminal ligatures stay off, optimizeSpeed makes that deterministic (921ms)
LIGATURE_PROBE {"font":"ibm-plex-mono","autoVsSpaced":0,"speedVsSpaced":0}
  ✓  297 test/font-metrics.spec.ts:139:3 › IBM Plex Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (945ms)
LIGATURE_PROBE {"font":"cascadia-code","autoVsSpaced":667,"speedVsSpaced":0}
  ✓  298 test/font-metrics.spec.ts:139:3 › Cascadia Code: terminal ligatures stay off, optimizeSpeed makes that deterministic (952ms)
LIGATURE_PROBE {"font":"fira-code","autoVsSpaced":595,"speedVsSpaced":0}
  ✓  299 test/font-metrics.spec.ts:139:3 › Fira Code: terminal ligatures stay off, optimizeSpeed makes that deterministic (1.0s)
LIGATURE_PROBE {"font":"source-code-pro","autoVsSpaced":0,"speedVsSpaced":0}
  ✓  300 test/font-metrics.spec.ts:139:3 › Source Code Pro: terminal ligatures stay off, optimizeSpeed makes that deterministic (849ms)
  ✓  301 test/font-picker.spec.ts:32:1 › arrow previews a font, Escape reverts, nothing is saved (7.6s)
  ✓  302 test/font-picker.spec.ts:52:1 › hover previews, Enter commits and the choice survives a reload (13.0s)
  ✓  303 test/font-switch.spec.ts:36:1 › a font chosen in Settings, Appearance reaches the interface, a window body and the live terminal (15.2s)
  ✓  304 test/font-switch.spec.ts:52:1 › a font choice reaches the interface, a window body and the live terminal (16.1s)
  ✓  305 test/font-switch.spec.ts:71:1 › the chosen font survives a reload (17.0s)
  ✘  306 test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 (6.8s)
(node:3726041) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
FONT_WEIGHT {"font":"maple-mono-nf","dpr":2,"loaded":true,"canvasFont":"500 14px \"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","regularInk":4554.666666666667,"boldInk":5613.228758169935,"ratio":1.2324126371860218,"rendererFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","rootFont":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","tokens":["450","500","550","650"]}
  ✓  307 test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 2 (8.8s)
FONT_WEIGHT {"font":"geist-mono","dpr":1,"loaded":true,"canvasFont":"450 14px \"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1071.8954248366013,"boldInk":1508.81045751634,"ratio":1.4076097560975611,"rendererFamily":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  308 test/font-weight.spec.ts:15:5 › Geist Mono draws terminal and UI text at its registry weights at DPR 1 (6.5s)
FONT_WEIGHT {"font":"geist-mono","dpr":2,"loaded":true,"canvasFont":"450 14px \"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4359.320261437909,"boldInk":5738.248366013072,"ratio":1.316317228805834,"rendererFamily":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  309 test/font-weight.spec.ts:15:5 › Geist Mono draws terminal and UI text at its registry weights at DPR 2 (7.9s)
FONT_WEIGHT {"font":"jetbrains-mono","dpr":1,"loaded":true,"canvasFont":"450 14px \"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1053.5424836601308,"boldInk":1300.6013071895425,"ratio":1.2345029530001488,"rendererFamily":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  310 test/font-weight.spec.ts:15:5 › JetBrains Mono draws terminal and UI text at its registry weights at DPR 1 (7.7s)
FONT_WEIGHT {"font":"jetbrains-mono","dpr":2,"loaded":true,"canvasFont":"450 14px \"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4288.993464052287,"boldInk":5522.0392156862745,"ratio":1.287490704280298,"rendererFamily":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  311 test/font-weight.spec.ts:15:5 › JetBrains Mono draws terminal and UI text at its registry weights at DPR 2 (6.3s)
FONT_WEIGHT {"font":"commit-mono","dpr":1,"loaded":true,"canvasFont":"14px \"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":968.4183006535948,"boldInk":1299.2941176470588,"ratio":1.3416662167269586,"rendererFamily":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","400","700"]}
  ✓  312 test/font-weight.spec.ts:15:5 › Commit Mono draws terminal and UI text at its registry weights at DPR 1 (7.4s)
FONT_WEIGHT {"font":"commit-mono","dpr":2,"loaded":true,"canvasFont":"14px \"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":3844.392156862745,"boldInk":5275.503267973856,"ratio":1.3722593982917142,"rendererFamily":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","400","700"]}
  ✓  313 test/font-weight.spec.ts:15:5 › Commit Mono draws terminal and UI text at its registry weights at DPR 2 (8.7s)
FONT_WEIGHT {"font":"monaspace-neon","dpr":1,"loaded":true,"canvasFont":"500 14px \"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1311.7385620915031,"boldInk":1684.6013071895425,"ratio":1.2842508071909755,"rendererFamily":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  314 test/font-weight.spec.ts:15:5 › Monaspace Neon draws terminal and UI text at its registry weights at DPR 1 (8.7s)
FONT_WEIGHT {"font":"monaspace-neon","dpr":2,"loaded":true,"canvasFont":"500 14px \"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":5110.117647058823,"boldInk":6005.385620915033,"ratio":1.1751951786024906,"rendererFamily":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  315 test/font-weight.spec.ts:15:5 › Monaspace Neon draws terminal and UI text at its registry weights at DPR 2 (6.7s)
FONT_WEIGHT {"font":"ibm-plex-mono","dpr":1,"loaded":true,"canvasFont":"450 14px \"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1180.235294117647,"boldInk":1754.1437908496732,"ratio":1.4862661704766968,"rendererFamily":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  316 test/font-weight.spec.ts:15:5 › IBM Plex Mono draws terminal and UI text at its registry weights at DPR 1 (8.1s)
FONT_WEIGHT {"font":"ibm-plex-mono","dpr":2,"loaded":true,"canvasFont":"450 14px \"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4253.59477124183,"boldInk":6312.575163398693,"ratio":1.4840565457897972,"rendererFamily":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  317 test/font-weight.spec.ts:15:5 › IBM Plex Mono draws terminal and UI text at its registry weights at DPR 2 (6.8s)
FONT_WEIGHT {"font":"cascadia-code","dpr":1,"loaded":true,"canvasFont":"14px \"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1259.6078431372548,"boldInk":1575.5816993464052,"ratio":1.2508509755085098,"rendererFamily":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","450","550"]}
  ✓  318 test/font-weight.spec.ts:15:5 › Cascadia Code draws terminal and UI text at its registry weights at DPR 1 (8.8s)
FONT_WEIGHT {"font":"cascadia-code","dpr":2,"loaded":true,"canvasFont":"14px \"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4728.418300653595,"boldInk":5735.529411764706,"ratio":1.2129911203016666,"rendererFamily":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","450","550"]}
  ✓  319 test/font-weight.spec.ts:15:5 › Cascadia Code draws terminal and UI text at its registry weights at DPR 2 (6.9s)
FONT_WEIGHT {"font":"fira-code","dpr":1,"loaded":true,"canvasFont":"450 14px \"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1158.5882352941176,"boldInk":1721.3071895424837,"ratio":1.4856936546619732,"rendererFamily":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  320 test/font-weight.spec.ts:15:5 › Fira Code draws terminal and UI text at its registry weights at DPR 1 (7.6s)
FONT_WEIGHT {"font":"fira-code","dpr":2,"loaded":true,"canvasFont":"450 14px \"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4569.568627450981,"boldInk":6872.156862745098,"ratio":1.5038961930589405,"rendererFamily":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]}
  ✓  321 test/font-weight.spec.ts:15:5 › Fira Code draws terminal and UI text at its registry weights at DPR 2 (6.4s)
FONT_WEIGHT {"font":"source-code-pro","dpr":1,"loaded":true,"canvasFont":"550 14px \"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1083.8169934640523,"boldInk":1425.8823529411766,"ratio":1.315611732921652,"rendererFamily":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["500","550","600","700"]}
  ✓  322 test/font-weight.spec.ts:15:5 › Source Code Pro draws terminal and UI text at its registry weights at DPR 1 (6.8s)
#163 verbatim evidence: playwright-scoped.log (2/7) ```text (node:3535671) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 195 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column (27.0s) (node:3542380) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 196 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows (15.8s) (node:3546168) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 197 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column (24.4s) (node:3552984) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 198 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (17.8s) (node:3554829) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 199 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (18.1s) (node:3558120) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) THEME instant: worst frame gap 383/683/883/1017/350/517 ms (max 1017), first frame after 355/508/0/977/484/353 ms viewtransition: worst frame gap 950/1533/950/1000/2100/2117 ms (max 2117), first frame after 1578/1534/1114/1254/2318/2100 ms ✓ 200 test/clusters-theme-transition.spec.ts:27:1 › theme switch: instant against a view transition (41.9s) d212 layout work at 57+ windows (ms, median / max over 5 rounds): {"canvas:split:right":{"median":57.1,"max":116.8},"canvas:split:down":{"median":64.3,"max":101.8},"canvas:new:right":{"median":58.4,"max":102.3},"canvas:new:below":{"median":56.8,"max":113.5}} ✓ 201 test/clusters-window-actions-bench.spec.ts:25:1 › one window action with 54 windows costs at most 8 ms of layout work (49.8s) d212 group layout work at 60+ windows (ms, median / max over 5 rounds), load {"before":"50.87","cpus":8} after 49.69: {"canvas:split:right (in a group)":{"median":17,"max":41.1},"canvas:split:down (in a group)":{"median":19.8,"max":34.1}} ✓ 202 test/clusters-window-actions-bench.spec.ts:69:1 › the group actions cost at most 8 ms of layout work with 57 windows (32.4s) ✓ 203 test/clusters-window-actions.spec.ts:77:3 › keys (Linux and Windows chords; Mac chords are in the last test) › split right divides the window: the footprint is unchanged and the neighbours stay put (11.5s) ✓ 204 test/clusters-window-actions.spec.ts:91:3 › keys (Linux and Windows chords; Mac chords are in the last test) › split down halves the window's height and keeps its column's width (12.9s) ✓ 205 test/clusters-window-actions.spec.ts:103:3 › keys (Linux and Windows chords; Mac chords are in the last test) › new window right opens a full-size column beside the window and grows the footprint by one column (12.4s) ✓ 206 test/clusters-window-actions.spec.ts:115:3 › keys (Linux and Windows chords; Mac chords are in the last test) › new window below adds a full-size window under the window and grows its column (13.0s) ✓ 207 test/clusters-window-actions.spec.ts:130:3 › keys (Linux and Windows chords; Mac chords are in the last test) › holding a key adds one split only, and a key action plays no silhouette (15.0s) ✓ 208 test/clusters-window-actions.spec.ts:146:3 › ⌘K palette › each of the four actions is in ⌘K with its exact label, and runs (16.0s) ✓ 209 test/clusters-window-actions.spec.ts:158:3 › ⌘K palette › Split right from ⌘K divides a lone window; New window below from ⌘K grows its column (15.4s) ✓ 210 test/clusters-window-actions.spec.ts:179:3 › mouse › the header pill's split right and split down divide the window, with the droplet (15.3s) ✓ 211 test/clusters-window-actions.spec.ts:193:3 › mouse › the canvas row's new window items open a window by mouse, without splitting (13.8s) ✓ 212 test/clusters-window-actions.spec.ts:210:3 › the rules that hold across actions › split right in a stacked column divides only that window's column: a group, the footprint unchanged (D212) (11.8s) ✓ 213 test/clusters-window-actions.spec.ts:224:3 › the rules that hold across actions › closing a split half gives its width back, so the layout returns to what it was (12.2s) ✓ 214 test/clusters-window-actions.spec.ts:243:3 › on a Mac the chords are ⌘D, ⌘⇧D, ⌘↩ and ⌘⇧↩ (D222) › each Mac chord runs its own action, and Control+Option+Shift+D is nothing (15.5s) ✓ 215 test/clusters-window-label.spec.ts:7:1 › hover list rows name each window, not the heading (12.2s) ZOOMTOP Frosted zoom out (23 windows): Paint 26.7, FunctionCall 22.1, UpdateLayoutTree 14.1, EventDispatch 11.4, Commit 7.8, FireAnimationFrame 7.6, TimerFire 6.0, Layerize 3.3, MinorGC 2.4, V8.GC_SCAVENGER 2.3 ZOOMSUM Frosted zoom out (23 windows) total 1757 ms main 705 raster 1052 per step 48.8 ms, restyled/step 4 ZOOM Frosted zoom out (23 windows): 6 frames | per frame: main 117.6 ms, raster 175.3 ms, total 292.9 ms | Layerize 3.3 Commit 7.8 style 14.1 ms/frame (23 elements) | main breakdown ms/frame: FunctionCall 22.1 Layout 1.2 PrePaint 0.8 Paint 26.7 FireAnimationFrame 7.6 HitTest 0.2 UpdateLayer 0.4 ZOOMTOP Frosted zoom in: EventDispatch 161.1, UpdateLayoutTree 138.9, Paint 48.2, FunctionCall 32.6, TimerFire 20.6, Commit 14.9, MinorGC 3.4, V8.GC_SCAVENGER 3.4, V8.GC_SCAVENGER_SCAVENGE 3.4, V8.GC_SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS 3.0 ZOOMSUM Frosted zoom in total 1374 ms main 1016 raster 358 per step 38.2 ms, restyled/step 51 ZOOM Frosted zoom in: 3 frames | per frame: main 338.6 ms, raster 119.4 ms, total 458.0 ms | Layerize 1.3 Commit 14.9 style 138.9 ms/frame (611 elements) | main breakdown ms/frame: FunctionCall 32.6 Layout 1.1 PrePaint 0.9 Paint 48.2 FireAnimationFrame 0.6 HitTest 0.2 UpdateLayer 0.1 ZOOM Frosted zoom 0.75 -> 0.32 -> 0.75 ✘ 216 test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted (21.6s) (node:3609254) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ZOOMTOP Solid zoom out (23 windows): Paint 31.4, EventDispatch 19.3, UpdateLayoutTree 14.6, Commit 8.3, Layerize 7.6, PrePaint 3.7, FunctionCall 2.5, Layout 1.3, TimerFire 1.2, MinorGC 1.1 ZOOMSUM Solid zoom out (23 windows) total 7197 ms main 3996 raster 3201 per step 199.9 ms, restyled/step 63 ZOOM Solid zoom out (23 windows): 38 frames | per frame: main 105.2 ms, raster 84.2 ms, total 189.4 ms | Layerize 7.6 Commit 8.3 style 14.6 ms/frame (60 elements) | main breakdown ms/frame: FunctionCall 2.5 Layout 1.3 PrePaint 3.7 Paint 31.4 FireAnimationFrame 0.4 HitTest 0.1 UpdateLayer 0.3 ZOOMTOP Solid zoom in: Commit 13.5, Paint 8.4, EventDispatch 5.8, Layerize 5.0, FunctionCall 3.6, UpdateLayoutTree 2.9, UpdateLayer 2.4, MajorGC 2.3, V8.GC_MARK_COMPACTOR 2.3, TimerFire 1.6 ZOOMSUM Solid zoom in total 3862 ms main 2030 raster 1832 per step 107.3 ms, restyled/step 7 ZOOM Solid zoom in: 24 frames | per frame: main 84.6 ms, raster 76.3 ms, total 160.9 ms | Layerize 5.0 Commit 13.5 style 2.9 ms/frame (11 elements) | main breakdown ms/frame: FunctionCall 3.6 Layout 0.2 PrePaint 0.8 Paint 8.4 FireAnimationFrame 1.1 HitTest 0.1 UpdateLayer 2.4 ZOOM Solid zoom 0.75 -> 0.32 -> 0.75 ✓ 217 test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Solid (27.0s) ✓ 218 test/clusters.spec.ts:32:1 › the six scenes load from the palette and the mockup tag, without a page error (16.7s) ✓ 219 test/clusters.spec.ts:50:1 › overview: three views, thumbnails, a hover summary, and the views listed in the sidebar and the palette (12.1s) ✓ 220 test/clusters.spec.ts:78:1 › fly in: a view click springs the camera in and the windows go live above 60 percent (12.9s) ✓ 221 test/clusters.spec.ts:90:1 › D194: terminal windows draw no arrows and have no connector; arrows live only in the Mesh view (9.3s) ✓ 222 test/clusters.spec.ts:104:1 › a window kind decides its controls, and a terminal splits (17.1s) ✓ 223 test/clusters.spec.ts:118:1 › split right divides the window beside it, split down stacks below it, from the header, the shortcuts and the palette (13.7s) ✓ 224 test/clusters.spec.ts:159:1 › canvas lock off frees pan and zoom in place; the overview is its own action (8.7s) ✓ 225 test/clusters.spec.ts:180:1 › the dots sit on the gradient: the gradient shows everywhere, the dot layers are plain tiles with no cover or mask (5.7s) ✓ 226 test/clusters.spec.ts:203:1 › mesh: hover names a grant, dragging a head or tail unsnaps it, snaps to another node and asks before moving; dropping on empty canvas asks to remove (13.3s) ✓ 227 test/clusters.spec.ts:260:1 › mesh: dragging an arrow's end shows the real arrow, snaps within the radius onto the node's edge, and lets go beyond it (13.4s) ✓ 228 test/clusters.spec.ts:306:1 › scrolling past the ends of a view never leaves it, and the pill always names the view on screen (49.5s) ✓ 229 test/clusters.spec.ts:334:1 › container shell: the camera stays, the pill morphs into a floating terminal that resizes with its aspect locked and expands into Console (13.9s) ✓ 230 test/clusters.spec.ts:364:1 › the palette opens a shell by name from anywhere: in Console the camera flies to it (7.1s) ✓ 231 test/clusters.spec.ts:376:1 › the capsule lists the views with their shortcuts (7.5s) ✓ 232 test/clusters.spec.ts:385:1 › access by grants: a viewer sees only Console with two hosts; an operator sees all three views (9.4s) ✓ 233 test/clusters.spec.ts:397:1 › structure: a dragged view snaps to the grid, pushes a neighbour aside and never overlaps (12.9s) ✓ 234 test/clusters.spec.ts:411:1 › structure: a window dragged by its pill lands in another column (10.3s) ✓ 235 test/clusters.spec.ts:453:1 › canvas lock on a phone: two fingers move one column at a time, pinch does nothing, the toggle frees the canvas (13.7s) ✓ 236 test/clusters.spec.ts:493:1 › canvas lock on a phone: tapping a neighbour that peeks in moves there; two fingers step windows in a column (10.2s) ✓ 237 test/clusters.spec.ts:510:1 › snap on desktop: wheel and trackpad move between windows and columns, ctrl-wheel does not zoom (9.2s) ✘ 238 test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows (15.3s) (node:3638723) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 239 test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row (7.3s) (node:3639516) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 240 test/clusters.spec.ts:608:1 › toolbar: a long press edits it in place (hide with a badge, a tray brings it back, drag reorders), and the layout is the account's until this device overrides it (17.6s) ✓ 241 test/clusters.spec.ts:656:1 › shortcuts: Settings lists the registry, a row rebinds with a conflict warning, and the new key works everywhere (18.4s) ✓ 242 test/clusters.spec.ts:685:1 › the top pill: a horizontal swipe steps to the next view and the canvas lock re-engages (12.9s) MOTION_COST {"viewJump":7.299999952316284,"windowStep":12.100000023841858,"canvasLockToggle":0.699999988079071,"keyJumpMoved":0} ✘ 243 test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate (13.3s) (node:3644827) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 244 test/clusters.spec.ts:727:1 › canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next (8.8s) ✓ 245 test/clusters.spec.ts:765:1 › toolbar: the row stack follows the finger one to one (a swipe down moves it down and reveals the canvas row) (9.3s) SPLIT_COST frames=5 avgDrawMs=0.120 maxDrawMs=0.20 durationMs=718 ✓ 246 test/clusters.spec.ts:786:1 › droplet split: a goo layer exists only while it runs, the gap pulls past its rest size and wobbles back, and each frame costs under 4 ms (9.3s) ✓ 247 test/clusters.spec.ts:805:1 › closing re-tiles: the remaining window of a column takes the whole column (bottom closed, then top closed) (16.6s) ✓ 248 test/clusters.spec.ts:819:1 › closing the last window of a column removes the column, its neighbours close the gap, and the canvas lock re-snaps (8.2s) ✘ 249 test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal (6.9s) (node:3649361) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 250 test/clusters.spec.ts:863:1 › devices: the name edits in place, a sign-out asks first, and a device switch offers to continue once (21.4s) ✓ 251 test/clusters.spec.ts:913:1 › sharing: the dialog sends a view; the recipient gets their own copy named after the sender, with no-access windows, and nothing is replaced (16.9s) ✓ 252 test/clusters.spec.ts:941:1 › team layouts: followers see a marker and a read-only copy that follows the publisher live, until they unlink it (22.6s) ✓ 253 test/clusters.spec.ts:972:1 › a restarted mock never strands an open preview tab: an unknown session cookie gets a fresh mock session (6.8s) ✓ 254 test/clusters.spec.ts:1010:1 › descenders: g j p q y fit inside the window pill, a Mesh node pill, the view label and the top pill (13.1s) ✓ 255 test/clusters.spec.ts:1021:1 › the window lock sits at the exact centre of its window and the title pill yields (9.2s) ✓ 256 test/clusters.spec.ts:1052:1 › toolbar rows snap: a short drag springs back, a longer one commits, and the stack never rests between rows (24.8s) ✘ 257 test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px (18.7s) (node:3660769) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 258 test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus (8.6s) (node:3662113) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 259 test/core-screen.spec.ts:65:1 › curated overlay materials preserve foreground contrast in every theme (167ms) ✘ 260 test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots (23.3s) (node:3665051) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-1440x900-sidebar-open-comparison.png UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-1440x900-palette-open-comparison.png UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-393x852-sidebar-open-comparison.png UI font comparison (production build): /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/core-screen/ui-393x852-palette-open-comparison.png ✓ 261 test/core-screen.spec.ts:253:1 › UI font choice persists and captures ink screenshots at phone and desktop sizes (1.2m) ✓ 262 test/dead-session.spec.ts:27:1 › a dead session ends quietly: one attach, an ended state, and a new shell in the same window (21.1s) ✓ 263 test/dead-session.spec.ts:82:30 › a retired session carries exit 7 through the same final ended path (13.8s) ✓ 264 test/dead-session.spec.ts:82:30 › a retired session carries exit 0 through the same final ended path (13.8s) ✓ 265 test/dead-session.spec.ts:107:1 › a drop between saved status and final Close resumes to the same ended answer (15.1s) ✓ 266 test/detached-output.spec.ts:4:1 › owned output drains while detached before the next Attach (8.7s) ✓ 267 test/details.spec.ts:17:1 › a click on the pill opens the popover, with plain names and a subtitle for the technical one (8.9s) ✓ 268 test/details.spec.ts:39:1 › dragging the pill moves the window and opens nothing (8.6s) ✓ 269 test/details.spec.ts:53:1 › the keyboard opens it instantly and Escape closes it; a press outside closes it (7.4s) ✓ 270 test/details.spec.ts:68:1 › on a phone the popover stays inside the visual viewport and above the key row (7.9s) ✓ 271 test/focus-ring.spec.ts:22:1 › clicks and shortcuts draw no focus ring; Tab does (8.3s) FONT_BENCH {"font":"maple-mono-nf","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":3.600000023841858,"load":[24.99,29.06,36.04],"cores":8} LINE86 {"font":"maple-mono-nf","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":686,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8} ✓ 272 test/font-metrics.spec.ts:18:3 › Maple Mono NF: 86-character line keeps the cursor on its cell at DPR 1 (8.2s) FONT_BENCH {"font":"maple-mono-nf","dpr":2,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":0.9000000357627869,"load":[24.43,28.87,35.94],"cores":8} LINE86 {"font":"maple-mono-nf","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1375,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16} ✓ 273 test/font-metrics.spec.ts:18:3 › Maple Mono NF: 86-character line keeps the cursor on its cell at DPR 2 (8.5s) FONT_BENCH {"font":"maple-mono-nf","dpr":3,"redrawP50Ms":0.8999999761581421,"redrawP95Ms":10.399999976158142,"load":[23.73,28.57,35.76],"cores":8} LINE86 {"font":"maple-mono-nf","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":2064,"lastInk":2062,"inkAfter":0,"barMin":0,"dpr":3,"cellWidthPx":24} ✓ 274 test/font-metrics.spec.ts:18:3 › Maple Mono NF: 86-character line keeps the cursor on its cell at DPR 3 (9.6s) FONT_BENCH {"font":"geist-mono","dpr":1,"redrawP50Ms":2.100000023841858,"redrawP95Ms":10.300000011920929,"load":[24.19,28.5,35.66],"cores":8} LINE86 {"font":"geist-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8} ✓ 275 test/font-metrics.spec.ts:18:3 › Geist Mono: 86-character line keeps the cursor on its cell at DPR 1 (9.4s) FONT_BENCH {"font":"geist-mono","dpr":2,"redrawP50Ms":0.5999999642372131,"redrawP95Ms":7.5,"load":[24.36,28.4,35.56],"cores":8} LINE86 {"font":"geist-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16} ✓ 276 test/font-metrics.spec.ts:18:3 › Geist Mono: 86-character line keeps the cursor on its cell at DPR 2 (8.7s) FONT_BENCH {"font":"jetbrains-mono","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":16.69999998807907,"load":[23.94,28.17,35.4],"cores":8} LINE86 {"font":"jetbrains-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":686,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8} ✓ 277 test/font-metrics.spec.ts:18:3 › JetBrains Mono: 86-character line keeps the cursor on its cell at DPR 1 (7.7s) FONT_BENCH {"font":"jetbrains-mono","dpr":2,"redrawP50Ms":0.5999999642372131,"redrawP95Ms":8.399999976158142,"load":[23.71,28.05,35.33],"cores":8} LINE86 {"font":"jetbrains-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16} ✓ 278 test/font-metrics.spec.ts:18:3 › JetBrains Mono: 86-character line keeps the cursor on its cell at DPR 2 (7.3s) FONT_BENCH {"font":"commit-mono","dpr":1,"redrawP50Ms":0.699999988079071,"redrawP95Ms":6,"load":[23.17,27.87,35.23],"cores":8} LINE86 {"font":"commit-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8} ✓ 279 test/font-metrics.spec.ts:18:3 › Commit Mono: 86-character line keeps the cursor on its cell at DPR 1 (7.2s) FONT_BENCH {"font":"commit-mono","dpr":2,"redrawP50Ms":0.800000011920929,"redrawP95Ms":5.399999976158142,"load":[24.22,27.94,35.17],"cores":8} LINE86 {"font":"commit-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1375,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16} ✓ 280 test/font-metrics.spec.ts:18:3 › Commit Mono: 86-character line keeps the cursor on its cell at DPR 2 (8.7s) FONT_BENCH {"font":"monaspace-neon","dpr":1,"redrawP50Ms":0.699999988079071,"redrawP95Ms":8.600000023841858,"load":[25.09,28.01,35.12],"cores":8} LINE86 {"font":"monaspace-neon","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":774,"lastInk":772,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":9} ✓ 281 test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 1 (8.9s) ✘ 282 test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 (6.5s) (node:3702884) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) FONT_BENCH {"font":"ibm-plex-mono","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":7.600000023841858,"load":[24.34,27.69,34.89],"cores":8} LINE86 {"font":"ibm-plex-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":686,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8} ✓ 283 test/font-metrics.spec.ts:18:3 › IBM Plex Mono: 86-character line keeps the cursor on its cell at DPR 1 (6.9s) FONT_BENCH {"font":"ibm-plex-mono","dpr":2,"redrawP50Ms":1.199999988079071,"redrawP95Ms":6.899999976158142,"load":[23.19,27.39,34.76],"cores":8} LINE86 {"font":"ibm-plex-mono","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1375,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16} ✓ 284 test/font-metrics.spec.ts:18:3 › IBM Plex Mono: 86-character line keeps the cursor on its cell at DPR 2 (7.1s) FONT_BENCH {"font":"cascadia-code","dpr":1,"redrawP50Ms":0.9000000357627869,"redrawP95Ms":3.400000035762787,"load":[22.37,27.08,34.58],"cores":8} LINE86 {"font":"cascadia-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8} ✓ 285 test/font-metrics.spec.ts:18:3 › Cascadia Code: 86-character line keeps the cursor on its cell at DPR 1 (6.2s) FONT_BENCH {"font":"cascadia-code","dpr":2,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":1,"load":[21.78,26.88,34.47],"cores":8} LINE86 {"font":"cascadia-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16} ✓ 286 test/font-metrics.spec.ts:18:3 › Cascadia Code: 86-character line keeps the cursor on its cell at DPR 2 (6.3s) FONT_BENCH {"font":"fira-code","dpr":1,"redrawP50Ms":0.5,"redrawP95Ms":0.800000011920929,"load":[20.59,26.55,34.33],"cores":8} LINE86 {"font":"fira-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":774,"lastInk":773,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":9} ✓ 287 test/font-metrics.spec.ts:18:3 › Fira Code: 86-character line keeps the cursor on its cell at DPR 1 (6.3s) FONT_BENCH {"font":"fira-code","dpr":2,"redrawP50Ms":0.9000000357627869,"redrawP95Ms":4.300000011920929,"load":[19.03,26.02,34.07],"cores":8} LINE86 {"font":"fira-code","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":1548,"lastInk":1546,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":18} ✓ 288 test/font-metrics.spec.ts:18:3 › Fira Code: 86-character line keeps the cursor on its cell at DPR 2 (7.0s) FONT_BENCH {"font":"source-code-pro","dpr":1,"redrawP50Ms":0.6000000238418579,"redrawP95Ms":4.899999976158142,"load":[18.3,25.75,33.94],"cores":8} LINE86 {"font":"source-code-pro","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":688,"lastInk":687,"inkAfter":0,"barMin":0,"dpr":1,"cellWidthPx":8} ✓ 289 test/font-metrics.spec.ts:18:3 › Source Code Pro: 86-character line keeps the cursor on its cell at DPR 1 (6.8s) FONT_BENCH {"font":"source-code-pro","dpr":2,"redrawP50Ms":0.7000000476837158,"redrawP95Ms":9.399999976158142,"load":[18.76,25.72,33.89],"cores":8} LINE86 {"font":"source-code-pro","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":8,"natural":8,"cursorLeft":1376,"lastInk":1374,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":16} ✓ 290 test/font-metrics.spec.ts:18:3 › Source Code Pro: 86-character line keeps the cursor on its cell at DPR 2 (7.1s) POWERLINE {"arrow":1,"branch":0.9722222222222222,"house":0.7222222222222222,"node":0.6666666666666666} ✓ 291 test/font-metrics.spec.ts:90:1 › powerline and icon glyphs draw as real glyphs, not missing-glyph boxes (9.4s) LIGATURE_PROBE {"font":"maple-mono-nf","autoVsSpaced":462,"speedVsSpaced":0} ✓ 292 test/font-metrics.spec.ts:139:3 › Maple Mono NF: terminal ligatures stay off, optimizeSpeed makes that deterministic (861ms) LIGATURE_PROBE {"font":"geist-mono","autoVsSpaced":0,"speedVsSpaced":0} ✓ 293 test/font-metrics.spec.ts:139:3 › Geist Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (854ms) LIGATURE_PROBE {"font":"jetbrains-mono","autoVsSpaced":463,"speedVsSpaced":0} ✓ 294 test/font-metrics.spec.ts:139:3 › JetBrains Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (833ms) LIGATURE_PROBE {"font":"commit-mono","autoVsSpaced":94,"speedVsSpaced":0} ✓ 295 test/font-metrics.spec.ts:139:3 › Commit Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (906ms) LIGATURE_PROBE {"font":"monaspace-neon","autoVsSpaced":297,"speedVsSpaced":0} ✓ 296 test/font-metrics.spec.ts:139:3 › Monaspace Neon: terminal ligatures stay off, optimizeSpeed makes that deterministic (921ms) LIGATURE_PROBE {"font":"ibm-plex-mono","autoVsSpaced":0,"speedVsSpaced":0} ✓ 297 test/font-metrics.spec.ts:139:3 › IBM Plex Mono: terminal ligatures stay off, optimizeSpeed makes that deterministic (945ms) LIGATURE_PROBE {"font":"cascadia-code","autoVsSpaced":667,"speedVsSpaced":0} ✓ 298 test/font-metrics.spec.ts:139:3 › Cascadia Code: terminal ligatures stay off, optimizeSpeed makes that deterministic (952ms) LIGATURE_PROBE {"font":"fira-code","autoVsSpaced":595,"speedVsSpaced":0} ✓ 299 test/font-metrics.spec.ts:139:3 › Fira Code: terminal ligatures stay off, optimizeSpeed makes that deterministic (1.0s) LIGATURE_PROBE {"font":"source-code-pro","autoVsSpaced":0,"speedVsSpaced":0} ✓ 300 test/font-metrics.spec.ts:139:3 › Source Code Pro: terminal ligatures stay off, optimizeSpeed makes that deterministic (849ms) ✓ 301 test/font-picker.spec.ts:32:1 › arrow previews a font, Escape reverts, nothing is saved (7.6s) ✓ 302 test/font-picker.spec.ts:52:1 › hover previews, Enter commits and the choice survives a reload (13.0s) ✓ 303 test/font-switch.spec.ts:36:1 › a font chosen in Settings, Appearance reaches the interface, a window body and the live terminal (15.2s) ✓ 304 test/font-switch.spec.ts:52:1 › a font choice reaches the interface, a window body and the live terminal (16.1s) ✓ 305 test/font-switch.spec.ts:71:1 › the chosen font survives a reload (17.0s) ✘ 306 test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 (6.8s) (node:3726041) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) FONT_WEIGHT {"font":"maple-mono-nf","dpr":2,"loaded":true,"canvasFont":"500 14px \"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","regularInk":4554.666666666667,"boldInk":5613.228758169935,"ratio":1.2324126371860218,"rendererFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","rootFont":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","tokens":["450","500","550","650"]} ✓ 307 test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 2 (8.8s) FONT_WEIGHT {"font":"geist-mono","dpr":1,"loaded":true,"canvasFont":"450 14px \"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1071.8954248366013,"boldInk":1508.81045751634,"ratio":1.4076097560975611,"rendererFamily":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 308 test/font-weight.spec.ts:15:5 › Geist Mono draws terminal and UI text at its registry weights at DPR 1 (6.5s) FONT_WEIGHT {"font":"geist-mono","dpr":2,"loaded":true,"canvasFont":"450 14px \"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4359.320261437909,"boldInk":5738.248366013072,"ratio":1.316317228805834,"rendererFamily":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Geist Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 309 test/font-weight.spec.ts:15:5 › Geist Mono draws terminal and UI text at its registry weights at DPR 2 (7.9s) FONT_WEIGHT {"font":"jetbrains-mono","dpr":1,"loaded":true,"canvasFont":"450 14px \"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1053.5424836601308,"boldInk":1300.6013071895425,"ratio":1.2345029530001488,"rendererFamily":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 310 test/font-weight.spec.ts:15:5 › JetBrains Mono draws terminal and UI text at its registry weights at DPR 1 (7.7s) FONT_WEIGHT {"font":"jetbrains-mono","dpr":2,"loaded":true,"canvasFont":"450 14px \"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4288.993464052287,"boldInk":5522.0392156862745,"ratio":1.287490704280298,"rendererFamily":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"JetBrains Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 311 test/font-weight.spec.ts:15:5 › JetBrains Mono draws terminal and UI text at its registry weights at DPR 2 (6.3s) FONT_WEIGHT {"font":"commit-mono","dpr":1,"loaded":true,"canvasFont":"14px \"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":968.4183006535948,"boldInk":1299.2941176470588,"ratio":1.3416662167269586,"rendererFamily":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","400","700"]} ✓ 312 test/font-weight.spec.ts:15:5 › Commit Mono draws terminal and UI text at its registry weights at DPR 1 (7.4s) FONT_WEIGHT {"font":"commit-mono","dpr":2,"loaded":true,"canvasFont":"14px \"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":3844.392156862745,"boldInk":5275.503267973856,"ratio":1.3722593982917142,"rendererFamily":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Commit Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","400","700"]} ✓ 313 test/font-weight.spec.ts:15:5 › Commit Mono draws terminal and UI text at its registry weights at DPR 2 (8.7s) FONT_WEIGHT {"font":"monaspace-neon","dpr":1,"loaded":true,"canvasFont":"500 14px \"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1311.7385620915031,"boldInk":1684.6013071895425,"ratio":1.2842508071909755,"rendererFamily":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 314 test/font-weight.spec.ts:15:5 › Monaspace Neon draws terminal and UI text at its registry weights at DPR 1 (8.7s) FONT_WEIGHT {"font":"monaspace-neon","dpr":2,"loaded":true,"canvasFont":"500 14px \"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":5110.117647058823,"boldInk":6005.385620915033,"ratio":1.1751951786024906,"rendererFamily":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Monaspace Neon\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 315 test/font-weight.spec.ts:15:5 › Monaspace Neon draws terminal and UI text at its registry weights at DPR 2 (6.7s) FONT_WEIGHT {"font":"ibm-plex-mono","dpr":1,"loaded":true,"canvasFont":"450 14px \"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1180.235294117647,"boldInk":1754.1437908496732,"ratio":1.4862661704766968,"rendererFamily":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 316 test/font-weight.spec.ts:15:5 › IBM Plex Mono draws terminal and UI text at its registry weights at DPR 1 (8.1s) FONT_WEIGHT {"font":"ibm-plex-mono","dpr":2,"loaded":true,"canvasFont":"450 14px \"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4253.59477124183,"boldInk":6312.575163398693,"ratio":1.4840565457897972,"rendererFamily":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"IBM Plex Mono\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 317 test/font-weight.spec.ts:15:5 › IBM Plex Mono draws terminal and UI text at its registry weights at DPR 2 (6.8s) FONT_WEIGHT {"font":"cascadia-code","dpr":1,"loaded":true,"canvasFont":"14px \"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1259.6078431372548,"boldInk":1575.5816993464052,"ratio":1.2508509755085098,"rendererFamily":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","450","550"]} ✓ 318 test/font-weight.spec.ts:15:5 › Cascadia Code draws terminal and UI text at its registry weights at DPR 1 (8.8s) FONT_WEIGHT {"font":"cascadia-code","dpr":2,"loaded":true,"canvasFont":"14px \"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4728.418300653595,"boldInk":5735.529411764706,"ratio":1.2129911203016666,"rendererFamily":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Cascadia Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","400","450","550"]} ✓ 319 test/font-weight.spec.ts:15:5 › Cascadia Code draws terminal and UI text at its registry weights at DPR 2 (6.9s) FONT_WEIGHT {"font":"fira-code","dpr":1,"loaded":true,"canvasFont":"450 14px \"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1158.5882352941176,"boldInk":1721.3071895424837,"ratio":1.4856936546619732,"rendererFamily":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 320 test/font-weight.spec.ts:15:5 › Fira Code draws terminal and UI text at its registry weights at DPR 1 (7.6s) FONT_WEIGHT {"font":"fira-code","dpr":2,"loaded":true,"canvasFont":"450 14px \"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4569.568627450981,"boldInk":6872.156862745098,"ratio":1.5038961930589405,"rendererFamily":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Fira Code\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["400","450","500","600"]} ✓ 321 test/font-weight.spec.ts:15:5 › Fira Code draws terminal and UI text at its registry weights at DPR 2 (6.4s) FONT_WEIGHT {"font":"source-code-pro","dpr":1,"loaded":true,"canvasFont":"550 14px \"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":1083.8169934640523,"boldInk":1425.8823529411766,"ratio":1.315611732921652,"rendererFamily":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["500","550","600","700"]} ✓ 322 test/font-weight.spec.ts:15:5 › Source Code Pro draws terminal and UI text at its registry weights at DPR 1 (6.8s) ```
Author
Owner

#163 verbatim evidence: playwright-scoped.log (3/7)

FONT_WEIGHT {"font":"source-code-pro","dpr":2,"loaded":true,"canvasFont":"550 14px \"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4331.24183006536,"boldInk":5686.797385620915,"ratio":1.3129715699885312,"rendererFamily":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["500","550","600","700"]}
  ✓  323 test/font-weight.spec.ts:15:5 › Source Code Pro draws terminal and UI text at its registry weights at DPR 2 (9.3s)
GHOST view switcher | level 1 | ink | dpr 1 | 0.0000
GHOST palette | level 1 | ink | dpr 1 | 0.0000
GHOST sidebar | level 1 | ink | dpr 1 | 0.0005
GHOST share dialog | level 1 | ink | dpr 1 | 0.0000
  ✘  324 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 (2.0m)
(node:3773811) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 2 | ink | dpr 1 | 0.0055
GHOST palette | level 2 | ink | dpr 1 | 0.0007
GHOST sidebar | level 2 | ink | dpr 1 | 0.0049
GHOST share dialog | level 2 | ink | dpr 1 | 0.0053
  ✘  325 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 1 (2.0m)
(node:3798275) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 3 | ink | dpr 1 | 0.0023
GHOST palette | level 3 | ink | dpr 1 | 0.0011
GHOST sidebar | level 3 | ink | dpr 1 | 0.0012
GHOST share dialog | level 3 | ink | dpr 1 | 0.0022
  ✘  326 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 1 (2.0m)
(node:3827213) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 4 | ink | dpr 1 | 0.0024
GHOST palette | level 4 | ink | dpr 1 | 0.0012
GHOST sidebar | level 4 | ink | dpr 1 | 0.0009
GHOST share dialog | level 4 | ink | dpr 1 | 0.0024
  ✘  327 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 1 (2.0m)
(node:3834133) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 1 | ink | dpr 3 | 0.0000
GHOST palette | level 1 | ink | dpr 3 | 0.0000
GHOST sidebar | level 1 | ink | dpr 3 | 0.0005
GHOST share dialog | level 1 | ink | dpr 3 | 0.0000
  ✘  328 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 3 (2.0m)
(node:3841207) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 2 | ink | dpr 3 | 0.0079
GHOST palette | level 2 | ink | dpr 3 | 0.0079
GHOST sidebar | level 2 | ink | dpr 3 | 0.0082
GHOST share dialog | level 2 | ink | dpr 3 | 0.0067
  ✘  329 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 3 (2.0m)
(node:3847294) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 3 | ink | dpr 3 | 0.0424
GHOST palette | level 3 | ink | dpr 3 | 0.0158
GHOST sidebar | level 3 | ink | dpr 3 | 0.0276
GHOST share dialog | level 3 | ink | dpr 3 | 0.0288
  ✘  330 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 3 (2.0m)
(node:3853285) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 4 | ink | dpr 3 | 0.0776
GHOST palette | level 4 | ink | dpr 3 | 0.0238
GHOST sidebar | level 4 | ink | dpr 3 | 0.0481
GHOST share dialog | level 4 | ink | dpr 3 | 0.0521
  ✘  331 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 3 (2.0m)
(node:3870038) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 1 | paper | dpr 1 | 0.0000
GHOST palette | level 1 | paper | dpr 1 | 0.0000
GHOST sidebar | level 1 | paper | dpr 1 | 0.0009
GHOST share dialog | level 1 | paper | dpr 1 | 0.0000
  ✘  332 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 1 (2.0m)
(node:3884330) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 2 | paper | dpr 1 | 0.0039
GHOST palette | level 2 | paper | dpr 1 | 0.0005
GHOST sidebar | level 2 | paper | dpr 1 | 0.0041
GHOST share dialog | level 2 | paper | dpr 1 | 0.0038
  ✘  333 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 1 (2.0m)
(node:3913011) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 3 | paper | dpr 1 | 0.0019
GHOST palette | level 3 | paper | dpr 1 | 0.0009
GHOST sidebar | level 3 | paper | dpr 1 | 0.0015
GHOST share dialog | level 3 | paper | dpr 1 | 0.0020
  ✘  334 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 1 (2.0m)
(node:3948246) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 4 | paper | dpr 1 | 0.0020
GHOST palette | level 4 | paper | dpr 1 | 0.0011
GHOST sidebar | level 4 | paper | dpr 1 | 0.0012
GHOST share dialog | level 4 | paper | dpr 1 | 0.0019
  ✘  335 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 1 (2.0m)
(node:3961024) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 1 | paper | dpr 3 | 0.0000
GHOST palette | level 1 | paper | dpr 3 | 0.0000
GHOST sidebar | level 1 | paper | dpr 3 | 0.0009
GHOST share dialog | level 1 | paper | dpr 3 | 0.0000
  ✘  336 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 3 (2.0m)
(node:3975484) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 2 | paper | dpr 3 | 0.0058
GHOST palette | level 2 | paper | dpr 3 | 0.0058
GHOST sidebar | level 2 | paper | dpr 3 | 0.0067
GHOST share dialog | level 2 | paper | dpr 3 | 0.0049
  ✘  337 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 3 (2.0m)
(node:3995616) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 3 | paper | dpr 3 | 0.0353
GHOST palette | level 3 | paper | dpr 3 | 0.0132
GHOST sidebar | level 3 | paper | dpr 3 | 0.0237
GHOST share dialog | level 3 | paper | dpr 3 | 0.0240
  ✘  338 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 3 (2.0m)
(node:4004332) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 4 | paper | dpr 3 | 0.0675
GHOST palette | level 4 | paper | dpr 3 | 0.0207
GHOST sidebar | level 4 | paper | dpr 3 | 0.0426
GHOST share dialog | level 4 | paper | dpr 3 | 0.0453
  ✘  339 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 3 (2.0m)
(node:4009278) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  340 test/inbox.spec.ts:33:3 › locked: toast, then inbox card and dot, then unlocked (desktop) (16.5s)
  ✓  341 test/inbox.spec.ts:33:3 › locked: toast, then inbox card and dot, then unlocked (phone) (19.9s)
  ✓  342 test/inbox.spec.ts:33:3 › locked: toast, then inbox card and dot, then unlocked (small) (19.0s)
  ✓  343 test/inbox.spec.ts:84:1 › the toast's own action unlocks and leaves nothing behind (6.6s)
  ✓  344 test/inbox.spec.ts:93:1 › an unlock in another tab clears the item here when the page returns (10.9s)
  ✓  345 test/inbox.spec.ts:106:1 › already unlocked: no toast, no card, no dot (7.6s)
  ✓  346 test/inbox.spec.ts:115:1 › a viewer who is not an administrator sees nothing (7.8s)
  ✓  347 test/inbox.spec.ts:124:1 › paper theme: the card reads on light glass (6.7s)
  ✓  348 test/keytray-modifiers.spec.ts:68:1 › iPhone 15 tray modifiers send one-shot, locked, combined, and xterm arrow bytes (16.9s)
  ✓  349 test/keytray-modifiers.spec.ts:141:1 › every visible iPhone 15 key tray button keeps focus in the terminal input (11.3s)
  ✓  350 test/machine-sections.spec.ts:27:5 › desktop: machine tab with extended info off (7.4s)
  ✓  351 test/machine-sections.spec.ts:27:5 › desktop: machine tab with extended info on (7.4s)
  ✓  352 test/machine-sections.spec.ts:27:5 › phone: machine tab with extended info off (7.5s)
  ✓  353 test/machine-sections.spec.ts:27:5 › phone: machine tab with extended info on (7.8s)
  ✓  354 test/machine-sections.spec.ts:27:5 › phone-small: machine tab with extended info on (8.7s)
  ✓  355 test/machine-sections.spec.ts:51:3 › desktop: the Hosts section has the Extended info switch, off by default, persisted when turned on (7.7s)
  ✓  356 test/machine-sections.spec.ts:51:3 › phone: the Hosts section has the Extended info switch, off by default, persisted when turned on (8.4s)
MESH-PERF load/core=1.62 {"zoom":{"top":"UpdateLayoutTree=104ms Layout=17ms PrePaint=23ms Paint=245ms Layerize=167ms FireAnimationFrame=83ms EventDispatch=32ms RunTask=671ms","n":76,"p50":7.76,"p95":17.05,"max":37.38,"over8":35},"pan":{"top":"UpdateLayoutTree=108ms Layout=47ms PrePaint=24ms Paint=163ms Layerize=188ms FireAnimationFrame=101ms EventDispatch=23ms RunTask=810ms","n":84,"p50":5.75,"p95":23.05,"max":59.01,"over8":29},"drag":{"top":"UpdateLayoutTree=50ms Layout=16ms PrePaint=29ms Paint=109ms Layerize=283ms FireAnimationFrame=131ms EventDispatch=40ms RunTask=1293ms","n":319,"p50":0.65,"p95":11.44,"max":24.41,"over8":58}}
  ✘  357 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (30.8s)
(node:4024238) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  358 test/mesh.spec.ts:85:3 › a large mesh › opens as cluster frames, and zooming into one brings its cards and arrows, and only those (10.0s)
  ✓  359 test/mesh.spec.ts:118:3 › a large mesh › panning mounts the cards that come into view and drops the ones far behind (8.2s)
  ✓  360 test/mesh.spec.ts:133:3 › a large mesh › a small mesh is always drawn whole, as cards (8.8s)
MESH-FRAMES 1x load/core=2.48 nodes=1000 grants=1175 zoom {"n":13,"p50":150,"p95":583.3,"max":583.3,"dropped":13,"cpuMs":2520} pan {"n":43,"p50":49.9,"p95":133.3,"max":166.7,"dropped":34,"cpuMs":2280} dom-after-zoom {"level":"clusters","cards":0,"arrows":0,"chips":26,"clusterArrows":100,"passes":12,"passMs":204.4,"mounted":24} dom-after-pan {"level":"cards","cards":84,"arrows":150,"chips":0,"clusterArrows":0,"passes":45,"passMs":329.4,"mounted":125}
  ✓  361 test/mesh.spec.ts:189:3 › frames: zooming and panning a 1,000-node mesh with 4,000 grants keeps its frame time at 1x CPU (16.8s)
MESH-FRAMES 4x load/core=2.77 nodes=1000 grants=1175 zoom {"n":8,"p50":399.9,"p95":1183.3,"max":1183.3,"dropped":8,"cpuMs":2170} pan {"n":35,"p50":66.6,"p95":266.7,"max":366.6,"dropped":28,"cpuMs":3140} dom-after-zoom {"level":"clusters","cards":0,"arrows":0,"chips":26,"clusterArrows":100,"passes":6,"passMs":136.9,"mounted":24} dom-after-pan {"level":"cards","cards":86,"arrows":150,"chips":0,"clusterArrows":0,"passes":33,"passMs":478.9,"mounted":117}
  ✓  362 test/mesh.spec.ts:189:3 › frames: zooming and panning a 1,000-node mesh with 4,000 grants keeps its frame time at 4x CPU (19.1s)
  ✓  363 test/mesh.spec.ts:230:3 › live updates › a host's status and round trip, a new host and a removed host reach the cards (7.4s)
  ✓  364 test/mesh.spec.ts:246:3 › live updates › events that were lost are made up for by the next one (a gap) and by a reconnect (8.3s)
  ✓  365 test/mesh.spec.ts:259:3 › live updates › a change made elsewhere moves its arrow, and an answer that comes after its own event is not applied twice (9.5s)
  ✓  366 test/mesh.spec.ts:272:3 › live updates › a big inventory arrives in pages: a resync follows the server's continuations and shows all of it, once (6.1s)
  ✓  367 test/mesh.spec.ts:281:3 › live updates › a host-heavy stream of status events does not reflow the graph (60 events a second on 1,000 hosts) (9.5s)
  ✓  368 test/mesh.spec.ts:299:3 › editing arrows › moving a head asks the server to move the grant by id; its answer names the grant (11.1s)
  ✓  369 test/mesh.spec.ts:313:3 › editing arrows › a tail move sends the new source; removing sends a delete; allowing from a card sends a create (12.3s)
  ✓  370 test/mesh.spec.ts:340:3 › editing arrows › a grant is renamed through the adapter and shows its new name on hover (9.5s)
  ✓  371 test/mesh.spec.ts:356:3 › editing arrows › when the server refuses or the connection drops, the arrow goes back and one toast says why (13.6s)
  ✓  372 test/mesh.spec.ts:378:3 › access › arrows have handles, and cards the connector, only for a person who may manage grants; terminals never have either (D194) (9.5s)
  ✓  373 test/mesh.spec.ts:399:3 › access › the view appears when grants allow, goes when they are withdrawn, and is reachable by shortcut, sidebar, switcher and palette (11.5s)
  ✓  374 test/mesh.spec.ts:427:3 › access › a server that does not say what the person may do (today's) gives a read-only view, with only what it sent on the cards (8.5s)
  ✓  375 test/mesh.spec.ts:438:3 › access › a person without Mesh grants never gets the view (the server refuses the snapshot) (6.9s)
  ✓  376 test/mesh.spec.ts:465:1 › snap-fit: the dragged end is exact, lands in a single frame without wobble, and goes home fast without overshoot (9.7s)
  ✓  377 test/mesh.spec.ts:519:3 › copy 1440x900: the remove and move confirmations, the toasts and the connector name their effect, with icon buttons and warm tooltips (10.6s)
  ✓  378 test/mesh.spec.ts:519:3 › copy 393x852: the remove and move confirmations, the toasts and the connector name their effect, with icon buttons and warm tooltips (10.4s)
  ✓  379 test/mesh.spec.ts:551:3 › arrow label 1440x900: "via fra-relay" never sits under a card, at any zoom, and is not louder than the cards' own text (11.0s)
  ✓  380 test/mesh.spec.ts:551:3 › arrow label 393x852: "via fra-relay" never sits under a card, at any zoom, and is not louder than the cards' own text (9.9s)
  ✓  381 test/mesh.spec.ts:576:1 › a dragged node is pinned and saved in the canvas document; the others are not (8.5s)
  ✓  382 test/mesh.spec.ts:611:3 › states › loading, then ready; unreachable with a retry that works; empty; and stale data when the connection drops (22.8s)
  ✓  383 test/mesh.spec.ts:649:3 › states › the error card keeps the empty card's rhythm: the gap from text to action matches (14.6s)
  ✓  384 test/mesh.spec.ts:664:3 › states › every glass surface of the Mesh view blurs what is behind it by about a line of text (10.4s)
  ✓  385 test/mesh.spec.ts:682:5 › captures ink 1440x900: the mesh as cards, and a large mesh as frames and as cards (40.5s)
  ✓  386 test/mesh.spec.ts:682:5 › captures ink 393x852: the mesh as cards, and a large mesh as frames and as cards (43.0s)
  ✓  387 test/mesh.spec.ts:682:5 › captures paper 1440x900: the mesh as cards, and a large mesh as frames and as cards (47.7s)
  ✓  388 test/mesh.spec.ts:682:5 › captures paper 393x852: the mesh as cards, and a large mesh as frames and as cards (46.8s)
MOTION_AUDIT auth-visible-loop {"rafCallbacks":[],"pending":[],"idleRafFrames":0,"shaderFrames":20,"shaderGaps":[63.80000001192093,35.09999996423721,81,71.5,33.30000001192093,87.19999998807907,57.90000003576279,33.19999998807907,79,38.10000002384186,79.69999998807907,74.09999996423721,73.80000001192093,44,83.60000002384186,48.5,33.30000001192093,125.59999996423721,46.19999998807907],"shaderSurface":{"cssWidth":1280,"cssHeight":720,"dpr":1,"shaderWidth":640,"shaderHeight":360},"hiddenPause":{"paused":true,"resumed":true},"offscreenPause":{"paused":true,"resumed":true}}
MOTION_AUDIT auth-start [{"selector":"#setup-card","animationName":"auth-card-in","animationDuration":"0.24s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"220px 254px","transform":"matrix(1, 0, 0, 1, 0, 0)","visible":"true"},{"selector":".auth-pane","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"opacity, transform","transitionDuration":"0.24s, 0.24s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"187px 130.883px","transform":"none","visible":"true"},{"selector":"#setup-viewport","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"height","transitionDuration":"0.24s","transitionDelay":"0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"193px 131px","transform":"none","visible":"true"},{"selector":".auth-step-bar","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"38.3281px 0.5px","transform":"none","visible":"true"},{"selector":"#setup-token","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"187px 24px","transform":"none","visible":"true"},{"selector":".auth-dot","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"12px 12px","transform":"none","visible":"true"},{"selector":"#setup-next","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"transform, opacity","transitionDuration":"0.14s, 0.16s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), ease","transformOrigin":"70px 21px","transform":"none","visible":"true"}]
MOTION_AUDIT keyboard-step-token {"sample":{"frames":15,"dropped":116,"longestGapMs":766.7000000000007},"events":[]}
MOTION_AUDIT keyboard-step-identity {"sample":{"frames":25,"dropped":47,"longestGapMs":266.7000000000007},"events":[]}
MOTION_AUDIT create-passkey {"sample":{"frames":14,"dropped":139,"longestGapMs":750},"events":[]}
  ✘  389 test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens (27.5s)
(node:4102299) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
SETUP_TOKEN_ERROR_SCREENSHOTS /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/onboarding-invalid-setup-t-ae0f0-tep-1-with-focused-guidance/step-1-wrong-token-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/onboarding-invalid-setup-t-ae0f0-tep-1-with-focused-guidance/step-1-wrong-token-desktop.png
  ✓  390 test/onboarding.spec.ts:9:1 › invalid setup token stays on step 1 with focused guidance (11.0s)
  ✘  391 test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (41.0s)
(node:4112105) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ENVIRONMENT machine=infraternal-dev cores=8 load_1_5_15=45.01,32.23,24.75
METRIC name=palette_arrow_handler_ms_per_press value=1.9790 presses=100 viewport=1440x900
METRIC name=palette_filter_handler_ms_per_input value=0.3940 inputs=100 viewport=1440x900
  ✘  392 test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile (8.4s)
(node:4113903) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  393 test/palette-polish.spec.ts:25:1 › no palette row renders without a title, whole list and scoped to Settings (9.6s)
  ✓  394 test/palette-polish.spec.ts:54:1 › desktop keeps the key-hint footer (6.1s)
  ✓  395 test/palette-polish.spec.ts:62:3 › touch 393x852: no key-hint footer, and the list is taller for it (8.8s)
  ✓  396 test/palette-polish.spec.ts:62:3 › touch 375x667: no key-hint footer, and the list is taller for it (8.1s)
GHOST palette | level 2 | ink | dpr 2 | 0.0062
  ✓  397 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 2, ink, DPR 2 (8.7s)
GHOST palette | level 3 | ink | dpr 2 | 0.0122
  ✓  398 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 3, ink, DPR 2 (9.6s)
GHOST palette | level 4 | ink | dpr 2 | 0.0183
  ✓  399 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 4, ink, DPR 2 (8.4s)
GHOST palette | level 2 | paper | dpr 2 | 0.0046
  ✓  400 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 2, paper, DPR 2 (8.5s)
GHOST palette | level 3 | paper | dpr 2 | 0.0101
  ✓  401 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 3, paper, DPR 2 (8.7s)
GHOST palette | level 4 | paper | dpr 2 | 0.0159
  ✓  402 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 4, paper, DPR 2 (9.2s)
  ✓  403 test/palette-polish.spec.ts:118:1 › the palette's blur is at least 1.5x a terminal line at every card level that has glass (20.0s)
PERF-INCIDENT {"t":"incident","recv":"2026-10-11T14:09:47.545Z","recvMs":1791727787545,"sid":"bfd9313b-67e1-42d0-9f29-aca2e7a1c5d3","page":"/?mock=1&proto=clusters&scene=7&theme=ink&bg=none&fps=bench&session=8df558aa-b9a5-4460-978f-736b7dfed5aa","kind":"freeze","at":1791727785698,"worstMs":200,"drops":1,"refreshHz":60,"activity":"pan","animations":{"count":11,"names":["transition:opacity x2","transition:transform x2","cl-blink x5","ui-conn-pulse-b","ui-conn-turn"]},"ctx":{"view":"incident","zoom":1,"lod":"live","band":"in","windows":26,"windowsInView":3,"canvasLock":false,"dpr":1,"viewport":"1440x900","visibility":"visible","theme":"ink","bg":"none","glassBlur":"","sidebar":false},"intervals":[16.7,16.6,16.7,16.7,16.6,16.7,16.7,16.7,16.6,16.7,16.6,16.7,16.7,16.6,16.7,16.7,16.7,16.5,16.8,16.6,200,16.6,16.8,16.7,16.6,16.6,16.8,16.6,16.7,16.6],"loaf":[{"start":7119.3,"ms":213.5,"block":151.3,"render":201.1,"styleLayout":0.1,"forced":0,"scripts":[{"inv":"FrameRequestCallback","type":"user-callback","src":"/perf-spec-stall.js","fn":"perfSpecStall","pos":55,"ms":200.1,"forced":0,"pause":0}]}],"longtasks":[{"start":7131.6,"ms":203,"kind":"window"}],"slowEvents":[],"diag":{"stalls":[{"ago":2,"late":148}],"ws":{"msgs":5,"bytes":192},"heap":{"usedMB":9.5,"fellMB":0},"events":[{"type":"focus","ago":1288}],"action":{"type":"wheel","ago":-205},"support":{"loaf":true,"longtask":true,"event":true}}}
  ✓  404 test/perf-hud.spec.ts:28:1 › a 200 ms stall during a pan reaches the file as one freeze, with its activity and script (9.4s)
PERF-BENCH {"meanUs":0.09150000005960464,"p99Us":1.000000238418579,"maxUs":80.99999964237213}
PERF-RECALC none (3 rounds x 3 s idle): layouts 8, style recalcs 67, style 13.4 ms, layout 16.7 ms, script 110.2 ms
PERF-RECALC empty-raf (3 rounds x 3 s idle): layouts 9, style recalcs 269, style 69.3 ms, layout 56.8 ms, script 281.6 ms
PERF-RECALC meter (3 rounds x 3 s idle): layouts 10, style recalcs 454, style 64.1 ms, layout 29.7 ms, script 286.2 ms
  ✘  405 test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints (1.6m)
(node:4144813) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  406 test/phone-gutter.spec.ts:40:3 › phone 393x852: a resting window keeps the gutter in every view, after a split and after a close (20.0s)
  ✓  407 test/phone-gutter.spec.ts:77:3 › phone 393x852: opening the palette hides the sidebar toggle and +, closing it brings them back (8.3s)
  ✓  408 test/phone-gutter.spec.ts:40:3 › phone 375x667: a resting window keeps the gutter in every view, after a split and after a close (14.6s)
  ✓  409 test/phone-gutter.spec.ts:77:3 › phone 375x667: opening the palette hides the sidebar toggle and +, closing it brings them back (8.8s)
  ✓  410 test/phone-gutter.spec.ts:96:1 › desktop 1440x900: opening the palette leaves the buttons it does not cover visible (9.3s)
  ✓  411 test/phone-gutter.spec.ts:125:1 › phone 393x852 ink: Settings at rest, and the palette open on the phone, are captured (13.9s)
  -  412 test/predict-key-bench.spec.ts:44:1 › predictive echo cost per key over 0 keys
  ✘  413 test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 (11.8s)
(node:4158548) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  414 test/predictive-backspace.spec.ts:193:1 › rapid backspaces with no gap land on the host cursor at DPR 1 (11.1s)
  ✓  415 test/predictive-backspace.spec.ts:204:1 › backspacing across a wrapped line and past its start stays on cells at DPR 1 (13.7s)
  ✓  416 test/predictive-backspace.spec.ts:221:1 › a key typed in the frame an echo is written is placed from the host cursor at DPR 1 (9.9s)
  ✓  417 test/predictive-backspace.spec.ts:252:1 › a backspace typed in the frame a backspace echo is written is placed from the host cursor at DPR 1 (10.6s)
  ✓  418 test/predictive-backspace.spec.ts:282:1 › predicted cursor pixels sit on the cell edge after backspace at DPR 1 (12.9s)
first-key cost 7.30 ms; rest max 12.40 ms
  ✘  419 test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 (10.2s)
(node:4168012) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  420 test/predictive-backspace.spec.ts:336:1 › typing through a layout change keeps predicting without mispredictions at DPR 1 (13.0s)
  ✓  421 test/predictive-echo.spec.ts:129:1 › predictive echo draws only when Ghostty reports a visible normal-screen cursor (29.1s)
  ✓  422 test/predictive-echo.spec.ts:258:1 › mutes when the host stops echoing, then resumes after an echo proof (9.5s)
  ✓  423 test/predictive-echo.spec.ts:290:1 › predicted cursor advances across a pending multi-character line (8.0s)
  ✘  424 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (8.9s)
(node:4174124) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  425 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (9.7s)
  -  426 test/recovery-motion.spec.ts:7:3 › the card swap plays when recovery is pressed 0 ms after load
  -  427 test/recovery-motion.spec.ts:7:3 › the card swap plays when recovery is pressed 50 ms after load
  -  428 test/recovery-motion.spec.ts:7:3 › the card swap plays when recovery is pressed 150 ms after load
  -  429 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /
  -  430 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=1
  -  431 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?proto=recovery
  -  432 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=0&proto=recovery
  -  433 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=1&proto=other
  -  434 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=1&proto=recovery
(node:4175123) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  435 test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points (3.7s)
(node:4175947) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  436 test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points (5.5s)
(node:4177045) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  437 test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points (4.9s)
(node:4177802) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  438 test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points (5.5s)
(node:4178634) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  439 test/recovery-ui-hold.spec.ts:34:1 › production account state exposes no recovery controls (4.7s)
  -  440 test/recovery.spec.ts:46:1 › sign-in exposes recovery key entry with per-word errors
  -  441 test/recovery.spec.ts:64:3 › recovery immediate steps and original DEK
  -  442 test/recovery.spec.ts:64:3 › recovery delayed steps and original DEK
  -  443 test/recovery.spec.ts:185:1 › a signed-in device can open recovery without revoking its session
  -  444 test/recovery.spec.ts:200:1 › pointer recovery step changes glide the fitted pane
  -  445 test/recovery.spec.ts:231:1 › discarded waiting page resumes the original deadline
  -  446 test/recovery.spec.ts:255:1 › signed-in device shows a persistent notice and can cancel recovery
  -  447 test/recovery.spec.ts:277:1 › remaining recovery wait uses server duration with a skewed browser clock
  -  448 test/recovery.spec.ts:294:1 › terminal startup reuses its authenticated recovery snapshot
  ✘  449 test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary (7.0s)
(node:4180027) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
behemoth-prefix-82541.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=330, wasm=11730944 B
behemoth-prefix-82541.bin: grid=205x56, scrollback=0, wasm=11730944 B
  ✓  450 test/renderer-regression.spec.ts:17:3 › renderer survives behemoth-prefix-82541.bin and paints a canary (10.7s)
mixed-prefix-82144.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=328, wasm=11730944 B
mixed-prefix-82144.bin: grid=205x56, scrollback=0, wasm=11730944 B
  ✓  451 test/renderer-regression.spec.ts:17:3 › renderer survives mixed-prefix-82144.bin and paints a canary (9.4s)
binary-prefix-106342.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=244, wasm=8650752 B
binary-prefix-106342.bin: grid=205x56, scrollback=0, wasm=8650752 B
  ✓  452 test/renderer-regression.spec.ts:17:3 › renderer survives binary-prefix-106342.bin and paints a canary (9.4s)
browser-text-binary-prefix-192253.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=176, wasm=11010048 B
browser-text-binary-prefix-192253.bin: grid=205x56, scrollback=0, wasm=11010048 B
  ✓  453 test/renderer-regression.spec.ts:17:3 › renderer survives browser-text-binary-prefix-192253.bin and paints a canary (10.2s)
binary-one-esc-context.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=251, wasm=10747904 B
binary-one-esc-context.bin: grid=205x56, scrollback=0, wasm=10747904 B
  ✓  454 test/renderer-regression.spec.ts:17:3 › renderer survives binary-one-esc-context.bin and paints a canary (10.3s)
binary-no-esc-context.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=369, wasm=8847360 B
binary-no-esc-context.bin: grid=205x56, scrollback=0, wasm=8847360 B
  ✓  455 test/renderer-regression.spec.ts:17:3 › renderer survives binary-no-esc-context.bin and paints a canary (9.2s)
behemoth.txt before canary: grid=205x56, configuredScrollback=10000, retainedRows=291, wasm=1054867456 B
behemoth raw stream: all five Unicode clusters remain in Ghostty's grapheme buffer
behemoth.txt: grid=205x56, scrollback=0, wasm=1054867456 B
  ✓  456 test/renderer-regression.spec.ts:17:3 › renderer survives behemoth.txt and paints a canary (51.9s)
mixed.txt before canary: grid=205x56, configuredScrollback=10000, retainedRows=0, wasm=414187520 B
mixed.txt: grid=205x56, scrollback=0, wasm=414187520 B
  ✓  457 test/renderer-regression.spec.ts:17:3 › renderer survives mixed.txt and paints a canary (29.1s)
  ✘  458 test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary (7.0s)
(node:9278) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=27082 throughput_mbps=1.85
METRIC name=browser_bulk_output_throughput_prediction_on source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=25942 throughput_mbps=1.93
METRIC name=browser_bulk_output_throughput_prediction_on source=tracer-production-build bytes=50000000 sample=2 elapsed_ms=30466 throughput_mbps=1.64
METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=2 elapsed_ms=23667 throughput_mbps=2.11
METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=3 elapsed_ms=20513 throughput_mbps=2.44
METRIC name=browser_bulk_output_throughput_prediction_on source=tracer-production-build bytes=50000000 sample=3 elapsed_ms=19288 throughput_mbps=2.59
METRIC name=browser_bulk_output_throughput_delta source=tracer-production-build n=3 off_median_mbps=2.11 on_median_mbps=1.93 change_percent=-8.77 budget_percent=-5 result=FAIL
  ✘  459 test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent (3.2m)
  -  460 test/reviewer-recovery.spec.ts:7:1 › reviewer: explicit legacy path must satisfy absolute words non-disclosure
  -  461 test/reviewer-recovery.spec.ts:33:1 › reviewer: preserved deadline remains resumable after server clock rollback
(node:45765) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  462 test/sessions-canvas.spec.ts:31:1 › the manager groups sessions by state, orders them by frecency and marks activity (7.6s)
  ✘  463 test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill (6.6s)
(node:49009) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  464 test/sessions-canvas.spec.ts:75:1 › choosing a session attaches the window to it; the old one keeps running (7.2s)
  ✓  465 test/sessions-canvas.spec.ts:91:1 › attaching moves only opacity and transform, and leaves nothing animating at rest (8.3s)
  ✓  466 test/sessions-canvas.spec.ts:118:1 › the popover opens within 200 ms and closes within 130 ms; the keyboard is instant (6.3s)
  ✓  467 test/sessions-canvas.spec.ts:147:1 › closing a window never ends its session: a gentle toast, and Undo brings it back (6.6s)
  ✓  468 test/sessions-canvas.spec.ts:163:1 › ending a session names what is running and asks with the compact confirm (8.2s)
  ✓  469 test/sessions-canvas.spec.ts:182:1 › a rename pins the name and is the window's name (7.6s)
  ✓  470 test/sessions-canvas.spec.ts:200:1 › the sidebar is the inventory: markers, detached notes and exit codes, in frecency order (11.9s)
  ✓  471 test/sessions-canvas.spec.ts:220:1 › tapping a detached session opens it in a new window and flies the canvas there (16.3s)
  ✓  472 test/sessions-canvas.spec.ts:236:1 › an exited session opens its final screen read-only, with Run again and Dismiss (26.2s)
  ✘  473 test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column (30.0s)
(node:69844) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
#163 verbatim evidence: playwright-scoped.log (3/7) ```text FONT_WEIGHT {"font":"source-code-pro","dpr":2,"loaded":true,"canvasFont":"550 14px \"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","regularInk":4331.24183006536,"boldInk":5686.797385620915,"ratio":1.3129715699885312,"rendererFamily":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","rootFont":"\"Source Code Pro\", \"Nerd Symbols\", ui-monospace, monospace","tokens":["500","550","600","700"]} ✓ 323 test/font-weight.spec.ts:15:5 › Source Code Pro draws terminal and UI text at its registry weights at DPR 2 (9.3s) GHOST view switcher | level 1 | ink | dpr 1 | 0.0000 GHOST palette | level 1 | ink | dpr 1 | 0.0000 GHOST sidebar | level 1 | ink | dpr 1 | 0.0005 GHOST share dialog | level 1 | ink | dpr 1 | 0.0000 ✘ 324 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 (2.0m) (node:3773811) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 2 | ink | dpr 1 | 0.0055 GHOST palette | level 2 | ink | dpr 1 | 0.0007 GHOST sidebar | level 2 | ink | dpr 1 | 0.0049 GHOST share dialog | level 2 | ink | dpr 1 | 0.0053 ✘ 325 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 1 (2.0m) (node:3798275) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 3 | ink | dpr 1 | 0.0023 GHOST palette | level 3 | ink | dpr 1 | 0.0011 GHOST sidebar | level 3 | ink | dpr 1 | 0.0012 GHOST share dialog | level 3 | ink | dpr 1 | 0.0022 ✘ 326 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 1 (2.0m) (node:3827213) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 4 | ink | dpr 1 | 0.0024 GHOST palette | level 4 | ink | dpr 1 | 0.0012 GHOST sidebar | level 4 | ink | dpr 1 | 0.0009 GHOST share dialog | level 4 | ink | dpr 1 | 0.0024 ✘ 327 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 1 (2.0m) (node:3834133) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 1 | ink | dpr 3 | 0.0000 GHOST palette | level 1 | ink | dpr 3 | 0.0000 GHOST sidebar | level 1 | ink | dpr 3 | 0.0005 GHOST share dialog | level 1 | ink | dpr 3 | 0.0000 ✘ 328 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 3 (2.0m) (node:3841207) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 2 | ink | dpr 3 | 0.0079 GHOST palette | level 2 | ink | dpr 3 | 0.0079 GHOST sidebar | level 2 | ink | dpr 3 | 0.0082 GHOST share dialog | level 2 | ink | dpr 3 | 0.0067 ✘ 329 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 3 (2.0m) (node:3847294) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 3 | ink | dpr 3 | 0.0424 GHOST palette | level 3 | ink | dpr 3 | 0.0158 GHOST sidebar | level 3 | ink | dpr 3 | 0.0276 GHOST share dialog | level 3 | ink | dpr 3 | 0.0288 ✘ 330 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 3 (2.0m) (node:3853285) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 4 | ink | dpr 3 | 0.0776 GHOST palette | level 4 | ink | dpr 3 | 0.0238 GHOST sidebar | level 4 | ink | dpr 3 | 0.0481 GHOST share dialog | level 4 | ink | dpr 3 | 0.0521 ✘ 331 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 3 (2.0m) (node:3870038) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 1 | paper | dpr 1 | 0.0000 GHOST palette | level 1 | paper | dpr 1 | 0.0000 GHOST sidebar | level 1 | paper | dpr 1 | 0.0009 GHOST share dialog | level 1 | paper | dpr 1 | 0.0000 ✘ 332 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 1 (2.0m) (node:3884330) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 2 | paper | dpr 1 | 0.0039 GHOST palette | level 2 | paper | dpr 1 | 0.0005 GHOST sidebar | level 2 | paper | dpr 1 | 0.0041 GHOST share dialog | level 2 | paper | dpr 1 | 0.0038 ✘ 333 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 1 (2.0m) (node:3913011) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 3 | paper | dpr 1 | 0.0019 GHOST palette | level 3 | paper | dpr 1 | 0.0009 GHOST sidebar | level 3 | paper | dpr 1 | 0.0015 GHOST share dialog | level 3 | paper | dpr 1 | 0.0020 ✘ 334 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 1 (2.0m) (node:3948246) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 4 | paper | dpr 1 | 0.0020 GHOST palette | level 4 | paper | dpr 1 | 0.0011 GHOST sidebar | level 4 | paper | dpr 1 | 0.0012 GHOST share dialog | level 4 | paper | dpr 1 | 0.0019 ✘ 335 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 1 (2.0m) (node:3961024) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 1 | paper | dpr 3 | 0.0000 GHOST palette | level 1 | paper | dpr 3 | 0.0000 GHOST sidebar | level 1 | paper | dpr 3 | 0.0009 GHOST share dialog | level 1 | paper | dpr 3 | 0.0000 ✘ 336 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 3 (2.0m) (node:3975484) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 2 | paper | dpr 3 | 0.0058 GHOST palette | level 2 | paper | dpr 3 | 0.0058 GHOST sidebar | level 2 | paper | dpr 3 | 0.0067 GHOST share dialog | level 2 | paper | dpr 3 | 0.0049 ✘ 337 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 3 (2.0m) (node:3995616) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 3 | paper | dpr 3 | 0.0353 GHOST palette | level 3 | paper | dpr 3 | 0.0132 GHOST sidebar | level 3 | paper | dpr 3 | 0.0237 GHOST share dialog | level 3 | paper | dpr 3 | 0.0240 ✘ 338 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 3 (2.0m) (node:4004332) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 4 | paper | dpr 3 | 0.0675 GHOST palette | level 4 | paper | dpr 3 | 0.0207 GHOST sidebar | level 4 | paper | dpr 3 | 0.0426 GHOST share dialog | level 4 | paper | dpr 3 | 0.0453 ✘ 339 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 3 (2.0m) (node:4009278) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 340 test/inbox.spec.ts:33:3 › locked: toast, then inbox card and dot, then unlocked (desktop) (16.5s) ✓ 341 test/inbox.spec.ts:33:3 › locked: toast, then inbox card and dot, then unlocked (phone) (19.9s) ✓ 342 test/inbox.spec.ts:33:3 › locked: toast, then inbox card and dot, then unlocked (small) (19.0s) ✓ 343 test/inbox.spec.ts:84:1 › the toast's own action unlocks and leaves nothing behind (6.6s) ✓ 344 test/inbox.spec.ts:93:1 › an unlock in another tab clears the item here when the page returns (10.9s) ✓ 345 test/inbox.spec.ts:106:1 › already unlocked: no toast, no card, no dot (7.6s) ✓ 346 test/inbox.spec.ts:115:1 › a viewer who is not an administrator sees nothing (7.8s) ✓ 347 test/inbox.spec.ts:124:1 › paper theme: the card reads on light glass (6.7s) ✓ 348 test/keytray-modifiers.spec.ts:68:1 › iPhone 15 tray modifiers send one-shot, locked, combined, and xterm arrow bytes (16.9s) ✓ 349 test/keytray-modifiers.spec.ts:141:1 › every visible iPhone 15 key tray button keeps focus in the terminal input (11.3s) ✓ 350 test/machine-sections.spec.ts:27:5 › desktop: machine tab with extended info off (7.4s) ✓ 351 test/machine-sections.spec.ts:27:5 › desktop: machine tab with extended info on (7.4s) ✓ 352 test/machine-sections.spec.ts:27:5 › phone: machine tab with extended info off (7.5s) ✓ 353 test/machine-sections.spec.ts:27:5 › phone: machine tab with extended info on (7.8s) ✓ 354 test/machine-sections.spec.ts:27:5 › phone-small: machine tab with extended info on (8.7s) ✓ 355 test/machine-sections.spec.ts:51:3 › desktop: the Hosts section has the Extended info switch, off by default, persisted when turned on (7.7s) ✓ 356 test/machine-sections.spec.ts:51:3 › phone: the Hosts section has the Extended info switch, off by default, persisted when turned on (8.4s) MESH-PERF load/core=1.62 {"zoom":{"top":"UpdateLayoutTree=104ms Layout=17ms PrePaint=23ms Paint=245ms Layerize=167ms FireAnimationFrame=83ms EventDispatch=32ms RunTask=671ms","n":76,"p50":7.76,"p95":17.05,"max":37.38,"over8":35},"pan":{"top":"UpdateLayoutTree=108ms Layout=47ms PrePaint=24ms Paint=163ms Layerize=188ms FireAnimationFrame=101ms EventDispatch=23ms RunTask=810ms","n":84,"p50":5.75,"p95":23.05,"max":59.01,"over8":29},"drag":{"top":"UpdateLayoutTree=50ms Layout=16ms PrePaint=29ms Paint=109ms Layerize=283ms FireAnimationFrame=131ms EventDispatch=40ms RunTask=1293ms","n":319,"p50":0.65,"p95":11.44,"max":24.41,"over8":58}} ✘ 357 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (30.8s) (node:4024238) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 358 test/mesh.spec.ts:85:3 › a large mesh › opens as cluster frames, and zooming into one brings its cards and arrows, and only those (10.0s) ✓ 359 test/mesh.spec.ts:118:3 › a large mesh › panning mounts the cards that come into view and drops the ones far behind (8.2s) ✓ 360 test/mesh.spec.ts:133:3 › a large mesh › a small mesh is always drawn whole, as cards (8.8s) MESH-FRAMES 1x load/core=2.48 nodes=1000 grants=1175 zoom {"n":13,"p50":150,"p95":583.3,"max":583.3,"dropped":13,"cpuMs":2520} pan {"n":43,"p50":49.9,"p95":133.3,"max":166.7,"dropped":34,"cpuMs":2280} dom-after-zoom {"level":"clusters","cards":0,"arrows":0,"chips":26,"clusterArrows":100,"passes":12,"passMs":204.4,"mounted":24} dom-after-pan {"level":"cards","cards":84,"arrows":150,"chips":0,"clusterArrows":0,"passes":45,"passMs":329.4,"mounted":125} ✓ 361 test/mesh.spec.ts:189:3 › frames: zooming and panning a 1,000-node mesh with 4,000 grants keeps its frame time at 1x CPU (16.8s) MESH-FRAMES 4x load/core=2.77 nodes=1000 grants=1175 zoom {"n":8,"p50":399.9,"p95":1183.3,"max":1183.3,"dropped":8,"cpuMs":2170} pan {"n":35,"p50":66.6,"p95":266.7,"max":366.6,"dropped":28,"cpuMs":3140} dom-after-zoom {"level":"clusters","cards":0,"arrows":0,"chips":26,"clusterArrows":100,"passes":6,"passMs":136.9,"mounted":24} dom-after-pan {"level":"cards","cards":86,"arrows":150,"chips":0,"clusterArrows":0,"passes":33,"passMs":478.9,"mounted":117} ✓ 362 test/mesh.spec.ts:189:3 › frames: zooming and panning a 1,000-node mesh with 4,000 grants keeps its frame time at 4x CPU (19.1s) ✓ 363 test/mesh.spec.ts:230:3 › live updates › a host's status and round trip, a new host and a removed host reach the cards (7.4s) ✓ 364 test/mesh.spec.ts:246:3 › live updates › events that were lost are made up for by the next one (a gap) and by a reconnect (8.3s) ✓ 365 test/mesh.spec.ts:259:3 › live updates › a change made elsewhere moves its arrow, and an answer that comes after its own event is not applied twice (9.5s) ✓ 366 test/mesh.spec.ts:272:3 › live updates › a big inventory arrives in pages: a resync follows the server's continuations and shows all of it, once (6.1s) ✓ 367 test/mesh.spec.ts:281:3 › live updates › a host-heavy stream of status events does not reflow the graph (60 events a second on 1,000 hosts) (9.5s) ✓ 368 test/mesh.spec.ts:299:3 › editing arrows › moving a head asks the server to move the grant by id; its answer names the grant (11.1s) ✓ 369 test/mesh.spec.ts:313:3 › editing arrows › a tail move sends the new source; removing sends a delete; allowing from a card sends a create (12.3s) ✓ 370 test/mesh.spec.ts:340:3 › editing arrows › a grant is renamed through the adapter and shows its new name on hover (9.5s) ✓ 371 test/mesh.spec.ts:356:3 › editing arrows › when the server refuses or the connection drops, the arrow goes back and one toast says why (13.6s) ✓ 372 test/mesh.spec.ts:378:3 › access › arrows have handles, and cards the connector, only for a person who may manage grants; terminals never have either (D194) (9.5s) ✓ 373 test/mesh.spec.ts:399:3 › access › the view appears when grants allow, goes when they are withdrawn, and is reachable by shortcut, sidebar, switcher and palette (11.5s) ✓ 374 test/mesh.spec.ts:427:3 › access › a server that does not say what the person may do (today's) gives a read-only view, with only what it sent on the cards (8.5s) ✓ 375 test/mesh.spec.ts:438:3 › access › a person without Mesh grants never gets the view (the server refuses the snapshot) (6.9s) ✓ 376 test/mesh.spec.ts:465:1 › snap-fit: the dragged end is exact, lands in a single frame without wobble, and goes home fast without overshoot (9.7s) ✓ 377 test/mesh.spec.ts:519:3 › copy 1440x900: the remove and move confirmations, the toasts and the connector name their effect, with icon buttons and warm tooltips (10.6s) ✓ 378 test/mesh.spec.ts:519:3 › copy 393x852: the remove and move confirmations, the toasts and the connector name their effect, with icon buttons and warm tooltips (10.4s) ✓ 379 test/mesh.spec.ts:551:3 › arrow label 1440x900: "via fra-relay" never sits under a card, at any zoom, and is not louder than the cards' own text (11.0s) ✓ 380 test/mesh.spec.ts:551:3 › arrow label 393x852: "via fra-relay" never sits under a card, at any zoom, and is not louder than the cards' own text (9.9s) ✓ 381 test/mesh.spec.ts:576:1 › a dragged node is pinned and saved in the canvas document; the others are not (8.5s) ✓ 382 test/mesh.spec.ts:611:3 › states › loading, then ready; unreachable with a retry that works; empty; and stale data when the connection drops (22.8s) ✓ 383 test/mesh.spec.ts:649:3 › states › the error card keeps the empty card's rhythm: the gap from text to action matches (14.6s) ✓ 384 test/mesh.spec.ts:664:3 › states › every glass surface of the Mesh view blurs what is behind it by about a line of text (10.4s) ✓ 385 test/mesh.spec.ts:682:5 › captures ink 1440x900: the mesh as cards, and a large mesh as frames and as cards (40.5s) ✓ 386 test/mesh.spec.ts:682:5 › captures ink 393x852: the mesh as cards, and a large mesh as frames and as cards (43.0s) ✓ 387 test/mesh.spec.ts:682:5 › captures paper 1440x900: the mesh as cards, and a large mesh as frames and as cards (47.7s) ✓ 388 test/mesh.spec.ts:682:5 › captures paper 393x852: the mesh as cards, and a large mesh as frames and as cards (46.8s) MOTION_AUDIT auth-visible-loop {"rafCallbacks":[],"pending":[],"idleRafFrames":0,"shaderFrames":20,"shaderGaps":[63.80000001192093,35.09999996423721,81,71.5,33.30000001192093,87.19999998807907,57.90000003576279,33.19999998807907,79,38.10000002384186,79.69999998807907,74.09999996423721,73.80000001192093,44,83.60000002384186,48.5,33.30000001192093,125.59999996423721,46.19999998807907],"shaderSurface":{"cssWidth":1280,"cssHeight":720,"dpr":1,"shaderWidth":640,"shaderHeight":360},"hiddenPause":{"paused":true,"resumed":true},"offscreenPause":{"paused":true,"resumed":true}} MOTION_AUDIT auth-start [{"selector":"#setup-card","animationName":"auth-card-in","animationDuration":"0.24s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"220px 254px","transform":"matrix(1, 0, 0, 1, 0, 0)","visible":"true"},{"selector":".auth-pane","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"opacity, transform","transitionDuration":"0.24s, 0.24s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"187px 130.883px","transform":"none","visible":"true"},{"selector":"#setup-viewport","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"height","transitionDuration":"0.24s","transitionDelay":"0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"193px 131px","transform":"none","visible":"true"},{"selector":".auth-step-bar","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"38.3281px 0.5px","transform":"none","visible":"true"},{"selector":"#setup-token","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"187px 24px","transform":"none","visible":"true"},{"selector":".auth-dot","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"12px 12px","transform":"none","visible":"true"},{"selector":"#setup-next","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"transform, opacity","transitionDuration":"0.14s, 0.16s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), ease","transformOrigin":"70px 21px","transform":"none","visible":"true"}] MOTION_AUDIT keyboard-step-token {"sample":{"frames":15,"dropped":116,"longestGapMs":766.7000000000007},"events":[]} MOTION_AUDIT keyboard-step-identity {"sample":{"frames":25,"dropped":47,"longestGapMs":266.7000000000007},"events":[]} MOTION_AUDIT create-passkey {"sample":{"frames":14,"dropped":139,"longestGapMs":750},"events":[]} ✘ 389 test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens (27.5s) (node:4102299) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) SETUP_TOKEN_ERROR_SCREENSHOTS /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/onboarding-invalid-setup-t-ae0f0-tep-1-with-focused-guidance/step-1-wrong-token-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/onboarding-invalid-setup-t-ae0f0-tep-1-with-focused-guidance/step-1-wrong-token-desktop.png ✓ 390 test/onboarding.spec.ts:9:1 › invalid setup token stays on step 1 with focused guidance (11.0s) ✘ 391 test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (41.0s) (node:4112105) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ENVIRONMENT machine=infraternal-dev cores=8 load_1_5_15=45.01,32.23,24.75 METRIC name=palette_arrow_handler_ms_per_press value=1.9790 presses=100 viewport=1440x900 METRIC name=palette_filter_handler_ms_per_input value=0.3940 inputs=100 viewport=1440x900 ✘ 392 test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile (8.4s) (node:4113903) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 393 test/palette-polish.spec.ts:25:1 › no palette row renders without a title, whole list and scoped to Settings (9.6s) ✓ 394 test/palette-polish.spec.ts:54:1 › desktop keeps the key-hint footer (6.1s) ✓ 395 test/palette-polish.spec.ts:62:3 › touch 393x852: no key-hint footer, and the list is taller for it (8.8s) ✓ 396 test/palette-polish.spec.ts:62:3 › touch 375x667: no key-hint footer, and the list is taller for it (8.1s) GHOST palette | level 2 | ink | dpr 2 | 0.0062 ✓ 397 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 2, ink, DPR 2 (8.7s) GHOST palette | level 3 | ink | dpr 2 | 0.0122 ✓ 398 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 3, ink, DPR 2 (9.6s) GHOST palette | level 4 | ink | dpr 2 | 0.0183 ✓ 399 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 4, ink, DPR 2 (8.4s) GHOST palette | level 2 | paper | dpr 2 | 0.0046 ✓ 400 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 2, paper, DPR 2 (8.5s) GHOST palette | level 3 | paper | dpr 2 | 0.0101 ✓ 401 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 3, paper, DPR 2 (8.7s) GHOST palette | level 4 | paper | dpr 2 | 0.0159 ✓ 402 test/palette-polish.spec.ts:95:3 › palette glass hides the text behind it: card level 4, paper, DPR 2 (9.2s) ✓ 403 test/palette-polish.spec.ts:118:1 › the palette's blur is at least 1.5x a terminal line at every card level that has glass (20.0s) PERF-INCIDENT {"t":"incident","recv":"2026-10-11T14:09:47.545Z","recvMs":1791727787545,"sid":"bfd9313b-67e1-42d0-9f29-aca2e7a1c5d3","page":"/?mock=1&proto=clusters&scene=7&theme=ink&bg=none&fps=bench&session=8df558aa-b9a5-4460-978f-736b7dfed5aa","kind":"freeze","at":1791727785698,"worstMs":200,"drops":1,"refreshHz":60,"activity":"pan","animations":{"count":11,"names":["transition:opacity x2","transition:transform x2","cl-blink x5","ui-conn-pulse-b","ui-conn-turn"]},"ctx":{"view":"incident","zoom":1,"lod":"live","band":"in","windows":26,"windowsInView":3,"canvasLock":false,"dpr":1,"viewport":"1440x900","visibility":"visible","theme":"ink","bg":"none","glassBlur":"","sidebar":false},"intervals":[16.7,16.6,16.7,16.7,16.6,16.7,16.7,16.7,16.6,16.7,16.6,16.7,16.7,16.6,16.7,16.7,16.7,16.5,16.8,16.6,200,16.6,16.8,16.7,16.6,16.6,16.8,16.6,16.7,16.6],"loaf":[{"start":7119.3,"ms":213.5,"block":151.3,"render":201.1,"styleLayout":0.1,"forced":0,"scripts":[{"inv":"FrameRequestCallback","type":"user-callback","src":"/perf-spec-stall.js","fn":"perfSpecStall","pos":55,"ms":200.1,"forced":0,"pause":0}]}],"longtasks":[{"start":7131.6,"ms":203,"kind":"window"}],"slowEvents":[],"diag":{"stalls":[{"ago":2,"late":148}],"ws":{"msgs":5,"bytes":192},"heap":{"usedMB":9.5,"fellMB":0},"events":[{"type":"focus","ago":1288}],"action":{"type":"wheel","ago":-205},"support":{"loaf":true,"longtask":true,"event":true}}} ✓ 404 test/perf-hud.spec.ts:28:1 › a 200 ms stall during a pan reaches the file as one freeze, with its activity and script (9.4s) PERF-BENCH {"meanUs":0.09150000005960464,"p99Us":1.000000238418579,"maxUs":80.99999964237213} PERF-RECALC none (3 rounds x 3 s idle): layouts 8, style recalcs 67, style 13.4 ms, layout 16.7 ms, script 110.2 ms PERF-RECALC empty-raf (3 rounds x 3 s idle): layouts 9, style recalcs 269, style 69.3 ms, layout 56.8 ms, script 281.6 ms PERF-RECALC meter (3 rounds x 3 s idle): layouts 10, style recalcs 454, style 64.1 ms, layout 29.7 ms, script 286.2 ms ✘ 405 test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints (1.6m) (node:4144813) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 406 test/phone-gutter.spec.ts:40:3 › phone 393x852: a resting window keeps the gutter in every view, after a split and after a close (20.0s) ✓ 407 test/phone-gutter.spec.ts:77:3 › phone 393x852: opening the palette hides the sidebar toggle and +, closing it brings them back (8.3s) ✓ 408 test/phone-gutter.spec.ts:40:3 › phone 375x667: a resting window keeps the gutter in every view, after a split and after a close (14.6s) ✓ 409 test/phone-gutter.spec.ts:77:3 › phone 375x667: opening the palette hides the sidebar toggle and +, closing it brings them back (8.8s) ✓ 410 test/phone-gutter.spec.ts:96:1 › desktop 1440x900: opening the palette leaves the buttons it does not cover visible (9.3s) ✓ 411 test/phone-gutter.spec.ts:125:1 › phone 393x852 ink: Settings at rest, and the palette open on the phone, are captured (13.9s) - 412 test/predict-key-bench.spec.ts:44:1 › predictive echo cost per key over 0 keys ✘ 413 test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 (11.8s) (node:4158548) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 414 test/predictive-backspace.spec.ts:193:1 › rapid backspaces with no gap land on the host cursor at DPR 1 (11.1s) ✓ 415 test/predictive-backspace.spec.ts:204:1 › backspacing across a wrapped line and past its start stays on cells at DPR 1 (13.7s) ✓ 416 test/predictive-backspace.spec.ts:221:1 › a key typed in the frame an echo is written is placed from the host cursor at DPR 1 (9.9s) ✓ 417 test/predictive-backspace.spec.ts:252:1 › a backspace typed in the frame a backspace echo is written is placed from the host cursor at DPR 1 (10.6s) ✓ 418 test/predictive-backspace.spec.ts:282:1 › predicted cursor pixels sit on the cell edge after backspace at DPR 1 (12.9s) first-key cost 7.30 ms; rest max 12.40 ms ✘ 419 test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 (10.2s) (node:4168012) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 420 test/predictive-backspace.spec.ts:336:1 › typing through a layout change keeps predicting without mispredictions at DPR 1 (13.0s) ✓ 421 test/predictive-echo.spec.ts:129:1 › predictive echo draws only when Ghostty reports a visible normal-screen cursor (29.1s) ✓ 422 test/predictive-echo.spec.ts:258:1 › mutes when the host stops echoing, then resumes after an echo proof (9.5s) ✓ 423 test/predictive-echo.spec.ts:290:1 › predicted cursor advances across a pending multi-character line (8.0s) ✘ 424 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (8.9s) (node:4174124) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 425 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (9.7s) - 426 test/recovery-motion.spec.ts:7:3 › the card swap plays when recovery is pressed 0 ms after load - 427 test/recovery-motion.spec.ts:7:3 › the card swap plays when recovery is pressed 50 ms after load - 428 test/recovery-motion.spec.ts:7:3 › the card swap plays when recovery is pressed 150 ms after load - 429 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at / - 430 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=1 - 431 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?proto=recovery - 432 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=0&proto=recovery - 433 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=1&proto=other - 434 test/recovery-preview-gate.spec.ts:6:3 › preview recovery entry is scoped at /?mock=1&proto=recovery (node:4175123) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 435 test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points (3.7s) (node:4175947) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 436 test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points (5.5s) (node:4177045) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 437 test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points (4.9s) (node:4177802) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 438 test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points (5.5s) (node:4178634) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 439 test/recovery-ui-hold.spec.ts:34:1 › production account state exposes no recovery controls (4.7s) - 440 test/recovery.spec.ts:46:1 › sign-in exposes recovery key entry with per-word errors - 441 test/recovery.spec.ts:64:3 › recovery immediate steps and original DEK - 442 test/recovery.spec.ts:64:3 › recovery delayed steps and original DEK - 443 test/recovery.spec.ts:185:1 › a signed-in device can open recovery without revoking its session - 444 test/recovery.spec.ts:200:1 › pointer recovery step changes glide the fitted pane - 445 test/recovery.spec.ts:231:1 › discarded waiting page resumes the original deadline - 446 test/recovery.spec.ts:255:1 › signed-in device shows a persistent notice and can cancel recovery - 447 test/recovery.spec.ts:277:1 › remaining recovery wait uses server duration with a skewed browser clock - 448 test/recovery.spec.ts:294:1 › terminal startup reuses its authenticated recovery snapshot ✘ 449 test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary (7.0s) (node:4180027) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) behemoth-prefix-82541.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=330, wasm=11730944 B behemoth-prefix-82541.bin: grid=205x56, scrollback=0, wasm=11730944 B ✓ 450 test/renderer-regression.spec.ts:17:3 › renderer survives behemoth-prefix-82541.bin and paints a canary (10.7s) mixed-prefix-82144.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=328, wasm=11730944 B mixed-prefix-82144.bin: grid=205x56, scrollback=0, wasm=11730944 B ✓ 451 test/renderer-regression.spec.ts:17:3 › renderer survives mixed-prefix-82144.bin and paints a canary (9.4s) binary-prefix-106342.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=244, wasm=8650752 B binary-prefix-106342.bin: grid=205x56, scrollback=0, wasm=8650752 B ✓ 452 test/renderer-regression.spec.ts:17:3 › renderer survives binary-prefix-106342.bin and paints a canary (9.4s) browser-text-binary-prefix-192253.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=176, wasm=11010048 B browser-text-binary-prefix-192253.bin: grid=205x56, scrollback=0, wasm=11010048 B ✓ 453 test/renderer-regression.spec.ts:17:3 › renderer survives browser-text-binary-prefix-192253.bin and paints a canary (10.2s) binary-one-esc-context.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=251, wasm=10747904 B binary-one-esc-context.bin: grid=205x56, scrollback=0, wasm=10747904 B ✓ 454 test/renderer-regression.spec.ts:17:3 › renderer survives binary-one-esc-context.bin and paints a canary (10.3s) binary-no-esc-context.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=369, wasm=8847360 B binary-no-esc-context.bin: grid=205x56, scrollback=0, wasm=8847360 B ✓ 455 test/renderer-regression.spec.ts:17:3 › renderer survives binary-no-esc-context.bin and paints a canary (9.2s) behemoth.txt before canary: grid=205x56, configuredScrollback=10000, retainedRows=291, wasm=1054867456 B behemoth raw stream: all five Unicode clusters remain in Ghostty's grapheme buffer behemoth.txt: grid=205x56, scrollback=0, wasm=1054867456 B ✓ 456 test/renderer-regression.spec.ts:17:3 › renderer survives behemoth.txt and paints a canary (51.9s) mixed.txt before canary: grid=205x56, configuredScrollback=10000, retainedRows=0, wasm=414187520 B mixed.txt: grid=205x56, scrollback=0, wasm=414187520 B ✓ 457 test/renderer-regression.spec.ts:17:3 › renderer survives mixed.txt and paints a canary (29.1s) ✘ 458 test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary (7.0s) (node:9278) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=27082 throughput_mbps=1.85 METRIC name=browser_bulk_output_throughput_prediction_on source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=25942 throughput_mbps=1.93 METRIC name=browser_bulk_output_throughput_prediction_on source=tracer-production-build bytes=50000000 sample=2 elapsed_ms=30466 throughput_mbps=1.64 METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=2 elapsed_ms=23667 throughput_mbps=2.11 METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=3 elapsed_ms=20513 throughput_mbps=2.44 METRIC name=browser_bulk_output_throughput_prediction_on source=tracer-production-build bytes=50000000 sample=3 elapsed_ms=19288 throughput_mbps=2.59 METRIC name=browser_bulk_output_throughput_delta source=tracer-production-build n=3 off_median_mbps=2.11 on_median_mbps=1.93 change_percent=-8.77 budget_percent=-5 result=FAIL ✘ 459 test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent (3.2m) - 460 test/reviewer-recovery.spec.ts:7:1 › reviewer: explicit legacy path must satisfy absolute words non-disclosure - 461 test/reviewer-recovery.spec.ts:33:1 › reviewer: preserved deadline remains resumable after server clock rollback (node:45765) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 462 test/sessions-canvas.spec.ts:31:1 › the manager groups sessions by state, orders them by frecency and marks activity (7.6s) ✘ 463 test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill (6.6s) (node:49009) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 464 test/sessions-canvas.spec.ts:75:1 › choosing a session attaches the window to it; the old one keeps running (7.2s) ✓ 465 test/sessions-canvas.spec.ts:91:1 › attaching moves only opacity and transform, and leaves nothing animating at rest (8.3s) ✓ 466 test/sessions-canvas.spec.ts:118:1 › the popover opens within 200 ms and closes within 130 ms; the keyboard is instant (6.3s) ✓ 467 test/sessions-canvas.spec.ts:147:1 › closing a window never ends its session: a gentle toast, and Undo brings it back (6.6s) ✓ 468 test/sessions-canvas.spec.ts:163:1 › ending a session names what is running and asks with the compact confirm (8.2s) ✓ 469 test/sessions-canvas.spec.ts:182:1 › a rename pins the name and is the window's name (7.6s) ✓ 470 test/sessions-canvas.spec.ts:200:1 › the sidebar is the inventory: markers, detached notes and exit codes, in frecency order (11.9s) ✓ 471 test/sessions-canvas.spec.ts:220:1 › tapping a detached session opens it in a new window and flies the canvas there (16.3s) ✓ 472 test/sessions-canvas.spec.ts:236:1 › an exited session opens its final screen read-only, with Run again and Dismiss (26.2s) ✘ 473 test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column (30.0s) (node:69844) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ```
Author
Owner

#163 verbatim evidence: playwright-scoped.log (4/7)

  ✓  474 test/sessions-canvas.spec.ts:279:1 › another device typed last: scaled to fit, a badge says so, typing takes the size over (10.2s)
  ✓  475 test/sessions-canvas.spec.ts:297:1 › ⌘K lists every session on every host, the actions and the sessions scenes (8.1s)
  ✘  476 test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm (30.0s)
(node:78270) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  477 test/sessions-canvas.spec.ts:336:1 › mouse and shortcuts draw no focus ring; Tab does (8.0s)
  ✘  478 test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger (30.0s)
(node:84455) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  479 test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows (30.0s)
(node:87866) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  480 test/sessions-canvas.spec.ts:388:1 › the manager's code is on demand, fetched at idle so the first open never waits for a download (#128) (7.6s)
  ✘  481 test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window (15.8s)
(node:90465) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
STEP1_PRIMARY_RIGHT_INSET iphone-15: 0.000 px
STEP1_PRIMARY_RIGHT_INSET desktop: 0.000 px
SETUP_BUTTON_SCREENSHOTS /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/setup-layout-setup-primary-a4143-t-edge-on-phone-and-desktop/step-1-button-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/setup-layout-setup-primary-a4143-t-edge-on-phone-and-desktop/step-1-button-desktop.png
  ✓  482 test/setup-layout.spec.ts:9:1 › setup primary button reaches the card content edge on phone and desktop (6.4s)
  ✓  483 test/shortcuts-d222.spec.ts:69:5 › Mac chords (D222) › split right and split down each add one window (8.8s)
  ✓  484 test/shortcuts-d222.spec.ts:79:5 › Mac chords (D222) › new window right and new window below each add one window (9.9s)
  ✓  485 test/shortcuts-d222.spec.ts:89:5 › Mac chords (D222) › next and previous window move the active window; the arrows move to the nearest window (9.7s)
  ✓  486 test/shortcuts-d222.spec.ts:102:5 › Mac chords (D222) › close window removes the active window (10.0s)
  ✓  487 test/shortcuts-d222.spec.ts:111:5 › Mac chords (D222) › the palette opens on its chord and on its alternate, and closes on Escape (11.3s)
  ✓  488 test/shortcuts-d222.spec.ts:122:5 › Mac chords (D222) › the shortcuts panel opens on its chord and lists the D222 defaults (10.4s)
  ✓  489 test/shortcuts-d222.spec.ts:69:5 › Windows chords (D222) › split right and split down each add one window (10.8s)
  ✓  490 test/shortcuts-d222.spec.ts:79:5 › Windows chords (D222) › new window right and new window below each add one window (10.0s)
  ✓  491 test/shortcuts-d222.spec.ts:89:5 › Windows chords (D222) › next and previous window move the active window; the arrows move to the nearest window (11.4s)
  ✓  492 test/shortcuts-d222.spec.ts:102:5 › Windows chords (D222) › close window removes the active window (11.7s)
  ✓  493 test/shortcuts-d222.spec.ts:111:5 › Windows chords (D222) › the palette opens on its chord and on its alternate, and closes on Escape (11.8s)
  ✓  494 test/shortcuts-d222.spec.ts:122:5 › Windows chords (D222) › the shortcuts panel opens on its chord and lists the D222 defaults (9.8s)
  ✓  495 test/shortcuts-d222.spec.ts:133:1 › Windows: Ctrl+Shift+/ and ? both open the panel, and a German layout's ? (Shift+ß) opens it too (10.4s)
  ✓  496 test/shortcuts-d222.spec.ts:142:1 › Windows: Ctrl+K inside a focused terminal is the terminal's: the palette stays shut and the byte reaches the shell (8.7s)
  ✓  497 test/shortcuts-d222.spec.ts:156:1 › AltGr triggers nothing: Ctrl+Shift+D with AltGraph set does not split (9.5s)
  ✓  498 test/shortcuts-d222.spec.ts:165:3 › captures: the ? panel on mac, ink, 1440x900 (D222) (10.0s)
  ✓  499 test/shortcuts-d222.spec.ts:165:3 › captures: the ? panel on windows, ink, 1440x900 (D222) (9.2s)
  ✓  500 test/shortcuts-d222.spec.ts:177:3 › Windows: keyboard font size steps the terminal text and resets it (D222) (7.9s)
  ✓  501 test/shortcuts-d222.spec.ts:177:3 › Mac: keyboard font size steps the terminal text and resets it (D222) (7.9s)
  ✓  502 test/shortcuts-d222.spec.ts:196:1 › Windows: the lock-only close (Ctrl+Shift+W) does nothing while the keys are not locked, so the browser keeps the chord (9.8s)
  ✓  503 test/snapshot-resume.spec.ts:8:1 › a wrapped-ring Snapshot paints echoes and keeps resize, scrollback, and theme state (15.3s)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[25.01,26.43,28.7],"dpr":1}
CELL_POSITION {"dpr":1,"cols":303,"rows":71,"cursorX":200,"cursorY":53,"renderCursorX":200,"renderCursorY":53,"cellWidth":8,"cellHeight":18,"fontSize":14,"fontLoaded":true,"letterSpacingSupported":true,"canvasWidth":2424,"canvasHeight":1278,"expectedCursorLeft":1600,"cursorAccentPixels":36,"cursorAccentMinX":1600,"cursorAccentMaxX":1601,"expectedCursorAccentPixels":36,"referenceM":{"minX":1,"maxX":6,"count":36},"lastMixedM":{"minX":1593,"maxX":1598,"count":36},"cjk":{"minX":1560,"maxX":1572,"count":110},"emoji":{"minX":1577,"maxX":1591,"count":187},"combiningMark":{"minX":1593,"maxX":1599,"count":39},"unicodePresent":true,"barRightEdges":[1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596],"advance":8,"expectedCellWidth":8}
  ✓  504 test/terminal-cell-position.spec.ts:14:3 › painted glyph cells and cursor align at DPR 1 (9.6s)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[27.51,26.91,28.84],"dpr":2}
CELL_POSITION {"dpr":2,"cols":303,"rows":71,"cursorX":200,"cursorY":53,"renderCursorX":200,"renderCursorY":53,"cellWidth":8,"cellHeight":18,"fontSize":14,"fontLoaded":true,"letterSpacingSupported":true,"canvasWidth":4848,"canvasHeight":2556,"expectedCursorLeft":3200,"cursorAccentPixels":144,"cursorAccentMinX":3200,"cursorAccentMaxX":3203,"expectedCursorAccentPixels":144,"referenceM":{"minX":2,"maxX":15,"count":186},"lastMixedM":{"minX":3186,"maxX":3199,"count":186},"cjk":{"minX":3120,"maxX":3146,"count":342},"emoji":{"minX":3154,"maxX":3183,"count":712},"combiningMark":{"minX":3186,"maxX":3198,"count":140},"unicodePresent":true,"barRightEdges":[3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193],"advance":8,"expectedCellWidth":8}
CELL_POSITION_BENCH {"redrawP50Ms":8.399999976158142,"redrawP95Ms":21.199999928474426,"bytes":10000000,"elapsedMs":1159.2000000476837,"writeCpuMs":1092.799999833107,"p95FrameMs":16.700000000000728,"maxFrameMs":1118.300000095367,"wasmMemoryBytes":14352384,"effectiveMegabytesPerSecond":8.626639061066813}
  ✓  505 test/terminal-cell-position.spec.ts:14:3 › painted glyph cells and cursor align at DPR 2 (12.9s)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[35.76,28.79,29.42],"dpr":3}
CELL_POSITION {"dpr":3,"cols":303,"rows":71,"cursorX":200,"cursorY":53,"renderCursorX":200,"renderCursorY":53,"cellWidth":8,"cellHeight":18,"fontSize":14,"fontLoaded":true,"letterSpacingSupported":true,"canvasWidth":7272,"canvasHeight":3834,"expectedCursorLeft":4800,"cursorAccentPixels":324,"cursorAccentMinX":4800,"cursorAccentMaxX":4805,"expectedCursorAccentPixels":324,"referenceM":{"minX":2,"maxX":21,"count":371},"lastMixedM":{"minX":4778,"maxX":4797,"count":371},"cjk":{"minX":4680,"maxX":4719,"count":696},"emoji":{"minX":4731,"maxX":4775,"count":1604},"combiningMark":{"minX":4778,"maxX":4796,"count":297},"unicodePresent":true,"barRightEdges":[4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789],"advance":8,"expectedCellWidth":8}
  ✓  506 test/terminal-cell-position.spec.ts:14:3 › painted glyph cells and cursor align at DPR 3 (14.2s)
theme fixture bytes=605847 metrics={"cols":170,"rows":44,"cellWidth":8,"cellHeight":18,"naturalCellWidth":8,"configuredScrollback":40000000,"cursorX":16,"cursorY":43,"renderCursorX":16,"renderCursorY":43,"renderCursorVisible":true,"themeColorsMs":0,"themeRenderMs":0,"terminalColors":{"background":{"r":246,"g":246,"b":244},"foreground":{"r":29,"g":29,"b":31}},"receivedSequence":"605847","outputSequence":"605847","scrollbackRows":10024,"viewportY":0,"cursorVisible":true,"fontSize":14,"fontFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","fontId":"maple-mono-nf","wasmMemoryBytes":35848192}
theme-switch click-to-full-paint JS ms: n=50 p50=0.800 p99=12.700 max=12.700 long_tasks_gt_50ms=23
slowest theme samples: [{"sample":2,"click":12.699999928474426,"colors":0,"render":45.200000047683716},{"sample":43,"click":11.200000047683716,"colors":0,"render":28.200000047683716},{"sample":28,"click":10.799999952316284,"colors":0,"render":23.899999976158142},{"sample":33,"click":7.5,"colors":0,"render":1.7000000476837158},{"sample":41,"click":7.200000047683716,"colors":0,"render":16.299999952316284}]
theme work JS ms: color_setters_p50=0.000 repaint_p50=23.100
  ✘  507 test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text (24.5s)
(node:121719) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  508 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (25.9s)
(node:124782) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  509 test/terminal.spec.ts:596:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (7.3s)
METRIC name=access_screen_render_upper_bound_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1966.70 p99_ms=2521.20 budget_ms=1000 result=FAIL
METRIC name=access_screen_first_contentful_paint_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1694.30 p99_ms=2205.20 budget_ms=1000 result=REPORT
  ✘  510 test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget (2.0m)
(node:143943) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  511 test/top-centre.spec.ts:41:5 › the top pill is centred on the viewport › 1440 px: centre error is within 1 px, sidebar closed and open, with extra right controls (8.8s)
  ✓  512 test/top-centre.spec.ts:41:5 › the top pill is centred on the viewport › 1920 px: centre error is within 1 px, sidebar closed and open, with extra right controls (9.4s)
  ✓  513 test/top-centre.spec.ts:41:5 › the top pill is centred on the viewport › 2000 px: centre error is within 1 px, sidebar closed and open, with extra right controls (7.9s)
  ✓  514 test/top-centre.spec.ts:62:3 › the top pill is centred on the viewport › the pill reads as centred on the default windows column at 2000 px (8.1s)
ink disabled Continue contrast 4.23:1 (oklab(0.615992 0.000280434 -0.00335816) on oklab(0.257129 -0.00028246 -0.0042515))
  ✓  515 test/top-centre.spec.ts:117:41 › the add-host primary label is crisp and legible › ink: disabled Continue has no filter, halo or fractional transform in its ancestry; contrast at least 3:1 (11.0s)
paper disabled Continue contrast 3.53:1 (oklab(0.542798 0.000322037 -0.00104404) on oklab(0.883662 -0.000492371 0.00181142))
  ✓  516 test/top-centre.spec.ts:117:41 › the add-host primary label is crisp and legible › paper: disabled Continue has no filter, halo or fractional transform in its ancestry; contrast at least 3:1 (10.0s)
ink enabled Continue contrast 16.29:1
  ✓  517 test/top-centre.spec.ts:149:41 › the add-host primary label is crisp and legible › ink: enabled Continue has no halo, contrast at least 4.5:1 (11.2s)
paper enabled Continue contrast 15.55:1
  ✓  518 test/top-centre.spec.ts:149:41 › the add-host primary label is crisp and legible › paper: enabled Continue has no halo, contrast at least 4.5:1 (9.3s)
  ✓  519 test/top-centre.spec.ts:168:5 › captures for review (2x) › add-host footer, ink: disabled and enabled (9.7s)
  ✓  520 test/top-centre.spec.ts:168:5 › captures for review (2x) › add-host footer, paper: disabled and enabled (9.9s)
  ✓  521 test/transient-session-input.spec.ts:6:1 › shared terminal retry preserves acknowledged input without replaying it (10.2s)
transient-close fixture {
  before: {
    username: 'renderer_test',
    display_name: 'Renderer test',
    echoed_text: '',
    written_input: '0',
    accepted_input_bytes: 0,
    output_sequence: '0',
    snapshot_count: 0,
    socket_open_count: 1,
    socket_close_count: 0,
    attach_count: 1,
    attached_stream_ids: [ 1 ],
    session_id: '8bc6652a-b0a6-44ff-b57b-8b4611e3b45f',
    active_socket_count: 1
  },
  after: {
    username: 'renderer_test',
    display_name: 'Renderer test',
    echoed_text: '',
    written_input: '0',
    accepted_input_bytes: 0,
    output_sequence: '0',
    snapshot_count: 0,
    socket_open_count: 1,
    socket_close_count: 0,
    attach_count: 2,
    attached_stream_ids: [ 1 ],
    session_id: '8bc6652a-b0a6-44ff-b57b-8b4611e3b45f',
    active_socket_count: 1
  }
}
  ✓  522 test/transient-session-review.spec.ts:6:1 › a transient terminal close retries while the shared socket stays open (10.1s)
CONTRAST card 1 | ink | soft | primary | 16.37
CONTRAST card 1 | ink | soft | secondary | 5.85
CONTRAST card 1 | ink | mesh | primary | 16.37
CONTRAST card 1 | ink | mesh | secondary | 5.85
CONTRAST card 2 | ink | soft | primary | 10.03
CONTRAST card 2 | ink | soft | secondary | 3.59
CONTRAST card 2 | ink | mesh | primary | 7.48
CONTRAST card 2 | ink | mesh | secondary | 2.68
CONTRAST card 3 | ink | soft | primary | 5.26
CONTRAST card 3 | ink | soft | secondary | 1.88
CONTRAST card 3 | ink | mesh | primary | 3.06
CONTRAST card 3 | ink | mesh | secondary | 1.09
CONTRAST card 4 | ink | soft | primary | 3.51
CONTRAST card 4 | ink | soft | secondary | 1.26
CONTRAST card 4 | ink | mesh | primary | 1.86
CONTRAST card 4 | ink | mesh | secondary | 1.06
CONTRAST window 1 | ink | soft | primary | 16.37
CONTRAST window 1 | ink | soft | secondary | 5.85
CONTRAST window 1 | ink | mesh | primary | 16.37
CONTRAST window 1 | ink | mesh | secondary | 5.85
CONTRAST window 2 | ink | soft | primary | 13.38
CONTRAST window 2 | ink | soft | secondary | 4.78
CONTRAST window 2 | ink | mesh | primary | 11.83
CONTRAST window 2 | ink | mesh | secondary | 4.23
CONTRAST window 3 | ink | soft | primary | 9.02
CONTRAST window 3 | ink | soft | secondary | 3.23
CONTRAST window 3 | ink | mesh | primary | 6.39
CONTRAST window 3 | ink | mesh | secondary | 2.28
CONTRAST window 4 | ink | soft | primary | 5.85
CONTRAST window 4 | ink | soft | secondary | 2.09
CONTRAST window 4 | ink | mesh | primary | 3.51
CONTRAST window 4 | ink | mesh | secondary | 1.25
  ✓  523 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (ink) (5.2s)
CONTRAST card 1 | paper | soft | primary | 15.55
CONTRAST card 1 | paper | soft | secondary | 5.36
CONTRAST card 1 | paper | mesh | primary | 15.55
CONTRAST card 1 | paper | mesh | secondary | 5.36
CONTRAST card 2 | paper | soft | primary | 12.60
CONTRAST card 2 | paper | soft | secondary | 4.34
CONTRAST card 2 | paper | mesh | primary | 10.84
CONTRAST card 2 | paper | mesh | secondary | 3.73
CONTRAST card 3 | paper | soft | primary | 9.39
CONTRAST card 3 | paper | soft | secondary | 3.23
CONTRAST card 3 | paper | mesh | primary | 6.36
CONTRAST card 3 | paper | mesh | secondary | 2.19
CONTRAST card 4 | paper | soft | primary | 7.46
CONTRAST card 4 | paper | soft | secondary | 2.57
CONTRAST card 4 | paper | mesh | primary | 4.11
CONTRAST card 4 | paper | mesh | secondary | 1.42
CONTRAST window 1 | paper | soft | primary | 15.55
CONTRAST window 1 | paper | soft | secondary | 5.36
CONTRAST window 1 | paper | mesh | primary | 15.55
CONTRAST window 1 | paper | mesh | secondary | 5.36
CONTRAST window 2 | paper | soft | primary | 14.16
CONTRAST window 2 | paper | soft | secondary | 4.88
CONTRAST window 2 | paper | mesh | primary | 13.27
CONTRAST window 2 | paper | mesh | secondary | 4.57
CONTRAST window 3 | paper | soft | primary | 12.22
CONTRAST window 3 | paper | soft | secondary | 4.21
CONTRAST window 3 | paper | mesh | primary | 10.28
CONTRAST window 3 | paper | mesh | secondary | 3.54
CONTRAST window 4 | paper | soft | primary | 9.92
CONTRAST window 4 | paper | soft | secondary | 3.42
CONTRAST window 4 | paper | mesh | primary | 7.04
CONTRAST window 4 | paper | mesh | secondary | 2.43
  ✓  524 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (paper) (5.2s)
CONTRAST card 1 | mocha | soft | primary | 11.34
CONTRAST card 1 | mocha | soft | secondary | 7.37
CONTRAST card 1 | mocha | mesh | primary | 11.34
CONTRAST card 1 | mocha | mesh | secondary | 7.37
CONTRAST card 2 | mocha | soft | primary | 6.46
CONTRAST card 2 | mocha | soft | secondary | 4.20
CONTRAST card 2 | mocha | mesh | primary | 4.92
CONTRAST card 2 | mocha | mesh | secondary | 3.20
CONTRAST card 3 | mocha | soft | primary | 3.53
CONTRAST card 3 | mocha | soft | secondary | 2.29
CONTRAST card 3 | mocha | mesh | primary | 2.19
CONTRAST card 3 | mocha | mesh | secondary | 1.42
CONTRAST card 4 | mocha | soft | primary | 2.45
CONTRAST card 4 | mocha | soft | secondary | 1.59
CONTRAST card 4 | mocha | mesh | primary | 1.39
CONTRAST card 4 | mocha | mesh | secondary | 1.00
CONTRAST window 1 | mocha | soft | primary | 11.34
CONTRAST window 1 | mocha | soft | secondary | 7.37
CONTRAST window 1 | mocha | mesh | primary | 11.34
CONTRAST window 1 | mocha | mesh | secondary | 7.37
CONTRAST window 2 | mocha | soft | primary | 8.74
CONTRAST window 2 | mocha | soft | secondary | 5.68
CONTRAST window 2 | mocha | mesh | primary | 7.67
CONTRAST window 2 | mocha | mesh | secondary | 4.98
CONTRAST window 3 | mocha | soft | primary | 5.83
CONTRAST window 3 | mocha | soft | secondary | 3.79
CONTRAST window 3 | mocha | mesh | primary | 4.26
CONTRAST window 3 | mocha | mesh | secondary | 2.77
CONTRAST window 4 | mocha | soft | primary | 3.89
CONTRAST window 4 | mocha | soft | secondary | 2.53
CONTRAST window 4 | mocha | mesh | primary | 2.48
CONTRAST window 4 | mocha | mesh | secondary | 1.61
  ✓  525 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (mocha) (6.7s)
CONTRAST card 1 | latte | soft | primary | 7.52
CONTRAST card 1 | latte | soft | secondary | 5.20
CONTRAST card 1 | latte | mesh | primary | 7.52
CONTRAST card 1 | latte | mesh | secondary | 5.20
CONTRAST card 2 | latte | soft | primary | 6.08
CONTRAST card 2 | latte | soft | secondary | 4.21
CONTRAST card 2 | latte | mesh | primary | 5.21
CONTRAST card 2 | latte | mesh | secondary | 3.61
CONTRAST card 3 | latte | soft | primary | 4.52
CONTRAST card 3 | latte | soft | secondary | 3.13
CONTRAST card 3 | latte | mesh | primary | 3.03
CONTRAST card 3 | latte | mesh | secondary | 2.10
CONTRAST card 4 | latte | soft | primary | 3.58
CONTRAST card 4 | latte | soft | secondary | 2.48
CONTRAST card 4 | latte | mesh | primary | 1.95
CONTRAST card 4 | latte | mesh | secondary | 1.35
CONTRAST window 1 | latte | soft | primary | 7.52
CONTRAST window 1 | latte | soft | secondary | 5.20
CONTRAST window 1 | latte | mesh | primary | 7.52
CONTRAST window 1 | latte | mesh | secondary | 5.20
CONTRAST window 2 | latte | soft | primary | 6.84
CONTRAST window 2 | latte | soft | secondary | 4.73
CONTRAST window 2 | latte | mesh | primary | 6.40
CONTRAST window 2 | latte | mesh | secondary | 4.43
CONTRAST window 3 | latte | soft | primary | 5.90
CONTRAST window 3 | latte | soft | secondary | 4.08
CONTRAST window 3 | latte | mesh | primary | 4.94
CONTRAST window 3 | latte | mesh | secondary | 3.42
CONTRAST window 4 | latte | soft | primary | 4.78
CONTRAST window 4 | latte | soft | secondary | 3.30
CONTRAST window 4 | latte | mesh | primary | 3.36
CONTRAST window 4 | latte | mesh | secondary | 2.32
  ✓  526 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (latte) (4.7s)
  ✘  527 test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries (6.9s)
(node:174286) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ROWS ink 1440: [["shell","now"],["infraternal","now"],["infraternal","now"],["infraternal","now"],["deploy","vim"]]
  ✓  528 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, ink 1440 (9.9s)
ROWS ink 393: [["shell","now"],["infraternal","now"],["infraternal","now"],["shell","now"],["deploy","vim"]]
  ✓  529 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, ink 393 (9.5s)
ROWS paper 1440: [["shell","now"],["infraternal","now"],["infraternal","now"],["shell","now"],["deploy","vim"]]
  ✓  530 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, paper 1440 (9.6s)
ROWS paper 393: [["shell","now"],["infraternal","now"],["infraternal","now"],["shell","now"],["deploy","vim"]]
  ✓  531 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, paper 393 (9.3s)
  ✓  532 test/view-recents.spec.ts:91:1 › three windows: three rows and no All row (6.9s)
(node:175324) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
MOBILE_SCROLL rows=368 drag=14 momentum=35 font=13->24 pan=90 document=0 controls=fixed
  ✓  533 test/mobile-scroll.spec.ts:6:1 › touch scroll belongs to the terminal and keeps the mobile controls fixed (8.3s)
(node:175562) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  534 test/platform-consistency.spec.ts:79:1 › Windows: the top pill shows Ctrl+Shift+K keycaps and no Apple glyph is visible anywhere (5.8s)
  ✓  535 test/platform-consistency.spec.ts:91:1 › Windows: the palette shows no scroll bar at rest, the scrolling state during a wheel scroll, and it fades out (7.4s)
  ✓  536 test/platform-consistency.spec.ts:121:1 › keyboard scrolling in the palette still moves the selection and the list, and focus stays in the search field (6.0s)
  ✓  537 test/platform-consistency.spec.ts:134:1 › Mac: the top pill shows the Command and K glyphs (5.6s)
  ✓  538 test/platform-consistency.spec.ts:141:1 › captures: Windows and Mac, ink, 1440x900: the top pill, the palette and the palette mid-scroll (14.8s)
  ✘  539 test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph (11.9s)
(node:180112) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  540 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling (6.5s)
(node:180976) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  541 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling (6.7s)
  -  542 test/recovery-secure-context.spec.ts:11:1 › recovery from a non-secure origin says it needs https and sends nothing


  1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 

    Error: expect(locator).toHaveCount(expected) failed

    Locator:  locator('.ui-chip[data-armed]')
    Expected: 1
    Received: 0
    Timeout:  5000ms

    Call log:
      - Expect "toHaveCount" with timeout 5000ms
      - waiting for locator('.ui-chip[data-armed]')
        14 × locator resolved to 0 elements
           - unexpected value "0"


      51 |     await input.focus();
      52 |     await input.press("Backspace");
    > 53 |     await expect(page.locator(".ui-chip[data-armed]")).toHaveCount(1);
         |                                                        ^
      54 |     await input.press("Backspace");
      55 |     await expect(page.locator(".ui-chip")).toHaveCount(2);
      56 |     // An unknown user@host becomes a typed-host chip on a delimiter.
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/add-host-prototype.spec.ts:53:56

    Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md

  2) test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 564
    Received:   714

      332 |   await page.waitForTimeout(300);
      333 |   const after = await windowBox(page, 0);
    > 334 |   expect(after.height).toBeLessThan(before.height - 150);
          |                        ^
      335 |   expect(after.width).toBeLessThan(before.width - 40);
      336 |   // The mode stays until a tap lands outside the handles.
      337 |   await expect(window0).toHaveAttribute("data-resize", "touch");
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/canvas.spec.ts:334:24

    Error Context: test-results/canvas-touch-press-and-hol-7d656-sizes-a-tap-outside-ends-it/error-context.md

  3) test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 

    Error: expect(locator).toHaveText(expected) failed

    Locator: locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd')
    Timeout: 5000ms
    - Expected  - 2
    + Received  + 2

      Array [
    -   "Ctrl",
    -   "Shift",
    +   "⌃",
    +   "⇧",
        "L",
      ]

    Call log:
      - Expect "toHaveText" with timeout 5000ms
      - waiting for locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd')
        14 × locator resolved to 3 elements


      629 |   const panel = page.locator(".ui-shortcuts");
      630 |   await expect(panel).toBeVisible();
    > 631 |   await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]);
          |                                                                                                  ^
      632 |   await expect(panel.locator(".ui-shortcuts-row", { hasText: "command palette" }).locator("kbd")).toHaveText(["⌘", "K", "⌘", "⇧", "P"]);
      633 |   await page.keyboard.press("Escape");
      634 |   await expect(panel).toHaveCount(0);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/canvas.spec.ts:631:98

    Error Context: test-results/canvas-shortcuts-the-palet-85af2-re-listed-and-a-Mac-sees-⌘K/error-context.md

  4) test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 ────────────

    Error: expect(locator).toBeVisible() failed

    Locator: getByText('TEST DOUBLE')
    Expected: visible
    Timeout: 5000ms
    Error: element(s) not found

    Call log:
      - Expect "toBeVisible" with timeout 5000ms
      - waiting for getByText('TEST DOUBLE')


      64 |       page.on("pageerror", (error) => pageErrors.push(error.message));
      65 |       await page.goto(`${baseURL}/?mock=1`);
    > 66 |       await expect(page.getByText("TEST DOUBLE")).toBeVisible();
         |                                                   ^
      67 |       await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true), { timeout: 15_000 })
      68 |         .toBe(true)
      69 |         .catch(async (error: unknown) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/cell-metrics.spec.ts:66:51

    Error Context: test-results/cell-metrics-Maple-Mono-NF-8f0b5-rics-and-box-joins-at-DPR-2/error-context.md

  5) test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 550
    Received:   808

      49 |   results.key2 = await settle(page, async () => { await page.keyboard.press("Control+Shift+Digit1"); });
      50 |   console.log(`FLIGHT ${JSON.stringify(results)}`);
    > 51 |   expect(results.pointer!).toBeLessThan(550);
         |                            ^
      52 |   expect(results.pointerBack!).toBeLessThan(550);
      53 |   expect(results.key!).toBeLessThan(300);
      54 |   expect(results.key2!).toBeLessThan(300);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-flight.spec.ts:51:28

    Error Context: test-results/clusters-flight-view-fligh-da34c-out-350-ms-key-about-180-ms/error-context.md

  6) test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU 

    Error: expect(received).toBeGreaterThan(expected)

    Expected: > 20
    Received:   13

      73 |     if (cdp) await cdp.send("Emulation.setCPUThrottlingRate", { rate: 1 });
      74 |     console.log(`FRAMES ${rate}x zoom ${JSON.stringify(zoom)} pan ${JSON.stringify(pan)}`);
    > 75 |     expect(zoom.n).toBeGreaterThan(20);
         |                    ^
      76 |   });
      77 | }
      78 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-frames.spec.ts:75:20

    Error Context: test-results/clusters-frames-frames-a-2-0a484-n-the-free-canvas-at-1x-CPU/error-context.md

  7) test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU 

    Error: expect(received).toBeGreaterThan(expected)

    Expected: > 20
    Received:   13

      73 |     if (cdp) await cdp.send("Emulation.setCPUThrottlingRate", { rate: 1 });
      74 |     console.log(`FRAMES ${rate}x zoom ${JSON.stringify(zoom)} pan ${JSON.stringify(pan)}`);
    > 75 |     expect(zoom.n).toBeGreaterThan(20);
         |                    ^
      76 |   });
      77 | }
      78 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-frames.spec.ts:75:20

    Error Context: test-results/clusters-frames-frames-a-2-54b28-n-the-free-canvas-at-4x-CPU/error-context.md

  8) test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 5

      94 |     const after = await grid(page);
      95 |     expect(after.groups, "one group").toBe(1);
    > 96 |     expect(after.windows).toBe(before.windows + 2);
         |                           ^
      97 |     expect(after.total, "footprint").toBe(before.total);
      98 |     expectNoOverlap(after);
      99 |     const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!;
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:96:27

    Error Context: test-results/clusters-grid-split-right--59cd5-e-footprint-does-not-change/error-context.md

  9) test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves 

    Error: expect(received).toContain(expected) // indexOf

    Expected value: "w-edge-arm-s2"
    Received array: ["w-nix-cache", "w-edge-arm-s1"]

      173 |     expectNoOverlap(after);
      174 |     const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!;
    > 175 |     expect(c2.wins.map((w) => w.id)).toContain("w-edge-arm-s2");
          |                                      ^
      176 |     expect(c2.w).toBe(459);
      177 |   });
      178 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:175:38

    Error Context: test-results/clusters-grid-split-right--b1b1e-and-and-the-group-dissolves/error-context.md

  10) test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 3
    + Received  + 1

    - Array [
    -   "w-edge-arm-s1",
    - ]
    + Array []

      189 |     expect(after.cols.length, "no new column: the span is halved inside the group").toBe(before.cols.length);
      190 |     // Only the bottom window still spans: the top one was halved, and nothing outside the group is spanning.
    > 191 |     expect(after.cols.flatMap((c) => c.wins).filter((w) => w.span > 1).map((w) => w.id)).toEqual(["w-edge-arm-s1"]);
          |                                                                                          ^
      192 |   });
      193 |
      194 |   test("new window right after a group opens a plain column after the whole group", async ({ page }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:191:90

    Error Context: test-results/clusters-grid-split-right--4cbaa-inside-the-existing-columns/error-context.md

  11) test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 5
    Received: 4

      200 |     const after = await grid(page);
      201 |     expect(after.groups, "the group is untouched").toBe(1);
    > 202 |     expect(after.cols.length).toBe(before.cols.length + 1);
          |                               ^
      203 |     expect(after.total).toBe(before.total + before.cols.find((c) => c.wins.some((w) => w.id === "w-edge-arm"))!.w + 12);
      204 |     expectNoOverlap(after);
      205 |   });
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:202:31

    Error Context: test-results/clusters-grid-split-right--0ceb9-olumn-after-the-whole-group/error-context.md

  12) test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 5

      212 |     await press(page, ["Control", "Alt", "KeyD"]);
      213 |     const after = await grid(page);
    > 214 |     expect(after.windows).toBe(before.windows + 1);
          |                           ^
      215 |     expect(after.total).toBe(before.total);
      216 |     expectNoOverlap(after);
      217 |     expect(after.cols.map((c) => c.w)).toEqual(before.cols.map((c) => c.w));
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:214:27

    Error Context: test-results/clusters-grid-split-right--26c7c-keeps-the-windows-beside-it/error-context.md

  13) test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height 

    Test timeout of 120000ms exceeded.

    Error: locator.click: Test timeout of 120000ms exceeded.
    Call log:
      - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first()


      60 | }
      61 |
    > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400));
         |                                                                                                                                                ^
      63 |
      64 | async function press(page: Page, chord: string[]): Promise<void> {
      65 |   for (const k of chord) await page.keyboard.down(k);
        at activate (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:62:144)
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:223:11

#163 verbatim evidence: playwright-scoped.log (4/7) ```text ✓ 474 test/sessions-canvas.spec.ts:279:1 › another device typed last: scaled to fit, a badge says so, typing takes the size over (10.2s) ✓ 475 test/sessions-canvas.spec.ts:297:1 › ⌘K lists every session on every host, the actions and the sessions scenes (8.1s) ✘ 476 test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm (30.0s) (node:78270) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 477 test/sessions-canvas.spec.ts:336:1 › mouse and shortcuts draw no focus ring; Tab does (8.0s) ✘ 478 test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger (30.0s) (node:84455) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 479 test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows (30.0s) (node:87866) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 480 test/sessions-canvas.spec.ts:388:1 › the manager's code is on demand, fetched at idle so the first open never waits for a download (#128) (7.6s) ✘ 481 test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window (15.8s) (node:90465) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) STEP1_PRIMARY_RIGHT_INSET iphone-15: 0.000 px STEP1_PRIMARY_RIGHT_INSET desktop: 0.000 px SETUP_BUTTON_SCREENSHOTS /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/setup-layout-setup-primary-a4143-t-edge-on-phone-and-desktop/step-1-button-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test-results/setup-layout-setup-primary-a4143-t-edge-on-phone-and-desktop/step-1-button-desktop.png ✓ 482 test/setup-layout.spec.ts:9:1 › setup primary button reaches the card content edge on phone and desktop (6.4s) ✓ 483 test/shortcuts-d222.spec.ts:69:5 › Mac chords (D222) › split right and split down each add one window (8.8s) ✓ 484 test/shortcuts-d222.spec.ts:79:5 › Mac chords (D222) › new window right and new window below each add one window (9.9s) ✓ 485 test/shortcuts-d222.spec.ts:89:5 › Mac chords (D222) › next and previous window move the active window; the arrows move to the nearest window (9.7s) ✓ 486 test/shortcuts-d222.spec.ts:102:5 › Mac chords (D222) › close window removes the active window (10.0s) ✓ 487 test/shortcuts-d222.spec.ts:111:5 › Mac chords (D222) › the palette opens on its chord and on its alternate, and closes on Escape (11.3s) ✓ 488 test/shortcuts-d222.spec.ts:122:5 › Mac chords (D222) › the shortcuts panel opens on its chord and lists the D222 defaults (10.4s) ✓ 489 test/shortcuts-d222.spec.ts:69:5 › Windows chords (D222) › split right and split down each add one window (10.8s) ✓ 490 test/shortcuts-d222.spec.ts:79:5 › Windows chords (D222) › new window right and new window below each add one window (10.0s) ✓ 491 test/shortcuts-d222.spec.ts:89:5 › Windows chords (D222) › next and previous window move the active window; the arrows move to the nearest window (11.4s) ✓ 492 test/shortcuts-d222.spec.ts:102:5 › Windows chords (D222) › close window removes the active window (11.7s) ✓ 493 test/shortcuts-d222.spec.ts:111:5 › Windows chords (D222) › the palette opens on its chord and on its alternate, and closes on Escape (11.8s) ✓ 494 test/shortcuts-d222.spec.ts:122:5 › Windows chords (D222) › the shortcuts panel opens on its chord and lists the D222 defaults (9.8s) ✓ 495 test/shortcuts-d222.spec.ts:133:1 › Windows: Ctrl+Shift+/ and ? both open the panel, and a German layout's ? (Shift+ß) opens it too (10.4s) ✓ 496 test/shortcuts-d222.spec.ts:142:1 › Windows: Ctrl+K inside a focused terminal is the terminal's: the palette stays shut and the byte reaches the shell (8.7s) ✓ 497 test/shortcuts-d222.spec.ts:156:1 › AltGr triggers nothing: Ctrl+Shift+D with AltGraph set does not split (9.5s) ✓ 498 test/shortcuts-d222.spec.ts:165:3 › captures: the ? panel on mac, ink, 1440x900 (D222) (10.0s) ✓ 499 test/shortcuts-d222.spec.ts:165:3 › captures: the ? panel on windows, ink, 1440x900 (D222) (9.2s) ✓ 500 test/shortcuts-d222.spec.ts:177:3 › Windows: keyboard font size steps the terminal text and resets it (D222) (7.9s) ✓ 501 test/shortcuts-d222.spec.ts:177:3 › Mac: keyboard font size steps the terminal text and resets it (D222) (7.9s) ✓ 502 test/shortcuts-d222.spec.ts:196:1 › Windows: the lock-only close (Ctrl+Shift+W) does nothing while the keys are not locked, so the browser keeps the chord (9.8s) ✓ 503 test/snapshot-resume.spec.ts:8:1 › a wrapped-ring Snapshot paints echoes and keeps resize, scrollback, and theme state (15.3s) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[25.01,26.43,28.7],"dpr":1} CELL_POSITION {"dpr":1,"cols":303,"rows":71,"cursorX":200,"cursorY":53,"renderCursorX":200,"renderCursorY":53,"cellWidth":8,"cellHeight":18,"fontSize":14,"fontLoaded":true,"letterSpacingSupported":true,"canvasWidth":2424,"canvasHeight":1278,"expectedCursorLeft":1600,"cursorAccentPixels":36,"cursorAccentMinX":1600,"cursorAccentMaxX":1601,"expectedCursorAccentPixels":36,"referenceM":{"minX":1,"maxX":6,"count":36},"lastMixedM":{"minX":1593,"maxX":1598,"count":36},"cjk":{"minX":1560,"maxX":1572,"count":110},"emoji":{"minX":1577,"maxX":1591,"count":187},"combiningMark":{"minX":1593,"maxX":1599,"count":39},"unicodePresent":true,"barRightEdges":[1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596,1596],"advance":8,"expectedCellWidth":8} ✓ 504 test/terminal-cell-position.spec.ts:14:3 › painted glyph cells and cursor align at DPR 1 (9.6s) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[27.51,26.91,28.84],"dpr":2} CELL_POSITION {"dpr":2,"cols":303,"rows":71,"cursorX":200,"cursorY":53,"renderCursorX":200,"renderCursorY":53,"cellWidth":8,"cellHeight":18,"fontSize":14,"fontLoaded":true,"letterSpacingSupported":true,"canvasWidth":4848,"canvasHeight":2556,"expectedCursorLeft":3200,"cursorAccentPixels":144,"cursorAccentMinX":3200,"cursorAccentMaxX":3203,"expectedCursorAccentPixels":144,"referenceM":{"minX":2,"maxX":15,"count":186},"lastMixedM":{"minX":3186,"maxX":3199,"count":186},"cjk":{"minX":3120,"maxX":3146,"count":342},"emoji":{"minX":3154,"maxX":3183,"count":712},"combiningMark":{"minX":3186,"maxX":3198,"count":140},"unicodePresent":true,"barRightEdges":[3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193,3193],"advance":8,"expectedCellWidth":8} CELL_POSITION_BENCH {"redrawP50Ms":8.399999976158142,"redrawP95Ms":21.199999928474426,"bytes":10000000,"elapsedMs":1159.2000000476837,"writeCpuMs":1092.799999833107,"p95FrameMs":16.700000000000728,"maxFrameMs":1118.300000095367,"wasmMemoryBytes":14352384,"effectiveMegabytesPerSecond":8.626639061066813} ✓ 505 test/terminal-cell-position.spec.ts:14:3 › painted glyph cells and cursor align at DPR 2 (12.9s) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[35.76,28.79,29.42],"dpr":3} CELL_POSITION {"dpr":3,"cols":303,"rows":71,"cursorX":200,"cursorY":53,"renderCursorX":200,"renderCursorY":53,"cellWidth":8,"cellHeight":18,"fontSize":14,"fontLoaded":true,"letterSpacingSupported":true,"canvasWidth":7272,"canvasHeight":3834,"expectedCursorLeft":4800,"cursorAccentPixels":324,"cursorAccentMinX":4800,"cursorAccentMaxX":4805,"expectedCursorAccentPixels":324,"referenceM":{"minX":2,"maxX":21,"count":371},"lastMixedM":{"minX":4778,"maxX":4797,"count":371},"cjk":{"minX":4680,"maxX":4719,"count":696},"emoji":{"minX":4731,"maxX":4775,"count":1604},"combiningMark":{"minX":4778,"maxX":4796,"count":297},"unicodePresent":true,"barRightEdges":[4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789,4789],"advance":8,"expectedCellWidth":8} ✓ 506 test/terminal-cell-position.spec.ts:14:3 › painted glyph cells and cursor align at DPR 3 (14.2s) theme fixture bytes=605847 metrics={"cols":170,"rows":44,"cellWidth":8,"cellHeight":18,"naturalCellWidth":8,"configuredScrollback":40000000,"cursorX":16,"cursorY":43,"renderCursorX":16,"renderCursorY":43,"renderCursorVisible":true,"themeColorsMs":0,"themeRenderMs":0,"terminalColors":{"background":{"r":246,"g":246,"b":244},"foreground":{"r":29,"g":29,"b":31}},"receivedSequence":"605847","outputSequence":"605847","scrollbackRows":10024,"viewportY":0,"cursorVisible":true,"fontSize":14,"fontFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","fontId":"maple-mono-nf","wasmMemoryBytes":35848192} theme-switch click-to-full-paint JS ms: n=50 p50=0.800 p99=12.700 max=12.700 long_tasks_gt_50ms=23 slowest theme samples: [{"sample":2,"click":12.699999928474426,"colors":0,"render":45.200000047683716},{"sample":43,"click":11.200000047683716,"colors":0,"render":28.200000047683716},{"sample":28,"click":10.799999952316284,"colors":0,"render":23.899999976158142},{"sample":33,"click":7.5,"colors":0,"render":1.7000000476837158},{"sample":41,"click":7.200000047683716,"colors":0,"render":16.299999952316284}] theme work JS ms: color_setters_p50=0.000 repaint_p50=23.100 ✘ 507 test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text (24.5s) (node:121719) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 508 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (25.9s) (node:124782) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 509 test/terminal.spec.ts:596:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (7.3s) METRIC name=access_screen_render_upper_bound_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1966.70 p99_ms=2521.20 budget_ms=1000 result=FAIL METRIC name=access_screen_first_contentful_paint_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1694.30 p99_ms=2205.20 budget_ms=1000 result=REPORT ✘ 510 test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget (2.0m) (node:143943) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 511 test/top-centre.spec.ts:41:5 › the top pill is centred on the viewport › 1440 px: centre error is within 1 px, sidebar closed and open, with extra right controls (8.8s) ✓ 512 test/top-centre.spec.ts:41:5 › the top pill is centred on the viewport › 1920 px: centre error is within 1 px, sidebar closed and open, with extra right controls (9.4s) ✓ 513 test/top-centre.spec.ts:41:5 › the top pill is centred on the viewport › 2000 px: centre error is within 1 px, sidebar closed and open, with extra right controls (7.9s) ✓ 514 test/top-centre.spec.ts:62:3 › the top pill is centred on the viewport › the pill reads as centred on the default windows column at 2000 px (8.1s) ink disabled Continue contrast 4.23:1 (oklab(0.615992 0.000280434 -0.00335816) on oklab(0.257129 -0.00028246 -0.0042515)) ✓ 515 test/top-centre.spec.ts:117:41 › the add-host primary label is crisp and legible › ink: disabled Continue has no filter, halo or fractional transform in its ancestry; contrast at least 3:1 (11.0s) paper disabled Continue contrast 3.53:1 (oklab(0.542798 0.000322037 -0.00104404) on oklab(0.883662 -0.000492371 0.00181142)) ✓ 516 test/top-centre.spec.ts:117:41 › the add-host primary label is crisp and legible › paper: disabled Continue has no filter, halo or fractional transform in its ancestry; contrast at least 3:1 (10.0s) ink enabled Continue contrast 16.29:1 ✓ 517 test/top-centre.spec.ts:149:41 › the add-host primary label is crisp and legible › ink: enabled Continue has no halo, contrast at least 4.5:1 (11.2s) paper enabled Continue contrast 15.55:1 ✓ 518 test/top-centre.spec.ts:149:41 › the add-host primary label is crisp and legible › paper: enabled Continue has no halo, contrast at least 4.5:1 (9.3s) ✓ 519 test/top-centre.spec.ts:168:5 › captures for review (2x) › add-host footer, ink: disabled and enabled (9.7s) ✓ 520 test/top-centre.spec.ts:168:5 › captures for review (2x) › add-host footer, paper: disabled and enabled (9.9s) ✓ 521 test/transient-session-input.spec.ts:6:1 › shared terminal retry preserves acknowledged input without replaying it (10.2s) transient-close fixture { before: { username: 'renderer_test', display_name: 'Renderer test', echoed_text: '', written_input: '0', accepted_input_bytes: 0, output_sequence: '0', snapshot_count: 0, socket_open_count: 1, socket_close_count: 0, attach_count: 1, attached_stream_ids: [ 1 ], session_id: '8bc6652a-b0a6-44ff-b57b-8b4611e3b45f', active_socket_count: 1 }, after: { username: 'renderer_test', display_name: 'Renderer test', echoed_text: '', written_input: '0', accepted_input_bytes: 0, output_sequence: '0', snapshot_count: 0, socket_open_count: 1, socket_close_count: 0, attach_count: 2, attached_stream_ids: [ 1 ], session_id: '8bc6652a-b0a6-44ff-b57b-8b4611e3b45f', active_socket_count: 1 } } ✓ 522 test/transient-session-review.spec.ts:6:1 › a transient terminal close retries while the shared socket stays open (10.1s) CONTRAST card 1 | ink | soft | primary | 16.37 CONTRAST card 1 | ink | soft | secondary | 5.85 CONTRAST card 1 | ink | mesh | primary | 16.37 CONTRAST card 1 | ink | mesh | secondary | 5.85 CONTRAST card 2 | ink | soft | primary | 10.03 CONTRAST card 2 | ink | soft | secondary | 3.59 CONTRAST card 2 | ink | mesh | primary | 7.48 CONTRAST card 2 | ink | mesh | secondary | 2.68 CONTRAST card 3 | ink | soft | primary | 5.26 CONTRAST card 3 | ink | soft | secondary | 1.88 CONTRAST card 3 | ink | mesh | primary | 3.06 CONTRAST card 3 | ink | mesh | secondary | 1.09 CONTRAST card 4 | ink | soft | primary | 3.51 CONTRAST card 4 | ink | soft | secondary | 1.26 CONTRAST card 4 | ink | mesh | primary | 1.86 CONTRAST card 4 | ink | mesh | secondary | 1.06 CONTRAST window 1 | ink | soft | primary | 16.37 CONTRAST window 1 | ink | soft | secondary | 5.85 CONTRAST window 1 | ink | mesh | primary | 16.37 CONTRAST window 1 | ink | mesh | secondary | 5.85 CONTRAST window 2 | ink | soft | primary | 13.38 CONTRAST window 2 | ink | soft | secondary | 4.78 CONTRAST window 2 | ink | mesh | primary | 11.83 CONTRAST window 2 | ink | mesh | secondary | 4.23 CONTRAST window 3 | ink | soft | primary | 9.02 CONTRAST window 3 | ink | soft | secondary | 3.23 CONTRAST window 3 | ink | mesh | primary | 6.39 CONTRAST window 3 | ink | mesh | secondary | 2.28 CONTRAST window 4 | ink | soft | primary | 5.85 CONTRAST window 4 | ink | soft | secondary | 2.09 CONTRAST window 4 | ink | mesh | primary | 3.51 CONTRAST window 4 | ink | mesh | secondary | 1.25 ✓ 523 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (ink) (5.2s) CONTRAST card 1 | paper | soft | primary | 15.55 CONTRAST card 1 | paper | soft | secondary | 5.36 CONTRAST card 1 | paper | mesh | primary | 15.55 CONTRAST card 1 | paper | mesh | secondary | 5.36 CONTRAST card 2 | paper | soft | primary | 12.60 CONTRAST card 2 | paper | soft | secondary | 4.34 CONTRAST card 2 | paper | mesh | primary | 10.84 CONTRAST card 2 | paper | mesh | secondary | 3.73 CONTRAST card 3 | paper | soft | primary | 9.39 CONTRAST card 3 | paper | soft | secondary | 3.23 CONTRAST card 3 | paper | mesh | primary | 6.36 CONTRAST card 3 | paper | mesh | secondary | 2.19 CONTRAST card 4 | paper | soft | primary | 7.46 CONTRAST card 4 | paper | soft | secondary | 2.57 CONTRAST card 4 | paper | mesh | primary | 4.11 CONTRAST card 4 | paper | mesh | secondary | 1.42 CONTRAST window 1 | paper | soft | primary | 15.55 CONTRAST window 1 | paper | soft | secondary | 5.36 CONTRAST window 1 | paper | mesh | primary | 15.55 CONTRAST window 1 | paper | mesh | secondary | 5.36 CONTRAST window 2 | paper | soft | primary | 14.16 CONTRAST window 2 | paper | soft | secondary | 4.88 CONTRAST window 2 | paper | mesh | primary | 13.27 CONTRAST window 2 | paper | mesh | secondary | 4.57 CONTRAST window 3 | paper | soft | primary | 12.22 CONTRAST window 3 | paper | soft | secondary | 4.21 CONTRAST window 3 | paper | mesh | primary | 10.28 CONTRAST window 3 | paper | mesh | secondary | 3.54 CONTRAST window 4 | paper | soft | primary | 9.92 CONTRAST window 4 | paper | soft | secondary | 3.42 CONTRAST window 4 | paper | mesh | primary | 7.04 CONTRAST window 4 | paper | mesh | secondary | 2.43 ✓ 524 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (paper) (5.2s) CONTRAST card 1 | mocha | soft | primary | 11.34 CONTRAST card 1 | mocha | soft | secondary | 7.37 CONTRAST card 1 | mocha | mesh | primary | 11.34 CONTRAST card 1 | mocha | mesh | secondary | 7.37 CONTRAST card 2 | mocha | soft | primary | 6.46 CONTRAST card 2 | mocha | soft | secondary | 4.20 CONTRAST card 2 | mocha | mesh | primary | 4.92 CONTRAST card 2 | mocha | mesh | secondary | 3.20 CONTRAST card 3 | mocha | soft | primary | 3.53 CONTRAST card 3 | mocha | soft | secondary | 2.29 CONTRAST card 3 | mocha | mesh | primary | 2.19 CONTRAST card 3 | mocha | mesh | secondary | 1.42 CONTRAST card 4 | mocha | soft | primary | 2.45 CONTRAST card 4 | mocha | soft | secondary | 1.59 CONTRAST card 4 | mocha | mesh | primary | 1.39 CONTRAST card 4 | mocha | mesh | secondary | 1.00 CONTRAST window 1 | mocha | soft | primary | 11.34 CONTRAST window 1 | mocha | soft | secondary | 7.37 CONTRAST window 1 | mocha | mesh | primary | 11.34 CONTRAST window 1 | mocha | mesh | secondary | 7.37 CONTRAST window 2 | mocha | soft | primary | 8.74 CONTRAST window 2 | mocha | soft | secondary | 5.68 CONTRAST window 2 | mocha | mesh | primary | 7.67 CONTRAST window 2 | mocha | mesh | secondary | 4.98 CONTRAST window 3 | mocha | soft | primary | 5.83 CONTRAST window 3 | mocha | soft | secondary | 3.79 CONTRAST window 3 | mocha | mesh | primary | 4.26 CONTRAST window 3 | mocha | mesh | secondary | 2.77 CONTRAST window 4 | mocha | soft | primary | 3.89 CONTRAST window 4 | mocha | soft | secondary | 2.53 CONTRAST window 4 | mocha | mesh | primary | 2.48 CONTRAST window 4 | mocha | mesh | secondary | 1.61 ✓ 525 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (mocha) (6.7s) CONTRAST card 1 | latte | soft | primary | 7.52 CONTRAST card 1 | latte | soft | secondary | 5.20 CONTRAST card 1 | latte | mesh | primary | 7.52 CONTRAST card 1 | latte | mesh | secondary | 5.20 CONTRAST card 2 | latte | soft | primary | 6.08 CONTRAST card 2 | latte | soft | secondary | 4.21 CONTRAST card 2 | latte | mesh | primary | 5.21 CONTRAST card 2 | latte | mesh | secondary | 3.61 CONTRAST card 3 | latte | soft | primary | 4.52 CONTRAST card 3 | latte | soft | secondary | 3.13 CONTRAST card 3 | latte | mesh | primary | 3.03 CONTRAST card 3 | latte | mesh | secondary | 2.10 CONTRAST card 4 | latte | soft | primary | 3.58 CONTRAST card 4 | latte | soft | secondary | 2.48 CONTRAST card 4 | latte | mesh | primary | 1.95 CONTRAST card 4 | latte | mesh | secondary | 1.35 CONTRAST window 1 | latte | soft | primary | 7.52 CONTRAST window 1 | latte | soft | secondary | 5.20 CONTRAST window 1 | latte | mesh | primary | 7.52 CONTRAST window 1 | latte | mesh | secondary | 5.20 CONTRAST window 2 | latte | soft | primary | 6.84 CONTRAST window 2 | latte | soft | secondary | 4.73 CONTRAST window 2 | latte | mesh | primary | 6.40 CONTRAST window 2 | latte | mesh | secondary | 4.43 CONTRAST window 3 | latte | soft | primary | 5.90 CONTRAST window 3 | latte | soft | secondary | 4.08 CONTRAST window 3 | latte | mesh | primary | 4.94 CONTRAST window 3 | latte | mesh | secondary | 3.42 CONTRAST window 4 | latte | soft | primary | 4.78 CONTRAST window 4 | latte | soft | secondary | 3.30 CONTRAST window 4 | latte | mesh | primary | 3.36 CONTRAST window 4 | latte | mesh | secondary | 2.32 ✓ 526 test/transparency-contrast.spec.ts:57:3 › contrast: every transparency level keeps text at 4.5:1 (latte) (4.7s) ✘ 527 test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries (6.9s) (node:174286) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ROWS ink 1440: [["shell","now"],["infraternal","now"],["infraternal","now"],["infraternal","now"],["deploy","vim"]] ✓ 528 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, ink 1440 (9.9s) ROWS ink 393: [["shell","now"],["infraternal","now"],["infraternal","now"],["shell","now"],["deploy","vim"]] ✓ 529 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, ink 393 (9.5s) ROWS paper 1440: [["shell","now"],["infraternal","now"],["infraternal","now"],["shell","now"],["deploy","vim"]] ✓ 530 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, paper 1440 (9.6s) ROWS paper 393: [["shell","now"],["infraternal","now"],["infraternal","now"],["shell","now"],["deploy","vim"]] ✓ 531 test/view-recents.spec.ts:54:5 › 54 windows: five recent rows, then All, paper 393 (9.3s) ✓ 532 test/view-recents.spec.ts:91:1 › three windows: three rows and no All row (6.9s) (node:175324) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) MOBILE_SCROLL rows=368 drag=14 momentum=35 font=13->24 pan=90 document=0 controls=fixed ✓ 533 test/mobile-scroll.spec.ts:6:1 › touch scroll belongs to the terminal and keeps the mobile controls fixed (8.3s) (node:175562) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 534 test/platform-consistency.spec.ts:79:1 › Windows: the top pill shows Ctrl+Shift+K keycaps and no Apple glyph is visible anywhere (5.8s) ✓ 535 test/platform-consistency.spec.ts:91:1 › Windows: the palette shows no scroll bar at rest, the scrolling state during a wheel scroll, and it fades out (7.4s) ✓ 536 test/platform-consistency.spec.ts:121:1 › keyboard scrolling in the palette still moves the selection and the list, and focus stays in the search field (6.0s) ✓ 537 test/platform-consistency.spec.ts:134:1 › Mac: the top pill shows the Command and K glyphs (5.6s) ✓ 538 test/platform-consistency.spec.ts:141:1 › captures: Windows and Mac, ink, 1440x900: the top pill, the palette and the palette mid-scroll (14.8s) ✘ 539 test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph (11.9s) (node:180112) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 540 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling (6.5s) (node:180976) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 541 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling (6.7s) - 542 test/recovery-secure-context.spec.ts:11:1 › recovery from a non-secure origin says it needs https and sends nothing 1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync Error: expect(locator).toHaveCount(expected) failed Locator: locator('.ui-chip[data-armed]') Expected: 1 Received: 0 Timeout: 5000ms Call log: - Expect "toHaveCount" with timeout 5000ms - waiting for locator('.ui-chip[data-armed]') 14 × locator resolved to 0 elements - unexpected value "0" 51 | await input.focus(); 52 | await input.press("Backspace"); > 53 | await expect(page.locator(".ui-chip[data-armed]")).toHaveCount(1); | ^ 54 | await input.press("Backspace"); 55 | await expect(page.locator(".ui-chip")).toHaveCount(2); 56 | // An unknown user@host becomes a typed-host chip on a delimiter. at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/add-host-prototype.spec.ts:53:56 Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md 2) test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it Error: expect(received).toBeLessThan(expected) Expected: < 564 Received: 714 332 | await page.waitForTimeout(300); 333 | const after = await windowBox(page, 0); > 334 | expect(after.height).toBeLessThan(before.height - 150); | ^ 335 | expect(after.width).toBeLessThan(before.width - 40); 336 | // The mode stays until a tap lands outside the handles. 337 | await expect(window0).toHaveAttribute("data-resize", "touch"); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/canvas.spec.ts:334:24 Error Context: test-results/canvas-touch-press-and-hol-7d656-sizes-a-tap-outside-ends-it/error-context.md 3) test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K Error: expect(locator).toHaveText(expected) failed Locator: locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd') Timeout: 5000ms - Expected - 2 + Received + 2 Array [ - "Ctrl", - "Shift", + "⌃", + "⇧", "L", ] Call log: - Expect "toHaveText" with timeout 5000ms - waiting for locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd') 14 × locator resolved to 3 elements 629 | const panel = page.locator(".ui-shortcuts"); 630 | await expect(panel).toBeVisible(); > 631 | await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]); | ^ 632 | await expect(panel.locator(".ui-shortcuts-row", { hasText: "command palette" }).locator("kbd")).toHaveText(["⌘", "K", "⌘", "⇧", "P"]); 633 | await page.keyboard.press("Escape"); 634 | await expect(panel).toHaveCount(0); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/canvas.spec.ts:631:98 Error Context: test-results/canvas-shortcuts-the-palet-85af2-re-listed-and-a-Mac-sees-⌘K/error-context.md 4) test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 ──────────── Error: expect(locator).toBeVisible() failed Locator: getByText('TEST DOUBLE') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('TEST DOUBLE') 64 | page.on("pageerror", (error) => pageErrors.push(error.message)); 65 | await page.goto(`${baseURL}/?mock=1`); > 66 | await expect(page.getByText("TEST DOUBLE")).toBeVisible(); | ^ 67 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true), { timeout: 15_000 }) 68 | .toBe(true) 69 | .catch(async (error: unknown) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/cell-metrics.spec.ts:66:51 Error Context: test-results/cell-metrics-Maple-Mono-NF-8f0b5-rics-and-box-joins-at-DPR-2/error-context.md 5) test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms Error: expect(received).toBeLessThan(expected) Expected: < 550 Received: 808 49 | results.key2 = await settle(page, async () => { await page.keyboard.press("Control+Shift+Digit1"); }); 50 | console.log(`FLIGHT ${JSON.stringify(results)}`); > 51 | expect(results.pointer!).toBeLessThan(550); | ^ 52 | expect(results.pointerBack!).toBeLessThan(550); 53 | expect(results.key!).toBeLessThan(300); 54 | expect(results.key2!).toBeLessThan(300); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-flight.spec.ts:51:28 Error Context: test-results/clusters-flight-view-fligh-da34c-out-350-ms-key-about-180-ms/error-context.md 6) test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU Error: expect(received).toBeGreaterThan(expected) Expected: > 20 Received: 13 73 | if (cdp) await cdp.send("Emulation.setCPUThrottlingRate", { rate: 1 }); 74 | console.log(`FRAMES ${rate}x zoom ${JSON.stringify(zoom)} pan ${JSON.stringify(pan)}`); > 75 | expect(zoom.n).toBeGreaterThan(20); | ^ 76 | }); 77 | } 78 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-frames.spec.ts:75:20 Error Context: test-results/clusters-frames-frames-a-2-0a484-n-the-free-canvas-at-1x-CPU/error-context.md 7) test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU Error: expect(received).toBeGreaterThan(expected) Expected: > 20 Received: 13 73 | if (cdp) await cdp.send("Emulation.setCPUThrottlingRate", { rate: 1 }); 74 | console.log(`FRAMES ${rate}x zoom ${JSON.stringify(zoom)} pan ${JSON.stringify(pan)}`); > 75 | expect(zoom.n).toBeGreaterThan(20); | ^ 76 | }); 77 | } 78 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-frames.spec.ts:75:20 Error Context: test-results/clusters-frames-frames-a-2-54b28-n-the-free-canvas-at-4x-CPU/error-context.md 8) test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 5 94 | const after = await grid(page); 95 | expect(after.groups, "one group").toBe(1); > 96 | expect(after.windows).toBe(before.windows + 2); | ^ 97 | expect(after.total, "footprint").toBe(before.total); 98 | expectNoOverlap(after); 99 | const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!; at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:96:27 Error Context: test-results/clusters-grid-split-right--59cd5-e-footprint-does-not-change/error-context.md 9) test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves Error: expect(received).toContain(expected) // indexOf Expected value: "w-edge-arm-s2" Received array: ["w-nix-cache", "w-edge-arm-s1"] 173 | expectNoOverlap(after); 174 | const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!; > 175 | expect(c2.wins.map((w) => w.id)).toContain("w-edge-arm-s2"); | ^ 176 | expect(c2.w).toBe(459); 177 | }); 178 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:175:38 Error Context: test-results/clusters-grid-split-right--b1b1e-and-and-the-group-dissolves/error-context.md 10) test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns Error: expect(received).toEqual(expected) // deep equality - Expected - 3 + Received + 1 - Array [ - "w-edge-arm-s1", - ] + Array [] 189 | expect(after.cols.length, "no new column: the span is halved inside the group").toBe(before.cols.length); 190 | // Only the bottom window still spans: the top one was halved, and nothing outside the group is spanning. > 191 | expect(after.cols.flatMap((c) => c.wins).filter((w) => w.span > 1).map((w) => w.id)).toEqual(["w-edge-arm-s1"]); | ^ 192 | }); 193 | 194 | test("new window right after a group opens a plain column after the whole group", async ({ page }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:191:90 Error Context: test-results/clusters-grid-split-right--4cbaa-inside-the-existing-columns/error-context.md 11) test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group Error: expect(received).toBe(expected) // Object.is equality Expected: 5 Received: 4 200 | const after = await grid(page); 201 | expect(after.groups, "the group is untouched").toBe(1); > 202 | expect(after.cols.length).toBe(before.cols.length + 1); | ^ 203 | expect(after.total).toBe(before.total + before.cols.find((c) => c.wins.some((w) => w.id === "w-edge-arm"))!.w + 12); 204 | expectNoOverlap(after); 205 | }); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:202:31 Error Context: test-results/clusters-grid-split-right--0ceb9-olumn-after-the-whole-group/error-context.md 12) test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 5 212 | await press(page, ["Control", "Alt", "KeyD"]); 213 | const after = await grid(page); > 214 | expect(after.windows).toBe(before.windows + 1); | ^ 215 | expect(after.total).toBe(before.total); 216 | expectNoOverlap(after); 217 | expect(after.cols.map((c) => c.w)).toEqual(before.cols.map((c) => c.w)); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:214:27 Error Context: test-results/clusters-grid-split-right--26c7c-keeps-the-windows-beside-it/error-context.md 13) test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height Test timeout of 120000ms exceeded. Error: locator.click: Test timeout of 120000ms exceeded. Call log: - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first() 60 | } 61 | > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400)); | ^ 63 | 64 | async function press(page: Page, chord: string[]): Promise<void> { 65 | for (const k of chord) await page.keyboard.down(k); at activate (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:62:144) at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:223:11 ```
Author
Owner

#163 verbatim evidence: playwright-scoped.log (5/7)

    Error Context: test-results/clusters-grid-split-right--2aab6--beside-it-keeps-its-height/error-context.md

  14) test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view 

    Test timeout of 120000ms exceeded.

    Error: locator.click: Test timeout of 120000ms exceeded.
    Call log:
      - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first()


      60 | }
      61 |
    > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400));
         |                                                                                                                                                ^
      63 |
      64 | async function press(page: Page, chord: string[]): Promise<void> {
      65 |   for (const k of chord) await page.keyboard.down(k);
        at activate (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:62:144)
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:244:11

    Error Context: test-results/clusters-grid-camera-and-s-e8dec--brings-all-of-it-into-view/error-context.md

  15) test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 

    Error: w-nix-cache right edge

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 394
    Received:    744

      370 |     expect(framed.length).toBeGreaterThan(0);
      371 |     for (const p of framed) expect(p.headLeft, `${p.id} header left edge`).toBeGreaterThanOrEqual(-1);
    > 372 |     for (const p of framed) expect(p.right, `${p.id} right edge`).toBeLessThanOrEqual(vw + 1);
          |                                                                   ^
      373 |   });
      374 | });
      375 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:372:67

    Error Context: test-results/clusters-grid-the-phone-af-6f47e-s-header-stay-on-the-screen/error-context.md

  16) test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 

    Error: holding the key adds no work: at most a stray dropped frame after the split itself

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 4
    Received:    42

      51 |   expect(m.goo, "a key split plays no silhouette").toBe(0);
      52 |   // An unbound key held the same way drops a frame or two on this headless setup as well; a flood would be dozens.
    > 53 |   expect(m.late.length, "holding the key adds no work: at most a stray dropped frame after the split itself").toBeLessThanOrEqual(4);
         |                                                                                                               ^
      54 |   expect(Math.max(0, ...m.late), "and none of them is long").toBeLessThan(60);
      55 | });
      56 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-keyboard-split.spec.ts:53:111

    Error Context: test-results/clusters-keyboard-split-a--d5528-lits-once-with-short-frames/error-context.md

  17) test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 1
    Received: 0

      48 |       await page.keyboard.press("?");
      49 |       await page.waitForTimeout(1000);
    > 50 |       expect((await panels(page)).length).toBe(presses % 2 ? 0 : 1);
         |                                           ^
      51 |     });
      52 |   }
      53 | }
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:50:43

    Error Context: test-results/clusters-shortcuts-spam-20-4dc20-closed-never-an-empty-shell/error-context.md

  18) test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell 

    Error: expect(received).toHaveLength(expected)

    Expected length: 1
    Received length: 0
    Received array:  []

      37 |       expect(most, "at most one panel is ever mounted").toBeLessThanOrEqual(1);
      38 |       if (presses % 2) {
    > 39 |         expect(end).toHaveLength(1);
         |                     ^
      40 |         expect(end[0]!.rows).toBeGreaterThan(5);
      41 |         expect(end[0]!.clip, "settled open: no clip left").toBe("");
      42 |         expect(end[0]!.headOpacity).toBe("1");
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:39:21

    Error Context: test-results/clusters-shortcuts-spam-21-a9a41-ontent-never-an-empty-shell/error-context.md

  19) test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 1
    Received: 0

      48 |       await page.keyboard.press("?");
      49 |       await page.waitForTimeout(1000);
    > 50 |       expect((await panels(page)).length).toBe(presses % 2 ? 0 : 1);
         |                                           ^
      51 |     });
      52 |   }
      53 | }
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:50:43

    Error Context: test-results/clusters-shortcuts-spam-20-e6ba1-closed-never-an-empty-shell/error-context.md

  20) test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell 

    Error: expect(received).toHaveLength(expected)

    Expected length: 1
    Received length: 0
    Received array:  []

      37 |       expect(most, "at most one panel is ever mounted").toBeLessThanOrEqual(1);
      38 |       if (presses % 2) {
    > 39 |         expect(end).toHaveLength(1);
         |                     ^
      40 |         expect(end[0]!.rows).toBeGreaterThan(5);
      41 |         expect(end[0]!.clip, "settled open: no clip left").toBe("");
      42 |         expect(end[0]!.headOpacity).toBe("1");
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:39:21

    Error Context: test-results/clusters-shortcuts-spam-21-52b26-ontent-never-an-empty-shell/error-context.md

  21) test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows ─

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 9

      41 |     await swipes(page, "x", 6, gap, { x: 700, y: 450 });
      42 |     const after = (await api(page, "canvasLock")) as { index: number };
    > 43 |     expect(after.index - before.index).toBe(6);
         |                                        ^
      44 |   });
      45 |
      46 |   test(`six vertical swipes ${gap} ms apart move six windows down a column`, async ({ page }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:43:40

    Error Context: test-results/clusters-swipes-both-six-h-71a4c-0-ms-apart-move-six-windows/error-context.md

  22) test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 8

      64 |     expect(await index()).toBe(0);
      65 |     await swipes(page, "y", 6, gap, pos);
    > 66 |     expect(await index()).toBe(6);
         |                           ^
      67 |   });
      68 | }
      69 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:66:27

    Error Context: test-results/clusters-swipes-both-six-v-5461e-e-six-windows-down-a-column/error-context.md

  23) test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows ──

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 7

      41 |     await swipes(page, "x", 6, gap, { x: 700, y: 450 });
      42 |     const after = (await api(page, "canvasLock")) as { index: number };
    > 43 |     expect(after.index - before.index).toBe(6);
         |                                        ^
      44 |   });
      45 |
      46 |   test(`six vertical swipes ${gap} ms apart move six windows down a column`, async ({ page }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:43:40

    Error Context: test-results/clusters-swipes-both-six-h-79784-0-ms-apart-move-six-windows/error-context.md

  24) test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 7

      64 |     expect(await index()).toBe(0);
      65 |     await swipes(page, "y", 6, gap, pos);
    > 66 |     expect(await index()).toBe(6);
         |                           ^
      67 |   });
      68 | }
      69 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:66:27

    Error Context: test-results/clusters-swipes-both-six-v-63b59-e-six-windows-down-a-column/error-context.md

  25) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events 

    Error: windows moved by six swipes

    expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 8

      44 |     await swipes(page, 6, 330, momentum);
      45 |     const after = (await api("canvasLock")) as { index: number };
    > 46 |     expect(after.index - lock.index, "windows moved by six swipes").toBe(6);
         |                                                                     ^
      47 |   });
      48 | }
      49 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes.spec.ts:46:69

    Error Context: test-results/clusters-swipes-six-swipes-64602-her-without-momentum-events/error-context.md

  26) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events 

    Error: windows moved by six swipes

    expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 9

      44 |     await swipes(page, 6, 330, momentum);
      45 |     const after = (await api("canvasLock")) as { index: number };
    > 46 |     expect(after.index - lock.index, "windows moved by six swipes").toBe(6);
         |                                                                     ^
      47 |   });
      48 | }
      49 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes.spec.ts:46:69

    Error Context: test-results/clusters-swipes-six-swipes-86866-urther-with-momentum-events/error-context.md

  27) test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted ────────────────────────

    Error: expect(received).toBeLessThan(expected)

    Expected: < 400
    Received:   458.0026666666667

      65 |     const zoomIn = await bench(page, cdp, `${look.name} zoom in`, back);
      66 |     console.log(`ZOOM ${look.name} zoom ${z0.toFixed(2)} -> ${z1.toFixed(2)} -> ${(await zAt()).toFixed(2)}`);
    > 67 |     expect(Math.max(zoomOut.perFrame, zoomIn.perFrame)).toBeLessThan(400);
         |                                                         ^
      68 |   });
      69 | }
      70 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-zoom-bench.spec.ts:67:57

    Error Context: test-results/clusters-zoom-bench-zoom-with-21-windows-Frosted/error-context.md

  28) test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "keys"
    Received: "canvas"

    Call Log:
    - Timeout 5000ms exceeded while waiting on the predicate

      555 |     for (let i = 1; i <= 7; i++) { await t.touch("touchMove", [{ x: tray.x + 100, y: tray.y + 32 - i * 6 }]); await page.waitForTimeout(40); }
      556 |     await t.touch("touchEnd", []);
    > 557 |     await expect.poll(row).toBe("keys");
          |                            ^
      558 |     await page.waitForTimeout(500);
      559 |     await swipe(t, { x: tray.x + 100, y: tray.y + 12 }, { x: tray.x + 100, y: tray.y + 44 }, 6);
      560 |     await expect.poll(row).toBe("canvas");
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:557:28

    Error Context: test-results/clusters-toolbar-the-keybo-cd378-ipes-switch-and-scroll-rows/error-context.md

  29) test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row 

    TypeError: Cannot read properties of null (reading 'height')

      580 |     expect(await state()).toBe("off");
      581 |     const box = (await ctrl.boundingBox())!;
    > 582 |     expect(box.height).toBeGreaterThanOrEqual(44);
          |                ^
      583 |     await page.touchscreen.tap(box.x + box.width / 2, box.y + box.height / 2);
      584 |     await expect.poll(state).toBe("armed");
      585 |     await page.waitForTimeout(500);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:582:16

    Error Context: test-results/clusters-toolbar-Ctrl-latc-1cd33-ck-work-from-the-canvas-row/error-context.md

  30) test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate 

    Error: expect(received).toBeGreaterThan(expected)

    Expected: > 500
    Received:   0

      722 |   expect(costs.windowStep).toBeLessThan(16);
      723 |   expect(costs.canvasLockToggle).toBeLessThan(16);
    > 724 |   expect(costs.keyJumpMoved).toBeGreaterThan(500);
          |                              ^
      725 | });
      726 |
      727 | test("canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next", async ({ page }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:724:30

    Error Context: test-results/clusters-motion-rule-the-w-165eb-ame-and-keys-do-not-animate/error-context.md

  31) test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 0
    + Received  + 1

    @@ -1,8 +1,9 @@
      Array [
        "s-appearance",
        "s-windows",
    +   "s-hosts",
        "s-toolbar",
        "s-shortcuts",
        "s-devices",
        "s-account",
        "s-about",

      837 |   await open(page, 1);
      838 |   const sections = async (): Promise<string[]> => (await probe(page, (p) => p.views())).find((v) => v.id === "settings")!.windows;
    > 839 |   expect(await sections()).toEqual(["s-appearance", "s-windows", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", "s-users", "s-grants", "s-discovery"]);
          |                            ^
      840 |   // The sidebar lists it last, after a divider; the gear in the sidebar footer flies there.
      841 |   await page.locator("#sidebar-toggle").click();
      842 |   await expect(page.locator('#tree .bm-sec[data-id="view:settings"].cl-divided')).toHaveCount(1);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:839:28

    Error Context: test-results/clusters-settings-is-a-vie-c2a75-for-operators-nothing-modal/error-context.md

  32) test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 0.5
    Received:   12

      1109 |     // session manager are in the canvas row while a terminal is focused, and in ⌘K.
      1110 |     expect(pd.buttons).toEqual(["close"]);
    > 1111 |     expect(Math.abs(pd.aH - pd.tH)).toBeLessThan(0.5);
           |                                     ^
      1112 |     expect(Math.abs(pd.aTop - pd.tTop)).toBeLessThan(0.5);
      1113 |     const hits = await p.evaluate(() => {
      1114 |       const w = document.querySelector('.ui-window[data-window-id="w-build-01"]')!;
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:1111:37

    Error Context: test-results/clusters-window-header-act-d4932-with-touch-targets-of-44-px/error-context.md

  33) test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 

    Error: canvas row "views" fired a focus event on an input

    expect(received).toBe(expected) // Object.is equality

    Expected: 0
    Received: 1

      1156 |       s = await state();
      1157 |       expect(s.editable, `canvas row "${id}" focused an input`).toBe(false);
    > 1158 |       expect(s.focusIn, `canvas row "${id}" fired a focus event on an input`).toBe(0);
           |                                                                               ^
      1159 |       if (id === "input-lock") { await page.evaluate(() => document.querySelector<HTMLElement>('[data-cv="input-lock"]')!.click()); await page.waitForTimeout(500); } // the lock holds the key row; unlock it
      1160 |       await page.keyboard.press("Escape").catch(() => undefined);
      1161 |     }
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:1158:79

    Error Context: test-results/clusters-toolbar-and-keybo-094d8-key-row-and-keeps-its-focus/error-context.md

  34) test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ─

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 4
    + Received  + 4

      Array [
    -   251,
    -   251,
    -   251,
    -   0.78,
    +   0.980622,
    +   0.000315863,
    +   0.00124064,
    +   0.872627,
      ]

      138 |       return { background: style.backgroundColor, line: style.borderTopColor, shadow: style.boxShadow };
      139 |     });
    > 140 |     expect(cssChannels(paletteMaterial.background)).toEqual(cssChannels(material.root));
          |                                                     ^
      141 |     expect(cssChannels(paletteMaterial.line)).toEqual(cssChannels(material.rootLine));
      142 |     expect(paletteMaterial.shadow).toBe(sidebarMaterial.shadow);
      143 |     expect(paletteMaterial.shadow).not.toBe(material.layers[0]!.shadow);
        at screenshotMatrix (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/core-screen.spec.ts:140:53)
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/core-screen.spec.ts:219:27

    attachment #1: tracer-core-1440x900-paper-sidebar-closed (image/png) ───────────────────────────
    test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-closed-e42ff7ddb4978d41f8e3117adcc2e36e6a6d7fcd.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: tracer-core-1440x900-paper-sidebar-open (image/png) ─────────────────────────────
    test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-open-518fc7a1d297ac511c76f96016072cb8d9a58438.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/error-context.md

  35) test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 

    Error: apiRequestContext.post: socket hang up
    Call log:
      - → POST http://localhost:4637/__mock/text-output
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 97
        - cookie: __Host-infraternal=VIi6ivENDqo0ut_lij2Dbm1SBEGbsXshzlcy746OOQc


      26 |       await page.goto(`/?mock=1&theme=paper&bg=none&font=${font.id}`);
      27 |       await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true), { timeout: 30_000 }).toBe(true);
    > 28 |       const response = await context.request.post("/__mock/text-output", { data: { text: line86 } });
         |                                              ^
      29 |       const { bytes } = await response.json() as { bytes: number };
      30 |       await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.outputSequence)).toBe(String(bytes));
      31 |       await page.evaluate(() => window.__tracerTestDouble?.freezeCursorForTest());
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/font-metrics.spec.ts:28:46

    Error Context: test-results/font-metrics-Monaspace-Neo-1535f-cursor-on-its-cell-at-DPR-2/error-context.md

  36) test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 

    Error: apiRequestContext.post: socket hang up
    Call log:
      - → POST http://localhost:4637/__mock/text-output
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 117
        - cookie: __Host-infraternal=1baFeqCv9XREhTtYpyTCTtTvGKIGz2jdxw6b0SPsfFg


      24 |         // Regular row, then the same row in bold, so the two ink totals compare like for like.
      25 |         const text = `${row}\r\n\u001b[1m${row}\u001b[0m\r\n`;
    > 26 |         const { bytes } = await (await context.request.post("/__mock/text-output", { data: { text } })).json() as { bytes: number };
         |                                                        ^
      27 |         await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.outputSequence)).toBe(String(bytes));
      28 |         await page.evaluate(() => window.__tracerTestDouble?.freezeCursorForTest());
      29 |         await page.waitForTimeout(100);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/font-weight.spec.ts:26:56

    Error Context: test-results/font-weight-Maple-Mono-NF--dd483-s-registry-weights-at-DPR-1/error-context.md

  37) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id BFF35299388CB1FABA061976E3574A48

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-e364b-urface-at-level-1-ink-DPR-1/error-context.md

  38) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 1 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-014a6-urface-at-level-2-ink-DPR-1/error-context.md

  39) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 1 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-xilitD --remote-debugging-pipe --no-startup-window
    <launched> pid=3798422
    [pid=3798422][err] [1011/152622.974957:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=3798422][err] [1011/152640.218347:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=3&session=64b38b7e-130e-4cd2-a042-5d35c9f0bfcb (0)
    [pid=3798422] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-69fab-urface-at-level-3-ink-DPR-1/error-context.md

  40) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 1 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-34bda-urface-at-level-4-ink-DPR-1/error-context.md

  41) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 3 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-ca664-urface-at-level-1-ink-DPR-3/error-context.md

  42) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 3 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id BAE000705BA591FFDB6CD81D8F0629F8

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-f4255-urface-at-level-2-ink-DPR-3/error-context.md

  43) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 3 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-JvscBt --remote-debugging-pipe --no-startup-window
    <launched> pid=3847314
    [pid=3847314][err] [1011/153428.960521:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=3847314][err] [1011/153445.123675:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=3&session=9022224f-f110-4a26-a04b-2ff9ca9c849a (0)
    [pid=3847314] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-122ea-urface-at-level-3-ink-DPR-3/error-context.md

  44) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 3 ───────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-X1fxQ5 --remote-debugging-pipe --no-startup-window
    <launched> pid=3853347
    [pid=3853347][err] [1011/153631.103374:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=3853347][err] [1011/153650.454258:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=4&session=c36690de-c42c-4ff3-a87f-dc1d6ed9c70f (0)
    [pid=3853347] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-ab72d-urface-at-level-4-ink-DPR-3/error-context.md

  45) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 1 ─────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-02ae3-face-at-level-1-paper-DPR-1/error-context.md

  46) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 1 ─────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-89c70-face-at-level-2-paper-DPR-1/error-context.md

  47) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 1 ─────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id 1B78F25F6A68AED1F671036608842278

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-69ea7-face-at-level-3-paper-DPR-1/error-context.md

  48) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 1 ─────

    Test timeout of 120000ms exceeded.

#163 verbatim evidence: playwright-scoped.log (5/7) ```text Error Context: test-results/clusters-grid-split-right--2aab6--beside-it-keeps-its-height/error-context.md 14) test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view Test timeout of 120000ms exceeded. Error: locator.click: Test timeout of 120000ms exceeded. Call log: - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first() 60 | } 61 | > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400)); | ^ 63 | 64 | async function press(page: Page, chord: string[]): Promise<void> { 65 | for (const k of chord) await page.keyboard.down(k); at activate (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:62:144) at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:244:11 Error Context: test-results/clusters-grid-camera-and-s-e8dec--brings-all-of-it-into-view/error-context.md 15) test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen Error: w-nix-cache right edge expect(received).toBeLessThanOrEqual(expected) Expected: <= 394 Received: 744 370 | expect(framed.length).toBeGreaterThan(0); 371 | for (const p of framed) expect(p.headLeft, `${p.id} header left edge`).toBeGreaterThanOrEqual(-1); > 372 | for (const p of framed) expect(p.right, `${p.id} right edge`).toBeLessThanOrEqual(vw + 1); | ^ 373 | }); 374 | }); 375 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-grid.spec.ts:372:67 Error Context: test-results/clusters-grid-the-phone-af-6f47e-s-header-stay-on-the-screen/error-context.md 16) test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames Error: holding the key adds no work: at most a stray dropped frame after the split itself expect(received).toBeLessThanOrEqual(expected) Expected: <= 4 Received: 42 51 | expect(m.goo, "a key split plays no silhouette").toBe(0); 52 | // An unbound key held the same way drops a frame or two on this headless setup as well; a flood would be dozens. > 53 | expect(m.late.length, "holding the key adds no work: at most a stray dropped frame after the split itself").toBeLessThanOrEqual(4); | ^ 54 | expect(Math.max(0, ...m.late), "and none of them is long").toBeLessThan(60); 55 | }); 56 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-keyboard-split.spec.ts:53:111 Error Context: test-results/clusters-keyboard-split-a--d5528-lits-once-with-short-frames/error-context.md 17) test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell Error: expect(received).toBe(expected) // Object.is equality Expected: 1 Received: 0 48 | await page.keyboard.press("?"); 49 | await page.waitForTimeout(1000); > 50 | expect((await panels(page)).length).toBe(presses % 2 ? 0 : 1); | ^ 51 | }); 52 | } 53 | } at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:50:43 Error Context: test-results/clusters-shortcuts-spam-20-4dc20-closed-never-an-empty-shell/error-context.md 18) test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell Error: expect(received).toHaveLength(expected) Expected length: 1 Received length: 0 Received array: [] 37 | expect(most, "at most one panel is ever mounted").toBeLessThanOrEqual(1); 38 | if (presses % 2) { > 39 | expect(end).toHaveLength(1); | ^ 40 | expect(end[0]!.rows).toBeGreaterThan(5); 41 | expect(end[0]!.clip, "settled open: no clip left").toBe(""); 42 | expect(end[0]!.headOpacity).toBe("1"); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:39:21 Error Context: test-results/clusters-shortcuts-spam-21-a9a41-ontent-never-an-empty-shell/error-context.md 19) test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell Error: expect(received).toBe(expected) // Object.is equality Expected: 1 Received: 0 48 | await page.keyboard.press("?"); 49 | await page.waitForTimeout(1000); > 50 | expect((await panels(page)).length).toBe(presses % 2 ? 0 : 1); | ^ 51 | }); 52 | } 53 | } at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:50:43 Error Context: test-results/clusters-shortcuts-spam-20-e6ba1-closed-never-an-empty-shell/error-context.md 20) test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell Error: expect(received).toHaveLength(expected) Expected length: 1 Received length: 0 Received array: [] 37 | expect(most, "at most one panel is ever mounted").toBeLessThanOrEqual(1); 38 | if (presses % 2) { > 39 | expect(end).toHaveLength(1); | ^ 40 | expect(end[0]!.rows).toBeGreaterThan(5); 41 | expect(end[0]!.clip, "settled open: no clip left").toBe(""); 42 | expect(end[0]!.headOpacity).toBe("1"); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-shortcuts-spam.spec.ts:39:21 Error Context: test-results/clusters-shortcuts-spam-21-52b26-ontent-never-an-empty-shell/error-context.md 21) test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows ─ Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 9 41 | await swipes(page, "x", 6, gap, { x: 700, y: 450 }); 42 | const after = (await api(page, "canvasLock")) as { index: number }; > 43 | expect(after.index - before.index).toBe(6); | ^ 44 | }); 45 | 46 | test(`six vertical swipes ${gap} ms apart move six windows down a column`, async ({ page }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:43:40 Error Context: test-results/clusters-swipes-both-six-h-71a4c-0-ms-apart-move-six-windows/error-context.md 22) test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 8 64 | expect(await index()).toBe(0); 65 | await swipes(page, "y", 6, gap, pos); > 66 | expect(await index()).toBe(6); | ^ 67 | }); 68 | } 69 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:66:27 Error Context: test-results/clusters-swipes-both-six-v-5461e-e-six-windows-down-a-column/error-context.md 23) test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows ── Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 7 41 | await swipes(page, "x", 6, gap, { x: 700, y: 450 }); 42 | const after = (await api(page, "canvasLock")) as { index: number }; > 43 | expect(after.index - before.index).toBe(6); | ^ 44 | }); 45 | 46 | test(`six vertical swipes ${gap} ms apart move six windows down a column`, async ({ page }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:43:40 Error Context: test-results/clusters-swipes-both-six-h-79784-0-ms-apart-move-six-windows/error-context.md 24) test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 7 64 | expect(await index()).toBe(0); 65 | await swipes(page, "y", 6, gap, pos); > 66 | expect(await index()).toBe(6); | ^ 67 | }); 68 | } 69 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes-both.spec.ts:66:27 Error Context: test-results/clusters-swipes-both-six-v-63b59-e-six-windows-down-a-column/error-context.md 25) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events Error: windows moved by six swipes expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 8 44 | await swipes(page, 6, 330, momentum); 45 | const after = (await api("canvasLock")) as { index: number }; > 46 | expect(after.index - lock.index, "windows moved by six swipes").toBe(6); | ^ 47 | }); 48 | } 49 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes.spec.ts:46:69 Error Context: test-results/clusters-swipes-six-swipes-64602-her-without-momentum-events/error-context.md 26) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events Error: windows moved by six swipes expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 9 44 | await swipes(page, 6, 330, momentum); 45 | const after = (await api("canvasLock")) as { index: number }; > 46 | expect(after.index - lock.index, "windows moved by six swipes").toBe(6); | ^ 47 | }); 48 | } 49 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-swipes.spec.ts:46:69 Error Context: test-results/clusters-swipes-six-swipes-86866-urther-with-momentum-events/error-context.md 27) test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted ──────────────────────── Error: expect(received).toBeLessThan(expected) Expected: < 400 Received: 458.0026666666667 65 | const zoomIn = await bench(page, cdp, `${look.name} zoom in`, back); 66 | console.log(`ZOOM ${look.name} zoom ${z0.toFixed(2)} -> ${z1.toFixed(2)} -> ${(await zAt()).toFixed(2)}`); > 67 | expect(Math.max(zoomOut.perFrame, zoomIn.perFrame)).toBeLessThan(400); | ^ 68 | }); 69 | } 70 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters-zoom-bench.spec.ts:67:57 Error Context: test-results/clusters-zoom-bench-zoom-with-21-windows-Frosted/error-context.md 28) test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows Error: expect(received).toBe(expected) // Object.is equality Expected: "keys" Received: "canvas" Call Log: - Timeout 5000ms exceeded while waiting on the predicate 555 | for (let i = 1; i <= 7; i++) { await t.touch("touchMove", [{ x: tray.x + 100, y: tray.y + 32 - i * 6 }]); await page.waitForTimeout(40); } 556 | await t.touch("touchEnd", []); > 557 | await expect.poll(row).toBe("keys"); | ^ 558 | await page.waitForTimeout(500); 559 | await swipe(t, { x: tray.x + 100, y: tray.y + 12 }, { x: tray.x + 100, y: tray.y + 44 }, 6); 560 | await expect.poll(row).toBe("canvas"); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:557:28 Error Context: test-results/clusters-toolbar-the-keybo-cd378-ipes-switch-and-scroll-rows/error-context.md 29) test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row TypeError: Cannot read properties of null (reading 'height') 580 | expect(await state()).toBe("off"); 581 | const box = (await ctrl.boundingBox())!; > 582 | expect(box.height).toBeGreaterThanOrEqual(44); | ^ 583 | await page.touchscreen.tap(box.x + box.width / 2, box.y + box.height / 2); 584 | await expect.poll(state).toBe("armed"); 585 | await page.waitForTimeout(500); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:582:16 Error Context: test-results/clusters-toolbar-Ctrl-latc-1cd33-ck-work-from-the-canvas-row/error-context.md 30) test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate Error: expect(received).toBeGreaterThan(expected) Expected: > 500 Received: 0 722 | expect(costs.windowStep).toBeLessThan(16); 723 | expect(costs.canvasLockToggle).toBeLessThan(16); > 724 | expect(costs.keyJumpMoved).toBeGreaterThan(500); | ^ 725 | }); 726 | 727 | test("canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next", async ({ page }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:724:30 Error Context: test-results/clusters-motion-rule-the-w-165eb-ame-and-keys-do-not-animate/error-context.md 31) test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 @@ -1,8 +1,9 @@ Array [ "s-appearance", "s-windows", + "s-hosts", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", 837 | await open(page, 1); 838 | const sections = async (): Promise<string[]> => (await probe(page, (p) => p.views())).find((v) => v.id === "settings")!.windows; > 839 | expect(await sections()).toEqual(["s-appearance", "s-windows", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", "s-users", "s-grants", "s-discovery"]); | ^ 840 | // The sidebar lists it last, after a divider; the gear in the sidebar footer flies there. 841 | await page.locator("#sidebar-toggle").click(); 842 | await expect(page.locator('#tree .bm-sec[data-id="view:settings"].cl-divided')).toHaveCount(1); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:839:28 Error Context: test-results/clusters-settings-is-a-vie-c2a75-for-operators-nothing-modal/error-context.md 32) test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px Error: expect(received).toBeLessThan(expected) Expected: < 0.5 Received: 12 1109 | // session manager are in the canvas row while a terminal is focused, and in ⌘K. 1110 | expect(pd.buttons).toEqual(["close"]); > 1111 | expect(Math.abs(pd.aH - pd.tH)).toBeLessThan(0.5); | ^ 1112 | expect(Math.abs(pd.aTop - pd.tTop)).toBeLessThan(0.5); 1113 | const hits = await p.evaluate(() => { 1114 | const w = document.querySelector('.ui-window[data-window-id="w-build-01"]')!; at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:1111:37 Error Context: test-results/clusters-window-header-act-d4932-with-touch-targets-of-44-px/error-context.md 33) test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus Error: canvas row "views" fired a focus event on an input expect(received).toBe(expected) // Object.is equality Expected: 0 Received: 1 1156 | s = await state(); 1157 | expect(s.editable, `canvas row "${id}" focused an input`).toBe(false); > 1158 | expect(s.focusIn, `canvas row "${id}" fired a focus event on an input`).toBe(0); | ^ 1159 | if (id === "input-lock") { await page.evaluate(() => document.querySelector<HTMLElement>('[data-cv="input-lock"]')!.click()); await page.waitForTimeout(500); } // the lock holds the key row; unlock it 1160 | await page.keyboard.press("Escape").catch(() => undefined); 1161 | } at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/clusters.spec.ts:1158:79 Error Context: test-results/clusters-toolbar-and-keybo-094d8-key-row-and-keeps-its-focus/error-context.md 34) test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ─ Error: expect(received).toEqual(expected) // deep equality - Expected - 4 + Received + 4 Array [ - 251, - 251, - 251, - 0.78, + 0.980622, + 0.000315863, + 0.00124064, + 0.872627, ] 138 | return { background: style.backgroundColor, line: style.borderTopColor, shadow: style.boxShadow }; 139 | }); > 140 | expect(cssChannels(paletteMaterial.background)).toEqual(cssChannels(material.root)); | ^ 141 | expect(cssChannels(paletteMaterial.line)).toEqual(cssChannels(material.rootLine)); 142 | expect(paletteMaterial.shadow).toBe(sidebarMaterial.shadow); 143 | expect(paletteMaterial.shadow).not.toBe(material.layers[0]!.shadow); at screenshotMatrix (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/core-screen.spec.ts:140:53) at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/core-screen.spec.ts:219:27 attachment #1: tracer-core-1440x900-paper-sidebar-closed (image/png) ─────────────────────────── test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-closed-e42ff7ddb4978d41f8e3117adcc2e36e6a6d7fcd.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: tracer-core-1440x900-paper-sidebar-open (image/png) ───────────────────────────── test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-open-518fc7a1d297ac511c76f96016072cb8d9a58438.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/error-context.md 35) test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 Error: apiRequestContext.post: socket hang up Call log: - → POST http://localhost:4637/__mock/text-output - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 97 - cookie: __Host-infraternal=VIi6ivENDqo0ut_lij2Dbm1SBEGbsXshzlcy746OOQc 26 | await page.goto(`/?mock=1&theme=paper&bg=none&font=${font.id}`); 27 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true), { timeout: 30_000 }).toBe(true); > 28 | const response = await context.request.post("/__mock/text-output", { data: { text: line86 } }); | ^ 29 | const { bytes } = await response.json() as { bytes: number }; 30 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.outputSequence)).toBe(String(bytes)); 31 | await page.evaluate(() => window.__tracerTestDouble?.freezeCursorForTest()); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/font-metrics.spec.ts:28:46 Error Context: test-results/font-metrics-Monaspace-Neo-1535f-cursor-on-its-cell-at-DPR-2/error-context.md 36) test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 Error: apiRequestContext.post: socket hang up Call log: - → POST http://localhost:4637/__mock/text-output - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 117 - cookie: __Host-infraternal=1baFeqCv9XREhTtYpyTCTtTvGKIGz2jdxw6b0SPsfFg 24 | // Regular row, then the same row in bold, so the two ink totals compare like for like. 25 | const text = `${row}\r\n\u001b[1m${row}\u001b[0m\r\n`; > 26 | const { bytes } = await (await context.request.post("/__mock/text-output", { data: { text } })).json() as { bytes: number }; | ^ 27 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.outputSequence)).toBe(String(bytes)); 28 | await page.evaluate(() => window.__tracerTestDouble?.freezeCursorForTest()); 29 | await page.waitForTimeout(100); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/font-weight.spec.ts:26:56 Error Context: test-results/font-weight-Maple-Mono-NF--dd483-s-registry-weights-at-DPR-1/error-context.md 37) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id BFF35299388CB1FABA061976E3574A48 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-e364b-urface-at-level-1-ink-DPR-1/error-context.md 38) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 1 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-014a6-urface-at-level-2-ink-DPR-1/error-context.md 39) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 1 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-xilitD --remote-debugging-pipe --no-startup-window <launched> pid=3798422 [pid=3798422][err] [1011/152622.974957:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=3798422][err] [1011/152640.218347:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=3&session=64b38b7e-130e-4cd2-a042-5d35c9f0bfcb (0) [pid=3798422] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-69fab-urface-at-level-3-ink-DPR-1/error-context.md 40) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 1 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-34bda-urface-at-level-4-ink-DPR-1/error-context.md 41) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 3 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-ca664-urface-at-level-1-ink-DPR-3/error-context.md 42) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 3 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id BAE000705BA591FFDB6CD81D8F0629F8 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-f4255-urface-at-level-2-ink-DPR-3/error-context.md 43) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 3 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-JvscBt --remote-debugging-pipe --no-startup-window <launched> pid=3847314 [pid=3847314][err] [1011/153428.960521:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=3847314][err] [1011/153445.123675:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=3&session=9022224f-f110-4a26-a04b-2ff9ca9c849a (0) [pid=3847314] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-122ea-urface-at-level-3-ink-DPR-3/error-context.md 44) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 3 ─────── Test timeout of 120000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-X1fxQ5 --remote-debugging-pipe --no-startup-window <launched> pid=3853347 [pid=3853347][err] [1011/153631.103374:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=3853347][err] [1011/153650.454258:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=4&session=c36690de-c42c-4ff3-a87f-dc1d6ed9c70f (0) [pid=3853347] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-ab72d-urface-at-level-4-ink-DPR-3/error-context.md 45) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 1 ───── Test timeout of 120000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-02ae3-face-at-level-1-paper-DPR-1/error-context.md 46) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 1 ───── Test timeout of 120000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-89c70-face-at-level-2-paper-DPR-1/error-context.md 47) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 1 ───── Test timeout of 120000ms exceeded. Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id 1B78F25F6A68AED1F671036608842278 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-69ea7-face-at-level-3-paper-DPR-1/error-context.md 48) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 1 ───── Test timeout of 120000ms exceeded. ```
Author
Owner

#163 verbatim evidence: playwright-scoped.log (6/7)

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-aiqGzp --remote-debugging-pipe --no-startup-window
    <launched> pid=3948444
    [pid=3948444][err] [1011/154439.819522:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=3948444][err] [1011/154456.074493:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=paper&bg=soft&card=4&session=0394de7f-2af2-4374-8fe2-72ab626e04fb (0)
    [pid=3948444] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-eccb0-face-at-level-4-paper-DPR-1/error-context.md

  49) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 3 ─────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-29978-face-at-level-1-paper-DPR-3/error-context.md

  50) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 3 ─────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-sj5VUS --remote-debugging-pipe --no-startup-window
    <launched> pid=3975904
    [pid=3975904][err] [1011/154844.708882:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=3975904][err] [1011/154909.851431:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=paper&bg=soft&card=2&session=4f31b57c-99f7-4879-9a8c-ecaad8d847c8 (0)
    [pid=3975904] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-b3bd2-face-at-level-2-paper-DPR-3/error-context.md

  51) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 3 ─────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id BEB393874A51BD0ECAC80DC93C42CAA0

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-56811-face-at-level-3-paper-DPR-3/error-context.md

  52) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 3 ─────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-AdgnXa --remote-debugging-pipe --no-startup-window
    <launched> pid=4004367
    [pid=4004367][err] [1011/155248.884113:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=4004367][err] [1011/155304.615852:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=paper&bg=soft&card=4&session=e21865f6-05fc-490b-94e4-2be5ba7af6b6 (0)
    [pid=4004367] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-3fe53-face-at-level-4-paper-DPR-3/error-context.md

  53) test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag 

    Error: drag p95

    expect(received).toBeLessThan(expected)

    Expected: < 8
    Received:   11.44

      83 |   // bounds are what the build measures today with a margin, so that a regression shows; the target stays in the report.
      84 |   expect(out.drag!.p50, "drag median").toBeLessThan(3);
    > 85 |   expect(out.drag!.p95, "drag p95").toBeLessThan(8);
         |                                     ^
      86 |   expect(out.pan!.p50, "pan median").toBeLessThan(9);
      87 |   expect(out.zoom!.p50, "zoom median").toBeLessThan(12);
      88 |   for (const k of Object.keys(out)) expect(out[k]!.p95, `${k} p95`).toBeLessThan(60);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/mesh-perf.spec.ts:85:37

    Error Context: test-results/mesh-perf-1-000-nodes-the--12417--of-a-zoom-a-pan-and-a-drag/error-context.md

  54) test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "0.2s"
    Received: undefined

      387 |     return { idleFilter: idle.filter, idleScale: new DOMMatrixReadOnly(idle.transform).a, doneFilter: done.filter };
      388 |   });
    > 389 |   expect(copyFilter?.duration).toBe("0.2s");
          |                                ^
      390 |   expect(copyDraw).toMatchObject({ duration: "0.26s", delay: "0.05s" });
      391 |   // Both blur endpoints may be sampled just before their last compositor frame.
      392 |   // Apply the existing 0.01px settling epsilon to the 2px endpoint as well.
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/motion-audit.spec.ts:389:32

    attachment #1: production setup (image/png) ────────────────────────────────────────────────────
    test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-setup-0b47e5f5ab9af2fe24b5368cdbc2bf6190c6a547.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: production recovery (image/png) ─────────────────────────────────────────────────
    test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-recovery-33fa9586ade8d8819ade62afd30133266d5c28cb.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/error-context.md

  55) test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

    Call Log:
    - Timeout 5000ms exceeded while waiting on the predicate

      204 |   const signInTransitions = await page.evaluate(() => (window as Window & { __signinTransitions?: string[] }).__signinTransitions ?? []);
      205 |   expect(signInTransitions).toEqual([]);
    > 206 |   await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true);
          |                                                                                                   ^
      207 |   console.log(`ONBOARDING_SCREENSHOTS ${screenshots.join(" ")}`);
      208 | });
      209 |
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/onboarding.spec.ts:206:99

    attachment #1: step-1-token-iphone-15 (image/png) ──────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-iphone-15-987d8580ba99664fd815b1527b50bcc3901b27c1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: step-1-token-desktop (image/png) ────────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-desktop-f95711795eb7a492a87b873d2d87cfa40ea998cd.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #3: step-2-identity-iphone-15 (image/png) ───────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-iphone-15-aa823acc3f0c0cfe5c5790a684bcbb630d662cb8.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #4: step-2-identity-desktop (image/png) ─────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-desktop-dac5f957c88ccfad1eebe2c7a612ec5ff1658a5c.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #5: step-3-passkey-iphone-15 (image/png) ────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-iphone-15-00f7a8c1a73ace79f63ad81821ee2f0a33575b04.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #6: step-3-passkey-desktop (image/png) ──────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-desktop-06cb171f1dfca417c126c07ba1504564fd5b2b8c.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #7: step-4-recovery-iphone-15 (image/png) ───────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-iphone-15-1a0fb7a7d4c92e329e4e4f165221ef11eb221edf.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #8: step-4-recovery-desktop (image/png) ─────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-desktop-b8f2a1477e242fa35583c136a9e01f9bfabfbc70.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #9: welcome-iphone-15 (image/png) ───────────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-iphone-15-3af350ce22d6f0a811a37186a3ddb32f0e2d940d.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #10: welcome-desktop (image/png) ────────────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-desktop-3d3c1ac1aa716faf36b0442b23dac3aa85bebf59.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #11: returning-sign-in-iphone-15 (image/png) ────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-iphone-15-d9b7ab56ecf673f85999c7bd8c5fac47c486e67f.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #12: returning-sign-in-desktop (image/png) ──────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-desktop-0595209964469e42c8f63f04d54b3d4387de178f.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/error-context.md

  56) test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile 

    Error: expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 0.13
    Received:    0.3939999997615814

      117 |   console.log(`METRIC name=palette_filter_handler_ms_per_input value=${millisecondsPerFilter.toFixed(4)} inputs=100 viewport=1440x900`);
      118 |   expect(millisecondsPerArrow).toBeGreaterThanOrEqual(0);
    > 119 |   expect(millisecondsPerFilter).toBeLessThanOrEqual(0.13);
          |                                 ^
      120 | }
      121 |
      122 | async function walkDownAndUp(page: Page): Promise<void> {
        at measureHandlers (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/palette-navigation.spec.ts:119:33)
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/palette-navigation.spec.ts:169:3

    Error Context: test-results/palette-navigation-palette-08dcc-sible-on-desktop-and-mobile/error-context.md

  57) test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints 

    Error: expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 286
    Received:    454

      114 |   }
      115 |   expect(sum("meter", "layout")).toBeLessThanOrEqual(sum("empty-raf", "layout") + 3);
    > 116 |   expect(sum("meter", "style")).toBeLessThanOrEqual(Math.ceil(sum("empty-raf", "style") * 1.05) + 3);
          |                                 ^
      117 |   await hud(page).call((h) => { h.pauseRepaint(); return 0; });
      118 |   // Nothing in the meter's own subtree changes while the repaint is stopped: the loop writes the ring and nothing else.
      119 |   const mutations = await page.evaluate(() => new Promise<number>((done) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/perf-hud.spec.ts:116:33

    Error Context: test-results/perf-hud-the-frame-body-co-c2992-style-work-between-repaints/error-context.md

  58) test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph 

    Error: expect(locator).toBeVisible() failed

    Locator: locator('.ui-shortcuts')
    Expected: visible
    Timeout: 5000ms
    Error: element(s) not found

    Call log:
      - Expect "toBeVisible" with timeout 5000ms
      - waiting for locator('.ui-shortcuts')


      172 |   await page.keyboard.press("?");
      173 |   const panel = page.locator(".ui-shortcuts");
    > 174 |   await expect(panel).toBeVisible();
          |                       ^
      175 |   await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]);
      176 |   expect(await panel.innerText()).not.toMatch(APPLE_GLYPHS);
      177 |   await page.keyboard.press("Escape");
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/platform-consistency.spec.ts:174:23

    Error Context: test-results/platform-consistency-Windo-c6a86-n-words-with-no-Apple-glyph/error-context.md

  59) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 6
    Received:   201

      192 |     await expect(page.locator("#palette")).toBeVisible();
      193 |     await expect.poll(async () => (await scrollState(page)).overflows).toBe(true);
    > 194 |     expect(await trackSpread(page)).toBeLessThan(6);
          |                                     ^
      195 |     await page.locator("#palette-results").hover();
      196 |     await page.mouse.wheel(0, 160);
      197 |     await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/platform-consistency.spec.ts:194:37

    Error Context: test-results/platform-consistency-captu-ea6fb--a-thin-bar-while-scrolling/error-context.md

  60) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 6
    Received:   87

      192 |     await expect(page.locator("#palette")).toBeVisible();
      193 |     await expect.poll(async () => (await scrollState(page)).overflows).toBe(true);
    > 194 |     expect(await trackSpread(page)).toBeLessThan(6);
          |                                     ^
      195 |     await page.locator("#palette-results").hover();
      196 |     await page.mouse.wheel(0, 160);
      197 |     await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/platform-consistency.spec.ts:194:37

    Error Context: test-results/platform-consistency-captu-c649d--a-thin-bar-while-scrolling/error-context.md

  61) test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 2
    Received:   6.100000023841858

      188 |   const screen = await page.evaluate(() => window.__tracerTestDouble?.screenText() ?? "");
      189 |   expect(screen.split("\n").slice(0, second.model.text.length).map((row) => row.trimEnd())).toEqual(second.model.text);
    > 190 |   expect(second.maxInputCostMs).toBeLessThan(KEY_COST_BUDGET_MS);
          |                                 ^
      191 | });
      192 |
      193 | test(`rapid backspaces with no gap land on the host cursor at DPR ${dpr}`, async ({ page, context }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-backspace.spec.ts:190:33

    Error Context: test-results/predictive-backspace-backs-94c4b-sor-on-exact-cells-at-DPR-1/error-context.md

  62) test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 2
    Received:   12.400000035762787

      331 |   console.log(`first-key cost ${costs[0]!.toFixed(2)} ms; rest max ${Math.max(...costs.slice(1)).toFixed(2)} ms`);
      332 |   expect(costs.length).toBe(9);
    > 333 |   expect(Math.max(...costs)).toBeLessThan(KEY_COST_BUDGET_MS);
          |                              ^
      334 | });
      335 |
      336 | test(`typing through a layout change keeps predicting without mispredictions at DPR ${dpr}`, async ({ page, context }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-backspace.spec.ts:333:30

    Error Context: test-results/predictive-backspace-the-f-fcfc7-the-per-key-budget-at-DPR-1/error-context.md

  63) test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 

    Error: expect(received).toBeGreaterThan(expected)

    Expected: > 18
    Received:   0

      122 |     right: Math.round((box.x + box.width) * dpr) - 1,
      123 |   };
    > 124 |   expect(pixels.cursorChanged.count).toBeGreaterThan(dpr * dpr * box.width * box.height * 0.5);
          |                                      ^
      125 |   expect(Math.abs(pixels.cursorChanged.minX - expected.left)).toBeLessThanOrEqual(1);
      126 |   expect(Math.abs(pixels.cursorChanged.maxX - expected.right)).toBeLessThanOrEqual(1);
      127 | }
        at expectCursorPixelBounds (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-echo.spec.ts:124:38)
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-echo.spec.ts:408:3

    Error Context: test-results/predictive-echo-predicted--8ce89-ch-confirmed-cells-at-DPR-1/error-context.md

  64) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "visible"
    Received: "hidden"

      559 |       // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque.
      560 |       expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility))
    > 561 |         .toBe("visible");
          |          ^
      562 |
      563 |       await expect.poll(async () => {
      564 |         const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string };
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-echo.spec.ts:561:10

    attachment #1: predictive-mobile-ink-pending (image/png) ───────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-15618547813093efe514854c389a2d92daa00435.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md

  65) test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      3085 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-mobile.png

    Call log:
      - Expect "toHaveScreenshot(signin-mobile.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 3085 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 3085 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-mobile (image/png) ───────────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-linux.png
    Received: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-actual.png
    Diff:     test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/error-context.md

  66) test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      3048 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-desktop.png

    Call log:
      - Expect "toHaveScreenshot(signin-desktop.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 3048 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 3048 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-desktop (image/png) ──────────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-linux.png
    Received: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-actual.png
    Diff:     test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/error-context.md

  67) test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      2007 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-mobile-light.png

    Call log:
      - Expect "toHaveScreenshot(signin-mobile-light.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 2007 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 2007 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-mobile-light (image/png) ─────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-light-linux.png
    Received: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-actual.png
    Diff:     test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/error-context.md

  68) test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      2033 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-desktop-light.png

    Call log:
      - Expect "toHaveScreenshot(signin-desktop-light.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 2033 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 2033 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-desktop-light (image/png) ────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-light-linux.png
    Received: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-actual.png
    Diff:     test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/error-context.md

  69) test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary 

    Error: apiRequestContext.post: socket hang up
    Call log:
      - → POST http://localhost:4637/__mock/fixture
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 37
        - cookie: __Host-infraternal=jEqDZrkjmpI8vtwTyLOzu7y7Mlket5xjZkljYuZypIA


      56 |     })).toEqual({ cols: 205, rows: 56 });
      57 |
    > 58 |     const fixtureResponse = await context.request.post("/__mock/fixture", { data: { name: fixture.name } });
         |                                                   ^
      59 |     expect(fixtureResponse.status(), "the fixture must match its checked-in size and SHA256").toBe(200);
      60 |     const fixtureResult = await fixtureResponse.json() as { bytes: number; sha256: string };
      61 |     expect(fixtureResult.bytes).toBe(fixture.bytes);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/renderer-regression.spec.ts:58:51

    Error Context: test-results/renderer-regression-render-6b19f-679-bin-and-paints-a-canary/error-context.md

  70) test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ─────

    Error: apiRequestContext.post: socket hang up
    Call log:
#163 verbatim evidence: playwright-scoped.log (6/7) ```text Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-aiqGzp --remote-debugging-pipe --no-startup-window <launched> pid=3948444 [pid=3948444][err] [1011/154439.819522:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=3948444][err] [1011/154456.074493:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=paper&bg=soft&card=4&session=0394de7f-2af2-4374-8fe2-72ab626e04fb (0) [pid=3948444] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-eccb0-face-at-level-4-paper-DPR-1/error-context.md 49) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 3 ───── Test timeout of 120000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-29978-face-at-level-1-paper-DPR-3/error-context.md 50) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 3 ───── Test timeout of 120000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-sj5VUS --remote-debugging-pipe --no-startup-window <launched> pid=3975904 [pid=3975904][err] [1011/154844.708882:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=3975904][err] [1011/154909.851431:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=paper&bg=soft&card=2&session=4f31b57c-99f7-4879-9a8c-ecaad8d847c8 (0) [pid=3975904] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-b3bd2-face-at-level-2-paper-DPR-3/error-context.md 51) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 3 ───── Test timeout of 120000ms exceeded. Error: browserContext.close: Protocol error (Target.disposeBrowserContext): Failed to find context with id BEB393874A51BD0ECAC80DC93C42CAA0 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-56811-face-at-level-3-paper-DPR-3/error-context.md 52) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 3 ───── Test timeout of 120000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-AdgnXa --remote-debugging-pipe --no-startup-window <launched> pid=4004367 [pid=4004367][err] [1011/155248.884113:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=4004367][err] [1011/155304.615852:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=paper&bg=soft&card=4&session=e21865f6-05fc-490b-94e4-2be5ba7af6b6 (0) [pid=4004367] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-3fe53-face-at-level-4-paper-DPR-3/error-context.md 53) test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag Error: drag p95 expect(received).toBeLessThan(expected) Expected: < 8 Received: 11.44 83 | // bounds are what the build measures today with a margin, so that a regression shows; the target stays in the report. 84 | expect(out.drag!.p50, "drag median").toBeLessThan(3); > 85 | expect(out.drag!.p95, "drag p95").toBeLessThan(8); | ^ 86 | expect(out.pan!.p50, "pan median").toBeLessThan(9); 87 | expect(out.zoom!.p50, "zoom median").toBeLessThan(12); 88 | for (const k of Object.keys(out)) expect(out[k]!.p95, `${k} p95`).toBeLessThan(60); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/mesh-perf.spec.ts:85:37 Error Context: test-results/mesh-perf-1-000-nodes-the--12417--of-a-zoom-a-pan-and-a-drag/error-context.md 54) test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens Error: expect(received).toBe(expected) // Object.is equality Expected: "0.2s" Received: undefined 387 | return { idleFilter: idle.filter, idleScale: new DOMMatrixReadOnly(idle.transform).a, doneFilter: done.filter }; 388 | }); > 389 | expect(copyFilter?.duration).toBe("0.2s"); | ^ 390 | expect(copyDraw).toMatchObject({ duration: "0.26s", delay: "0.05s" }); 391 | // Both blur endpoints may be sampled just before their last compositor frame. 392 | // Apply the existing 0.01px settling epsilon to the 2px endpoint as well. at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/motion-audit.spec.ts:389:32 attachment #1: production setup (image/png) ──────────────────────────────────────────────────── test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-setup-0b47e5f5ab9af2fe24b5368cdbc2bf6190c6a547.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: production recovery (image/png) ───────────────────────────────────────────────── test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-recovery-33fa9586ade8d8819ade62afd30133266d5c28cb.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/error-context.md 55) test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false Call Log: - Timeout 5000ms exceeded while waiting on the predicate 204 | const signInTransitions = await page.evaluate(() => (window as Window & { __signinTransitions?: string[] }).__signinTransitions ?? []); 205 | expect(signInTransitions).toEqual([]); > 206 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true); | ^ 207 | console.log(`ONBOARDING_SCREENSHOTS ${screenshots.join(" ")}`); 208 | }); 209 | at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/onboarding.spec.ts:206:99 attachment #1: step-1-token-iphone-15 (image/png) ────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-iphone-15-987d8580ba99664fd815b1527b50bcc3901b27c1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: step-1-token-desktop (image/png) ──────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-desktop-f95711795eb7a492a87b873d2d87cfa40ea998cd.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: step-2-identity-iphone-15 (image/png) ─────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-iphone-15-aa823acc3f0c0cfe5c5790a684bcbb630d662cb8.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #4: step-2-identity-desktop (image/png) ───────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-desktop-dac5f957c88ccfad1eebe2c7a612ec5ff1658a5c.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #5: step-3-passkey-iphone-15 (image/png) ──────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-iphone-15-00f7a8c1a73ace79f63ad81821ee2f0a33575b04.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #6: step-3-passkey-desktop (image/png) ────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-desktop-06cb171f1dfca417c126c07ba1504564fd5b2b8c.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #7: step-4-recovery-iphone-15 (image/png) ─────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-iphone-15-1a0fb7a7d4c92e329e4e4f165221ef11eb221edf.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #8: step-4-recovery-desktop (image/png) ───────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-desktop-b8f2a1477e242fa35583c136a9e01f9bfabfbc70.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #9: welcome-iphone-15 (image/png) ─────────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-iphone-15-3af350ce22d6f0a811a37186a3ddb32f0e2d940d.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #10: welcome-desktop (image/png) ──────────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-desktop-3d3c1ac1aa716faf36b0442b23dac3aa85bebf59.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #11: returning-sign-in-iphone-15 (image/png) ──────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-iphone-15-d9b7ab56ecf673f85999c7bd8c5fac47c486e67f.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #12: returning-sign-in-desktop (image/png) ────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-desktop-0595209964469e42c8f63f04d54b3d4387de178f.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/error-context.md 56) test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile Error: expect(received).toBeLessThanOrEqual(expected) Expected: <= 0.13 Received: 0.3939999997615814 117 | console.log(`METRIC name=palette_filter_handler_ms_per_input value=${millisecondsPerFilter.toFixed(4)} inputs=100 viewport=1440x900`); 118 | expect(millisecondsPerArrow).toBeGreaterThanOrEqual(0); > 119 | expect(millisecondsPerFilter).toBeLessThanOrEqual(0.13); | ^ 120 | } 121 | 122 | async function walkDownAndUp(page: Page): Promise<void> { at measureHandlers (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/palette-navigation.spec.ts:119:33) at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/palette-navigation.spec.ts:169:3 Error Context: test-results/palette-navigation-palette-08dcc-sible-on-desktop-and-mobile/error-context.md 57) test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints Error: expect(received).toBeLessThanOrEqual(expected) Expected: <= 286 Received: 454 114 | } 115 | expect(sum("meter", "layout")).toBeLessThanOrEqual(sum("empty-raf", "layout") + 3); > 116 | expect(sum("meter", "style")).toBeLessThanOrEqual(Math.ceil(sum("empty-raf", "style") * 1.05) + 3); | ^ 117 | await hud(page).call((h) => { h.pauseRepaint(); return 0; }); 118 | // Nothing in the meter's own subtree changes while the repaint is stopped: the loop writes the ring and nothing else. 119 | const mutations = await page.evaluate(() => new Promise<number>((done) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/perf-hud.spec.ts:116:33 Error Context: test-results/perf-hud-the-frame-body-co-c2992-style-work-between-repaints/error-context.md 58) test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph Error: expect(locator).toBeVisible() failed Locator: locator('.ui-shortcuts') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for locator('.ui-shortcuts') 172 | await page.keyboard.press("?"); 173 | const panel = page.locator(".ui-shortcuts"); > 174 | await expect(panel).toBeVisible(); | ^ 175 | await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]); 176 | expect(await panel.innerText()).not.toMatch(APPLE_GLYPHS); 177 | await page.keyboard.press("Escape"); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/platform-consistency.spec.ts:174:23 Error Context: test-results/platform-consistency-Windo-c6a86-n-words-with-no-Apple-glyph/error-context.md 59) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling Error: expect(received).toBeLessThan(expected) Expected: < 6 Received: 201 192 | await expect(page.locator("#palette")).toBeVisible(); 193 | await expect.poll(async () => (await scrollState(page)).overflows).toBe(true); > 194 | expect(await trackSpread(page)).toBeLessThan(6); | ^ 195 | await page.locator("#palette-results").hover(); 196 | await page.mouse.wheel(0, 160); 197 | await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/platform-consistency.spec.ts:194:37 Error Context: test-results/platform-consistency-captu-ea6fb--a-thin-bar-while-scrolling/error-context.md 60) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling Error: expect(received).toBeLessThan(expected) Expected: < 6 Received: 87 192 | await expect(page.locator("#palette")).toBeVisible(); 193 | await expect.poll(async () => (await scrollState(page)).overflows).toBe(true); > 194 | expect(await trackSpread(page)).toBeLessThan(6); | ^ 195 | await page.locator("#palette-results").hover(); 196 | await page.mouse.wheel(0, 160); 197 | await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/platform-consistency.spec.ts:194:37 Error Context: test-results/platform-consistency-captu-c649d--a-thin-bar-while-scrolling/error-context.md 61) test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 Error: expect(received).toBeLessThan(expected) Expected: < 2 Received: 6.100000023841858 188 | const screen = await page.evaluate(() => window.__tracerTestDouble?.screenText() ?? ""); 189 | expect(screen.split("\n").slice(0, second.model.text.length).map((row) => row.trimEnd())).toEqual(second.model.text); > 190 | expect(second.maxInputCostMs).toBeLessThan(KEY_COST_BUDGET_MS); | ^ 191 | }); 192 | 193 | test(`rapid backspaces with no gap land on the host cursor at DPR ${dpr}`, async ({ page, context }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-backspace.spec.ts:190:33 Error Context: test-results/predictive-backspace-backs-94c4b-sor-on-exact-cells-at-DPR-1/error-context.md 62) test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 Error: expect(received).toBeLessThan(expected) Expected: < 2 Received: 12.400000035762787 331 | console.log(`first-key cost ${costs[0]!.toFixed(2)} ms; rest max ${Math.max(...costs.slice(1)).toFixed(2)} ms`); 332 | expect(costs.length).toBe(9); > 333 | expect(Math.max(...costs)).toBeLessThan(KEY_COST_BUDGET_MS); | ^ 334 | }); 335 | 336 | test(`typing through a layout change keeps predicting without mispredictions at DPR ${dpr}`, async ({ page, context }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-backspace.spec.ts:333:30 Error Context: test-results/predictive-backspace-the-f-fcfc7-the-per-key-budget-at-DPR-1/error-context.md 63) test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 Error: expect(received).toBeGreaterThan(expected) Expected: > 18 Received: 0 122 | right: Math.round((box.x + box.width) * dpr) - 1, 123 | }; > 124 | expect(pixels.cursorChanged.count).toBeGreaterThan(dpr * dpr * box.width * box.height * 0.5); | ^ 125 | expect(Math.abs(pixels.cursorChanged.minX - expected.left)).toBeLessThanOrEqual(1); 126 | expect(Math.abs(pixels.cursorChanged.maxX - expected.right)).toBeLessThanOrEqual(1); 127 | } at expectCursorPixelBounds (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-echo.spec.ts:124:38) at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-echo.spec.ts:408:3 Error Context: test-results/predictive-echo-predicted--8ce89-ch-confirmed-cells-at-DPR-1/error-context.md 64) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes Error: expect(received).toBe(expected) // Object.is equality Expected: "visible" Received: "hidden" 559 | // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque. 560 | expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility)) > 561 | .toBe("visible"); | ^ 562 | 563 | await expect.poll(async () => { 564 | const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string }; at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/predictive-echo.spec.ts:561:10 attachment #1: predictive-mobile-ink-pending (image/png) ─────────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-15618547813093efe514854c389a2d92daa00435.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md 65) test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 3085 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-mobile.png Call log: - Expect "toHaveScreenshot(signin-mobile.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 3085 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 3085 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-mobile (image/png) ─────────────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-linux.png Received: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-actual.png Diff: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/error-context.md 66) test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 3048 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-desktop.png Call log: - Expect "toHaveScreenshot(signin-desktop.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 3048 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 3048 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-desktop (image/png) ────────────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-linux.png Received: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-actual.png Diff: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/error-context.md 67) test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 2007 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-mobile-light.png Call log: - Expect "toHaveScreenshot(signin-mobile-light.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 2007 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 2007 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-mobile-light (image/png) ───────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-light-linux.png Received: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-actual.png Diff: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/error-context.md 68) test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 2033 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-desktop-light.png Call log: - Expect "toHaveScreenshot(signin-desktop-light.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 2033 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 2033 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-desktop-light (image/png) ──────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-light-linux.png Received: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-actual.png Diff: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/error-context.md 69) test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary Error: apiRequestContext.post: socket hang up Call log: - → POST http://localhost:4637/__mock/fixture - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 37 - cookie: __Host-infraternal=jEqDZrkjmpI8vtwTyLOzu7y7Mlket5xjZkljYuZypIA 56 | })).toEqual({ cols: 205, rows: 56 }); 57 | > 58 | const fixtureResponse = await context.request.post("/__mock/fixture", { data: { name: fixture.name } }); | ^ 59 | expect(fixtureResponse.status(), "the fixture must match its checked-in size and SHA256").toBe(200); 60 | const fixtureResult = await fixtureResponse.json() as { bytes: number; sha256: string }; 61 | expect(fixtureResult.bytes).toBe(fixture.bytes); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/renderer-regression.spec.ts:58:51 Error Context: test-results/renderer-regression-render-6b19f-679-bin-and-paints-a-canary/error-context.md 70) test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ───── Error: apiRequestContext.post: socket hang up Call log: ```
Author
Owner

#163 verbatim evidence: playwright-scoped.log (7/7)

      - → POST http://localhost:4637/__mock/fixture
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 21
        - cookie: __Host-infraternal=_td8Hm7sp6UmqlP-7EiX6RZ5UZoEiKrF7aiJ8U2tC3s


      56 |     })).toEqual({ cols: 205, rows: 56 });
      57 |
    > 58 |     const fixtureResponse = await context.request.post("/__mock/fixture", { data: { name: fixture.name } });
         |                                                   ^
      59 |     expect(fixtureResponse.status(), "the fixture must match its checked-in size and SHA256").toBe(200);
      60 |     const fixtureResult = await fixtureResponse.json() as { bytes: number; sha256: string };
      61 |     expect(fixtureResult.bytes).toBe(fixture.bytes);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/renderer-regression.spec.ts:58:51

    Error Context: test-results/renderer-regression-render-de715-ary-bin-and-paints-a-canary/error-context.md

  71) test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 

    Error: expect(received).toBeGreaterThanOrEqual(expected)

    Expected: >= 2.007013985718511
    Received:    1.9273764551692236

      197 |       `result=${regressionPercent >= -5 ? "PASS" : "FAIL"}`,
      198 |   );
    > 199 |   expect(onMedian).toBeGreaterThanOrEqual(offMedian * 0.95);
          |                    ^
      200 | });
      201 |
      202 | function percentile(sorted: number[], fraction: number): number {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/renderer-regression.spec.ts:199:20

    Error Context: test-results/renderer-regression-predic-2f890-oughput-within-five-percent/error-context.md

  72) test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 0
    + Received  + 1

      Array [
        "Split right",
        "Split down",
        "Sessions",
        "Close",
    +   "More window actions",
      ]

      66 |       expect(geometry.actionsH).toBe(geometry.pillH);
      67 |       expect(geometry.border).toBe("1px");
    > 68 |       expect(geometry.labels).toEqual(["Split right", "Split down", "Sessions", "Close"]);
         |                               ^
      69 |       expect(geometry.inside).toBe(true);
      70 |       expect(geometry.titleClipped).toBe(true);
      71 |     } finally { await context.close(); }
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:68:31

    Error Context: test-results/sessions-canvas-a-window-s-bfaee-l-as-tall-as-its-title-pill/error-context.md

  73) test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-enEiGj --remote-debugging-pipe --no-startup-window
    <launched> pid=49132
    [pid=49132][err] [1011/162222.676953:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=49132][err] [1011/162335.568639:ERROR:gpu/command_buffer/service/shared_image/shared_image_manager.cc:386] SharedImageManager::ProduceMemory: Trying to Produce a Memory representation from a non-existent mailbox.
    [pid=49132][err] [1011/162335.595406:ERROR:gpu/command_buffer/service/shared_image/shared_image_manager.cc:386] SharedImageManager::ProduceMemory: Trying to Produce a Memory representation from a non-existent mailbox.
    [pid=49132][err] [1011/162409.555024:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
    [pid=49132][err] [1011/162409.757090:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0)
    [pid=49132][err] [1011/162409.830757:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
    [pid=49132][err] [1011/162409.920050:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0)
    [pid=49132][err] [1011/162409.974921:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels
    [pid=49132][err] [1011/162410.098503:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0)
    [pid=49132][err] [1011/162410.198846:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)
    [pid=49132][err] [1011/162410.274684:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0)
    [pid=49132] <gracefully close start>

      274 |     expect(columns).toContain(2);
      275 |     await expect(page.locator(".ui-window .ui-window-session", { hasText: "infraternal" })).toHaveCount(2, { timeout: 5000 });
    > 276 |   } finally { await context.close(); }
          |               ^
      277 | });
      278 |
      279 | test("another device typed last: scaled to fit, a badge says so, typing takes the size over", async ({ browser }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:276:15

    Error Context: test-results/sessions-canvas-both-split-fa6c2-own-stacks-it-in-the-column/error-context.md

  74) test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      331 |     await expect(failed.page.locator(".cl-sx-state[data-kind='loading']")).toBeVisible();
      332 |     await expect(failed.page.locator(".cl-sx-row")).toHaveCount(6, { timeout: 6000 });
    > 333 |   } finally { await failed.context.close(); }
          |               ^
      334 | });
      335 |
      336 | test("mouse and shortcuts draw no focus ring; Tab does", async ({ browser }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:333:15

    Error Context: test-results/sessions-canvas-the-empty--a4659-s-keep-the-product-s-rhythm/error-context.md

  75) test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-Nourdb --remote-debugging-pipe --no-startup-window
    <launched> pid=78505
    [pid=78505][err] [1011/162524.986515:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=78505] <gracefully close start>

      367 |     await expect(page.locator(".cl-sx-pop")).toBeVisible();
      368 |     expect(await stateOf(page, "build-01", "journal")).toBe("detached");
    > 369 |   } finally { await context.close(); }
          |               ^
      370 | });
      371 |
      372 | test("scenes run one after another and each starts from the same four windows", async ({ browser }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:369:15

    Error Context: test-results/sessions-canvas-on-touch-e-591a9-es-open-1-1-with-the-finger/error-context.md

  76) test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      383 |     expect(await stateOf(page, "build-01", "migrate")).toBe("exited");
      384 |     expect(errors).toEqual([]);
    > 385 |   } finally { await context.close(); }
          |               ^
      386 | });
      387 |
      388 | test("the manager's code is on demand, fetched at idle so the first open never waits for a download (#128)", async ({ browser }) => {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:385:15

    Error Context: test-results/sessions-canvas-scenes-run-7bed7--from-the-same-four-windows/error-context.md

  77) test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 

    Error: expect(locator).toBeVisible() failed

    Locator: locator('.cl-sx-pop')
    Expected: visible
    Timeout: 8000ms
    Error: element(s) not found

    Call log:
      - Expect "toBeVisible" with timeout 8000ms
      - waiting for locator('.cl-sx-pop')


      412 |     await expect(item).toBeEnabled();
      413 |     await item.tap();
    > 414 |     await expect(page.locator(".cl-sx-pop")).toBeVisible({ timeout: 8000 });
          |                                              ^
      415 |     await expect(page.locator(".cl-sx-title")).toHaveText("build-01");
      416 |   } finally { await context.close(); }
      417 | });
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:414:46

    Error Context: test-results/sessions-canvas-on-a-phone-87ddb-anager-of-the-active-window/error-context.md

  78) test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  -  1
    + Received  + 25

    - Array []
    + Array [
    +   230,
    +   102,
    +   80,
    +   61,
    +   51,
    +   65,
    +   177,
    +   75,
    +   116,
    +   57,
    +   57,
    +   80,
    +   96,
    +   74,
    +   75,
    +   62,
    +   63,
    +   51,
    +   57,
    +   67,
    +   72,
    +   67,
    +   84,
    + ]

      288 |   });
      289 |   expect(p99).toBeLessThan(16.67);
    > 290 |   expect(longTasks.filter((duration) => duration > 50)).toEqual([]);
          |                                                         ^
      291 |   expect(await readSocketCounts(page)).toEqual(socketCounts);
      292 |   expect(await page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.scrollbackRows ?? 0)).toBe(scrollbackRowsBefore);
      293 |   expect(await page.evaluate(() => window.__tracerTestDouble?.screenText() ?? "")).toBe(historyText);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/terminal-theme.spec.ts:290:57

    Error Context: test-results/terminal-theme-every-curat-3627b--and-its-existing-ANSI-text/error-context.md

  79) test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ─

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

    Call Log:
    - Timeout 5000ms exceeded while waiting on the predicate

      82 |     const started = await page.evaluate(() => performance.now());
      83 |     await page.getByRole("button", { name: "Continue with passkey" }).click();
    > 84 |     await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true);
         |                                                                                                     ^
      85 |     returningSigninSamples.push(await page.evaluate((start) => performance.now() - start, started));
      86 |     expect(await page.evaluate(() => document.documentElement.dataset.passkeyGets)).toBe("1");
      87 |     if (attempt + 1 < signinTrials) {
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/terminal.spec.ts:84:101

    attachment #1: signin-light (image/png) ────────────────────────────────────────────────────────
    test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-light-70fc015738aa00457a4849acfbb201d232ec6c68.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: signin-dark (image/png) ─────────────────────────────────────────────────────────
    test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-dark-54125768f9e34cf2102cb4c4e419a48170fb4fbc.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/error-context.md

  80) test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ──────

    Test timeout of 120000ms exceeded.

    Error: page.goto: Test timeout of 120000ms exceeded.
    Call log:
      - navigating to "http://localhost:4637/", waiting until "load"


      640 |       const sample = await page.context().newPage();
      641 |       await sample.route("**/auth/status", (route) => route.fulfill({ json: { setup_required: setupRequired } }));
    > 642 |       await sample.goto("/");
          |                    ^
      643 |       await expect(sample.locator(setupRequired ? "#setup-card" : "#login-passkey")).toBeVisible();
      644 |       firstPaints.push(await sample.evaluate(() =>
      645 |         performance.getEntriesByName("first-contentful-paint")[0]?.startTime ?? performance.now()));
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/terminal.spec.ts:642:20

    Error Context: test-results/terminal-access-screens-re-da0df-he-local-first-paint-budget/error-context.md

  81) test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries 

    Error: apiRequestContext.post: socket hang up
    Call log:
      - → POST http://localhost:4637/__mock/unicode-case
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 17
        - cookie: __Host-infraternal=Gq3CqlhKCakkgSryibVcc3ojj2F-5MUIBfjKfE0_CWs


      16 |     let probe: { mode: string; bytes: number; output_sequence: string } | undefined;
      17 |     for (let attempt = 0; attempt < 40 && !probe; attempt += 1) {
    > 18 |       const response = await context.request.post("/__mock/unicode-case", { data: { mode } });
         |                                              ^
      19 |       if (response.status() === 200) probe = await response.json() as typeof probe;
      20 |       else expect(response.status()).toBe(409);
      21 |       if (!probe) await page.waitForTimeout(25);
        at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/unicode-fidelity.spec.ts:18:46

    Error Context: test-results/unicode-fidelity-raw-frame-ee22f-F-8-and-grapheme-boundaries/error-context.md

  Slow test file: test/mesh.spec.ts (7.9m)
  Slow test file: test/addhost-wizard.spec.ts (7.1m)
  Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel
  81 failed
    test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 
    test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it 
    test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 
    test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 ─────────────
    test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms 
    test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU 
    test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU 
    test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change 
    test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves 
    test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns 
    test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group 
    test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it 
    test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height 
    test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view 
    test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 
    test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 
    test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell 
    test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell 
    test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell 
    test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell 
    test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows ───
    test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column 
    test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows ────
    test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column 
    test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events 
    test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events 
    test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted ──────────────────────────
    test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows 
    test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row 
    test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate 
    test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal 
    test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px 
    test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 
    test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ───
    test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 
    test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 1 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 1 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 1 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 3 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 3 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 3 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 3 ─────────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 1 ───────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 1 ───────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 1 ───────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 1 ───────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 3 ───────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 3 ───────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 3 ───────
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 3 ───────
    test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag 
    test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens 
    test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract 
    test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile 
    test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints 
    test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph 
    test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling 
    test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling 
    test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 
    test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 
    test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 
    test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 
    test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points 
    test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary 
    test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ───────
    test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 
    test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ──
    test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column 
    test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm 
    test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger 
    test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows 
    test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 
    test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text 
    test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ───
    test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ────────
    test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries 
  38 skipped
  423 passed (2.5h)
#163 verbatim evidence: playwright-scoped.log (7/7) ```text - → POST http://localhost:4637/__mock/fixture - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 21 - cookie: __Host-infraternal=_td8Hm7sp6UmqlP-7EiX6RZ5UZoEiKrF7aiJ8U2tC3s 56 | })).toEqual({ cols: 205, rows: 56 }); 57 | > 58 | const fixtureResponse = await context.request.post("/__mock/fixture", { data: { name: fixture.name } }); | ^ 59 | expect(fixtureResponse.status(), "the fixture must match its checked-in size and SHA256").toBe(200); 60 | const fixtureResult = await fixtureResponse.json() as { bytes: number; sha256: string }; 61 | expect(fixtureResult.bytes).toBe(fixture.bytes); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/renderer-regression.spec.ts:58:51 Error Context: test-results/renderer-regression-render-de715-ary-bin-and-paints-a-canary/error-context.md 71) test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent Error: expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 2.007013985718511 Received: 1.9273764551692236 197 | `result=${regressionPercent >= -5 ? "PASS" : "FAIL"}`, 198 | ); > 199 | expect(onMedian).toBeGreaterThanOrEqual(offMedian * 0.95); | ^ 200 | }); 201 | 202 | function percentile(sorted: number[], fraction: number): number { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/renderer-regression.spec.ts:199:20 Error Context: test-results/renderer-regression-predic-2f890-oughput-within-five-percent/error-context.md 72) test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "Split right", "Split down", "Sessions", "Close", + "More window actions", ] 66 | expect(geometry.actionsH).toBe(geometry.pillH); 67 | expect(geometry.border).toBe("1px"); > 68 | expect(geometry.labels).toEqual(["Split right", "Split down", "Sessions", "Close"]); | ^ 69 | expect(geometry.inside).toBe(true); 70 | expect(geometry.titleClipped).toBe(true); 71 | } finally { await context.close(); } at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:68:31 Error Context: test-results/sessions-canvas-a-window-s-bfaee-l-as-tall-as-its-title-pill/error-context.md 73) test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column Test timeout of 30000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-enEiGj --remote-debugging-pipe --no-startup-window <launched> pid=49132 [pid=49132][err] [1011/162222.676953:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=49132][err] [1011/162335.568639:ERROR:gpu/command_buffer/service/shared_image/shared_image_manager.cc:386] SharedImageManager::ProduceMemory: Trying to Produce a Memory representation from a non-existent mailbox. [pid=49132][err] [1011/162335.595406:ERROR:gpu/command_buffer/service/shared_image/shared_image_manager.cc:386] SharedImageManager::ProduceMemory: Trying to Produce a Memory representation from a non-existent mailbox. [pid=49132][err] [1011/162409.555024:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels [pid=49132][err] [1011/162409.757090:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0) [pid=49132][err] [1011/162409.830757:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels [pid=49132][err] [1011/162409.920050:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0) [pid=49132][err] [1011/162409.974921:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels [pid=49132][err] [1011/162410.098503:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0) [pid=49132][err] [1011/162410.198846:ERROR:gpu/command_buffer/service/gl_utils.cc:430] [.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat) [pid=49132][err] [1011/162410.274684:INFO:CONSOLE:0] "[.WebGL-0x9cc01537e00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)", source: http://localhost:4637/?mock=1&proto=clusters&scene=3&theme=ink&bg=none (0) [pid=49132] <gracefully close start> 274 | expect(columns).toContain(2); 275 | await expect(page.locator(".ui-window .ui-window-session", { hasText: "infraternal" })).toHaveCount(2, { timeout: 5000 }); > 276 | } finally { await context.close(); } | ^ 277 | }); 278 | 279 | test("another device typed last: scaled to fit, a badge says so, typing takes the size over", async ({ browser }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:276:15 Error Context: test-results/sessions-canvas-both-split-fa6c2-own-stacks-it-in-the-column/error-context.md 74) test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm Test timeout of 30000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 331 | await expect(failed.page.locator(".cl-sx-state[data-kind='loading']")).toBeVisible(); 332 | await expect(failed.page.locator(".cl-sx-row")).toHaveCount(6, { timeout: 6000 }); > 333 | } finally { await failed.context.close(); } | ^ 334 | }); 335 | 336 | test("mouse and shortcuts draw no focus ring; Tab does", async ({ browser }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:333:15 Error Context: test-results/sessions-canvas-the-empty--a4659-s-keep-the-product-s-rhythm/error-context.md 75) test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger Test timeout of 30000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-Nourdb --remote-debugging-pipe --no-startup-window <launched> pid=78505 [pid=78505][err] [1011/162524.986515:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=78505] <gracefully close start> 367 | await expect(page.locator(".cl-sx-pop")).toBeVisible(); 368 | expect(await stateOf(page, "build-01", "journal")).toBe("detached"); > 369 | } finally { await context.close(); } | ^ 370 | }); 371 | 372 | test("scenes run one after another and each starts from the same four windows", async ({ browser }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:369:15 Error Context: test-results/sessions-canvas-on-touch-e-591a9-es-open-1-1-with-the-finger/error-context.md 76) test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows Test timeout of 30000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 383 | expect(await stateOf(page, "build-01", "migrate")).toBe("exited"); 384 | expect(errors).toEqual([]); > 385 | } finally { await context.close(); } | ^ 386 | }); 387 | 388 | test("the manager's code is on demand, fetched at idle so the first open never waits for a download (#128)", async ({ browser }) => { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:385:15 Error Context: test-results/sessions-canvas-scenes-run-7bed7--from-the-same-four-windows/error-context.md 77) test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window Error: expect(locator).toBeVisible() failed Locator: locator('.cl-sx-pop') Expected: visible Timeout: 8000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 8000ms - waiting for locator('.cl-sx-pop') 412 | await expect(item).toBeEnabled(); 413 | await item.tap(); > 414 | await expect(page.locator(".cl-sx-pop")).toBeVisible({ timeout: 8000 }); | ^ 415 | await expect(page.locator(".cl-sx-title")).toHaveText("build-01"); 416 | } finally { await context.close(); } 417 | }); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/sessions-canvas.spec.ts:414:46 Error Context: test-results/sessions-canvas-on-a-phone-87ddb-anager-of-the-active-window/error-context.md 78) test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 25 - Array [] + Array [ + 230, + 102, + 80, + 61, + 51, + 65, + 177, + 75, + 116, + 57, + 57, + 80, + 96, + 74, + 75, + 62, + 63, + 51, + 57, + 67, + 72, + 67, + 84, + ] 288 | }); 289 | expect(p99).toBeLessThan(16.67); > 290 | expect(longTasks.filter((duration) => duration > 50)).toEqual([]); | ^ 291 | expect(await readSocketCounts(page)).toEqual(socketCounts); 292 | expect(await page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.scrollbackRows ?? 0)).toBe(scrollbackRowsBefore); 293 | expect(await page.evaluate(() => window.__tracerTestDouble?.screenText() ?? "")).toBe(historyText); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/terminal-theme.spec.ts:290:57 Error Context: test-results/terminal-theme-every-curat-3627b--and-its-existing-ANSI-text/error-context.md 79) test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ─ Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false Call Log: - Timeout 5000ms exceeded while waiting on the predicate 82 | const started = await page.evaluate(() => performance.now()); 83 | await page.getByRole("button", { name: "Continue with passkey" }).click(); > 84 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true); | ^ 85 | returningSigninSamples.push(await page.evaluate((start) => performance.now() - start, started)); 86 | expect(await page.evaluate(() => document.documentElement.dataset.passkeyGets)).toBe("1"); 87 | if (attempt + 1 < signinTrials) { at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/terminal.spec.ts:84:101 attachment #1: signin-light (image/png) ──────────────────────────────────────────────────────── test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-light-70fc015738aa00457a4849acfbb201d232ec6c68.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: signin-dark (image/png) ───────────────────────────────────────────────────────── test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-dark-54125768f9e34cf2102cb4c4e419a48170fb4fbc.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/error-context.md 80) test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ────── Test timeout of 120000ms exceeded. Error: page.goto: Test timeout of 120000ms exceeded. Call log: - navigating to "http://localhost:4637/", waiting until "load" 640 | const sample = await page.context().newPage(); 641 | await sample.route("**/auth/status", (route) => route.fulfill({ json: { setup_required: setupRequired } })); > 642 | await sample.goto("/"); | ^ 643 | await expect(sample.locator(setupRequired ? "#setup-card" : "#login-passkey")).toBeVisible(); 644 | firstPaints.push(await sample.evaluate(() => 645 | performance.getEntriesByName("first-contentful-paint")[0]?.startTime ?? performance.now())); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/terminal.spec.ts:642:20 Error Context: test-results/terminal-access-screens-re-da0df-he-local-first-paint-budget/error-context.md 81) test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries Error: apiRequestContext.post: socket hang up Call log: - → POST http://localhost:4637/__mock/unicode-case - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 17 - cookie: __Host-infraternal=Gq3CqlhKCakkgSryibVcc3ojj2F-5MUIBfjKfE0_CWs 16 | let probe: { mode: string; bytes: number; output_sequence: string } | undefined; 17 | for (let attempt = 0; attempt < 40 && !probe; attempt += 1) { > 18 | const response = await context.request.post("/__mock/unicode-case", { data: { mode } }); | ^ 19 | if (response.status() === 200) probe = await response.json() as typeof probe; 20 | else expect(response.status()).toBe(409); 21 | if (!probe) await page.waitForTimeout(25); at /home/kayg/Developer/infraternal/.worktrees/dev-backmerge/apps/tracer/test/unicode-fidelity.spec.ts:18:46 Error Context: test-results/unicode-fidelity-raw-frame-ee22f-F-8-and-grapheme-boundaries/error-context.md Slow test file: test/mesh.spec.ts (7.9m) Slow test file: test/addhost-wizard.spec.ts (7.1m) Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel 81 failed test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 ───────────── test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows ─── test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows ──── test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted ────────────────────────── test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ─── test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 1 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 1 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 1 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 3 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, ink, DPR 3 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, ink, DPR 3 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, ink, DPR 3 ───────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 1 ─────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 1 ─────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 1 ─────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 1 ─────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, paper, DPR 3 ─────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 2, paper, DPR 3 ─────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 3, paper, DPR 3 ─────── test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 4, paper, DPR 3 ─────── test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ─────── test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ── test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ─── test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ──────── test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries 38 skipped 423 passed (2.5h) ```
Author
Owner

#163 verbatim evidence: browser-isolated-add-host-prototype.spec.log (1/1)

Load before: 59.71 54.34 46.08 59/3309 3541113
Running as unit: run-p3541195-i49631251.scope; invocation ID: cdef7a9044224aa3ad6c8db4611f0720
[WebServer] $ bun run build.ts
[WebServer] built chunk-kvbkg612.js, chunk-tvynw18r.js, chunk-xaqxbh2y.js, chunk-b5qzwpce.js, chunk-1y4t0gj3.js, chunk-s2f1vb5a.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-22cazb50.js, chunk-3wr63xwy.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-5b4cgdfr.js, chunk-7nczvd3c.js, chunk-7gg0qkfb.js, chunk-6raxyrn5.js, chunk-yvhhqffe.js, chunk-jfvz1hrx.js, chunk-ayhm3kcr.js, chunk-tcrezm5t.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-frqdnbdw.js, chunk-f3t2n8m6.js, chunk-tk0gx2y9.js, chunk-cra634da.js, chunk-8gqdshxw.js, chunk-rnphp18a.js, chunk-t4q76gkm.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-x65zejqf.js, chunk-aaykh48a.js, chunk-jqtq7vc0.js, chunk-w0xgmt1y.js, chunk-1d0qvnvb.js, chunk-6vqrt0jx.js, chunk-axbkkqp1.js, chunk-0a2vth8c.js, chunk-rbjq9rpf.js, chunk-2pczqgfd.js, chunk-5h8b097b.js, chunk-kwgm7hqq.js, chunk-65qkjqpa.js, chunk-v86b5paa.js, chunk-j4rkr0nc.js, chunk-qwb4wa09.js, chunk-bhddpafr.js, chunk-tqhz8x3g.js, chunk-2e4yh13p.js, chunk-jn02w5ba.js, chunk-b19fdjb2.js, chunk-rk0fhha7.js, chunk-vcf9j146.js, chunk-ndpbbm83.js, chunk-hzv811gx.js, chunk-61p2rcas.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-db0fpxxh.js, chunk-kw0em7w9.js, chunk-0sxn500c.js, chunk-nr9nyxc8.js, chunk-hex255cf.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 14 tests using 1 worker

(node:3545158) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   1 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (15.9s)
(node:3549391) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   2 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (15.8s)
  ✓   3 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (9.5s)
  ✘   4 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (9.4s)
(node:3555467) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   5 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (13.9s)
  ✓   6 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (16.7s)
  ✓   7 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (25.9s)
  ✓   8 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (14.8s)
  ✓   9 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (11.8s)
  ✓  10 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (9.2s)
  ✓  11 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.2s)
  ✓  12 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (8.8s)
  ✓  13 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (12.7s)
  ✓  14 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (12.1s)


  1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 

    Error: expect(locator).toHaveCount(expected) failed

    Locator:  locator('.ui-chip')
    Expected: 3
    Received: 0
    Timeout:  5000ms

    Call log:
      - Expect "toHaveCount" with timeout 5000ms
      - waiting for locator('.ui-chip')
        13 × locator resolved to 0 elements
           - unexpected value "0"


      40 |     // The owner's own input: no Enter needed; commas and spaces end tokens.
      41 |     await page.keyboard.type("kayg@o2, kayg@o1, kayg@remoternal ", { delay: 10 });
    > 42 |     await expect(page.locator(".ui-chip")).toHaveCount(3);
         |                                            ^
      43 |     await expect(page.locator(".ah-count")).toHaveText("3 selected");
      44 |     for (const id of ["o1", "o2", "remoternal"]) await expect(page.locator(`.ah-row[data-host='${id}'] input`)).toBeChecked();
      45 |     // Ticking a row adds a chip; removing a chip unticks the row.
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/add-host-prototype.spec.ts:42:44

    Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md

  2) test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

      109 |       }));
      110 |       expect(geometry.windowLeft).toBeGreaterThanOrEqual(geometry.sidebarRight);
    > 111 |       expect(geometry.closeReachable).toBe(true);
          |                                       ^
      112 |     } finally {
      113 |       await context.close();
      114 |     }
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/add-host-prototype.spec.ts:111:39

    Error Context: test-results/add-host-prototype-the-doc-38ffb-ow-and-stays-out-of-its-way/error-context.md

  2 failed
    test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 
    test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 
  12 passed (3.6m)

Invocation exit: 1
Load after: 51.00 55.50 48.45 38/3205 3580150
#163 verbatim evidence: browser-isolated-add-host-prototype.spec.log (1/1) ```text Load before: 59.71 54.34 46.08 59/3309 3541113 Running as unit: run-p3541195-i49631251.scope; invocation ID: cdef7a9044224aa3ad6c8db4611f0720 [WebServer] $ bun run build.ts [WebServer] built chunk-kvbkg612.js, chunk-tvynw18r.js, chunk-xaqxbh2y.js, chunk-b5qzwpce.js, chunk-1y4t0gj3.js, chunk-s2f1vb5a.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-22cazb50.js, chunk-3wr63xwy.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-5b4cgdfr.js, chunk-7nczvd3c.js, chunk-7gg0qkfb.js, chunk-6raxyrn5.js, chunk-yvhhqffe.js, chunk-jfvz1hrx.js, chunk-ayhm3kcr.js, chunk-tcrezm5t.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-frqdnbdw.js, chunk-f3t2n8m6.js, chunk-tk0gx2y9.js, chunk-cra634da.js, chunk-8gqdshxw.js, chunk-rnphp18a.js, chunk-t4q76gkm.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-x65zejqf.js, chunk-aaykh48a.js, chunk-jqtq7vc0.js, chunk-w0xgmt1y.js, chunk-1d0qvnvb.js, chunk-6vqrt0jx.js, chunk-axbkkqp1.js, chunk-0a2vth8c.js, chunk-rbjq9rpf.js, chunk-2pczqgfd.js, chunk-5h8b097b.js, chunk-kwgm7hqq.js, chunk-65qkjqpa.js, chunk-v86b5paa.js, chunk-j4rkr0nc.js, chunk-qwb4wa09.js, chunk-bhddpafr.js, chunk-tqhz8x3g.js, chunk-2e4yh13p.js, chunk-jn02w5ba.js, chunk-b19fdjb2.js, chunk-rk0fhha7.js, chunk-vcf9j146.js, chunk-ndpbbm83.js, chunk-hzv811gx.js, chunk-61p2rcas.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-db0fpxxh.js, chunk-kw0em7w9.js, chunk-0sxn500c.js, chunk-nr9nyxc8.js, chunk-hex255cf.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 14 tests using 1 worker (node:3545158) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (15.9s) (node:3549391) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (15.8s) ✓ 3 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (9.5s) ✘ 4 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (9.4s) (node:3555467) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 5 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (13.9s) ✓ 6 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (16.7s) ✓ 7 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (25.9s) ✓ 8 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (14.8s) ✓ 9 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (11.8s) ✓ 10 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (9.2s) ✓ 11 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.2s) ✓ 12 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (8.8s) ✓ 13 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (12.7s) ✓ 14 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (12.1s) 1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync Error: expect(locator).toHaveCount(expected) failed Locator: locator('.ui-chip') Expected: 3 Received: 0 Timeout: 5000ms Call log: - Expect "toHaveCount" with timeout 5000ms - waiting for locator('.ui-chip') 13 × locator resolved to 0 elements - unexpected value "0" 40 | // The owner's own input: no Enter needed; commas and spaces end tokens. 41 | await page.keyboard.type("kayg@o2, kayg@o1, kayg@remoternal ", { delay: 10 }); > 42 | await expect(page.locator(".ui-chip")).toHaveCount(3); | ^ 43 | await expect(page.locator(".ah-count")).toHaveText("3 selected"); 44 | for (const id of ["o1", "o2", "remoternal"]) await expect(page.locator(`.ah-row[data-host='${id}'] input`)).toBeChecked(); 45 | // Ticking a row adds a chip; removing a chip unticks the row. at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/add-host-prototype.spec.ts:42:44 Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md 2) test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 109 | })); 110 | expect(geometry.windowLeft).toBeGreaterThanOrEqual(geometry.sidebarRight); > 111 | expect(geometry.closeReachable).toBe(true); | ^ 112 | } finally { 113 | await context.close(); 114 | } at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/add-host-prototype.spec.ts:111:39 Error Context: test-results/add-host-prototype-the-doc-38ffb-ow-and-stays-out-of-its-way/error-context.md 2 failed test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 12 passed (3.6m) Invocation exit: 1 Load after: 51.00 55.50 48.45 38/3205 3580150 ```
Author
Owner

#163 verbatim evidence: browser-isolated-addhost-chips.spec.log (1/1)

Load before: 41.46 46.70 46.28 38/3227 3610207
Running as unit: run-p3610208-i49700264.scope; invocation ID: c5c5260822474644a8815ca9a07afd41
[WebServer] $ bun run build.ts
[WebServer] built chunk-avrcza95.js, chunk-tvynw18r.js, chunk-ktwrqgdj.js, chunk-b5qzwpce.js, chunk-8cgn999x.js, chunk-m6nzfa53.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-fd5nxkag.js, chunk-sen2ced4.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-z2fzbe14.js, chunk-7nczvd3c.js, chunk-d8wf6ca6.js, chunk-dt5ntnwq.js, chunk-yvhhqffe.js, chunk-1d8yte82.js, chunk-y2rdjk40.js, chunk-n2wg6y3r.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-mc3393gp.js, chunk-6gte6dq8.js, chunk-vs8mf5dn.js, chunk-ky6ekpr0.js, chunk-8gqdshxw.js, chunk-jpptggtf.js, chunk-nsj67hp0.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-jz7v99n9.js, chunk-tw79d97w.js, chunk-gqqsbrvh.js, chunk-rfcp52am.js, chunk-1d0qvnvb.js, chunk-dt4r8g8e.js, chunk-axbkkqp1.js, chunk-405erxfm.js, chunk-1xnnjz6v.js, chunk-1bbrwj7a.js, chunk-df40xwy1.js, chunk-e3zwgtzs.js, chunk-fm2wq10x.js, chunk-v86b5paa.js, chunk-ztsacsv5.js, chunk-pnk9g5td.js, chunk-jgeyjspf.js, chunk-71mnbkaa.js, chunk-2e4yh13p.js, chunk-kvmxdqy2.js, chunk-94q1gs08.js, chunk-4p7m1b4r.js, chunk-s9ttpfta.js, chunk-6p7k27xr.js, chunk-9hp69p7a.js, chunk-hjnwvrxz.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-a1tca5fy.js, chunk-wt32f9mm.js, chunk-0sxn500c.js, chunk-swsyqbxv.js, chunk-1bgy5pew.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 14 tests using 1 worker

(node:3612419) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   1 test/addhost-chips.spec.ts:43:1 › typing kayg@o2 and clicking Continue proceeds with that host, with no tick (15.1s)
  ✓   2 test/addhost-chips.spec.ts:57:1 › a@h1 b@h2,c@h3 gives chips for the ended targets; the last one waits as text until it is ended (15.4s)
  ✓   3 test/addhost-chips.spec.ts:72:1 › pasting three lines gives three chips (9.9s)
  ✓   4 test/addhost-chips.spec.ts:82:1 › an invalid token shows the hint and never blocks the chips beside it (14.0s)
  ✓   5 test/addhost-chips.spec.ts:101:1 › with only an invalid token the hint shows once it is ended, and Continue stays disabled (11.4s)
  ✓   6 test/addhost-chips.spec.ts:114:1 › a token that names a discovered host chips at once and is ticked in the list (10.8s)
  ✓   7 test/addhost-chips.spec.ts:125:1 › Backspace on an empty field turns the last chip back into text (10.6s)
  ✓   8 test/addhost-chips.spec.ts:137:1 › Tab ends a typed token (10.0s)
  ✓   9 test/addhost-chips.spec.ts:148:1 › a listed host ticked in the list becomes a chip, and removing the chip unticks it (10.5s)
  -  10 test/addhost-chips.spec.ts:159:5 › captures 1440x900 ink
  -  11 test/addhost-chips.spec.ts:159:5 › captures 1440x900 paper
  -  12 test/addhost-chips.spec.ts:159:5 › captures 393x852 ink
  -  13 test/addhost-chips.spec.ts:159:5 › captures 393x852 paper
  ✓  14 test/addhost-chips.spec.ts:179:1 › a token typed while the host list is still loading chips when the list arrives (13.2s)

  4 skipped
  10 passed (2.3m)

Invocation exit: 0
Load after: 34.11 41.98 44.61 16/3329 3622903
#163 verbatim evidence: browser-isolated-addhost-chips.spec.log (1/1) ```text Load before: 41.46 46.70 46.28 38/3227 3610207 Running as unit: run-p3610208-i49700264.scope; invocation ID: c5c5260822474644a8815ca9a07afd41 [WebServer] $ bun run build.ts [WebServer] built chunk-avrcza95.js, chunk-tvynw18r.js, chunk-ktwrqgdj.js, chunk-b5qzwpce.js, chunk-8cgn999x.js, chunk-m6nzfa53.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-fd5nxkag.js, chunk-sen2ced4.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-z2fzbe14.js, chunk-7nczvd3c.js, chunk-d8wf6ca6.js, chunk-dt5ntnwq.js, chunk-yvhhqffe.js, chunk-1d8yte82.js, chunk-y2rdjk40.js, chunk-n2wg6y3r.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-mc3393gp.js, chunk-6gte6dq8.js, chunk-vs8mf5dn.js, chunk-ky6ekpr0.js, chunk-8gqdshxw.js, chunk-jpptggtf.js, chunk-nsj67hp0.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-jz7v99n9.js, chunk-tw79d97w.js, chunk-gqqsbrvh.js, chunk-rfcp52am.js, chunk-1d0qvnvb.js, chunk-dt4r8g8e.js, chunk-axbkkqp1.js, chunk-405erxfm.js, chunk-1xnnjz6v.js, chunk-1bbrwj7a.js, chunk-df40xwy1.js, chunk-e3zwgtzs.js, chunk-fm2wq10x.js, chunk-v86b5paa.js, chunk-ztsacsv5.js, chunk-pnk9g5td.js, chunk-jgeyjspf.js, chunk-71mnbkaa.js, chunk-2e4yh13p.js, chunk-kvmxdqy2.js, chunk-94q1gs08.js, chunk-4p7m1b4r.js, chunk-s9ttpfta.js, chunk-6p7k27xr.js, chunk-9hp69p7a.js, chunk-hjnwvrxz.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-a1tca5fy.js, chunk-wt32f9mm.js, chunk-0sxn500c.js, chunk-swsyqbxv.js, chunk-1bgy5pew.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 14 tests using 1 worker (node:3612419) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/addhost-chips.spec.ts:43:1 › typing kayg@o2 and clicking Continue proceeds with that host, with no tick (15.1s) ✓ 2 test/addhost-chips.spec.ts:57:1 › a@h1 b@h2,c@h3 gives chips for the ended targets; the last one waits as text until it is ended (15.4s) ✓ 3 test/addhost-chips.spec.ts:72:1 › pasting three lines gives three chips (9.9s) ✓ 4 test/addhost-chips.spec.ts:82:1 › an invalid token shows the hint and never blocks the chips beside it (14.0s) ✓ 5 test/addhost-chips.spec.ts:101:1 › with only an invalid token the hint shows once it is ended, and Continue stays disabled (11.4s) ✓ 6 test/addhost-chips.spec.ts:114:1 › a token that names a discovered host chips at once and is ticked in the list (10.8s) ✓ 7 test/addhost-chips.spec.ts:125:1 › Backspace on an empty field turns the last chip back into text (10.6s) ✓ 8 test/addhost-chips.spec.ts:137:1 › Tab ends a typed token (10.0s) ✓ 9 test/addhost-chips.spec.ts:148:1 › a listed host ticked in the list becomes a chip, and removing the chip unticks it (10.5s) - 10 test/addhost-chips.spec.ts:159:5 › captures 1440x900 ink - 11 test/addhost-chips.spec.ts:159:5 › captures 1440x900 paper - 12 test/addhost-chips.spec.ts:159:5 › captures 393x852 ink - 13 test/addhost-chips.spec.ts:159:5 › captures 393x852 paper ✓ 14 test/addhost-chips.spec.ts:179:1 › a token typed while the host list is still loading chips when the list arrives (13.2s) 4 skipped 10 passed (2.3m) Invocation exit: 0 Load after: 34.11 41.98 44.61 16/3329 3622903 ```
Author
Owner

#163 verbatim evidence: browser-isolated-addhost-wizard.spec.log (1/1)

Load before: 34.11 41.98 44.61 22/3324 3622905
Running as unit: run-p3622906-i49712961.scope; invocation ID: 948f2f93753b4ad5817a250284b97ea6
[WebServer] $ bun run build.ts
[WebServer] built chunk-thdt9kaj.js, chunk-tvynw18r.js, chunk-qc93qj3a.js, chunk-b5qzwpce.js, chunk-djesa7zm.js, chunk-nv1953ym.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-qfnfzj6m.js, chunk-jxme46eh.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-sqb1mk98.js, chunk-7nczvd3c.js, chunk-cgxrpty8.js, chunk-4thk4z8t.js, chunk-yvhhqffe.js, chunk-rpptf6e1.js, chunk-4h01t8sf.js, chunk-978vr7cj.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-se8aqrvr.js, chunk-4ytj5dbe.js, chunk-7bmaw50g.js, chunk-f60b7bhd.js, chunk-8gqdshxw.js, chunk-dyzqfyeb.js, chunk-wq3rp795.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-pvc0tqhx.js, chunk-r1jx6vc7.js, chunk-mrbqxsgv.js, chunk-cbcz8wfn.js, chunk-1d0qvnvb.js, chunk-cw3vyt05.js, chunk-axbkkqp1.js, chunk-nk13dfvk.js, chunk-r1gnp5h4.js, chunk-9w2p2qb7.js, chunk-f7dmnwk9.js, chunk-kjr0h1sd.js, chunk-cthqcsh6.js, chunk-v86b5paa.js, chunk-k5v5jnf2.js, chunk-gszh22ed.js, chunk-w14399sb.js, chunk-1t18cexw.js, chunk-2e4yh13p.js, chunk-vewdy4dv.js, chunk-hks6k2yd.js, chunk-wrpvss8s.js, chunk-7myajssg.js, chunk-p76c79jj.js, chunk-n90brk90.js, chunk-st1vftt2.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-mse78y04.js, chunk-72e04j0e.js, chunk-0sxn500c.js, chunk-e7s300dn.js, chunk-w0h7jdgh.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 27 tests using 1 worker

(node:3623384) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   1 test/addhost-wizard.spec.ts:46:1 › the toolbar button and the palette open the wizard (13.9s)
  ✓   2 test/addhost-wizard.spec.ts:60:1 › network access: detected, shown by name, and the host lands in Console and the sidebar (17.6s)
  ✓   3 test/addhost-wizard.spec.ts:81:1 › closing the flow window from its own frame ends the wizard (11.1s)
  ✓   4 test/addhost-wizard.spec.ts:90:1 › the server's own key is the fallback when the network does not sign in (12.2s)
  ✓   5 test/addhost-wizard.spec.ts:99:1 › a batch shows every host's own progress and opens every host (15.9s)
  ✓   6 test/addhost-wizard.spec.ts:110:1 › all automatic methods refused: asked to choose, and a password is sent once and never kept (21.9s)
  ✓   7 test/addhost-wizard.spec.ts:136:1 › a pasted private key signs in as the user's key (15.3s)
  ✓   8 test/addhost-wizard.spec.ts:149:1 › a saved key (unlocked with the passkey) is offered only when the browser holds one (16.3s)
  ✓   9 test/addhost-wizard.spec.ts:162:1 › without a saved key the choice does not offer one (14.1s)
  ✓  10 test/addhost-wizard.spec.ts:170:1 › the server key is shown to copy; adding it and trying again signs in (15.2s)
  ✓  11 test/addhost-wizard.spec.ts:185:1 › a locked server key is still shown, with the reason (14.3s)
  ✓  12 test/addhost-wizard.spec.ts:193:1 › no server key to show: the choice is paste or password only (16.0s)
  ✓  13 test/addhost-wizard.spec.ts:202:1 › an unknown host key shows its fingerprint and is never trusted without a click (24.4s)
  ✓  14 test/addhost-wizard.spec.ts:219:1 › a host that does not answer: what happened, Retry, and the one-line install from the host (26.0s)
  ✓  15 test/addhost-wizard.spec.ts:235:1 › a mesh policy block says possible, not certain (16.3s)
  ✓  16 test/addhost-wizard.spec.ts:248:1 › an unsupported host cannot be retried; an install failure can (25.4s)
  ✓  17 test/addhost-wizard.spec.ts:265:1 › one refusal without choose_method still offers another way to sign in (13.4s)
  ✓  18 test/addhost-wizard.spec.ts:272:1 › empty, loading and error states of discovery (18.5s)
  ✓  19 test/addhost-wizard.spec.ts:297:1 › an SSH config pasted into the field becomes chips (7.8s)
  ✓  20 test/addhost-wizard.spec.ts:311:1 › closing mid-install asks first, and cancelling ends the run (13.4s)
  ✓  21 test/addhost-wizard.spec.ts:326:1 › the wizard works on a phone and keeps the footer on screen (9.3s)
  ✓  22 test/addhost-wizard.spec.ts:350:3 › fresh CA explains passkey confirmation before starting SSH (11.2s)
  ✓  23 test/addhost-wizard.spec.ts:350:3 › locked CA explains passkey confirmation before starting SSH (12.1s)
  ✓  24 test/addhost-wizard.spec.ts:368:1 › a canvas flow remains nonmodal (7.3s)
  ✓  25 test/addhost-wizard.spec.ts:374:1 › Escape in the palette leaves the add-host flow open (10.0s)
  ✓  26 test/addhost-wizard.spec.ts:388:1 › Tab can leave a canvas flow (8.4s)
  ✓  27 test/addhost-wizard.spec.ts:397:1 › a typed root login requires consent and cannot pretend to install as a user (16.3s)

  Slow test file: test/addhost-wizard.spec.ts (6.7m)
  Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel
  27 passed (6.9m)

Invocation exit: 0
Load after: 25.91 31.67 38.84 25/3273 3658358
#163 verbatim evidence: browser-isolated-addhost-wizard.spec.log (1/1) ```text Load before: 34.11 41.98 44.61 22/3324 3622905 Running as unit: run-p3622906-i49712961.scope; invocation ID: 948f2f93753b4ad5817a250284b97ea6 [WebServer] $ bun run build.ts [WebServer] built chunk-thdt9kaj.js, chunk-tvynw18r.js, chunk-qc93qj3a.js, chunk-b5qzwpce.js, chunk-djesa7zm.js, chunk-nv1953ym.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-qfnfzj6m.js, chunk-jxme46eh.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-sqb1mk98.js, chunk-7nczvd3c.js, chunk-cgxrpty8.js, chunk-4thk4z8t.js, chunk-yvhhqffe.js, chunk-rpptf6e1.js, chunk-4h01t8sf.js, chunk-978vr7cj.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-se8aqrvr.js, chunk-4ytj5dbe.js, chunk-7bmaw50g.js, chunk-f60b7bhd.js, chunk-8gqdshxw.js, chunk-dyzqfyeb.js, chunk-wq3rp795.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-pvc0tqhx.js, chunk-r1jx6vc7.js, chunk-mrbqxsgv.js, chunk-cbcz8wfn.js, chunk-1d0qvnvb.js, chunk-cw3vyt05.js, chunk-axbkkqp1.js, chunk-nk13dfvk.js, chunk-r1gnp5h4.js, chunk-9w2p2qb7.js, chunk-f7dmnwk9.js, chunk-kjr0h1sd.js, chunk-cthqcsh6.js, chunk-v86b5paa.js, chunk-k5v5jnf2.js, chunk-gszh22ed.js, chunk-w14399sb.js, chunk-1t18cexw.js, chunk-2e4yh13p.js, chunk-vewdy4dv.js, chunk-hks6k2yd.js, chunk-wrpvss8s.js, chunk-7myajssg.js, chunk-p76c79jj.js, chunk-n90brk90.js, chunk-st1vftt2.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-mse78y04.js, chunk-72e04j0e.js, chunk-0sxn500c.js, chunk-e7s300dn.js, chunk-w0h7jdgh.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 27 tests using 1 worker (node:3623384) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/addhost-wizard.spec.ts:46:1 › the toolbar button and the palette open the wizard (13.9s) ✓ 2 test/addhost-wizard.spec.ts:60:1 › network access: detected, shown by name, and the host lands in Console and the sidebar (17.6s) ✓ 3 test/addhost-wizard.spec.ts:81:1 › closing the flow window from its own frame ends the wizard (11.1s) ✓ 4 test/addhost-wizard.spec.ts:90:1 › the server's own key is the fallback when the network does not sign in (12.2s) ✓ 5 test/addhost-wizard.spec.ts:99:1 › a batch shows every host's own progress and opens every host (15.9s) ✓ 6 test/addhost-wizard.spec.ts:110:1 › all automatic methods refused: asked to choose, and a password is sent once and never kept (21.9s) ✓ 7 test/addhost-wizard.spec.ts:136:1 › a pasted private key signs in as the user's key (15.3s) ✓ 8 test/addhost-wizard.spec.ts:149:1 › a saved key (unlocked with the passkey) is offered only when the browser holds one (16.3s) ✓ 9 test/addhost-wizard.spec.ts:162:1 › without a saved key the choice does not offer one (14.1s) ✓ 10 test/addhost-wizard.spec.ts:170:1 › the server key is shown to copy; adding it and trying again signs in (15.2s) ✓ 11 test/addhost-wizard.spec.ts:185:1 › a locked server key is still shown, with the reason (14.3s) ✓ 12 test/addhost-wizard.spec.ts:193:1 › no server key to show: the choice is paste or password only (16.0s) ✓ 13 test/addhost-wizard.spec.ts:202:1 › an unknown host key shows its fingerprint and is never trusted without a click (24.4s) ✓ 14 test/addhost-wizard.spec.ts:219:1 › a host that does not answer: what happened, Retry, and the one-line install from the host (26.0s) ✓ 15 test/addhost-wizard.spec.ts:235:1 › a mesh policy block says possible, not certain (16.3s) ✓ 16 test/addhost-wizard.spec.ts:248:1 › an unsupported host cannot be retried; an install failure can (25.4s) ✓ 17 test/addhost-wizard.spec.ts:265:1 › one refusal without choose_method still offers another way to sign in (13.4s) ✓ 18 test/addhost-wizard.spec.ts:272:1 › empty, loading and error states of discovery (18.5s) ✓ 19 test/addhost-wizard.spec.ts:297:1 › an SSH config pasted into the field becomes chips (7.8s) ✓ 20 test/addhost-wizard.spec.ts:311:1 › closing mid-install asks first, and cancelling ends the run (13.4s) ✓ 21 test/addhost-wizard.spec.ts:326:1 › the wizard works on a phone and keeps the footer on screen (9.3s) ✓ 22 test/addhost-wizard.spec.ts:350:3 › fresh CA explains passkey confirmation before starting SSH (11.2s) ✓ 23 test/addhost-wizard.spec.ts:350:3 › locked CA explains passkey confirmation before starting SSH (12.1s) ✓ 24 test/addhost-wizard.spec.ts:368:1 › a canvas flow remains nonmodal (7.3s) ✓ 25 test/addhost-wizard.spec.ts:374:1 › Escape in the palette leaves the add-host flow open (10.0s) ✓ 26 test/addhost-wizard.spec.ts:388:1 › Tab can leave a canvas flow (8.4s) ✓ 27 test/addhost-wizard.spec.ts:397:1 › a typed root login requires consent and cannot pretend to install as a user (16.3s) Slow test file: test/addhost-wizard.spec.ts (6.7m) Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel 27 passed (6.9m) Invocation exit: 0 Load after: 25.91 31.67 38.84 25/3273 3658358 ```
Author
Owner

#163 verbatim evidence: browser-isolated-canvas.spec.log (1/1)

Load before: 25.91 31.67 38.84 25/3273 3658358
Running as unit: run-p3658359-i49748413.scope; invocation ID: 19b2557a16994a518e3e818cd95f7cf7
[WebServer] $ bun run build.ts
[WebServer] built chunk-dg0gd4rm.js, chunk-tvynw18r.js, chunk-yzy0vga3.js, chunk-b5qzwpce.js, chunk-25hpm6fk.js, chunk-2n6kcvsm.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-1r2xtad3.js, chunk-t4dv9ska.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-zy569t7n.js, chunk-7nczvd3c.js, chunk-68mer2kg.js, chunk-1rpx4sv8.js, chunk-yvhhqffe.js, chunk-gza92wzy.js, chunk-qcmf71hz.js, chunk-2ftnwvtm.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-kr8shaw0.js, chunk-vpnjqc37.js, chunk-gekeydja.js, chunk-cndmk72w.js, chunk-8gqdshxw.js, chunk-yq2gxh8d.js, chunk-ks4ybvtp.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-atazrd4n.js, chunk-ny21kg29.js, chunk-jv6rqt2d.js, chunk-vk05cp4v.js, chunk-1d0qvnvb.js, chunk-3t7vjk5w.js, chunk-axbkkqp1.js, chunk-e91w6sv0.js, chunk-tm6bbjwa.js, chunk-346qa35h.js, chunk-cjr9njq4.js, chunk-ha5s00pj.js, chunk-b2zjk9eh.js, chunk-v86b5paa.js, chunk-qp0pmy86.js, chunk-pj3svp7a.js, chunk-rdm1jsb7.js, chunk-zydn7yx2.js, chunk-2e4yh13p.js, chunk-2cb2pw4c.js, chunk-yc88c2sn.js, chunk-6wgeryav.js, chunk-n13gkbht.js, chunk-bcc30zcy.js, chunk-veg53xkk.js, chunk-f8q5wx4p.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-jm1ab9x2.js, chunk-1c80at2b.js, chunk-0sxn500c.js, chunk-bdpz63n8.js, chunk-fap3f6q9.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 38 tests using 1 worker

(node:3659704) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   1 test/canvas.spec.ts:30:1 › desktop: horizontal trackpad scrolling pans the canvas over a terminal and rests on whole pixels (13.3s)
  ✓   2 test/canvas.spec.ts:50:1 › desktop: a click on an inactive window activates it without moving focus into it (10.5s)
  ✓   3 test/canvas.spec.ts:63:1 › touch: a tap activates without the keyboard, two fingers pan the canvas (12.4s)
  ✓   4 test/canvas.spec.ts:88:1 › details popover: keys left, values right, each cell copies with a tick (10.4s)
  ✓   5 test/canvas.spec.ts:111:1 › live terminal: the cursor stays on its text inside the window card (9.0s)
  ✓   6 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 1 (a window wide enough for 87 columns) (8.7s)
  ✓   7 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 2 (a window wide enough for 87 columns) (10.4s)
  ✓   8 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 1440×900 (9.9s)
  ✓   9 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 393×852 (8.2s)
  ✓  10 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 375×667 (9.0s)
  ✓  11 test/canvas.spec.ts:172:1 › every floating card uses the one overlay material (8.1s)
  ✓  12 test/canvas.spec.ts:191:1 › a connection failure shows in the shared toast, never as a floating status box (9.2s)
  ✓  13 test/canvas.spec.ts:208:1 › desktop: edges and corners resize with the right cursors, neighbours shift and never overlap (9.9s)
  ✓  14 test/canvas.spec.ts:250:1 › desktop: a window cannot shrink below about 40 columns by 10 rows (10.0s)
resize frame cost over 40 frames: median 0.80 ms, p95 5.60 ms, max 11.20 ms
  ✓  15 test/canvas.spec.ts:265:1 › desktop: the live terminal refits once on release, not on every frame, and each frame costs under 16 ms (13.9s)
  ✘  16 test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it (12.0s)
(node:3686632) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  17 test/canvas.spec.ts:344:1 › sidebar footer: the person and settings pills line up, press, and open Settings with About; no version pill (13.1s)
  ✓  18 test/canvas.spec.ts:401:1 › palette: About infraternal opens Settings, About, and is found by version, build and commit (9.3s)
  ✓  19 test/canvas.spec.ts:418:1 › lock: the icon appears near a window's top edge, locks with a click, stays, and unlocks with Ctrl+Shift+L (8.9s)
  ✓  20 test/canvas.spec.ts:464:1 › lock: wheel and canvas gestures inside the locked window never pan; outside it still does; other windows are ignored (9.8s)
  ✓  21 test/canvas.spec.ts:494:1 › lock: Ctrl+K reaches the terminal on Linux and Windows while locked, and opens the palette when unlocked (8.6s)
  ✓  22 test/canvas.spec.ts:522:1 › lock: on macOS, ⌘K still opens the palette while locked and offers Unlock window (7.8s)
  ✓  23 test/canvas.spec.ts:541:1 › lock (touch): there is no frame lock on a phone; the palette locks (7.6s)
  ✓  24 test/canvas.spec.ts:552:1 › lock: one click on an unfocused window's lock focuses that window and locks it (9.1s)
  ✓  25 test/canvas.spec.ts:576:1 › shortcuts: ? morphs the capsule into the list, current area first, one shortcut per action; Esc, ? and a click outside morph it back (10.1s)
  ✘  26 test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K (14.1s)
(node:3697383) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  27 test/canvas.spec.ts:638:1 › shortcuts (reduced motion): the panel crossfades without any shape travel (9.1s)
  ✓  28 test/canvas.spec.ts:653:1 › empty canvas: a click in the gap clears the active window and its highlight; keys go to canvas navigation (9.6s)
  ✓  29 test/canvas.spec.ts:677:1 › empty canvas (touch): a tap in the gap clears the active window (9.2s)
  ✓  30 test/canvas.spec.ts:695:1 › details popover tabs: the selected capsule glides (does not jump) and the keyboard moves it instantly (10.1s)
  ✓  31 test/canvas.spec.ts:728:1 › copyable values: the highlight hugs the text with even padding, on keys and right-aligned values (8.9s)
  ✓  32 test/canvas.spec.ts:751:1 › a normal preview session never writes text bottom left: reload, a failing session check, state messages (16.9s)
  ✓  33 test/canvas.spec.ts:799:1 › copy works from a plain-http, non-localhost origin: no async clipboard, the fallback copies and the feedback plays (6.7s)
  ✓  34 test/canvas.spec.ts:840:1 › top pill: the host's operating-system icon replaces the connection dot and follows the active window (7.4s)
  ✓  35 test/canvas.spec.ts:852:1 › palette (desktop): centred, as tall as its results, never closer than a quarter of the viewport to the top or bottom (8.7s)
  ✓  36 test/canvas.spec.ts:890:1 › palette (phone): keeps its placement under the top bar, inside the safe area (7.5s)
  ✓  37 test/canvas.spec.ts:904:1 › palette: Ctrl+K then typing within 20 ms lands every character; arrow selection has no transition (8.1s)
  ✓  38 test/canvas.spec.ts:925:1 › clear and frosted cards blur what is behind them by more than a line of text, so letters never read through (8.9s)


  1) test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 564
    Received:   714

      332 |   await page.waitForTimeout(300);
      333 |   const after = await windowBox(page, 0);
    > 334 |   expect(after.height).toBeLessThan(before.height - 150);
          |                        ^
      335 |   expect(after.width).toBeLessThan(before.width - 40);
      336 |   // The mode stays until a tap lands outside the handles.
      337 |   await expect(window0).toHaveAttribute("data-resize", "touch");
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/canvas.spec.ts:334:24

    Error Context: test-results/canvas-touch-press-and-hol-7d656-sizes-a-tap-outside-ends-it/error-context.md

  2) test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 

    Error: expect(locator).toHaveText(expected) failed

    Locator: locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd')
    Timeout: 5000ms
    - Expected  - 2
    + Received  + 2

      Array [
    -   "Ctrl",
    -   "Shift",
    +   "⌃",
    +   "⇧",
        "L",
      ]

    Call log:
      - Expect "toHaveText" with timeout 5000ms
      - waiting for locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd')
        13 × locator resolved to 3 elements


      629 |   const panel = page.locator(".ui-shortcuts");
      630 |   await expect(panel).toBeVisible();
    > 631 |   await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]);
          |                                                                                                  ^
      632 |   await expect(panel.locator(".ui-shortcuts-row", { hasText: "command palette" }).locator("kbd")).toHaveText(["⌘", "K", "⌘", "⇧", "P"]);
      633 |   await page.keyboard.press("Escape");
      634 |   await expect(panel).toHaveCount(0);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/canvas.spec.ts:631:98

    Error Context: test-results/canvas-shortcuts-the-palet-85af2-re-listed-and-a-Mac-sees-⌘K/error-context.md

  2 failed
    test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it 
    test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 
  36 passed (6.6m)

Invocation exit: 1
Load after: 18.76 25.72 33.89 17/3148 3709238
#163 verbatim evidence: browser-isolated-canvas.spec.log (1/1) ```text Load before: 25.91 31.67 38.84 25/3273 3658358 Running as unit: run-p3658359-i49748413.scope; invocation ID: 19b2557a16994a518e3e818cd95f7cf7 [WebServer] $ bun run build.ts [WebServer] built chunk-dg0gd4rm.js, chunk-tvynw18r.js, chunk-yzy0vga3.js, chunk-b5qzwpce.js, chunk-25hpm6fk.js, chunk-2n6kcvsm.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-1r2xtad3.js, chunk-t4dv9ska.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-zy569t7n.js, chunk-7nczvd3c.js, chunk-68mer2kg.js, chunk-1rpx4sv8.js, chunk-yvhhqffe.js, chunk-gza92wzy.js, chunk-qcmf71hz.js, chunk-2ftnwvtm.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-kr8shaw0.js, chunk-vpnjqc37.js, chunk-gekeydja.js, chunk-cndmk72w.js, chunk-8gqdshxw.js, chunk-yq2gxh8d.js, chunk-ks4ybvtp.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-atazrd4n.js, chunk-ny21kg29.js, chunk-jv6rqt2d.js, chunk-vk05cp4v.js, chunk-1d0qvnvb.js, chunk-3t7vjk5w.js, chunk-axbkkqp1.js, chunk-e91w6sv0.js, chunk-tm6bbjwa.js, chunk-346qa35h.js, chunk-cjr9njq4.js, chunk-ha5s00pj.js, chunk-b2zjk9eh.js, chunk-v86b5paa.js, chunk-qp0pmy86.js, chunk-pj3svp7a.js, chunk-rdm1jsb7.js, chunk-zydn7yx2.js, chunk-2e4yh13p.js, chunk-2cb2pw4c.js, chunk-yc88c2sn.js, chunk-6wgeryav.js, chunk-n13gkbht.js, chunk-bcc30zcy.js, chunk-veg53xkk.js, chunk-f8q5wx4p.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-jm1ab9x2.js, chunk-1c80at2b.js, chunk-0sxn500c.js, chunk-bdpz63n8.js, chunk-fap3f6q9.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 38 tests using 1 worker (node:3659704) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/canvas.spec.ts:30:1 › desktop: horizontal trackpad scrolling pans the canvas over a terminal and rests on whole pixels (13.3s) ✓ 2 test/canvas.spec.ts:50:1 › desktop: a click on an inactive window activates it without moving focus into it (10.5s) ✓ 3 test/canvas.spec.ts:63:1 › touch: a tap activates without the keyboard, two fingers pan the canvas (12.4s) ✓ 4 test/canvas.spec.ts:88:1 › details popover: keys left, values right, each cell copies with a tick (10.4s) ✓ 5 test/canvas.spec.ts:111:1 › live terminal: the cursor stays on its text inside the window card (9.0s) ✓ 6 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 1 (a window wide enough for 87 columns) (8.7s) ✓ 7 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 2 (a window wide enough for 87 columns) (10.4s) ✓ 8 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 1440×900 (9.9s) ✓ 9 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 393×852 (8.2s) ✓ 10 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 375×667 (9.0s) ✓ 11 test/canvas.spec.ts:172:1 › every floating card uses the one overlay material (8.1s) ✓ 12 test/canvas.spec.ts:191:1 › a connection failure shows in the shared toast, never as a floating status box (9.2s) ✓ 13 test/canvas.spec.ts:208:1 › desktop: edges and corners resize with the right cursors, neighbours shift and never overlap (9.9s) ✓ 14 test/canvas.spec.ts:250:1 › desktop: a window cannot shrink below about 40 columns by 10 rows (10.0s) resize frame cost over 40 frames: median 0.80 ms, p95 5.60 ms, max 11.20 ms ✓ 15 test/canvas.spec.ts:265:1 › desktop: the live terminal refits once on release, not on every frame, and each frame costs under 16 ms (13.9s) ✘ 16 test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it (12.0s) (node:3686632) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 17 test/canvas.spec.ts:344:1 › sidebar footer: the person and settings pills line up, press, and open Settings with About; no version pill (13.1s) ✓ 18 test/canvas.spec.ts:401:1 › palette: About infraternal opens Settings, About, and is found by version, build and commit (9.3s) ✓ 19 test/canvas.spec.ts:418:1 › lock: the icon appears near a window's top edge, locks with a click, stays, and unlocks with Ctrl+Shift+L (8.9s) ✓ 20 test/canvas.spec.ts:464:1 › lock: wheel and canvas gestures inside the locked window never pan; outside it still does; other windows are ignored (9.8s) ✓ 21 test/canvas.spec.ts:494:1 › lock: Ctrl+K reaches the terminal on Linux and Windows while locked, and opens the palette when unlocked (8.6s) ✓ 22 test/canvas.spec.ts:522:1 › lock: on macOS, ⌘K still opens the palette while locked and offers Unlock window (7.8s) ✓ 23 test/canvas.spec.ts:541:1 › lock (touch): there is no frame lock on a phone; the palette locks (7.6s) ✓ 24 test/canvas.spec.ts:552:1 › lock: one click on an unfocused window's lock focuses that window and locks it (9.1s) ✓ 25 test/canvas.spec.ts:576:1 › shortcuts: ? morphs the capsule into the list, current area first, one shortcut per action; Esc, ? and a click outside morph it back (10.1s) ✘ 26 test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K (14.1s) (node:3697383) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 27 test/canvas.spec.ts:638:1 › shortcuts (reduced motion): the panel crossfades without any shape travel (9.1s) ✓ 28 test/canvas.spec.ts:653:1 › empty canvas: a click in the gap clears the active window and its highlight; keys go to canvas navigation (9.6s) ✓ 29 test/canvas.spec.ts:677:1 › empty canvas (touch): a tap in the gap clears the active window (9.2s) ✓ 30 test/canvas.spec.ts:695:1 › details popover tabs: the selected capsule glides (does not jump) and the keyboard moves it instantly (10.1s) ✓ 31 test/canvas.spec.ts:728:1 › copyable values: the highlight hugs the text with even padding, on keys and right-aligned values (8.9s) ✓ 32 test/canvas.spec.ts:751:1 › a normal preview session never writes text bottom left: reload, a failing session check, state messages (16.9s) ✓ 33 test/canvas.spec.ts:799:1 › copy works from a plain-http, non-localhost origin: no async clipboard, the fallback copies and the feedback plays (6.7s) ✓ 34 test/canvas.spec.ts:840:1 › top pill: the host's operating-system icon replaces the connection dot and follows the active window (7.4s) ✓ 35 test/canvas.spec.ts:852:1 › palette (desktop): centred, as tall as its results, never closer than a quarter of the viewport to the top or bottom (8.7s) ✓ 36 test/canvas.spec.ts:890:1 › palette (phone): keeps its placement under the top bar, inside the safe area (7.5s) ✓ 37 test/canvas.spec.ts:904:1 › palette: Ctrl+K then typing within 20 ms lands every character; arrow selection has no transition (8.1s) ✓ 38 test/canvas.spec.ts:925:1 › clear and frosted cards blur what is behind them by more than a line of text, so letters never read through (8.9s) 1) test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it Error: expect(received).toBeLessThan(expected) Expected: < 564 Received: 714 332 | await page.waitForTimeout(300); 333 | const after = await windowBox(page, 0); > 334 | expect(after.height).toBeLessThan(before.height - 150); | ^ 335 | expect(after.width).toBeLessThan(before.width - 40); 336 | // The mode stays until a tap lands outside the handles. 337 | await expect(window0).toHaveAttribute("data-resize", "touch"); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/canvas.spec.ts:334:24 Error Context: test-results/canvas-touch-press-and-hol-7d656-sizes-a-tap-outside-ends-it/error-context.md 2) test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K Error: expect(locator).toHaveText(expected) failed Locator: locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd') Timeout: 5000ms - Expected - 2 + Received + 2 Array [ - "Ctrl", - "Shift", + "⌃", + "⇧", "L", ] Call log: - Expect "toHaveText" with timeout 5000ms - waiting for locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd') 13 × locator resolved to 3 elements 629 | const panel = page.locator(".ui-shortcuts"); 630 | await expect(panel).toBeVisible(); > 631 | await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]); | ^ 632 | await expect(panel.locator(".ui-shortcuts-row", { hasText: "command palette" }).locator("kbd")).toHaveText(["⌘", "K", "⌘", "⇧", "P"]); 633 | await page.keyboard.press("Escape"); 634 | await expect(panel).toHaveCount(0); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/canvas.spec.ts:631:98 Error Context: test-results/canvas-shortcuts-the-palet-85af2-re-listed-and-a-Mac-sees-⌘K/error-context.md 2 failed test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 36 passed (6.6m) Invocation exit: 1 Load after: 18.76 25.72 33.89 17/3148 3709238 ```
Author
Owner

#163 verbatim evidence: browser-isolated-cell-metrics.spec.log (1/1)

Load before: 21.22 30.70 34.14 11/3111 3780726
Running as unit: run-p3780727-i49870756.scope; invocation ID: c8db90d98fa64cb6bec5bd00b38a5189
[WebServer] $ bun run build.ts
[WebServer] built chunk-6tpxxgwr.js, chunk-tvynw18r.js, chunk-k75jbxnx.js, chunk-b5qzwpce.js, chunk-6c4jfhsq.js, chunk-52a7r6b7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-gyg0dvbf.js, chunk-z20j4atp.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-pt727f8x.js, chunk-7nczvd3c.js, chunk-kwxew0ft.js, chunk-17rgx0he.js, chunk-yvhhqffe.js, chunk-0edgz4pp.js, chunk-x6fedx01.js, chunk-qwedr313.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-hrzg8b70.js, chunk-1phn2x27.js, chunk-2p3ykn9f.js, chunk-d3kgvrwh.js, chunk-8gqdshxw.js, chunk-3t9mc82v.js, chunk-hx0d9jqj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-r8c0r5a5.js, chunk-parcp1s3.js, chunk-55ccbmvx.js, chunk-rse8c37f.js, chunk-1d0qvnvb.js, chunk-peqy109a.js, chunk-axbkkqp1.js, chunk-bp3qtw70.js, chunk-3hk2evg5.js, chunk-bkdggr48.js, chunk-d8xz2phg.js, chunk-k808mxtm.js, chunk-q2cbptkj.js, chunk-v86b5paa.js, chunk-q2rr2870.js, chunk-tmdywbs2.js, chunk-7041rmpm.js, chunk-mhn0rydt.js, chunk-2e4yh13p.js, chunk-0ns8cfqr.js, chunk-e3z8j66n.js, chunk-6bjht2ym.js, chunk-erbs4wnd.js, chunk-h2hrc1jq.js, chunk-php6sq67.js, chunk-r07v4n17.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-3sjv1c3y.js, chunk-3jcr1npa.js, chunk-0sxn500c.js, chunk-ba2t9gmf.js, chunk-7c5kee4c.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 3 tests using 1 worker

(node:3782689) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[20.33,30.2,33.94],"scenario":"desktop-dpr2"}
CELL_METRICS {"dpr":2,"cols":170,"rows":44,"fontSize":14,"cellWidth":8,"cellHeight":18,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":14,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":18,"heightRatio":1.2857142857142858,"canvasWidth":2720,"canvasHeight":1584,"expectedCanvasWidth":2720,"expectedCanvasHeight":1584,"boxSeamInk":[9,9,9],"fontLoaded":true}
RENDER_BENCH desktop-dpr2 {"redrawP50Ms":1.0999999642372131,"redrawP95Ms":2.300000011920929,"bytes":10000000,"elapsedMs":1029.5,"writeCpuMs":366.1000003218651,"p95FrameMs":16.700000000000728,"maxFrameMs":16.800000000000182,"wasmMemoryBytes":13500416,"effectiveMegabytesPerSecond":9.713453132588635}
  ✓  1 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 (9.4s)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[20.89,29.99,33.83],"scenario":"mobile-dpr3"}
CELL_METRICS {"dpr":3,"cols":40,"rows":40,"fontSize":13,"cellWidth":8,"cellHeight":17,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":13,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":17,"heightRatio":1.3076923076923077,"canvasWidth":960,"canvasHeight":2040,"expectedCanvasWidth":960,"expectedCanvasHeight":2040,"boxSeamInk":[9,9,9],"fontLoaded":true}
RENDER_BENCH mobile-dpr3 {"redrawP50Ms":1.5,"redrawP95Ms":6.800000011920929,"bytes":10000000,"elapsedMs":1034.199999988079,"writeCpuMs":494.0000002384186,"p95FrameMs":16.700000000000728,"maxFrameMs":33.30000000000018,"wasmMemoryBytes":12713984,"effectiveMegabytesPerSecond":9.66930961140521}
  ✓  2 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 3 (8.4s)
RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[20.41,29.74,33.73],"scenario":"desktop-dpr1"}
CELL_METRICS {"dpr":1,"cols":170,"rows":44,"fontSize":14,"cellWidth":8,"cellHeight":18,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":14,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":18,"heightRatio":1.2857142857142858,"canvasWidth":1360,"canvasHeight":792,"expectedCanvasWidth":1360,"expectedCanvasHeight":792,"boxSeamInk":[9,9,9],"fontLoaded":true}
  ✓  3 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 1 (8.0s)

  3 passed (33.6s)

Invocation exit: 0
Load after: 20.54 29.47 33.60 32/3154 3789063
#163 verbatim evidence: browser-isolated-cell-metrics.spec.log (1/1) ```text Load before: 21.22 30.70 34.14 11/3111 3780726 Running as unit: run-p3780727-i49870756.scope; invocation ID: c8db90d98fa64cb6bec5bd00b38a5189 [WebServer] $ bun run build.ts [WebServer] built chunk-6tpxxgwr.js, chunk-tvynw18r.js, chunk-k75jbxnx.js, chunk-b5qzwpce.js, chunk-6c4jfhsq.js, chunk-52a7r6b7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-gyg0dvbf.js, chunk-z20j4atp.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-pt727f8x.js, chunk-7nczvd3c.js, chunk-kwxew0ft.js, chunk-17rgx0he.js, chunk-yvhhqffe.js, chunk-0edgz4pp.js, chunk-x6fedx01.js, chunk-qwedr313.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-hrzg8b70.js, chunk-1phn2x27.js, chunk-2p3ykn9f.js, chunk-d3kgvrwh.js, chunk-8gqdshxw.js, chunk-3t9mc82v.js, chunk-hx0d9jqj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-r8c0r5a5.js, chunk-parcp1s3.js, chunk-55ccbmvx.js, chunk-rse8c37f.js, chunk-1d0qvnvb.js, chunk-peqy109a.js, chunk-axbkkqp1.js, chunk-bp3qtw70.js, chunk-3hk2evg5.js, chunk-bkdggr48.js, chunk-d8xz2phg.js, chunk-k808mxtm.js, chunk-q2cbptkj.js, chunk-v86b5paa.js, chunk-q2rr2870.js, chunk-tmdywbs2.js, chunk-7041rmpm.js, chunk-mhn0rydt.js, chunk-2e4yh13p.js, chunk-0ns8cfqr.js, chunk-e3z8j66n.js, chunk-6bjht2ym.js, chunk-erbs4wnd.js, chunk-h2hrc1jq.js, chunk-php6sq67.js, chunk-r07v4n17.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-3sjv1c3y.js, chunk-3jcr1npa.js, chunk-0sxn500c.js, chunk-ba2t9gmf.js, chunk-7c5kee4c.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 3 tests using 1 worker (node:3782689) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[20.33,30.2,33.94],"scenario":"desktop-dpr2"} CELL_METRICS {"dpr":2,"cols":170,"rows":44,"fontSize":14,"cellWidth":8,"cellHeight":18,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":14,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":18,"heightRatio":1.2857142857142858,"canvasWidth":2720,"canvasHeight":1584,"expectedCanvasWidth":2720,"expectedCanvasHeight":1584,"boxSeamInk":[9,9,9],"fontLoaded":true} RENDER_BENCH desktop-dpr2 {"redrawP50Ms":1.0999999642372131,"redrawP95Ms":2.300000011920929,"bytes":10000000,"elapsedMs":1029.5,"writeCpuMs":366.1000003218651,"p95FrameMs":16.700000000000728,"maxFrameMs":16.800000000000182,"wasmMemoryBytes":13500416,"effectiveMegabytesPerSecond":9.713453132588635} ✓ 1 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 2 (9.4s) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[20.89,29.99,33.83],"scenario":"mobile-dpr3"} CELL_METRICS {"dpr":3,"cols":40,"rows":40,"fontSize":13,"cellWidth":8,"cellHeight":17,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":13,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":17,"heightRatio":1.3076923076923077,"canvasWidth":960,"canvasHeight":2040,"expectedCanvasWidth":960,"expectedCanvasHeight":2040,"boxSeamInk":[9,9,9],"fontLoaded":true} RENDER_BENCH mobile-dpr3 {"redrawP50Ms":1.5,"redrawP95Ms":6.800000011920929,"bytes":10000000,"elapsedMs":1034.199999988079,"writeCpuMs":494.0000002384186,"p95FrameMs":16.700000000000728,"maxFrameMs":33.30000000000018,"wasmMemoryBytes":12713984,"effectiveMegabytesPerSecond":9.66930961140521} ✓ 2 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 3 (8.4s) RENDER_ENV {"host":"infraternal-dev","kernel":"6.12.111+deb13-amd64","cpu":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","logicalCpus":8,"totalRamBytes":33591037952,"loadAverage":[20.41,29.74,33.73],"scenario":"desktop-dpr1"} CELL_METRICS {"dpr":1,"cols":170,"rows":44,"fontSize":14,"cellWidth":8,"cellHeight":18,"rendererNaturalAdvance":8,"widthAdvance":8,"fontAscent":14,"fontDescent":4,"expectedCellWidth":8,"expectedCellHeight":18,"heightRatio":1.2857142857142858,"canvasWidth":1360,"canvasHeight":792,"expectedCanvasWidth":1360,"expectedCanvasHeight":792,"boxSeamInk":[9,9,9],"fontLoaded":true} ✓ 3 test/cell-metrics.spec.ts:43:3 › Maple Mono NF cell metrics and box joins at DPR 1 (8.0s) 3 passed (33.6s) Invocation exit: 0 Load after: 20.54 29.47 33.60 32/3154 3789063 ```
Author
Owner

#163 verbatim evidence: browser-isolated-clusters-flight.spec.log (1/1)

Load before: 20.54 29.47 33.60 29/3153 3789064
Running as unit: run-p3789065-i49879094.scope; invocation ID: cc30692d4f88427c801508b97e595802
[WebServer] $ bun run build.ts
[WebServer] built chunk-wja99j0n.js, chunk-tvynw18r.js, chunk-1f35k304.js, chunk-b5qzwpce.js, chunk-xhpxq0bt.js, chunk-vmzwt2s7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-bht39rzb.js, chunk-3qcp0g97.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-yq83tq1j.js, chunk-7nczvd3c.js, chunk-a68v58e4.js, chunk-1dy3ezvc.js, chunk-yvhhqffe.js, chunk-nhwsgvrk.js, chunk-b05b3c7g.js, chunk-fhjc376x.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zx0d16e3.js, chunk-5tmyt6yr.js, chunk-dn7twrfs.js, chunk-x43zq1dj.js, chunk-8gqdshxw.js, chunk-gaxvqe6b.js, chunk-wc3h139s.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-5qbrk5j6.js, chunk-s5mt7efx.js, chunk-967t3f9q.js, chunk-z444w67v.js, chunk-1d0qvnvb.js, chunk-1823t7ab.js, chunk-axbkkqp1.js, chunk-epshqda7.js, chunk-vz0za4j7.js, chunk-g7b5g6va.js, chunk-vt95h7g3.js, chunk-9hwb2z8q.js, chunk-kr7dzrge.js, chunk-v86b5paa.js, chunk-7qem2mc2.js, chunk-zrtp28yn.js, chunk-5xw8xeb3.js, chunk-8sqj1507.js, chunk-2e4yh13p.js, chunk-15zh6sa3.js, chunk-q2a58p8q.js, chunk-d4x52s8v.js, chunk-5s2dmj7y.js, chunk-pkwx1tn8.js, chunk-d12mzw06.js, chunk-42thykz5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-2qmvaxqp.js, chunk-g65g57f2.js, chunk-0sxn500c.js, chunk-2gefc922.js, chunk-ck6t4agm.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:3793349) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
FLIGHT {"pointer":328,"pointerBack":433,"key":232,"key2":208}
  ✓  1 test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms (24.4s)

  1 passed (33.6s)

Invocation exit: 0
Load after: 20.53 28.51 33.13 19/3074 3796265
#163 verbatim evidence: browser-isolated-clusters-flight.spec.log (1/1) ```text Load before: 20.54 29.47 33.60 29/3153 3789064 Running as unit: run-p3789065-i49879094.scope; invocation ID: cc30692d4f88427c801508b97e595802 [WebServer] $ bun run build.ts [WebServer] built chunk-wja99j0n.js, chunk-tvynw18r.js, chunk-1f35k304.js, chunk-b5qzwpce.js, chunk-xhpxq0bt.js, chunk-vmzwt2s7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-bht39rzb.js, chunk-3qcp0g97.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-yq83tq1j.js, chunk-7nczvd3c.js, chunk-a68v58e4.js, chunk-1dy3ezvc.js, chunk-yvhhqffe.js, chunk-nhwsgvrk.js, chunk-b05b3c7g.js, chunk-fhjc376x.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zx0d16e3.js, chunk-5tmyt6yr.js, chunk-dn7twrfs.js, chunk-x43zq1dj.js, chunk-8gqdshxw.js, chunk-gaxvqe6b.js, chunk-wc3h139s.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-5qbrk5j6.js, chunk-s5mt7efx.js, chunk-967t3f9q.js, chunk-z444w67v.js, chunk-1d0qvnvb.js, chunk-1823t7ab.js, chunk-axbkkqp1.js, chunk-epshqda7.js, chunk-vz0za4j7.js, chunk-g7b5g6va.js, chunk-vt95h7g3.js, chunk-9hwb2z8q.js, chunk-kr7dzrge.js, chunk-v86b5paa.js, chunk-7qem2mc2.js, chunk-zrtp28yn.js, chunk-5xw8xeb3.js, chunk-8sqj1507.js, chunk-2e4yh13p.js, chunk-15zh6sa3.js, chunk-q2a58p8q.js, chunk-d4x52s8v.js, chunk-5s2dmj7y.js, chunk-pkwx1tn8.js, chunk-d12mzw06.js, chunk-42thykz5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-2qmvaxqp.js, chunk-g65g57f2.js, chunk-0sxn500c.js, chunk-2gefc922.js, chunk-ck6t4agm.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:3793349) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) FLIGHT {"pointer":328,"pointerBack":433,"key":232,"key2":208} ✓ 1 test/clusters-flight.spec.ts:32:1 › view flights settle quickly: pointer about 350 ms, key about 180 ms (24.4s) 1 passed (33.6s) Invocation exit: 0 Load after: 20.53 28.51 33.13 19/3074 3796265 ```
Author
Owner

#163 verbatim evidence: browser-isolated-clusters-frames.spec.log (1/1)

Load before: 20.53 28.51 33.13 16/3074 3796265
Running as unit: run-p3796266-i49886295.scope; invocation ID: e945e354982543ad9917cfcccac5a800
[WebServer] $ bun run build.ts
[WebServer] built chunk-mw91agqy.js, chunk-tvynw18r.js, chunk-bvtfm6kw.js, chunk-b5qzwpce.js, chunk-jg2354s3.js, chunk-frazcpz1.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-fhbtwmtk.js, chunk-xseecajh.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-ejwk68yy.js, chunk-7nczvd3c.js, chunk-8gdmmjf6.js, chunk-v2ffcyey.js, chunk-yvhhqffe.js, chunk-nqkpzk9c.js, chunk-t5bxges1.js, chunk-qwjsfbcz.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-m0s3ay94.js, chunk-802yt6qk.js, chunk-1dzasxhr.js, chunk-er8g37he.js, chunk-8gqdshxw.js, chunk-7vzj7he2.js, chunk-xfv42qzp.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9hqgc7b6.js, chunk-b9rw218s.js, chunk-c8xrwbdy.js, chunk-dh5z8njr.js, chunk-1d0qvnvb.js, chunk-w7g53jzt.js, chunk-axbkkqp1.js, chunk-e4mmrbyv.js, chunk-er4nj0ar.js, chunk-8f0sw67w.js, chunk-bktje37t.js, chunk-7mrbqprs.js, chunk-h6nrkcdd.js, chunk-v86b5paa.js, chunk-5tb6pvk1.js, chunk-jk9akv5q.js, chunk-fq1csvxh.js, chunk-0s8vzstf.js, chunk-2e4yh13p.js, chunk-ak9g46dj.js, chunk-6tt76qaw.js, chunk-5rx8kqp4.js, chunk-fk2n0dba.js, chunk-mb64be2r.js, chunk-n4x1zjfr.js, chunk-zacmm534.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-9bt3j5t0.js, chunk-6chm715c.js, chunk-0sxn500c.js, chunk-4zeqgdw3.js, chunk-g94aes9v.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 2 tests using 1 worker

(node:3797236) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
FRAMES 1x zoom {"n":29,"p50":33.3,"p95":216.7,"max":300.1,"dropped":17,"cpuMs":1570} pan {"n":50,"p50":33.4,"p95":100.1,"max":166.6,"dropped":42,"cpuMs":1750}
  ✓  1 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU (12.3s)
FRAMES 4x zoom {"n":21,"p50":66.7,"p95":300,"max":349.9,"dropped":19,"cpuMs":2480} pan {"n":16,"p50":116.6,"p95":433.4,"max":433.4,"dropped":15,"cpuMs":1910}
  ✓  2 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU (13.3s)

  2 passed (33.8s)

Invocation exit: 0
Load after: 21.37 27.81 32.72 37/3225 3801624
#163 verbatim evidence: browser-isolated-clusters-frames.spec.log (1/1) ```text Load before: 20.53 28.51 33.13 16/3074 3796265 Running as unit: run-p3796266-i49886295.scope; invocation ID: e945e354982543ad9917cfcccac5a800 [WebServer] $ bun run build.ts [WebServer] built chunk-mw91agqy.js, chunk-tvynw18r.js, chunk-bvtfm6kw.js, chunk-b5qzwpce.js, chunk-jg2354s3.js, chunk-frazcpz1.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-fhbtwmtk.js, chunk-xseecajh.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-ejwk68yy.js, chunk-7nczvd3c.js, chunk-8gdmmjf6.js, chunk-v2ffcyey.js, chunk-yvhhqffe.js, chunk-nqkpzk9c.js, chunk-t5bxges1.js, chunk-qwjsfbcz.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-m0s3ay94.js, chunk-802yt6qk.js, chunk-1dzasxhr.js, chunk-er8g37he.js, chunk-8gqdshxw.js, chunk-7vzj7he2.js, chunk-xfv42qzp.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9hqgc7b6.js, chunk-b9rw218s.js, chunk-c8xrwbdy.js, chunk-dh5z8njr.js, chunk-1d0qvnvb.js, chunk-w7g53jzt.js, chunk-axbkkqp1.js, chunk-e4mmrbyv.js, chunk-er4nj0ar.js, chunk-8f0sw67w.js, chunk-bktje37t.js, chunk-7mrbqprs.js, chunk-h6nrkcdd.js, chunk-v86b5paa.js, chunk-5tb6pvk1.js, chunk-jk9akv5q.js, chunk-fq1csvxh.js, chunk-0s8vzstf.js, chunk-2e4yh13p.js, chunk-ak9g46dj.js, chunk-6tt76qaw.js, chunk-5rx8kqp4.js, chunk-fk2n0dba.js, chunk-mb64be2r.js, chunk-n4x1zjfr.js, chunk-zacmm534.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-9bt3j5t0.js, chunk-6chm715c.js, chunk-0sxn500c.js, chunk-4zeqgdw3.js, chunk-g94aes9v.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 2 tests using 1 worker (node:3797236) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) FRAMES 1x zoom {"n":29,"p50":33.3,"p95":216.7,"max":300.1,"dropped":17,"cpuMs":1570} pan {"n":50,"p50":33.4,"p95":100.1,"max":166.6,"dropped":42,"cpuMs":1750} ✓ 1 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 1x CPU (12.3s) FRAMES 4x zoom {"n":21,"p50":66.7,"p95":300,"max":349.9,"dropped":19,"cpuMs":2480} pan {"n":16,"p50":116.6,"p95":433.4,"max":433.4,"dropped":15,"cpuMs":1910} ✓ 2 test/clusters-frames.spec.ts:60:3 › frames: a 2 s zoom and a 2 s pan on the free canvas at 4x CPU (13.3s) 2 passed (33.8s) Invocation exit: 0 Load after: 21.37 27.81 32.72 37/3225 3801624 ```
Author
Owner

#163 verbatim evidence: browser-isolated-clusters-grid.spec.log (1/1)

Load before: 21.37 27.81 32.72 39/3225 3801624
Running as unit: run-p3801625-i49891654.scope; invocation ID: b0b57c51811b4f8ba0f3c3ad5be126b2
[WebServer] $ bun run build.ts
[WebServer] built chunk-cf5k045n.js, chunk-tvynw18r.js, chunk-mvtpfkf9.js, chunk-b5qzwpce.js, chunk-gc6yyeeg.js, chunk-qpnp952r.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-axed8mkc.js, chunk-p243b2x2.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-z6dfsgeq.js, chunk-7nczvd3c.js, chunk-x7scz4ac.js, chunk-nv9axe3p.js, chunk-yvhhqffe.js, chunk-7y6e4mgc.js, chunk-4cytzmfz.js, chunk-1gc6t2wt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zs0v48zh.js, chunk-a85fa9g1.js, chunk-wt7vwk69.js, chunk-w05m1kca.js, chunk-8gqdshxw.js, chunk-7e9m0j3a.js, chunk-z29rz4kk.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-xc5s0xhs.js, chunk-wv3mwm8e.js, chunk-yqm7vhdm.js, chunk-7391g38x.js, chunk-1d0qvnvb.js, chunk-qp56ygdp.js, chunk-axbkkqp1.js, chunk-j3rtzg5n.js, chunk-41x8awtz.js, chunk-q0nrwjah.js, chunk-0m3stekk.js, chunk-mkvtsm2k.js, chunk-596718v9.js, chunk-v86b5paa.js, chunk-hwet7kct.js, chunk-qtdpn0w3.js, chunk-9cvhpp10.js, chunk-thxfwncj.js, chunk-2e4yh13p.js, chunk-fa2jk9a5.js, chunk-t7cgyb0s.js, chunk-6m7hgrsy.js, chunk-8n97bb4s.js, chunk-f5tv9j2p.js, chunk-5bxdc0ty.js, chunk-a49tv173.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-aq2ggsry.js, chunk-w0gwravy.js, chunk-0sxn500c.js, chunk-1vd1k86n.js, chunk-j0aevmh4.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 16 tests using 1 worker

(node:3804478) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   1 test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change (12.2s)
(node:3807987) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   2 test/clusters-grid.spec.ts:109:3 › split right in a stacked column (D212) › by ⌘K: Split right on the stacked window gives the same layout (12.2s)
  ✓   3 test/clusters-grid.spec.ts:128:3 › split right in a stacked column (D212) › by mouse: the header pill's split right on the middle window divides it the same way (13.1s)
  ✓   4 test/clusters-grid.spec.ts:144:3 › split right in a stacked column (D212) › closing the new half gives back the layout it came from, widths and heights (12.2s)
  ✘   5 test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves (12.4s)
(node:3821397) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   6 test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns (14.1s)
(node:3823402) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   7 test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group (11.5s)
(node:3825819) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   8 test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it (12.6s)
(node:3831294) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   9 test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height (2.0m)
(node:3834712) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  10 test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view (2.0m)
(node:3841837) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  11 test/clusters-grid.spec.ts:254:3 › camera and saved layout with a group (D212) › the saved document holds the span, so a reload places the group the same way (11.8s)
  ✓  12 test/clusters-grid.spec.ts:268:3 › phone 393x852 with a group (D212) › split right in a stacked column keeps every window on the screen and never scrolls the page sideways (10.9s)
  ✓  13 test/clusters-grid.spec.ts:292:3 › moving a window of a group by its pill (D212) › a grouped window dragged to the far column lands there: no overlap, the footprint unchanged, the group closes its hole (16.7s)
  ✓  14 test/clusters-grid.spec.ts:320:3 › title first in a narrow half (TASTE, D212) › a half too narrow for its actions keeps its title, shows one ⋯, and the menu holds every action (11.9s)
  ✓  15 test/clusters-grid.spec.ts:343:3 › title first in a narrow half (TASTE, D212) › a wide window keeps its actions in the header, and no ⋯ is shown (8.1s)
  ✘  16 test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen (10.3s)


  1) test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 5

      94 |     const after = await grid(page);
      95 |     expect(after.groups, "one group").toBe(1);
    > 96 |     expect(after.windows).toBe(before.windows + 2);
         |                           ^
      97 |     expect(after.total, "footprint").toBe(before.total);
      98 |     expectNoOverlap(after);
      99 |     const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!;
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:96:27

    Error Context: test-results/clusters-grid-split-right--59cd5-e-footprint-does-not-change/error-context.md

  2) test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves 

    Error: expect(received).toContain(expected) // indexOf

    Expected value: "w-edge-arm-s2"
    Received array: ["w-nix-cache", "w-edge-arm-s1"]

      173 |     expectNoOverlap(after);
      174 |     const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!;
    > 175 |     expect(c2.wins.map((w) => w.id)).toContain("w-edge-arm-s2");
          |                                      ^
      176 |     expect(c2.w).toBe(459);
      177 |   });
      178 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:175:38

    Error Context: test-results/clusters-grid-split-right--b1b1e-and-and-the-group-dissolves/error-context.md

  3) test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 3
    + Received  + 1

    - Array [
    -   "w-edge-arm-s1",
    - ]
    + Array []

      189 |     expect(after.cols.length, "no new column: the span is halved inside the group").toBe(before.cols.length);
      190 |     // Only the bottom window still spans: the top one was halved, and nothing outside the group is spanning.
    > 191 |     expect(after.cols.flatMap((c) => c.wins).filter((w) => w.span > 1).map((w) => w.id)).toEqual(["w-edge-arm-s1"]);
          |                                                                                          ^
      192 |   });
      193 |
      194 |   test("new window right after a group opens a plain column after the whole group", async ({ page }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:191:90

    Error Context: test-results/clusters-grid-split-right--4cbaa-inside-the-existing-columns/error-context.md

  4) test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 5
    Received: 4

      200 |     const after = await grid(page);
      201 |     expect(after.groups, "the group is untouched").toBe(1);
    > 202 |     expect(after.cols.length).toBe(before.cols.length + 1);
          |                               ^
      203 |     expect(after.total).toBe(before.total + before.cols.find((c) => c.wins.some((w) => w.id === "w-edge-arm"))!.w + 12);
      204 |     expectNoOverlap(after);
      205 |   });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:202:31

    Error Context: test-results/clusters-grid-split-right--0ceb9-olumn-after-the-whole-group/error-context.md

  5) test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 5

      212 |     await press(page, ["Control", "Alt", "KeyD"]);
      213 |     const after = await grid(page);
    > 214 |     expect(after.windows).toBe(before.windows + 1);
          |                           ^
      215 |     expect(after.total).toBe(before.total);
      216 |     expectNoOverlap(after);
      217 |     expect(after.cols.map((c) => c.w)).toEqual(before.cols.map((c) => c.w));
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:214:27

    Error Context: test-results/clusters-grid-split-right--26c7c-keeps-the-windows-beside-it/error-context.md

  6) test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height 

    Test timeout of 120000ms exceeded.

    Error: locator.click: Test timeout of 120000ms exceeded.
    Call log:
      - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first()


      60 | }
      61 |
    > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400));
         |                                                                                                                                                ^
      63 |
      64 | async function press(page: Page, chord: string[]): Promise<void> {
      65 |   for (const k of chord) await page.keyboard.down(k);
        at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:62:144)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:223:11

    Error Context: test-results/clusters-grid-split-right--2aab6--beside-it-keeps-its-height/error-context.md

  7) test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view 

    Test timeout of 120000ms exceeded.

    Error: locator.click: Test timeout of 120000ms exceeded.
    Call log:
      - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first()


      60 | }
      61 |
    > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400));
         |                                                                                                                                                ^
      63 |
      64 | async function press(page: Page, chord: string[]): Promise<void> {
      65 |   for (const k of chord) await page.keyboard.down(k);
        at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:62:144)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:244:11

    Error Context: test-results/clusters-grid-camera-and-s-e8dec--brings-all-of-it-into-view/error-context.md

  8) test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 

    Error: w-nix-cache right edge

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 394
    Received:    744

      370 |     expect(framed.length).toBeGreaterThan(0);
      371 |     for (const p of framed) expect(p.headLeft, `${p.id} header left edge`).toBeGreaterThanOrEqual(-1);
    > 372 |     for (const p of framed) expect(p.right, `${p.id} right edge`).toBeLessThanOrEqual(vw + 1);
          |                                                                   ^
      373 |   });
      374 | });
      375 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:372:67

    Error Context: test-results/clusters-grid-the-phone-af-6f47e-s-header-stay-on-the-screen/error-context.md

  8 failed
    test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change 
    test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves 
    test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns 
    test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group 
    test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it 
    test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height 
    test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view 
    test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 
  8 passed (7.2m)

Invocation exit: 1
Load after: 17.35 18.23 26.43 7/2999 3845939
#163 verbatim evidence: browser-isolated-clusters-grid.spec.log (1/1) ```text Load before: 21.37 27.81 32.72 39/3225 3801624 Running as unit: run-p3801625-i49891654.scope; invocation ID: b0b57c51811b4f8ba0f3c3ad5be126b2 [WebServer] $ bun run build.ts [WebServer] built chunk-cf5k045n.js, chunk-tvynw18r.js, chunk-mvtpfkf9.js, chunk-b5qzwpce.js, chunk-gc6yyeeg.js, chunk-qpnp952r.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-axed8mkc.js, chunk-p243b2x2.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-z6dfsgeq.js, chunk-7nczvd3c.js, chunk-x7scz4ac.js, chunk-nv9axe3p.js, chunk-yvhhqffe.js, chunk-7y6e4mgc.js, chunk-4cytzmfz.js, chunk-1gc6t2wt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zs0v48zh.js, chunk-a85fa9g1.js, chunk-wt7vwk69.js, chunk-w05m1kca.js, chunk-8gqdshxw.js, chunk-7e9m0j3a.js, chunk-z29rz4kk.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-xc5s0xhs.js, chunk-wv3mwm8e.js, chunk-yqm7vhdm.js, chunk-7391g38x.js, chunk-1d0qvnvb.js, chunk-qp56ygdp.js, chunk-axbkkqp1.js, chunk-j3rtzg5n.js, chunk-41x8awtz.js, chunk-q0nrwjah.js, chunk-0m3stekk.js, chunk-mkvtsm2k.js, chunk-596718v9.js, chunk-v86b5paa.js, chunk-hwet7kct.js, chunk-qtdpn0w3.js, chunk-9cvhpp10.js, chunk-thxfwncj.js, chunk-2e4yh13p.js, chunk-fa2jk9a5.js, chunk-t7cgyb0s.js, chunk-6m7hgrsy.js, chunk-8n97bb4s.js, chunk-f5tv9j2p.js, chunk-5bxdc0ty.js, chunk-a49tv173.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-aq2ggsry.js, chunk-w0gwravy.js, chunk-0sxn500c.js, chunk-1vd1k86n.js, chunk-j0aevmh4.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 16 tests using 1 worker (node:3804478) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change (12.2s) (node:3807987) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/clusters-grid.spec.ts:109:3 › split right in a stacked column (D212) › by ⌘K: Split right on the stacked window gives the same layout (12.2s) ✓ 3 test/clusters-grid.spec.ts:128:3 › split right in a stacked column (D212) › by mouse: the header pill's split right on the middle window divides it the same way (13.1s) ✓ 4 test/clusters-grid.spec.ts:144:3 › split right in a stacked column (D212) › closing the new half gives back the layout it came from, widths and heights (12.2s) ✘ 5 test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves (12.4s) (node:3821397) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 6 test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns (14.1s) (node:3823402) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 7 test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group (11.5s) (node:3825819) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 8 test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it (12.6s) (node:3831294) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 9 test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height (2.0m) (node:3834712) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 10 test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view (2.0m) (node:3841837) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 11 test/clusters-grid.spec.ts:254:3 › camera and saved layout with a group (D212) › the saved document holds the span, so a reload places the group the same way (11.8s) ✓ 12 test/clusters-grid.spec.ts:268:3 › phone 393x852 with a group (D212) › split right in a stacked column keeps every window on the screen and never scrolls the page sideways (10.9s) ✓ 13 test/clusters-grid.spec.ts:292:3 › moving a window of a group by its pill (D212) › a grouped window dragged to the far column lands there: no overlap, the footprint unchanged, the group closes its hole (16.7s) ✓ 14 test/clusters-grid.spec.ts:320:3 › title first in a narrow half (TASTE, D212) › a half too narrow for its actions keeps its title, shows one ⋯, and the menu holds every action (11.9s) ✓ 15 test/clusters-grid.spec.ts:343:3 › title first in a narrow half (TASTE, D212) › a wide window keeps its actions in the header, and no ⋯ is shown (8.1s) ✘ 16 test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen (10.3s) 1) test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 5 94 | const after = await grid(page); 95 | expect(after.groups, "one group").toBe(1); > 96 | expect(after.windows).toBe(before.windows + 2); | ^ 97 | expect(after.total, "footprint").toBe(before.total); 98 | expectNoOverlap(after); 99 | const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!; at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:96:27 Error Context: test-results/clusters-grid-split-right--59cd5-e-footprint-does-not-change/error-context.md 2) test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves Error: expect(received).toContain(expected) // indexOf Expected value: "w-edge-arm-s2" Received array: ["w-nix-cache", "w-edge-arm-s1"] 173 | expectNoOverlap(after); 174 | const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!; > 175 | expect(c2.wins.map((w) => w.id)).toContain("w-edge-arm-s2"); | ^ 176 | expect(c2.w).toBe(459); 177 | }); 178 | at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:175:38 Error Context: test-results/clusters-grid-split-right--b1b1e-and-and-the-group-dissolves/error-context.md 3) test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns Error: expect(received).toEqual(expected) // deep equality - Expected - 3 + Received + 1 - Array [ - "w-edge-arm-s1", - ] + Array [] 189 | expect(after.cols.length, "no new column: the span is halved inside the group").toBe(before.cols.length); 190 | // Only the bottom window still spans: the top one was halved, and nothing outside the group is spanning. > 191 | expect(after.cols.flatMap((c) => c.wins).filter((w) => w.span > 1).map((w) => w.id)).toEqual(["w-edge-arm-s1"]); | ^ 192 | }); 193 | 194 | test("new window right after a group opens a plain column after the whole group", async ({ page }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:191:90 Error Context: test-results/clusters-grid-split-right--4cbaa-inside-the-existing-columns/error-context.md 4) test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group Error: expect(received).toBe(expected) // Object.is equality Expected: 5 Received: 4 200 | const after = await grid(page); 201 | expect(after.groups, "the group is untouched").toBe(1); > 202 | expect(after.cols.length).toBe(before.cols.length + 1); | ^ 203 | expect(after.total).toBe(before.total + before.cols.find((c) => c.wins.some((w) => w.id === "w-edge-arm"))!.w + 12); 204 | expectNoOverlap(after); 205 | }); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:202:31 Error Context: test-results/clusters-grid-split-right--0ceb9-olumn-after-the-whole-group/error-context.md 5) test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 5 212 | await press(page, ["Control", "Alt", "KeyD"]); 213 | const after = await grid(page); > 214 | expect(after.windows).toBe(before.windows + 1); | ^ 215 | expect(after.total).toBe(before.total); 216 | expectNoOverlap(after); 217 | expect(after.cols.map((c) => c.w)).toEqual(before.cols.map((c) => c.w)); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:214:27 Error Context: test-results/clusters-grid-split-right--26c7c-keeps-the-windows-beside-it/error-context.md 6) test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height Test timeout of 120000ms exceeded. Error: locator.click: Test timeout of 120000ms exceeded. Call log: - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first() 60 | } 61 | > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400)); | ^ 63 | 64 | async function press(page: Page, chord: string[]): Promise<void> { 65 | for (const k of chord) await page.keyboard.down(k); at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:62:144) at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:223:11 Error Context: test-results/clusters-grid-split-right--2aab6--beside-it-keeps-its-height/error-context.md 7) test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view Test timeout of 120000ms exceeded. Error: locator.click: Test timeout of 120000ms exceeded. Call log: - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first() 60 | } 61 | > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400)); | ^ 63 | 64 | async function press(page: Page, chord: string[]): Promise<void> { 65 | for (const k of chord) await page.keyboard.down(k); at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:62:144) at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:244:11 Error Context: test-results/clusters-grid-camera-and-s-e8dec--brings-all-of-it-into-view/error-context.md 8) test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen Error: w-nix-cache right edge expect(received).toBeLessThanOrEqual(expected) Expected: <= 394 Received: 744 370 | expect(framed.length).toBeGreaterThan(0); 371 | for (const p of framed) expect(p.headLeft, `${p.id} header left edge`).toBeGreaterThanOrEqual(-1); > 372 | for (const p of framed) expect(p.right, `${p.id} right edge`).toBeLessThanOrEqual(vw + 1); | ^ 373 | }); 374 | }); 375 | at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-grid.spec.ts:372:67 Error Context: test-results/clusters-grid-the-phone-af-6f47e-s-header-stay-on-the-screen/error-context.md 8 failed test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 8 passed (7.2m) Invocation exit: 1 Load after: 17.35 18.23 26.43 7/2999 3845939 ```
Author
Owner

#163 verbatim evidence: browser-isolated-clusters-keyboard-split.spec.log (1/1)

Load before: 29.50 21.34 24.32 37/3112 3885764
Running as unit: run-p3885766-i49975782.scope; invocation ID: ca9d629e11744430966c2029dff0b475
[WebServer] $ bun run build.ts
[WebServer] built chunk-phr1k7cd.js, chunk-tvynw18r.js, chunk-4bfg7vx4.js, chunk-b5qzwpce.js, chunk-ashdbyhb.js, chunk-s420wegr.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-4j8502dv.js, chunk-ead0pezp.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-rra77zzw.js, chunk-7nczvd3c.js, chunk-b10za8xp.js, chunk-shrms53x.js, chunk-yvhhqffe.js, chunk-cwfbnt17.js, chunk-atfm98jw.js, chunk-zajxz370.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-sqsjwmt7.js, chunk-f7gymf4q.js, chunk-kfcq2gh2.js, chunk-f7c33k00.js, chunk-8gqdshxw.js, chunk-aqsxf5jd.js, chunk-f7v0kjg8.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-qqj8ra8b.js, chunk-kve3ng3e.js, chunk-hdxber6a.js, chunk-aav50qb6.js, chunk-1d0qvnvb.js, chunk-r3pd0xtd.js, chunk-axbkkqp1.js, chunk-bsmj24qp.js, chunk-wnm0746t.js, chunk-4bq71nmq.js, chunk-y6w55mf7.js, chunk-y5x483mg.js, chunk-prv900tc.js, chunk-v86b5paa.js, chunk-9ppnrz79.js, chunk-ph78jyp8.js, chunk-76jh8ttn.js, chunk-hx7np9dr.js, chunk-2e4yh13p.js, chunk-gav7kn32.js, chunk-aj2y5d4a.js, chunk-nbefks6j.js, chunk-a3781dqz.js, chunk-tcmn7wnx.js, chunk-8pvhv589.js, chunk-9x8510fs.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ghxnx865.js, chunk-179es6ws.js, chunk-0sxn500c.js, chunk-ykpdd09t.js, chunk-b103q93r.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 2 tests using 1 worker

(node:3887158) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
keyboard split: silhouette seen 0 max rAF gap 183.2 ms, long frames after the first 0.8 s [50,33.29999999999927,50,33.29999999999927,49.899999999999636,33.29999999999927,50,33.30000000000109,50,66.70000000000073,83.29999999999927,83.30000000000109,33.399999999999636,183.1999999999989,33.400000000001455,83.40000000000146,50,33.399999999999636,33.20000000000073,33.400000000001455,33.29999999999927,33.399999999999636,66.70000000000073,33.29999999999927,33.399999999999636,33.400000000001455,49.899999999999636,66.60000000000036,83.29999999999927]
  ✘  1 test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames (15.0s)
(node:3890579) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  2 test/clusters-keyboard-split.spec.ts:57:1 › a pointer split still plays the silhouette (8.7s)


  1) test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 

    Error: holding the key adds no work: at most a stray dropped frame after the split itself

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 4
    Received:    29

      51 |   expect(m.goo, "a key split plays no silhouette").toBe(0);
      52 |   // An unbound key held the same way drops a frame or two on this headless setup as well; a flood would be dozens.
    > 53 |   expect(m.late.length, "holding the key adds no work: at most a stray dropped frame after the split itself").toBeLessThanOrEqual(4);
         |                                                                                                               ^
      54 |   expect(Math.max(0, ...m.late), "and none of them is long").toBeLessThan(60);
      55 | });
      56 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-keyboard-split.spec.ts:53:111

    Error Context: test-results/clusters-keyboard-split-a--d5528-lits-once-with-short-frames/error-context.md

  1 failed
    test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 
  1 passed (36.1s)

Invocation exit: 1
Load after: 31.80 23.06 24.78 19/3174 3893386
#163 verbatim evidence: browser-isolated-clusters-keyboard-split.spec.log (1/1) ```text Load before: 29.50 21.34 24.32 37/3112 3885764 Running as unit: run-p3885766-i49975782.scope; invocation ID: ca9d629e11744430966c2029dff0b475 [WebServer] $ bun run build.ts [WebServer] built chunk-phr1k7cd.js, chunk-tvynw18r.js, chunk-4bfg7vx4.js, chunk-b5qzwpce.js, chunk-ashdbyhb.js, chunk-s420wegr.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-4j8502dv.js, chunk-ead0pezp.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-rra77zzw.js, chunk-7nczvd3c.js, chunk-b10za8xp.js, chunk-shrms53x.js, chunk-yvhhqffe.js, chunk-cwfbnt17.js, chunk-atfm98jw.js, chunk-zajxz370.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-sqsjwmt7.js, chunk-f7gymf4q.js, chunk-kfcq2gh2.js, chunk-f7c33k00.js, chunk-8gqdshxw.js, chunk-aqsxf5jd.js, chunk-f7v0kjg8.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-qqj8ra8b.js, chunk-kve3ng3e.js, chunk-hdxber6a.js, chunk-aav50qb6.js, chunk-1d0qvnvb.js, chunk-r3pd0xtd.js, chunk-axbkkqp1.js, chunk-bsmj24qp.js, chunk-wnm0746t.js, chunk-4bq71nmq.js, chunk-y6w55mf7.js, chunk-y5x483mg.js, chunk-prv900tc.js, chunk-v86b5paa.js, chunk-9ppnrz79.js, chunk-ph78jyp8.js, chunk-76jh8ttn.js, chunk-hx7np9dr.js, chunk-2e4yh13p.js, chunk-gav7kn32.js, chunk-aj2y5d4a.js, chunk-nbefks6j.js, chunk-a3781dqz.js, chunk-tcmn7wnx.js, chunk-8pvhv589.js, chunk-9x8510fs.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ghxnx865.js, chunk-179es6ws.js, chunk-0sxn500c.js, chunk-ykpdd09t.js, chunk-b103q93r.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 2 tests using 1 worker (node:3887158) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) keyboard split: silhouette seen 0 max rAF gap 183.2 ms, long frames after the first 0.8 s [50,33.29999999999927,50,33.29999999999927,49.899999999999636,33.29999999999927,50,33.30000000000109,50,66.70000000000073,83.29999999999927,83.30000000000109,33.399999999999636,183.1999999999989,33.400000000001455,83.40000000000146,50,33.399999999999636,33.20000000000073,33.400000000001455,33.29999999999927,33.399999999999636,66.70000000000073,33.29999999999927,33.399999999999636,33.400000000001455,49.899999999999636,66.60000000000036,83.29999999999927] ✘ 1 test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames (15.0s) (node:3890579) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/clusters-keyboard-split.spec.ts:57:1 › a pointer split still plays the silhouette (8.7s) 1) test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames Error: holding the key adds no work: at most a stray dropped frame after the split itself expect(received).toBeLessThanOrEqual(expected) Expected: <= 4 Received: 29 51 | expect(m.goo, "a key split plays no silhouette").toBe(0); 52 | // An unbound key held the same way drops a frame or two on this headless setup as well; a flood would be dozens. > 53 | expect(m.late.length, "holding the key adds no work: at most a stray dropped frame after the split itself").toBeLessThanOrEqual(4); | ^ 54 | expect(Math.max(0, ...m.late), "and none of them is long").toBeLessThan(60); 55 | }); 56 | at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-keyboard-split.spec.ts:53:111 Error Context: test-results/clusters-keyboard-split-a--d5528-lits-once-with-short-frames/error-context.md 1 failed test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 1 passed (36.1s) Invocation exit: 1 Load after: 31.80 23.06 24.78 19/3174 3893386 ```
Author
Owner

#163 verbatim evidence: browser-isolated-clusters-shortcuts-spam.spec.log (1/1)

Load before: 28.65 23.07 24.72 29/3195 3901911
Running as unit: run-p3901912-i49991927.scope; invocation ID: 6e8c784e9ea44452b22d57b09812b24d
[WebServer] $ bun run build.ts
[WebServer] built chunk-zaz1f5ff.js, chunk-tvynw18r.js, chunk-yv371d9q.js, chunk-b5qzwpce.js, chunk-sp8tec79.js, chunk-aqfzz5y7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zd4mn4gy.js, chunk-cv2n9dxv.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-rq3zan2t.js, chunk-7nczvd3c.js, chunk-22x4hch5.js, chunk-qz15z599.js, chunk-yvhhqffe.js, chunk-0bqk9f7p.js, chunk-ts20gnsc.js, chunk-96q8cnpg.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zb7tyh7n.js, chunk-3zf2tmrz.js, chunk-x259eqdj.js, chunk-8wp79q3x.js, chunk-8gqdshxw.js, chunk-rb7s3pf4.js, chunk-tbd3ndxz.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-2h740hpf.js, chunk-gzbb9shw.js, chunk-5rdcg6w8.js, chunk-6rw9r8hc.js, chunk-1d0qvnvb.js, chunk-sg2ny216.js, chunk-axbkkqp1.js, chunk-bfrsw9q3.js, chunk-vxrnmpq2.js, chunk-j1qwtz3x.js, chunk-53pa47hq.js, chunk-jz4j2zkd.js, chunk-mc9vc56w.js, chunk-v86b5paa.js, chunk-knhkqtdz.js, chunk-3ttb8gvp.js, chunk-2d283ge1.js, chunk-erhvz3x3.js, chunk-2e4yh13p.js, chunk-1tv9xrxr.js, chunk-tzvfz589.js, chunk-we8rxd86.js, chunk-ndt6fb9c.js, chunk-6kn4tx2e.js, chunk-r0c5xcbv.js, chunk-bhmbmkby.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5p55tsnp.js, chunk-9xt243s3.js, chunk-0sxn500c.js, chunk-349w6cwh.js, chunk-2nrpkc8p.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 4 tests using 1 worker

(node:3903922) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
gap 30 presses 20: most panels at once 1, end []
  ✓  1 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell (10.4s)
gap 30 presses 21: most panels at once 1, end [{"clip":"","opacity":"1","headOpacity":"1","rows":24,"anim":0}]
  ✓  2 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell (11.5s)
gap 120 presses 20: most panels at once 1, end []
  ✓  3 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell (13.5s)
gap 120 presses 21: most panels at once 1, end [{"clip":"","opacity":"1","headOpacity":"1","rows":24,"anim":0}]
  ✓  4 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell (14.0s)

  4 passed (58.4s)

Invocation exit: 0
Load after: 31.14 24.61 25.14 46/3250 3915602
#163 verbatim evidence: browser-isolated-clusters-shortcuts-spam.spec.log (1/1) ```text Load before: 28.65 23.07 24.72 29/3195 3901911 Running as unit: run-p3901912-i49991927.scope; invocation ID: 6e8c784e9ea44452b22d57b09812b24d [WebServer] $ bun run build.ts [WebServer] built chunk-zaz1f5ff.js, chunk-tvynw18r.js, chunk-yv371d9q.js, chunk-b5qzwpce.js, chunk-sp8tec79.js, chunk-aqfzz5y7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zd4mn4gy.js, chunk-cv2n9dxv.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-rq3zan2t.js, chunk-7nczvd3c.js, chunk-22x4hch5.js, chunk-qz15z599.js, chunk-yvhhqffe.js, chunk-0bqk9f7p.js, chunk-ts20gnsc.js, chunk-96q8cnpg.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zb7tyh7n.js, chunk-3zf2tmrz.js, chunk-x259eqdj.js, chunk-8wp79q3x.js, chunk-8gqdshxw.js, chunk-rb7s3pf4.js, chunk-tbd3ndxz.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-2h740hpf.js, chunk-gzbb9shw.js, chunk-5rdcg6w8.js, chunk-6rw9r8hc.js, chunk-1d0qvnvb.js, chunk-sg2ny216.js, chunk-axbkkqp1.js, chunk-bfrsw9q3.js, chunk-vxrnmpq2.js, chunk-j1qwtz3x.js, chunk-53pa47hq.js, chunk-jz4j2zkd.js, chunk-mc9vc56w.js, chunk-v86b5paa.js, chunk-knhkqtdz.js, chunk-3ttb8gvp.js, chunk-2d283ge1.js, chunk-erhvz3x3.js, chunk-2e4yh13p.js, chunk-1tv9xrxr.js, chunk-tzvfz589.js, chunk-we8rxd86.js, chunk-ndt6fb9c.js, chunk-6kn4tx2e.js, chunk-r0c5xcbv.js, chunk-bhmbmkby.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5p55tsnp.js, chunk-9xt243s3.js, chunk-0sxn500c.js, chunk-349w6cwh.js, chunk-2nrpkc8p.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 4 tests using 1 worker (node:3903922) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) gap 30 presses 20: most panels at once 1, end [] ✓ 1 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 30 ms end closed, never an empty shell (10.4s) gap 30 presses 21: most panels at once 1, end [{"clip":"","opacity":"1","headOpacity":"1","rows":24,"anim":0}] ✓ 2 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 30 ms end open with content, never an empty shell (11.5s) gap 120 presses 20: most panels at once 1, end [] ✓ 3 test/clusters-shortcuts-spam.spec.ts:26:5 › 20 presses of ? every 120 ms end closed, never an empty shell (13.5s) gap 120 presses 21: most panels at once 1, end [{"clip":"","opacity":"1","headOpacity":"1","rows":24,"anim":0}] ✓ 4 test/clusters-shortcuts-spam.spec.ts:26:5 › 21 presses of ? every 120 ms end open with content, never an empty shell (14.0s) 4 passed (58.4s) Invocation exit: 0 Load after: 31.14 24.61 25.14 46/3250 3915602 ```
Author
Owner

#163 verbatim evidence: browser-isolated-clusters-swipes-both.spec.log (1/1)

Load before: 31.14 24.61 25.14 46/3250 3915602
Running as unit: run-p3915603-i50005618.scope; invocation ID: f2a865fbe7b64d919312204e35dfdfd6
[WebServer] $ bun run build.ts
[WebServer] built chunk-9dms8crc.js, chunk-tvynw18r.js, chunk-bbgq18sd.js, chunk-b5qzwpce.js, chunk-zzqq9n1q.js, chunk-fq78wynb.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-wcfnz007.js, chunk-ptw6wyzs.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-ztqr0dx8.js, chunk-7nczvd3c.js, chunk-zjrmcysj.js, chunk-fab30mm6.js, chunk-yvhhqffe.js, chunk-8cc9gzyz.js, chunk-fpf29gwg.js, chunk-vqvzsrb1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-jt0vta81.js, chunk-naer2bdz.js, chunk-j9dq9yv2.js, chunk-23qtjt3p.js, chunk-8gqdshxw.js, chunk-40drh570.js, chunk-7gg5z53q.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-dcw4tjvk.js, chunk-52d31pw5.js, chunk-03sar2b0.js, chunk-dhgmfysw.js, chunk-1d0qvnvb.js, chunk-bp1eddqc.js, chunk-axbkkqp1.js, chunk-wv4hpgxc.js, chunk-rm4y02c3.js, chunk-zk0nbfg9.js, chunk-kbn857nq.js, chunk-e9g5p29z.js, chunk-qpzzr4x9.js, chunk-v86b5paa.js, chunk-rnwst6t5.js, chunk-cme7z903.js, chunk-p10wyf19.js, chunk-6wdk63vv.js, chunk-2e4yh13p.js, chunk-yqqzmez2.js, chunk-bm0em41e.js, chunk-erpsmpd3.js, chunk-ntje9k4t.js, chunk-hvvb2y4j.js, chunk-6g3zaxt4.js, chunk-1jwctmkk.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-kzsaq4ds.js, chunk-cjj1yymk.js, chunk-0sxn500c.js, chunk-9avt67mt.js, chunk-qywn1ffk.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 4 tests using 1 worker

(node:3917687) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows (12.9s)
  ✓  2 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column (19.2s)
  ✓  3 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows (9.5s)
  ✓  4 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column (15.2s)

  4 passed (1.1m)

Invocation exit: 0
Load after: 37.30 28.07 26.32 31/3163 3936945
#163 verbatim evidence: browser-isolated-clusters-swipes-both.spec.log (1/1) ```text Load before: 31.14 24.61 25.14 46/3250 3915602 Running as unit: run-p3915603-i50005618.scope; invocation ID: f2a865fbe7b64d919312204e35dfdfd6 [WebServer] $ bun run build.ts [WebServer] built chunk-9dms8crc.js, chunk-tvynw18r.js, chunk-bbgq18sd.js, chunk-b5qzwpce.js, chunk-zzqq9n1q.js, chunk-fq78wynb.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-wcfnz007.js, chunk-ptw6wyzs.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-ztqr0dx8.js, chunk-7nczvd3c.js, chunk-zjrmcysj.js, chunk-fab30mm6.js, chunk-yvhhqffe.js, chunk-8cc9gzyz.js, chunk-fpf29gwg.js, chunk-vqvzsrb1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-jt0vta81.js, chunk-naer2bdz.js, chunk-j9dq9yv2.js, chunk-23qtjt3p.js, chunk-8gqdshxw.js, chunk-40drh570.js, chunk-7gg5z53q.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-dcw4tjvk.js, chunk-52d31pw5.js, chunk-03sar2b0.js, chunk-dhgmfysw.js, chunk-1d0qvnvb.js, chunk-bp1eddqc.js, chunk-axbkkqp1.js, chunk-wv4hpgxc.js, chunk-rm4y02c3.js, chunk-zk0nbfg9.js, chunk-kbn857nq.js, chunk-e9g5p29z.js, chunk-qpzzr4x9.js, chunk-v86b5paa.js, chunk-rnwst6t5.js, chunk-cme7z903.js, chunk-p10wyf19.js, chunk-6wdk63vv.js, chunk-2e4yh13p.js, chunk-yqqzmez2.js, chunk-bm0em41e.js, chunk-erpsmpd3.js, chunk-ntje9k4t.js, chunk-hvvb2y4j.js, chunk-6g3zaxt4.js, chunk-1jwctmkk.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-kzsaq4ds.js, chunk-cjj1yymk.js, chunk-0sxn500c.js, chunk-9avt67mt.js, chunk-qywn1ffk.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 4 tests using 1 worker (node:3917687) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 330 ms apart move six windows (12.9s) ✓ 2 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 330 ms apart move six windows down a column (19.2s) ✓ 3 test/clusters-swipes-both.spec.ts:33:3 › six horizontal swipes 50 ms apart move six windows (9.5s) ✓ 4 test/clusters-swipes-both.spec.ts:46:3 › six vertical swipes 50 ms apart move six windows down a column (15.2s) 4 passed (1.1m) Invocation exit: 0 Load after: 37.30 28.07 26.32 31/3163 3936945 ```
Author
Owner

#163 verbatim evidence: browser-production-add-host-prototype.spec.log (1/1)

Load before: 51.00 55.50 48.45 37/3205 3580150
Running as unit: run-p3580151-i49670207.scope; invocation ID: a90f8f85d0954f28b3b17cfdccac13ba
[WebServer] $ bun run build.ts
[WebServer] built chunk-z15qfryg.js, chunk-tvynw18r.js, chunk-jt5vf68m.js, chunk-b5qzwpce.js, chunk-jtm79q7n.js, chunk-h7wm0dhk.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-rg01584s.js, chunk-7athcr78.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-bpd2xrb2.js, chunk-7nczvd3c.js, chunk-jzh2bqv1.js, chunk-kx61f1ym.js, chunk-yvhhqffe.js, chunk-ghhkrrb4.js, chunk-2bsyr9cp.js, chunk-n8ht0ktm.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-3y10z7mj.js, chunk-w5n33mws.js, chunk-g8mcdfqf.js, chunk-vc3w303j.js, chunk-8gqdshxw.js, chunk-gmbsdswy.js, chunk-me3gt6fd.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8kgjs2th.js, chunk-eapadyb2.js, chunk-v75m3hza.js, chunk-zjxgmzqh.js, chunk-1d0qvnvb.js, chunk-wy5agh9a.js, chunk-axbkkqp1.js, chunk-y9qb4ygv.js, chunk-gvcga5kz.js, chunk-vqbrhqh5.js, chunk-w6n2g4z1.js, chunk-ew46ahyz.js, chunk-dkt81ztt.js, chunk-v86b5paa.js, chunk-t96h53vj.js, chunk-c0tee8b5.js, chunk-rybf2vz1.js, chunk-wzqwcabz.js, chunk-2e4yh13p.js, chunk-ar6hty05.js, chunk-mjx19kxe.js, chunk-na60sr9v.js, chunk-qhrk5rh8.js, chunk-69qgezzs.js, chunk-jwahf9m0.js, chunk-15kb65p5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-cbe9t5hr.js, chunk-099nv8c7.js, chunk-0sxn500c.js, chunk-pe65m1rt.js, chunk-hbwzgvtj.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 14 tests using 1 worker

(node:3582806) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   1 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (19.5s)
(node:3586053) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   2 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (17.9s)
  ✓   3 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (10.3s)
  ✘   4 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (9.7s)
(node:3588274) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   5 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (14.3s)
  ✓   6 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (16.8s)
  ✓   7 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (25.0s)
  ✓   8 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (14.7s)
  ✓   9 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (11.7s)
  ✓  10 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (8.4s)
  ✓  11 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.6s)
  ✓  12 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (9.4s)
  ✓  13 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (12.3s)
  ✓  14 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (14.1s)


  1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 

    Error: expect(locator).toHaveCount(expected) failed

    Locator:  locator('.ui-chip[data-armed]')
    Expected: 1
    Received: 0
    Timeout:  5000ms

    Call log:
      - Expect "toHaveCount" with timeout 5000ms
      - waiting for locator('.ui-chip[data-armed]')
        13 × locator resolved to 0 elements
           - unexpected value "0"


      51 |     await input.focus();
      52 |     await input.press("Backspace");
    > 53 |     await expect(page.locator(".ui-chip[data-armed]")).toHaveCount(1);
         |                                                        ^
      54 |     await input.press("Backspace");
      55 |     await expect(page.locator(".ui-chip")).toHaveCount(2);
      56 |     // An unknown user@host becomes a typed-host chip on a delimiter.
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:53:56

    Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md

  2) test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

      109 |       }));
      110 |       expect(geometry.windowLeft).toBeGreaterThanOrEqual(geometry.sidebarRight);
    > 111 |       expect(geometry.closeReachable).toBe(true);
          |                                       ^
      112 |     } finally {
      113 |       await context.close();
      114 |     }
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:111:39

    Error Context: test-results/add-host-prototype-the-doc-38ffb-ow-and-stays-out-of-its-way/error-context.md

  2 failed
    test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 
    test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 
  12 passed (3.5m)

Invocation exit: 1
Load after: 41.46 46.70 46.28 48/3162 3609979
#163 verbatim evidence: browser-production-add-host-prototype.spec.log (1/1) ```text Load before: 51.00 55.50 48.45 37/3205 3580150 Running as unit: run-p3580151-i49670207.scope; invocation ID: a90f8f85d0954f28b3b17cfdccac13ba [WebServer] $ bun run build.ts [WebServer] built chunk-z15qfryg.js, chunk-tvynw18r.js, chunk-jt5vf68m.js, chunk-b5qzwpce.js, chunk-jtm79q7n.js, chunk-h7wm0dhk.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-rg01584s.js, chunk-7athcr78.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-bpd2xrb2.js, chunk-7nczvd3c.js, chunk-jzh2bqv1.js, chunk-kx61f1ym.js, chunk-yvhhqffe.js, chunk-ghhkrrb4.js, chunk-2bsyr9cp.js, chunk-n8ht0ktm.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-3y10z7mj.js, chunk-w5n33mws.js, chunk-g8mcdfqf.js, chunk-vc3w303j.js, chunk-8gqdshxw.js, chunk-gmbsdswy.js, chunk-me3gt6fd.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8kgjs2th.js, chunk-eapadyb2.js, chunk-v75m3hza.js, chunk-zjxgmzqh.js, chunk-1d0qvnvb.js, chunk-wy5agh9a.js, chunk-axbkkqp1.js, chunk-y9qb4ygv.js, chunk-gvcga5kz.js, chunk-vqbrhqh5.js, chunk-w6n2g4z1.js, chunk-ew46ahyz.js, chunk-dkt81ztt.js, chunk-v86b5paa.js, chunk-t96h53vj.js, chunk-c0tee8b5.js, chunk-rybf2vz1.js, chunk-wzqwcabz.js, chunk-2e4yh13p.js, chunk-ar6hty05.js, chunk-mjx19kxe.js, chunk-na60sr9v.js, chunk-qhrk5rh8.js, chunk-69qgezzs.js, chunk-jwahf9m0.js, chunk-15kb65p5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-cbe9t5hr.js, chunk-099nv8c7.js, chunk-0sxn500c.js, chunk-pe65m1rt.js, chunk-hbwzgvtj.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 14 tests using 1 worker (node:3582806) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (19.5s) (node:3586053) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (17.9s) ✓ 3 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (10.3s) ✘ 4 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (9.7s) (node:3588274) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 5 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (14.3s) ✓ 6 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (16.8s) ✓ 7 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (25.0s) ✓ 8 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (14.7s) ✓ 9 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (11.7s) ✓ 10 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (8.4s) ✓ 11 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.6s) ✓ 12 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (9.4s) ✓ 13 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (12.3s) ✓ 14 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (14.1s) 1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync Error: expect(locator).toHaveCount(expected) failed Locator: locator('.ui-chip[data-armed]') Expected: 1 Received: 0 Timeout: 5000ms Call log: - Expect "toHaveCount" with timeout 5000ms - waiting for locator('.ui-chip[data-armed]') 13 × locator resolved to 0 elements - unexpected value "0" 51 | await input.focus(); 52 | await input.press("Backspace"); > 53 | await expect(page.locator(".ui-chip[data-armed]")).toHaveCount(1); | ^ 54 | await input.press("Backspace"); 55 | await expect(page.locator(".ui-chip")).toHaveCount(2); 56 | // An unknown user@host becomes a typed-host chip on a delimiter. at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:53:56 Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md 2) test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 109 | })); 110 | expect(geometry.windowLeft).toBeGreaterThanOrEqual(geometry.sidebarRight); > 111 | expect(geometry.closeReachable).toBe(true); | ^ 112 | } finally { 113 | await context.close(); 114 | } at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:111:39 Error Context: test-results/add-host-prototype-the-doc-38ffb-ow-and-stays-out-of-its-way/error-context.md 2 failed test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 12 passed (3.5m) Invocation exit: 1 Load after: 41.46 46.70 46.28 48/3162 3609979 ```
Author
Owner

#163 verbatim evidence: browser-production-addhost.log (1/1)

Running as unit: run-p3414095-i49504152.scope; invocation ID: 3c8cc8a694da46609b133137b47877fb
[WebServer] $ bun run build.ts
[WebServer] built chunk-9nskrjdq.js, chunk-tvynw18r.js, chunk-rgjsct9p.js, chunk-b5qzwpce.js, chunk-qx9zsyv1.js, chunk-7r6jxsst.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-6rv4a1sn.js, chunk-6cy8a686.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-drcs1v6e.js, chunk-7nczvd3c.js, chunk-eyxjtqby.js, chunk-9pgygg49.js, chunk-yvhhqffe.js, chunk-dst7j9k1.js, chunk-qbrzc0hz.js, chunk-m1esvgft.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zw33vba8.js, chunk-r4xsxjy4.js, chunk-cmv6m0f9.js, chunk-ve8b6bdx.js, chunk-8gqdshxw.js, chunk-kbrwzhh7.js, chunk-gn6gxrhy.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-214c1sc9.js, chunk-7pfvz1ym.js, chunk-yy65smpe.js, chunk-vnna6pdb.js, chunk-1d0qvnvb.js, chunk-79m608er.js, chunk-axbkkqp1.js, chunk-0b73t2he.js, chunk-mr5xjxdm.js, chunk-bgday7en.js, chunk-e2dg4jez.js, chunk-q3xg52gh.js, chunk-2r692be5.js, chunk-v86b5paa.js, chunk-e21w8bqh.js, chunk-h252bp5p.js, chunk-eqpzm5qb.js, chunk-3hw7zpt3.js, chunk-2e4yh13p.js, chunk-vqrkhpqe.js, chunk-a9bhe19w.js, chunk-wcbnpzph.js, chunk-b9xvh9df.js, chunk-f9m15knb.js, chunk-kkqtdacz.js, chunk-jw5khge2.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-z3bgefdj.js, chunk-5dj855f5.js, chunk-0sxn500c.js, chunk-e92zd6sj.js, chunk-yw0ysg1c.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 14 tests using 1 worker

(node:3415917) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   1 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (18.3s)
(node:3418275) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   2 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (14.4s)
  ✓   3 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (8.3s)
  ✘   4 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (14.3s)
(node:3422860) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   5 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (11.3s)
  ✓   6 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (15.0s)
  ✓   7 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (21.2s)
  ✓   8 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (13.8s)
  ✓   9 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (11.4s)
  ✓  10 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (7.9s)
  ✓  11 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.9s)
  ✓  12 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (7.7s)
  ✓  13 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (11.7s)
  ✓  14 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (19.1s)


  1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 

    Error: expect(locator).toHaveCount(expected) failed

    Locator:  locator('.ui-chip[data-armed]')
    Expected: 1
    Received: 0
    Timeout:  5000ms

    Call log:
      - Expect "toHaveCount" with timeout 5000ms
      - waiting for locator('.ui-chip[data-armed]')
        13 × locator resolved to 0 elements
           - unexpected value "0"


      51 |     await input.focus();
      52 |     await input.press("Backspace");
    > 53 |     await expect(page.locator(".ui-chip[data-armed]")).toHaveCount(1);
         |                                                        ^
      54 |     await input.press("Backspace");
      55 |     await expect(page.locator(".ui-chip")).toHaveCount(2);
      56 |     // An unknown user@host becomes a typed-host chip on a delimiter.
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:53:56

    Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md

  2) test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

      109 |       }));
      110 |       expect(geometry.windowLeft).toBeGreaterThanOrEqual(geometry.sidebarRight);
    > 111 |       expect(geometry.closeReachable).toBe(true);
          |                                       ^
      112 |     } finally {
      113 |       await context.close();
      114 |     }
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:111:39

    Error Context: test-results/add-host-prototype-the-doc-38ffb-ow-and-stays-out-of-its-way/error-context.md

  2 failed
    test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync 
    test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 
  12 passed (3.5m)
#163 verbatim evidence: browser-production-addhost.log (1/1) ```text Running as unit: run-p3414095-i49504152.scope; invocation ID: 3c8cc8a694da46609b133137b47877fb [WebServer] $ bun run build.ts [WebServer] built chunk-9nskrjdq.js, chunk-tvynw18r.js, chunk-rgjsct9p.js, chunk-b5qzwpce.js, chunk-qx9zsyv1.js, chunk-7r6jxsst.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-6rv4a1sn.js, chunk-6cy8a686.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-drcs1v6e.js, chunk-7nczvd3c.js, chunk-eyxjtqby.js, chunk-9pgygg49.js, chunk-yvhhqffe.js, chunk-dst7j9k1.js, chunk-qbrzc0hz.js, chunk-m1esvgft.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-zw33vba8.js, chunk-r4xsxjy4.js, chunk-cmv6m0f9.js, chunk-ve8b6bdx.js, chunk-8gqdshxw.js, chunk-kbrwzhh7.js, chunk-gn6gxrhy.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-214c1sc9.js, chunk-7pfvz1ym.js, chunk-yy65smpe.js, chunk-vnna6pdb.js, chunk-1d0qvnvb.js, chunk-79m608er.js, chunk-axbkkqp1.js, chunk-0b73t2he.js, chunk-mr5xjxdm.js, chunk-bgday7en.js, chunk-e2dg4jez.js, chunk-q3xg52gh.js, chunk-2r692be5.js, chunk-v86b5paa.js, chunk-e21w8bqh.js, chunk-h252bp5p.js, chunk-eqpzm5qb.js, chunk-3hw7zpt3.js, chunk-2e4yh13p.js, chunk-vqrkhpqe.js, chunk-a9bhe19w.js, chunk-wcbnpzph.js, chunk-b9xvh9df.js, chunk-f9m15knb.js, chunk-kkqtdacz.js, chunk-jw5khge2.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-z3bgefdj.js, chunk-5dj855f5.js, chunk-0sxn500c.js, chunk-e92zd6sj.js, chunk-yw0ysg1c.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 14 tests using 1 worker (node:3415917) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync (18.3s) (node:3418275) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/add-host-prototype.spec.ts:65:1 › the field autofocuses on desktop but not on touch (14.4s) ✓ 3 test/add-host-prototype.spec.ts:77:1 › mouse and shortcut focus draw no rings; Tab navigation does (8.3s) ✘ 4 test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way (14.3s) (node:3422860) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 5 test/add-host-prototype.spec.ts:118:1 › steps slide in the direction of travel and Back reverses it (11.3s) ✓ 6 test/add-host-prototype.spec.ts:146:1 › the wizard floats over a dimmed window that becomes the host's terminal (15.0s) ✓ 7 test/add-host-prototype.spec.ts:207:1 › ten hosts install together; failures stay listed and the rest open as windows (21.2s) ✓ 8 test/add-host-prototype.spec.ts:238:1 › the shared confirmation is compact, icon-only and quiet on open (13.8s) ✓ 9 test/add-host-prototype.spec.ts:285:1 › failures say what happened, what to do, and offer Retry with details (11.4s) ✓ 10 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 320 px (7.9s) ✓ 11 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 375 px (8.9s) ✓ 12 test/add-host-prototype.spec.ts:300:3 › phone rows never overlap at 393 px (7.7s) ✓ 13 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (1440×900) (11.7s) ✓ 14 test/add-host-prototype.spec.ts:348:3 › flow card: shared overlay material, inside its window with one inset, lists end with padding (393×852) (19.1s) 1) test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync Error: expect(locator).toHaveCount(expected) failed Locator: locator('.ui-chip[data-armed]') Expected: 1 Received: 0 Timeout: 5000ms Call log: - Expect "toHaveCount" with timeout 5000ms - waiting for locator('.ui-chip[data-armed]') 13 × locator resolved to 0 elements - unexpected value "0" 51 | await input.focus(); 52 | await input.press("Backspace"); > 53 | await expect(page.locator(".ui-chip[data-armed]")).toHaveCount(1); | ^ 54 | await input.press("Backspace"); 55 | await expect(page.locator(".ui-chip")).toHaveCount(2); 56 | // An unknown user@host becomes a typed-host chip on a delimiter. at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:53:56 Error Context: test-results/add-host-prototype-one-chi-88eb4-oxes-and-chips-stay-in-sync/error-context.md 2) test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 109 | })); 110 | expect(geometry.windowLeft).toBeGreaterThanOrEqual(geometry.sidebarRight); > 111 | expect(geometry.closeReachable).toBe(true); | ^ 112 | } finally { 113 | await context.close(); 114 | } at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/add-host-prototype.spec.ts:111:39 Error Context: test-results/add-host-prototype-the-doc-38ffb-ow-and-stays-out-of-its-way/error-context.md 2 failed test/add-host-prototype.spec.ts:33:1 › one chip field: typed hosts become chips, checkboxes and chips stay in sync test/add-host-prototype.spec.ts:96:1 › the docked sidebar never covers the flow window and stays out of its way 12 passed (3.5m) ```
Author
Owner

#163 verbatim evidence: browser-production-canvas.spec.log (1/1)

Load before: 18.76 25.72 33.89 17/3148 3709239
Running as unit: run-p3709240-i49799269.scope; invocation ID: bd8e35f76748438e9e32cc5bc5edf03a
[WebServer] $ bun run build.ts
[WebServer] built chunk-j6pajvh4.js, chunk-tvynw18r.js, chunk-rkxf5zt7.js, chunk-b5qzwpce.js, chunk-8ap0fn6c.js, chunk-k7cc9y6p.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-1dw8f4qn.js, chunk-4a6wg3dz.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-xjwmmt0g.js, chunk-7nczvd3c.js, chunk-pbqr23sf.js, chunk-ksderj7f.js, chunk-yvhhqffe.js, chunk-1gnz3y3y.js, chunk-bccrb4py.js, chunk-nv546zym.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-p13qmhy6.js, chunk-gdf9fydm.js, chunk-24wthyx2.js, chunk-y34fz13y.js, chunk-8gqdshxw.js, chunk-hggwh20k.js, chunk-j5g4s49t.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-396kas3j.js, chunk-wtw1s8jn.js, chunk-n9ez8yyz.js, chunk-6w8gcgww.js, chunk-1d0qvnvb.js, chunk-fv211sdm.js, chunk-axbkkqp1.js, chunk-prdg26mf.js, chunk-36gjcvye.js, chunk-87y0fekk.js, chunk-23ce3ze7.js, chunk-x8z4c8yf.js, chunk-vdkdpfqm.js, chunk-v86b5paa.js, chunk-p5s32z76.js, chunk-gzc616hf.js, chunk-af4byekz.js, chunk-s9rgtv77.js, chunk-2e4yh13p.js, chunk-r9z706j4.js, chunk-gvb02g1s.js, chunk-d1p972dz.js, chunk-34zdrrej.js, chunk-0rzhnb02.js, chunk-2tm048p5.js, chunk-cxfz38m5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-jkcsjm84.js, chunk-awherk0x.js, chunk-0sxn500c.js, chunk-bjy410vs.js, chunk-ck6pdh9k.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 38 tests using 1 worker

(node:3710316) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   1 test/canvas.spec.ts:30:1 › desktop: horizontal trackpad scrolling pans the canvas over a terminal and rests on whole pixels (9.4s)
  ✓   2 test/canvas.spec.ts:50:1 › desktop: a click on an inactive window activates it without moving focus into it (9.4s)
  ✓   3 test/canvas.spec.ts:63:1 › touch: a tap activates without the keyboard, two fingers pan the canvas (11.1s)
  ✓   4 test/canvas.spec.ts:88:1 › details popover: keys left, values right, each cell copies with a tick (9.3s)
  ✓   5 test/canvas.spec.ts:111:1 › live terminal: the cursor stays on its text inside the window card (8.9s)
  ✓   6 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 1 (a window wide enough for 87 columns) (10.3s)
  ✓   7 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 2 (a window wide enough for 87 columns) (11.1s)
  ✓   8 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 1440×900 (8.8s)
  ✓   9 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 393×852 (7.9s)
  ✓  10 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 375×667 (8.7s)
  ✓  11 test/canvas.spec.ts:172:1 › every floating card uses the one overlay material (7.7s)
  ✓  12 test/canvas.spec.ts:191:1 › a connection failure shows in the shared toast, never as a floating status box (7.7s)
  ✓  13 test/canvas.spec.ts:208:1 › desktop: edges and corners resize with the right cursors, neighbours shift and never overlap (8.7s)
  ✓  14 test/canvas.spec.ts:250:1 › desktop: a window cannot shrink below about 40 columns by 10 rows (9.2s)
resize frame cost over 40 frames: median 0.90 ms, p95 8.50 ms, max 10.80 ms
  ✓  15 test/canvas.spec.ts:265:1 › desktop: the live terminal refits once on release, not on every frame, and each frame costs under 16 ms (11.2s)
  ✘  16 test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it (10.2s)
(node:3740930) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  17 test/canvas.spec.ts:344:1 › sidebar footer: the person and settings pills line up, press, and open Settings with About; no version pill (12.2s)
  ✓  18 test/canvas.spec.ts:401:1 › palette: About infraternal opens Settings, About, and is found by version, build and commit (10.4s)
  ✓  19 test/canvas.spec.ts:418:1 › lock: the icon appears near a window's top edge, locks with a click, stays, and unlocks with Ctrl+Shift+L (9.5s)
  ✓  20 test/canvas.spec.ts:464:1 › lock: wheel and canvas gestures inside the locked window never pan; outside it still does; other windows are ignored (9.6s)
  ✓  21 test/canvas.spec.ts:494:1 › lock: Ctrl+K reaches the terminal on Linux and Windows while locked, and opens the palette when unlocked (9.8s)
  ✓  22 test/canvas.spec.ts:522:1 › lock: on macOS, ⌘K still opens the palette while locked and offers Unlock window (10.0s)
  ✓  23 test/canvas.spec.ts:541:1 › lock (touch): there is no frame lock on a phone; the palette locks (7.7s)
  ✓  24 test/canvas.spec.ts:552:1 › lock: one click on an unfocused window's lock focuses that window and locks it (9.4s)
  ✓  25 test/canvas.spec.ts:576:1 › shortcuts: ? morphs the capsule into the list, current area first, one shortcut per action; Esc, ? and a click outside morph it back (10.5s)
  ✘  26 test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K (13.5s)
(node:3760297) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  27 test/canvas.spec.ts:638:1 › shortcuts (reduced motion): the panel crossfades without any shape travel (8.4s)
  ✓  28 test/canvas.spec.ts:653:1 › empty canvas: a click in the gap clears the active window and its highlight; keys go to canvas navigation (9.4s)
  ✓  29 test/canvas.spec.ts:677:1 › empty canvas (touch): a tap in the gap clears the active window (9.1s)
  ✓  30 test/canvas.spec.ts:695:1 › details popover tabs: the selected capsule glides (does not jump) and the keyboard moves it instantly (10.0s)
  ✓  31 test/canvas.spec.ts:728:1 › copyable values: the highlight hugs the text with even padding, on keys and right-aligned values (8.1s)
  ✓  32 test/canvas.spec.ts:751:1 › a normal preview session never writes text bottom left: reload, a failing session check, state messages (16.5s)
  ✓  33 test/canvas.spec.ts:799:1 › copy works from a plain-http, non-localhost origin: no async clipboard, the fallback copies and the feedback plays (7.1s)
  ✓  34 test/canvas.spec.ts:840:1 › top pill: the host's operating-system icon replaces the connection dot and follows the active window (7.5s)
  ✓  35 test/canvas.spec.ts:852:1 › palette (desktop): centred, as tall as its results, never closer than a quarter of the viewport to the top or bottom (8.7s)
  ✓  36 test/canvas.spec.ts:890:1 › palette (phone): keeps its placement under the top bar, inside the safe area (8.3s)
  ✓  37 test/canvas.spec.ts:904:1 › palette: Ctrl+K then typing within 20 ms lands every character; arrow selection has no transition (8.4s)
  ✓  38 test/canvas.spec.ts:925:1 › clear and frosted cards blur what is behind them by more than a line of text, so letters never read through (8.3s)


  1) test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 564
    Received:   714

      332 |   await page.waitForTimeout(300);
      333 |   const after = await windowBox(page, 0);
    > 334 |   expect(after.height).toBeLessThan(before.height - 150);
          |                        ^
      335 |   expect(after.width).toBeLessThan(before.width - 40);
      336 |   // The mode stays until a tap lands outside the handles.
      337 |   await expect(window0).toHaveAttribute("data-resize", "touch");
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/canvas.spec.ts:334:24

    Error Context: test-results/canvas-touch-press-and-hol-7d656-sizes-a-tap-outside-ends-it/error-context.md

  2) test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 

    Error: expect(locator).toHaveText(expected) failed

    Locator: locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd')
    Timeout: 5000ms
    - Expected  - 2
    + Received  + 2

      Array [
    -   "Ctrl",
    -   "Shift",
    +   "⌃",
    +   "⇧",
        "L",
      ]

    Call log:
      - Expect "toHaveText" with timeout 5000ms
      - waiting for locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd')
        14 × locator resolved to 3 elements


      629 |   const panel = page.locator(".ui-shortcuts");
      630 |   await expect(panel).toBeVisible();
    > 631 |   await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]);
          |                                                                                                  ^
      632 |   await expect(panel.locator(".ui-shortcuts-row", { hasText: "command palette" }).locator("kbd")).toHaveText(["⌘", "K", "⌘", "⇧", "P"]);
      633 |   await page.keyboard.press("Escape");
      634 |   await expect(panel).toHaveCount(0);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/canvas.spec.ts:631:98

    Error Context: test-results/canvas-shortcuts-the-palet-85af2-re-listed-and-a-Mac-sees-⌘K/error-context.md

  2 failed
    test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it 
    test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 
  36 passed (6.3m)

Invocation exit: 1
Load after: 21.22 30.70 34.14 13/3108 3780662
#163 verbatim evidence: browser-production-canvas.spec.log (1/1) ```text Load before: 18.76 25.72 33.89 17/3148 3709239 Running as unit: run-p3709240-i49799269.scope; invocation ID: bd8e35f76748438e9e32cc5bc5edf03a [WebServer] $ bun run build.ts [WebServer] built chunk-j6pajvh4.js, chunk-tvynw18r.js, chunk-rkxf5zt7.js, chunk-b5qzwpce.js, chunk-8ap0fn6c.js, chunk-k7cc9y6p.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-1dw8f4qn.js, chunk-4a6wg3dz.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-xjwmmt0g.js, chunk-7nczvd3c.js, chunk-pbqr23sf.js, chunk-ksderj7f.js, chunk-yvhhqffe.js, chunk-1gnz3y3y.js, chunk-bccrb4py.js, chunk-nv546zym.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-p13qmhy6.js, chunk-gdf9fydm.js, chunk-24wthyx2.js, chunk-y34fz13y.js, chunk-8gqdshxw.js, chunk-hggwh20k.js, chunk-j5g4s49t.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-396kas3j.js, chunk-wtw1s8jn.js, chunk-n9ez8yyz.js, chunk-6w8gcgww.js, chunk-1d0qvnvb.js, chunk-fv211sdm.js, chunk-axbkkqp1.js, chunk-prdg26mf.js, chunk-36gjcvye.js, chunk-87y0fekk.js, chunk-23ce3ze7.js, chunk-x8z4c8yf.js, chunk-vdkdpfqm.js, chunk-v86b5paa.js, chunk-p5s32z76.js, chunk-gzc616hf.js, chunk-af4byekz.js, chunk-s9rgtv77.js, chunk-2e4yh13p.js, chunk-r9z706j4.js, chunk-gvb02g1s.js, chunk-d1p972dz.js, chunk-34zdrrej.js, chunk-0rzhnb02.js, chunk-2tm048p5.js, chunk-cxfz38m5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-jkcsjm84.js, chunk-awherk0x.js, chunk-0sxn500c.js, chunk-bjy410vs.js, chunk-ck6pdh9k.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 38 tests using 1 worker (node:3710316) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/canvas.spec.ts:30:1 › desktop: horizontal trackpad scrolling pans the canvas over a terminal and rests on whole pixels (9.4s) ✓ 2 test/canvas.spec.ts:50:1 › desktop: a click on an inactive window activates it without moving focus into it (9.4s) ✓ 3 test/canvas.spec.ts:63:1 › touch: a tap activates without the keyboard, two fingers pan the canvas (11.1s) ✓ 4 test/canvas.spec.ts:88:1 › details popover: keys left, values right, each cell copies with a tick (9.3s) ✓ 5 test/canvas.spec.ts:111:1 › live terminal: the cursor stays on its text inside the window card (8.9s) ✓ 6 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 1 (a window wide enough for 87 columns) (10.3s) ✓ 7 test/canvas.spec.ts:124:3 › live terminal: an 86-character line puts the cursor at column 86 with 8 px cells at DPR 2 (a window wide enough for 87 columns) (11.1s) ✓ 8 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 1440×900 (8.8s) ✓ 9 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 393×852 (7.9s) ✓ 10 test/canvas.spec.ts:143:3 › details popover stays inside its window with an equal inset at 375×667 (8.7s) ✓ 11 test/canvas.spec.ts:172:1 › every floating card uses the one overlay material (7.7s) ✓ 12 test/canvas.spec.ts:191:1 › a connection failure shows in the shared toast, never as a floating status box (7.7s) ✓ 13 test/canvas.spec.ts:208:1 › desktop: edges and corners resize with the right cursors, neighbours shift and never overlap (8.7s) ✓ 14 test/canvas.spec.ts:250:1 › desktop: a window cannot shrink below about 40 columns by 10 rows (9.2s) resize frame cost over 40 frames: median 0.90 ms, p95 8.50 ms, max 10.80 ms ✓ 15 test/canvas.spec.ts:265:1 › desktop: the live terminal refits once on release, not on every frame, and each frame costs under 16 ms (11.2s) ✘ 16 test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it (10.2s) (node:3740930) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 17 test/canvas.spec.ts:344:1 › sidebar footer: the person and settings pills line up, press, and open Settings with About; no version pill (12.2s) ✓ 18 test/canvas.spec.ts:401:1 › palette: About infraternal opens Settings, About, and is found by version, build and commit (10.4s) ✓ 19 test/canvas.spec.ts:418:1 › lock: the icon appears near a window's top edge, locks with a click, stays, and unlocks with Ctrl+Shift+L (9.5s) ✓ 20 test/canvas.spec.ts:464:1 › lock: wheel and canvas gestures inside the locked window never pan; outside it still does; other windows are ignored (9.6s) ✓ 21 test/canvas.spec.ts:494:1 › lock: Ctrl+K reaches the terminal on Linux and Windows while locked, and opens the palette when unlocked (9.8s) ✓ 22 test/canvas.spec.ts:522:1 › lock: on macOS, ⌘K still opens the palette while locked and offers Unlock window (10.0s) ✓ 23 test/canvas.spec.ts:541:1 › lock (touch): there is no frame lock on a phone; the palette locks (7.7s) ✓ 24 test/canvas.spec.ts:552:1 › lock: one click on an unfocused window's lock focuses that window and locks it (9.4s) ✓ 25 test/canvas.spec.ts:576:1 › shortcuts: ? morphs the capsule into the list, current area first, one shortcut per action; Esc, ? and a click outside morph it back (10.5s) ✘ 26 test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K (13.5s) (node:3760297) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 27 test/canvas.spec.ts:638:1 › shortcuts (reduced motion): the panel crossfades without any shape travel (8.4s) ✓ 28 test/canvas.spec.ts:653:1 › empty canvas: a click in the gap clears the active window and its highlight; keys go to canvas navigation (9.4s) ✓ 29 test/canvas.spec.ts:677:1 › empty canvas (touch): a tap in the gap clears the active window (9.1s) ✓ 30 test/canvas.spec.ts:695:1 › details popover tabs: the selected capsule glides (does not jump) and the keyboard moves it instantly (10.0s) ✓ 31 test/canvas.spec.ts:728:1 › copyable values: the highlight hugs the text with even padding, on keys and right-aligned values (8.1s) ✓ 32 test/canvas.spec.ts:751:1 › a normal preview session never writes text bottom left: reload, a failing session check, state messages (16.5s) ✓ 33 test/canvas.spec.ts:799:1 › copy works from a plain-http, non-localhost origin: no async clipboard, the fallback copies and the feedback plays (7.1s) ✓ 34 test/canvas.spec.ts:840:1 › top pill: the host's operating-system icon replaces the connection dot and follows the active window (7.5s) ✓ 35 test/canvas.spec.ts:852:1 › palette (desktop): centred, as tall as its results, never closer than a quarter of the viewport to the top or bottom (8.7s) ✓ 36 test/canvas.spec.ts:890:1 › palette (phone): keeps its placement under the top bar, inside the safe area (8.3s) ✓ 37 test/canvas.spec.ts:904:1 › palette: Ctrl+K then typing within 20 ms lands every character; arrow selection has no transition (8.4s) ✓ 38 test/canvas.spec.ts:925:1 › clear and frosted cards blur what is behind them by more than a line of text, so letters never read through (8.3s) 1) test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it Error: expect(received).toBeLessThan(expected) Expected: < 564 Received: 714 332 | await page.waitForTimeout(300); 333 | const after = await windowBox(page, 0); > 334 | expect(after.height).toBeLessThan(before.height - 150); | ^ 335 | expect(after.width).toBeLessThan(before.width - 40); 336 | // The mode stays until a tap lands outside the handles. 337 | await expect(window0).toHaveAttribute("data-resize", "touch"); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/canvas.spec.ts:334:24 Error Context: test-results/canvas-touch-press-and-hol-7d656-sizes-a-tap-outside-ends-it/error-context.md 2) test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K Error: expect(locator).toHaveText(expected) failed Locator: locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd') Timeout: 5000ms - Expected - 2 + Received + 2 Array [ - "Ctrl", - "Shift", + "⌃", + "⇧", "L", ] Call log: - Expect "toHaveText" with timeout 5000ms - waiting for locator('.ui-shortcuts').locator('.ui-shortcuts-row').filter({ hasText: 'Lock or unlock' }).locator('kbd') 14 × locator resolved to 3 elements 629 | const panel = page.locator(".ui-shortcuts"); 630 | await expect(panel).toBeVisible(); > 631 | await expect(panel.locator(".ui-shortcuts-row", { hasText: "Lock or unlock" }).locator("kbd")).toHaveText(["Ctrl", "Shift", "L"]); | ^ 632 | await expect(panel.locator(".ui-shortcuts-row", { hasText: "command palette" }).locator("kbd")).toHaveText(["⌘", "K", "⌘", "⇧", "P"]); 633 | await page.keyboard.press("Escape"); 634 | await expect(panel).toHaveCount(0); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/canvas.spec.ts:631:98 Error Context: test-results/canvas-shortcuts-the-palet-85af2-re-listed-and-a-Mac-sees-⌘K/error-context.md 2 failed test/canvas.spec.ts:301:1 › touch: press and hold on a header reveals corner handles; a handle resizes; a tap outside ends it test/canvas.spec.ts:621:1 › shortcuts: the palette offers Keyboard shortcuts, lock shortcuts are listed, and a Mac sees ⌘K 36 passed (6.3m) Invocation exit: 1 Load after: 21.22 30.70 34.14 13/3108 3780662 ```
Author
Owner

#163 verbatim evidence: browser-production-clusters-grid.spec.log (1/1)

Load before: 17.35 18.23 26.43 9/2999 3845939
Running as unit: run-p3845940-i49935968.scope; invocation ID: 057ebb7e3b164193abeb3bd5ec1f4619
[WebServer] $ bun run build.ts
[WebServer] built chunk-ka3zczr8.js, chunk-tvynw18r.js, chunk-79ktv0yk.js, chunk-b5qzwpce.js, chunk-qfeh3t8w.js, chunk-wwdxv06d.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-x1wgx6dq.js, chunk-zw8vv5wc.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-sc5fyhca.js, chunk-7nczvd3c.js, chunk-mdz4dq8x.js, chunk-2nf61fyk.js, chunk-yvhhqffe.js, chunk-aqw3bnra.js, chunk-m605xsc1.js, chunk-79y1q2rt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4615b7h7.js, chunk-sqsfvbbm.js, chunk-9ettxxy5.js, chunk-m07vk0qa.js, chunk-8gqdshxw.js, chunk-5jf7nk51.js, chunk-vc67mjwr.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-ywqnkv8v.js, chunk-x4jn9vt3.js, chunk-6aehp1nw.js, chunk-ffpkg20c.js, chunk-1d0qvnvb.js, chunk-psf50y58.js, chunk-axbkkqp1.js, chunk-dypsxfaa.js, chunk-e8nrr8jk.js, chunk-2extksc5.js, chunk-4bsrf02x.js, chunk-n7g5q6s6.js, chunk-3mp33erb.js, chunk-v86b5paa.js, chunk-kk9sz5em.js, chunk-5enrz4jr.js, chunk-3s75snb8.js, chunk-xv3g3sp7.js, chunk-2e4yh13p.js, chunk-n61gfr3b.js, chunk-2gdcdd2k.js, chunk-q474j2zn.js, chunk-gef9h1b2.js, chunk-fbvyng3d.js, chunk-35efs8m2.js, chunk-r4atydgt.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-q7gkwk48.js, chunk-k7zsr8pb.js, chunk-0sxn500c.js, chunk-na1yewjc.js, chunk-emr3ntd9.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 16 tests using 1 worker

(node:3846059) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   1 test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change (10.2s)
(node:3846516) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓   2 test/clusters-grid.spec.ts:109:3 › split right in a stacked column (D212) › by ⌘K: Split right on the stacked window gives the same layout (11.2s)
  ✓   3 test/clusters-grid.spec.ts:128:3 › split right in a stacked column (D212) › by mouse: the header pill's split right on the middle window divides it the same way (10.9s)
  ✓   4 test/clusters-grid.spec.ts:144:3 › split right in a stacked column (D212) › closing the new half gives back the layout it came from, widths and heights (11.5s)
  ✘   5 test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves (11.5s)
(node:3847782) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   6 test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns (10.6s)
(node:3847993) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   7 test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group (10.4s)
(node:3848195) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   8 test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it (11.1s)
(node:3848501) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘   9 test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height (2.0m)
(node:3863182) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  10 test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view (2.0m)
(node:3876675) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  11 test/clusters-grid.spec.ts:254:3 › camera and saved layout with a group (D212) › the saved document holds the span, so a reload places the group the same way (10.2s)
  ✓  12 test/clusters-grid.spec.ts:268:3 › phone 393x852 with a group (D212) › split right in a stacked column keeps every window on the screen and never scrolls the page sideways (10.6s)
  ✓  13 test/clusters-grid.spec.ts:292:3 › moving a window of a group by its pill (D212) › a grouped window dragged to the far column lands there: no overlap, the footprint unchanged, the group closes its hole (15.4s)
  ✓  14 test/clusters-grid.spec.ts:320:3 › title first in a narrow half (TASTE, D212) › a half too narrow for its actions keeps its title, shows one ⋯, and the menu holds every action (11.5s)
  ✓  15 test/clusters-grid.spec.ts:343:3 › title first in a narrow half (TASTE, D212) › a wide window keeps its actions in the header, and no ⋯ is shown (8.6s)
  ✘  16 test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen (11.8s)


  1) test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 5

      94 |     const after = await grid(page);
      95 |     expect(after.groups, "one group").toBe(1);
    > 96 |     expect(after.windows).toBe(before.windows + 2);
         |                           ^
      97 |     expect(after.total, "footprint").toBe(before.total);
      98 |     expectNoOverlap(after);
      99 |     const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!;
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:96:27

    Error Context: test-results/clusters-grid-split-right--59cd5-e-footprint-does-not-change/error-context.md

  2) test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves 

    Error: expect(received).toContain(expected) // indexOf

    Expected value: "w-edge-arm-s2"
    Received array: ["w-nix-cache", "w-edge-arm-s1"]

      173 |     expectNoOverlap(after);
      174 |     const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!;
    > 175 |     expect(c2.wins.map((w) => w.id)).toContain("w-edge-arm-s2");
          |                                      ^
      176 |     expect(c2.w).toBe(459);
      177 |   });
      178 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:175:38

    Error Context: test-results/clusters-grid-split-right--b1b1e-and-and-the-group-dissolves/error-context.md

  3) test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 3
    + Received  + 1

    - Array [
    -   "w-edge-arm-s1",
    - ]
    + Array []

      189 |     expect(after.cols.length, "no new column: the span is halved inside the group").toBe(before.cols.length);
      190 |     // Only the bottom window still spans: the top one was halved, and nothing outside the group is spanning.
    > 191 |     expect(after.cols.flatMap((c) => c.wins).filter((w) => w.span > 1).map((w) => w.id)).toEqual(["w-edge-arm-s1"]);
          |                                                                                          ^
      192 |   });
      193 |
      194 |   test("new window right after a group opens a plain column after the whole group", async ({ page }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:191:90

    Error Context: test-results/clusters-grid-split-right--4cbaa-inside-the-existing-columns/error-context.md

  4) test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 5
    Received: 4

      200 |     const after = await grid(page);
      201 |     expect(after.groups, "the group is untouched").toBe(1);
    > 202 |     expect(after.cols.length).toBe(before.cols.length + 1);
          |                               ^
      203 |     expect(after.total).toBe(before.total + before.cols.find((c) => c.wins.some((w) => w.id === "w-edge-arm"))!.w + 12);
      204 |     expectNoOverlap(after);
      205 |   });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:202:31

    Error Context: test-results/clusters-grid-split-right--0ceb9-olumn-after-the-whole-group/error-context.md

  5) test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 5

      212 |     await press(page, ["Control", "Alt", "KeyD"]);
      213 |     const after = await grid(page);
    > 214 |     expect(after.windows).toBe(before.windows + 1);
          |                           ^
      215 |     expect(after.total).toBe(before.total);
      216 |     expectNoOverlap(after);
      217 |     expect(after.cols.map((c) => c.w)).toEqual(before.cols.map((c) => c.w));
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:214:27

    Error Context: test-results/clusters-grid-split-right--26c7c-keeps-the-windows-beside-it/error-context.md

  6) test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height 

    Test timeout of 120000ms exceeded.

    Error: locator.click: Test timeout of 120000ms exceeded.
    Call log:
      - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first()


      60 | }
      61 |
    > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400));
         |                                                                                                                                                ^
      63 |
      64 | async function press(page: Page, chord: string[]): Promise<void> {
      65 |   for (const k of chord) await page.keyboard.down(k);
        at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:62:144)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:223:11

    Error Context: test-results/clusters-grid-split-right--2aab6--beside-it-keeps-its-height/error-context.md

  7) test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view 

    Test timeout of 120000ms exceeded.

    Error: locator.click: Test timeout of 120000ms exceeded.
    Call log:
      - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first()


      60 | }
      61 |
    > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400));
         |                                                                                                                                                ^
      63 |
      64 | async function press(page: Page, chord: string[]): Promise<void> {
      65 |   for (const k of chord) await page.keyboard.down(k);
        at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:62:144)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:244:11

    Error Context: test-results/clusters-grid-camera-and-s-e8dec--brings-all-of-it-into-view/error-context.md

  8) test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 

    Error: w-nix-cache right edge

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 394
    Received:    744

      370 |     expect(framed.length).toBeGreaterThan(0);
      371 |     for (const p of framed) expect(p.headLeft, `${p.id} header left edge`).toBeGreaterThanOrEqual(-1);
    > 372 |     for (const p of framed) expect(p.right, `${p.id} right edge`).toBeLessThanOrEqual(vw + 1);
          |                                                                   ^
      373 |   });
      374 | });
      375 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:372:67

    Error Context: test-results/clusters-grid-the-phone-af-6f47e-s-header-stay-on-the-screen/error-context.md

  8 failed
    test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change 
    test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves 
    test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns 
    test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group 
    test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it 
    test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height 
    test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view 
    test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 
  8 passed (6.9m)

Invocation exit: 1
Load after: 29.50 21.34 24.32 36/3112 3885764
#163 verbatim evidence: browser-production-clusters-grid.spec.log (1/1) ```text Load before: 17.35 18.23 26.43 9/2999 3845939 Running as unit: run-p3845940-i49935968.scope; invocation ID: 057ebb7e3b164193abeb3bd5ec1f4619 [WebServer] $ bun run build.ts [WebServer] built chunk-ka3zczr8.js, chunk-tvynw18r.js, chunk-79ktv0yk.js, chunk-b5qzwpce.js, chunk-qfeh3t8w.js, chunk-wwdxv06d.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-x1wgx6dq.js, chunk-zw8vv5wc.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-sc5fyhca.js, chunk-7nczvd3c.js, chunk-mdz4dq8x.js, chunk-2nf61fyk.js, chunk-yvhhqffe.js, chunk-aqw3bnra.js, chunk-m605xsc1.js, chunk-79y1q2rt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4615b7h7.js, chunk-sqsfvbbm.js, chunk-9ettxxy5.js, chunk-m07vk0qa.js, chunk-8gqdshxw.js, chunk-5jf7nk51.js, chunk-vc67mjwr.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-ywqnkv8v.js, chunk-x4jn9vt3.js, chunk-6aehp1nw.js, chunk-ffpkg20c.js, chunk-1d0qvnvb.js, chunk-psf50y58.js, chunk-axbkkqp1.js, chunk-dypsxfaa.js, chunk-e8nrr8jk.js, chunk-2extksc5.js, chunk-4bsrf02x.js, chunk-n7g5q6s6.js, chunk-3mp33erb.js, chunk-v86b5paa.js, chunk-kk9sz5em.js, chunk-5enrz4jr.js, chunk-3s75snb8.js, chunk-xv3g3sp7.js, chunk-2e4yh13p.js, chunk-n61gfr3b.js, chunk-2gdcdd2k.js, chunk-q474j2zn.js, chunk-gef9h1b2.js, chunk-fbvyng3d.js, chunk-35efs8m2.js, chunk-r4atydgt.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-q7gkwk48.js, chunk-k7zsr8pb.js, chunk-0sxn500c.js, chunk-na1yewjc.js, chunk-emr3ntd9.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 16 tests using 1 worker (node:3846059) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change (10.2s) (node:3846516) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/clusters-grid.spec.ts:109:3 › split right in a stacked column (D212) › by ⌘K: Split right on the stacked window gives the same layout (11.2s) ✓ 3 test/clusters-grid.spec.ts:128:3 › split right in a stacked column (D212) › by mouse: the header pill's split right on the middle window divides it the same way (10.9s) ✓ 4 test/clusters-grid.spec.ts:144:3 › split right in a stacked column (D212) › closing the new half gives back the layout it came from, widths and heights (11.5s) ✘ 5 test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves (11.5s) (node:3847782) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 6 test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns (10.6s) (node:3847993) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 7 test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group (10.4s) (node:3848195) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 8 test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it (11.1s) (node:3848501) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 9 test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height (2.0m) (node:3863182) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 10 test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view (2.0m) (node:3876675) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 11 test/clusters-grid.spec.ts:254:3 › camera and saved layout with a group (D212) › the saved document holds the span, so a reload places the group the same way (10.2s) ✓ 12 test/clusters-grid.spec.ts:268:3 › phone 393x852 with a group (D212) › split right in a stacked column keeps every window on the screen and never scrolls the page sideways (10.6s) ✓ 13 test/clusters-grid.spec.ts:292:3 › moving a window of a group by its pill (D212) › a grouped window dragged to the far column lands there: no overlap, the footprint unchanged, the group closes its hole (15.4s) ✓ 14 test/clusters-grid.spec.ts:320:3 › title first in a narrow half (TASTE, D212) › a half too narrow for its actions keeps its title, shows one ⋯, and the menu holds every action (11.5s) ✓ 15 test/clusters-grid.spec.ts:343:3 › title first in a narrow half (TASTE, D212) › a wide window keeps its actions in the header, and no ⋯ is shown (8.6s) ✘ 16 test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen (11.8s) 1) test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 5 94 | const after = await grid(page); 95 | expect(after.groups, "one group").toBe(1); > 96 | expect(after.windows).toBe(before.windows + 2); | ^ 97 | expect(after.total, "footprint").toBe(before.total); 98 | expectNoOverlap(after); 99 | const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!; at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:96:27 Error Context: test-results/clusters-grid-split-right--59cd5-e-footprint-does-not-change/error-context.md 2) test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves Error: expect(received).toContain(expected) // indexOf Expected value: "w-edge-arm-s2" Received array: ["w-nix-cache", "w-edge-arm-s1"] 173 | expectNoOverlap(after); 174 | const c2 = after.cols.find((c) => c.wins.some((w) => w.id === "w-nix-cache"))!; > 175 | expect(c2.wins.map((w) => w.id)).toContain("w-edge-arm-s2"); | ^ 176 | expect(c2.w).toBe(459); 177 | }); 178 | at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:175:38 Error Context: test-results/clusters-grid-split-right--b1b1e-and-and-the-group-dissolves/error-context.md 3) test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns Error: expect(received).toEqual(expected) // deep equality - Expected - 3 + Received + 1 - Array [ - "w-edge-arm-s1", - ] + Array [] 189 | expect(after.cols.length, "no new column: the span is halved inside the group").toBe(before.cols.length); 190 | // Only the bottom window still spans: the top one was halved, and nothing outside the group is spanning. > 191 | expect(after.cols.flatMap((c) => c.wins).filter((w) => w.span > 1).map((w) => w.id)).toEqual(["w-edge-arm-s1"]); | ^ 192 | }); 193 | 194 | test("new window right after a group opens a plain column after the whole group", async ({ page }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:191:90 Error Context: test-results/clusters-grid-split-right--4cbaa-inside-the-existing-columns/error-context.md 4) test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group Error: expect(received).toBe(expected) // Object.is equality Expected: 5 Received: 4 200 | const after = await grid(page); 201 | expect(after.groups, "the group is untouched").toBe(1); > 202 | expect(after.cols.length).toBe(before.cols.length + 1); | ^ 203 | expect(after.total).toBe(before.total + before.cols.find((c) => c.wins.some((w) => w.id === "w-edge-arm"))!.w + 12); 204 | expectNoOverlap(after); 205 | }); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:202:31 Error Context: test-results/clusters-grid-split-right--0ceb9-olumn-after-the-whole-group/error-context.md 5) test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it Error: expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 5 212 | await press(page, ["Control", "Alt", "KeyD"]); 213 | const after = await grid(page); > 214 | expect(after.windows).toBe(before.windows + 1); | ^ 215 | expect(after.total).toBe(before.total); 216 | expectNoOverlap(after); 217 | expect(after.cols.map((c) => c.w)).toEqual(before.cols.map((c) => c.w)); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:214:27 Error Context: test-results/clusters-grid-split-right--26c7c-keeps-the-windows-beside-it/error-context.md 6) test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height Test timeout of 120000ms exceeded. Error: locator.click: Test timeout of 120000ms exceeded. Call log: - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first() 60 | } 61 | > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400)); | ^ 63 | 64 | async function press(page: Page, chord: string[]): Promise<void> { 65 | for (const k of chord) await page.keyboard.down(k); at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:62:144) at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:223:11 Error Context: test-results/clusters-grid-split-right--2aab6--beside-it-keeps-its-height/error-context.md 7) test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view Test timeout of 120000ms exceeded. Error: locator.click: Test timeout of 120000ms exceeded. Call log: - waiting for locator('.cl[data-view="console"] .ui-window[data-window-id="w-edge-arm-s2"] .ui-window-body').first() 60 | } 61 | > 62 | const activate = (page: Page, id: string): Promise<void> => page.locator(`${VIEW} .ui-window[data-window-id="${id}"] .ui-window-body`).first().click({ position: { x: 20, y: 40 } }).then(() => page.waitForTimeout(400)); | ^ 63 | 64 | async function press(page: Page, chord: string[]): Promise<void> { 65 | for (const k of chord) await page.keyboard.down(k); at activate (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:62:144) at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:244:11 Error Context: test-results/clusters-grid-camera-and-s-e8dec--brings-all-of-it-into-view/error-context.md 8) test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen Error: w-nix-cache right edge expect(received).toBeLessThanOrEqual(expected) Expected: <= 394 Received: 744 370 | expect(framed.length).toBeGreaterThan(0); 371 | for (const p of framed) expect(p.headLeft, `${p.id} header left edge`).toBeGreaterThanOrEqual(-1); > 372 | for (const p of framed) expect(p.right, `${p.id} right edge`).toBeLessThanOrEqual(vw + 1); | ^ 373 | }); 374 | }); 375 | at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-grid.spec.ts:372:67 Error Context: test-results/clusters-grid-the-phone-af-6f47e-s-header-stay-on-the-screen/error-context.md 8 failed test/clusters-grid.spec.ts:90:3 › split right in a stacked column (D212) › by key: the window's column halves, the windows around it span both halves, the footprint does not change test/clusters-grid.spec.ts:163:3 › split right in a stacked column (D212) › closing the window it came from: the new half takes its band, and the group dissolves test/clusters-grid.spec.ts:179:3 › split right in a stacked column (D212) › split right of a spanning window halves its span inside the existing columns test/clusters-grid.spec.ts:194:3 › split right in a stacked column (D212) › new window right after a group opens a plain column after the whole group test/clusters-grid.spec.ts:207:3 › split right in a stacked column (D212) › new window below in a group grows the column and keeps the windows beside it test/clusters-grid.spec.ts:220:3 › split right in a stacked column (D212) › split down in a group divides only the window's band, and the window beside it keeps its height test/clusters-grid.spec.ts:238:3 › camera and saved layout with a group (D212) › the camera stops of a group are its columns: focusing a window in the new half brings all of it into view test/clusters-grid.spec.ts:356:3 › the phone after a split in a group (TASTE: chrome is never clipped) › the new half and the spanning window's header stay on the screen 8 passed (6.9m) Invocation exit: 1 Load after: 29.50 21.34 24.32 36/3112 3885764 ```
Author
Owner

#163 verbatim evidence: browser-production-clusters-keyboard-split.spec.log (1/1)

Load before: 31.80 23.06 24.78 16/3174 3893386
Running as unit: run-p3893387-i49983403.scope; invocation ID: 9a23f5febe204c42b004ef03a21cc98d
[WebServer] $ bun run build.ts
[WebServer] built chunk-9119y2d6.js, chunk-tvynw18r.js, chunk-4qca9a9s.js, chunk-b5qzwpce.js, chunk-jjh802ek.js, chunk-hn3q2tyg.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-pvvk9cpt.js, chunk-g527094s.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-w0ygtq31.js, chunk-7nczvd3c.js, chunk-hwmkdf66.js, chunk-k6044wb6.js, chunk-yvhhqffe.js, chunk-ppek75hm.js, chunk-9qy70e07.js, chunk-ekawvzeq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-gr6ke4vw.js, chunk-09m96gvb.js, chunk-tvd7nre0.js, chunk-mp5hc05e.js, chunk-8gqdshxw.js, chunk-9vxrcre8.js, chunk-zscnkdb9.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-stpym85y.js, chunk-pb77fnr4.js, chunk-531p9jt9.js, chunk-8yecwwqw.js, chunk-1d0qvnvb.js, chunk-8pg63mvr.js, chunk-axbkkqp1.js, chunk-2qnbp6ez.js, chunk-1h842syc.js, chunk-y610rak2.js, chunk-kvzag9k9.js, chunk-py77f9fd.js, chunk-ka99wwng.js, chunk-v86b5paa.js, chunk-983v6gag.js, chunk-jxpqrcvt.js, chunk-ks2hzpcf.js, chunk-f1af415k.js, chunk-2e4yh13p.js, chunk-vneyq4gh.js, chunk-dw8zjxy3.js, chunk-1jscjvwa.js, chunk-7brw7yba.js, chunk-8h5kxpbj.js, chunk-trhbvb2r.js, chunk-418y8mxa.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-tx8jvs8x.js, chunk-bq2kx0mt.js, chunk-0sxn500c.js, chunk-hscrnk1t.js, chunk-137ddk2q.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 2 tests using 1 worker

(node:3895620) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
keyboard split: silhouette seen 0 max rAF gap 83.4 ms, long frames after the first 0.8 s [33.29999999999927,49.899999999999636,49.899999999999636,49.899999999999636,50,33.29999999999927,33.399999999999636,33.29999999999927]
  ✘  1 test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames (11.9s)
(node:3899443) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  2 test/clusters-keyboard-split.spec.ts:57:1 › a pointer split still plays the silhouette (9.4s)


  1) test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 

    Error: holding the key adds no work: at most a stray dropped frame after the split itself

    expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 4
    Received:    8

      51 |   expect(m.goo, "a key split plays no silhouette").toBe(0);
      52 |   // An unbound key held the same way drops a frame or two on this headless setup as well; a flood would be dozens.
    > 53 |   expect(m.late.length, "holding the key adds no work: at most a stray dropped frame after the split itself").toBeLessThanOrEqual(4);
         |                                                                                                               ^
      54 |   expect(Math.max(0, ...m.late), "and none of them is long").toBeLessThan(60);
      55 | });
      56 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-keyboard-split.spec.ts:53:111

    Error Context: test-results/clusters-keyboard-split-a--d5528-lits-once-with-short-frames/error-context.md

  1 failed
    test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 
  1 passed (30.4s)

Invocation exit: 1
Load after: 28.65 23.07 24.72 42/3190 3901892
#163 verbatim evidence: browser-production-clusters-keyboard-split.spec.log (1/1) ```text Load before: 31.80 23.06 24.78 16/3174 3893386 Running as unit: run-p3893387-i49983403.scope; invocation ID: 9a23f5febe204c42b004ef03a21cc98d [WebServer] $ bun run build.ts [WebServer] built chunk-9119y2d6.js, chunk-tvynw18r.js, chunk-4qca9a9s.js, chunk-b5qzwpce.js, chunk-jjh802ek.js, chunk-hn3q2tyg.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-pvvk9cpt.js, chunk-g527094s.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-w0ygtq31.js, chunk-7nczvd3c.js, chunk-hwmkdf66.js, chunk-k6044wb6.js, chunk-yvhhqffe.js, chunk-ppek75hm.js, chunk-9qy70e07.js, chunk-ekawvzeq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-gr6ke4vw.js, chunk-09m96gvb.js, chunk-tvd7nre0.js, chunk-mp5hc05e.js, chunk-8gqdshxw.js, chunk-9vxrcre8.js, chunk-zscnkdb9.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-stpym85y.js, chunk-pb77fnr4.js, chunk-531p9jt9.js, chunk-8yecwwqw.js, chunk-1d0qvnvb.js, chunk-8pg63mvr.js, chunk-axbkkqp1.js, chunk-2qnbp6ez.js, chunk-1h842syc.js, chunk-y610rak2.js, chunk-kvzag9k9.js, chunk-py77f9fd.js, chunk-ka99wwng.js, chunk-v86b5paa.js, chunk-983v6gag.js, chunk-jxpqrcvt.js, chunk-ks2hzpcf.js, chunk-f1af415k.js, chunk-2e4yh13p.js, chunk-vneyq4gh.js, chunk-dw8zjxy3.js, chunk-1jscjvwa.js, chunk-7brw7yba.js, chunk-8h5kxpbj.js, chunk-trhbvb2r.js, chunk-418y8mxa.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-tx8jvs8x.js, chunk-bq2kx0mt.js, chunk-0sxn500c.js, chunk-hscrnk1t.js, chunk-137ddk2q.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 2 tests using 1 worker (node:3895620) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) keyboard split: silhouette seen 0 max rAF gap 83.4 ms, long frames after the first 0.8 s [33.29999999999927,49.899999999999636,49.899999999999636,49.899999999999636,50,33.29999999999927,33.399999999999636,33.29999999999927] ✘ 1 test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames (11.9s) (node:3899443) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/clusters-keyboard-split.spec.ts:57:1 › a pointer split still plays the silhouette (9.4s) 1) test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames Error: holding the key adds no work: at most a stray dropped frame after the split itself expect(received).toBeLessThanOrEqual(expected) Expected: <= 4 Received: 8 51 | expect(m.goo, "a key split plays no silhouette").toBe(0); 52 | // An unbound key held the same way drops a frame or two on this headless setup as well; a flood would be dozens. > 53 | expect(m.late.length, "holding the key adds no work: at most a stray dropped frame after the split itself").toBeLessThanOrEqual(4); | ^ 54 | expect(Math.max(0, ...m.late), "and none of them is long").toBeLessThan(60); 55 | }); 56 | at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters-keyboard-split.spec.ts:53:111 Error Context: test-results/clusters-keyboard-split-a--d5528-lits-once-with-short-frames/error-context.md 1 failed test/clusters-keyboard-split.spec.ts:21:1 › a key press splits at once, and holding it splits once with short frames 1 passed (30.4s) Invocation exit: 1 Load after: 28.65 23.07 24.72 42/3190 3901892 ```
Author
Owner

#163 verbatim evidence: browser-production-retry-driver.log (1/1)

merge retry test/predictive-echo.spec.ts: exit 1
#163 verbatim evidence: browser-production-retry-driver.log (1/1) ```text merge retry test/predictive-echo.spec.ts: exit 1 ```
Author
Owner

#163 verbatim evidence: browser-case-driver.log (1/1)

browser-case-merge test/core-screen.spec.ts 1: exit 1
browser-case-production test/core-screen.spec.ts 1: exit 1
browser-case-merge test/glass-ghost.spec.ts 1: exit 1
browser-case-production test/glass-ghost.spec.ts 1: exit 1
browser-case-merge test/clusters-swipes.spec.ts 1: exit 1
browser-case-production test/clusters-swipes.spec.ts 1: exit 0
browser-case-merge test/clusters-zoom-bench.spec.ts 2: exit 0
browser-case-merge test/clusters.spec.ts 3: exit 1
browser-case-production test/clusters.spec.ts 3: exit 1
browser-case-merge test/font-metrics.spec.ts 4: exit 0
browser-case-merge test/font-weight.spec.ts 5: exit 0
browser-case-merge test/mesh-perf.spec.ts 6: exit 1
browser-case-production test/mesh-perf.spec.ts 6: exit 0
browser-case-merge test/motion-audit.spec.ts 7: exit 1
browser-case-production test/motion-audit.spec.ts 7: exit 1
browser-case-merge test/onboarding.spec.ts 8: exit 1
browser-case-production test/onboarding.spec.ts 8: exit 1
browser-case-merge test/palette-navigation.spec.ts 9: exit 1
browser-case-production test/palette-navigation.spec.ts 9: exit 1
browser-case-merge test/perf-hud.spec.ts 10: exit 1
browser-case-production test/perf-hud.spec.ts 10: exit 1
browser-case-merge test/platform-consistency.spec.ts 11: exit 1
browser-case-production test/platform-consistency.spec.ts 11: exit 1
browser-case-merge test/predictive-backspace.spec.ts 12: exit 0
browser-case-merge test/predictive-echo.spec.ts 13: exit 1
browser-case-production test/predictive-echo.spec.ts 13: exit 0
browser-case-merge test/recovery-ui-hold.spec.ts 14: exit 1
browser-case-production test/recovery-ui-hold.spec.ts 14: exit 1
browser-case-merge test/renderer-regression.spec.ts 15: exit 1
browser-case-production test/renderer-regression.spec.ts 15: exit 1
browser-case-merge test/sessions-canvas.spec.ts 16: exit 1
browser-case-production test/sessions-canvas.spec.ts 16: exit 1
browser-case-merge test/terminal-theme.spec.ts 17: exit 1
browser-case-production test/terminal-theme.spec.ts 17: exit 1
browser-case-merge test/terminal.spec.ts 18: exit 1
browser-case-production test/terminal.spec.ts 18: exit 1
browser-case-merge test/unicode-fidelity.spec.ts 19: exit 0
#163 verbatim evidence: browser-case-driver.log (1/1) ```text browser-case-merge test/core-screen.spec.ts 1: exit 1 browser-case-production test/core-screen.spec.ts 1: exit 1 browser-case-merge test/glass-ghost.spec.ts 1: exit 1 browser-case-production test/glass-ghost.spec.ts 1: exit 1 browser-case-merge test/clusters-swipes.spec.ts 1: exit 1 browser-case-production test/clusters-swipes.spec.ts 1: exit 0 browser-case-merge test/clusters-zoom-bench.spec.ts 2: exit 0 browser-case-merge test/clusters.spec.ts 3: exit 1 browser-case-production test/clusters.spec.ts 3: exit 1 browser-case-merge test/font-metrics.spec.ts 4: exit 0 browser-case-merge test/font-weight.spec.ts 5: exit 0 browser-case-merge test/mesh-perf.spec.ts 6: exit 1 browser-case-production test/mesh-perf.spec.ts 6: exit 0 browser-case-merge test/motion-audit.spec.ts 7: exit 1 browser-case-production test/motion-audit.spec.ts 7: exit 1 browser-case-merge test/onboarding.spec.ts 8: exit 1 browser-case-production test/onboarding.spec.ts 8: exit 1 browser-case-merge test/palette-navigation.spec.ts 9: exit 1 browser-case-production test/palette-navigation.spec.ts 9: exit 1 browser-case-merge test/perf-hud.spec.ts 10: exit 1 browser-case-production test/perf-hud.spec.ts 10: exit 1 browser-case-merge test/platform-consistency.spec.ts 11: exit 1 browser-case-production test/platform-consistency.spec.ts 11: exit 1 browser-case-merge test/predictive-backspace.spec.ts 12: exit 0 browser-case-merge test/predictive-echo.spec.ts 13: exit 1 browser-case-production test/predictive-echo.spec.ts 13: exit 0 browser-case-merge test/recovery-ui-hold.spec.ts 14: exit 1 browser-case-production test/recovery-ui-hold.spec.ts 14: exit 1 browser-case-merge test/renderer-regression.spec.ts 15: exit 1 browser-case-production test/renderer-regression.spec.ts 15: exit 1 browser-case-merge test/sessions-canvas.spec.ts 16: exit 1 browser-case-production test/sessions-canvas.spec.ts 16: exit 1 browser-case-merge test/terminal-theme.spec.ts 17: exit 1 browser-case-production test/terminal-theme.spec.ts 17: exit 1 browser-case-merge test/terminal.spec.ts 18: exit 1 browser-case-production test/terminal.spec.ts 18: exit 1 browser-case-merge test/unicode-fidelity.spec.ts 19: exit 0 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-clusters-swipes.spec-1.log (1/1)

Load before: 17.72 16.56 21.90 11/2982 237564
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p237565-i50521230.scope; invocation ID: 2e368a66d34148b48205fdf73a034cc4
[WebServer] $ bun run build.ts
[WebServer] built chunk-ksk8ngc1.js, chunk-tvynw18r.js, chunk-c6swezt0.js, chunk-b5qzwpce.js, chunk-7nx7ewy1.js, chunk-tese098s.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-nw46vzc9.js, chunk-7mtjewcc.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-afyygz5r.js, chunk-7nczvd3c.js, chunk-zv90e6a8.js, chunk-83k4ms6a.js, chunk-yvhhqffe.js, chunk-enexmxw8.js, chunk-f7v9a6pk.js, chunk-wtf0zcj7.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-wq9wcyn8.js, chunk-wkc0dn9j.js, chunk-tragr1xa.js, chunk-j585vybg.js, chunk-8gqdshxw.js, chunk-kj8a8xvz.js, chunk-zk2eek1f.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9qb74gat.js, chunk-h0k7pyey.js, chunk-xem89geg.js, chunk-37f3x1yd.js, chunk-1d0qvnvb.js, chunk-q3kxxm83.js, chunk-axbkkqp1.js, chunk-vc9hxzdg.js, chunk-bqbz5fed.js, chunk-bv8r3tzz.js, chunk-nw9ew424.js, chunk-4g14w0h0.js, chunk-ssh7936x.js, chunk-v86b5paa.js, chunk-mr8c8316.js, chunk-jht3a003.js, chunk-yvye2tz4.js, chunk-erhzzpjb.js, chunk-2e4yh13p.js, chunk-zztbn0tt.js, chunk-nvynk4e4.js, chunk-4z2yskav.js, chunk-h8d976qn.js, chunk-9djkz5p4.js, chunk-ggxa97v2.js, chunk-42z1ecz2.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-tnkatwa6.js, chunk-xxb6s9p5.js, chunk-0sxn500c.js, chunk-y4pznnpx.js, chunk-m3vft6h9.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 2 tests using 1 worker

(node:237873) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (15.2s)
(node:238283) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  2 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (12.9s)


  1) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events 

    Error: windows moved by six swipes

    expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 7

      44 |     await swipes(page, 6, 330, momentum);
      45 |     const after = (await api("canvasLock")) as { index: number };
    > 46 |     expect(after.index - lock.index, "windows moved by six swipes").toBe(6);
         |                                                                     ^
      47 |   });
      48 | }
      49 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-swipes.spec.ts:46:69

    Error Context: test-results/clusters-swipes-six-swipes-64602-her-without-momentum-events/error-context.md

  2) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events 

    Error: windows moved by six swipes

    expect(received).toBe(expected) // Object.is equality

    Expected: 6
    Received: 7

      44 |     await swipes(page, 6, 330, momentum);
      45 |     const after = (await api("canvasLock")) as { index: number };
    > 46 |     expect(after.index - lock.index, "windows moved by six swipes").toBe(6);
         |                                                                     ^
      47 |   });
      48 | }
      49 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-swipes.spec.ts:46:69

    Error Context: test-results/clusters-swipes-six-swipes-86866-urther-with-momentum-events/error-context.md

  2 failed
    test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events 
    test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events 

Invocation exit: 1
Load after: 22.61 18.09 22.14 11/2950 239075
#163 verbatim evidence: browser-case-merge-clusters-swipes.spec-1.log (1/1) ```text Load before: 17.72 16.56 21.90 11/2982 237564 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p237565-i50521230.scope; invocation ID: 2e368a66d34148b48205fdf73a034cc4 [WebServer] $ bun run build.ts [WebServer] built chunk-ksk8ngc1.js, chunk-tvynw18r.js, chunk-c6swezt0.js, chunk-b5qzwpce.js, chunk-7nx7ewy1.js, chunk-tese098s.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-nw46vzc9.js, chunk-7mtjewcc.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-afyygz5r.js, chunk-7nczvd3c.js, chunk-zv90e6a8.js, chunk-83k4ms6a.js, chunk-yvhhqffe.js, chunk-enexmxw8.js, chunk-f7v9a6pk.js, chunk-wtf0zcj7.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-wq9wcyn8.js, chunk-wkc0dn9j.js, chunk-tragr1xa.js, chunk-j585vybg.js, chunk-8gqdshxw.js, chunk-kj8a8xvz.js, chunk-zk2eek1f.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9qb74gat.js, chunk-h0k7pyey.js, chunk-xem89geg.js, chunk-37f3x1yd.js, chunk-1d0qvnvb.js, chunk-q3kxxm83.js, chunk-axbkkqp1.js, chunk-vc9hxzdg.js, chunk-bqbz5fed.js, chunk-bv8r3tzz.js, chunk-nw9ew424.js, chunk-4g14w0h0.js, chunk-ssh7936x.js, chunk-v86b5paa.js, chunk-mr8c8316.js, chunk-jht3a003.js, chunk-yvye2tz4.js, chunk-erhzzpjb.js, chunk-2e4yh13p.js, chunk-zztbn0tt.js, chunk-nvynk4e4.js, chunk-4z2yskav.js, chunk-h8d976qn.js, chunk-9djkz5p4.js, chunk-ggxa97v2.js, chunk-42z1ecz2.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-tnkatwa6.js, chunk-xxb6s9p5.js, chunk-0sxn500c.js, chunk-y4pznnpx.js, chunk-m3vft6h9.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 2 tests using 1 worker (node:237873) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (15.2s) (node:238283) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 2 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (12.9s) 1) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events Error: windows moved by six swipes expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 7 44 | await swipes(page, 6, 330, momentum); 45 | const after = (await api("canvasLock")) as { index: number }; > 46 | expect(after.index - lock.index, "windows moved by six swipes").toBe(6); | ^ 47 | }); 48 | } 49 | at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-swipes.spec.ts:46:69 Error Context: test-results/clusters-swipes-six-swipes-64602-her-without-momentum-events/error-context.md 2) test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events Error: windows moved by six swipes expect(received).toBe(expected) // Object.is equality Expected: 6 Received: 7 44 | await swipes(page, 6, 330, momentum); 45 | const after = (await api("canvasLock")) as { index: number }; > 46 | expect(after.index - lock.index, "windows moved by six swipes").toBe(6); | ^ 47 | }); 48 | } 49 | at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters-swipes.spec.ts:46:69 Error Context: test-results/clusters-swipes-six-swipes-86866-urther-with-momentum-events/error-context.md 2 failed test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events Invocation exit: 1 Load after: 22.61 18.09 22.14 11/2950 239075 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-clusters-zoom-bench.spec-2.log (1/1)

Load before: 18.71 17.66 21.85 11/2945 239915
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p239916-i50523581.scope; invocation ID: 462d515e0e8f42cfb51131eef5f1309e
[WebServer] $ bun run build.ts
[WebServer] built chunk-zbvx3hdw.js, chunk-tvynw18r.js, chunk-6x2hw81x.js, chunk-b5qzwpce.js, chunk-x7faw08h.js, chunk-0phr3w7b.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-8wwc18b9.js, chunk-k6xh1gvt.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vxggjhgm.js, chunk-7nczvd3c.js, chunk-r5c4bfkz.js, chunk-23zj2qk3.js, chunk-yvhhqffe.js, chunk-v34hdqbq.js, chunk-dax33rpg.js, chunk-zt1vx6ah.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-dgmxt3gh.js, chunk-rtgqtpt2.js, chunk-emzqn6vr.js, chunk-zwvkr9cw.js, chunk-8gqdshxw.js, chunk-kd4qhgc0.js, chunk-r83md3xg.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-frhs9px3.js, chunk-nvtry9qm.js, chunk-eztz2cz4.js, chunk-6hsr7egd.js, chunk-1d0qvnvb.js, chunk-t0t72aw1.js, chunk-axbkkqp1.js, chunk-8vk90v97.js, chunk-rd3fq7bd.js, chunk-wbs4am26.js, chunk-j2j0a6b2.js, chunk-xvpkg930.js, chunk-y1f05ydh.js, chunk-v86b5paa.js, chunk-mcyyfwa5.js, chunk-3x0k0356.js, chunk-nqr5cgrz.js, chunk-dspk1t7c.js, chunk-2e4yh13p.js, chunk-42422bj2.js, chunk-021s5fsp.js, chunk-j63433mb.js, chunk-mh8ng01z.js, chunk-xs6t686t.js, chunk-cw683nmc.js, chunk-2dcdjh1z.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-2t33h42k.js, chunk-3wvf0gk6.js, chunk-0sxn500c.js, chunk-5h9nrvac.js, chunk-js25n7kt.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:240097) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ZOOMTOP Frosted zoom out (23 windows): Paint 8.9, UpdateLayoutTree 2.8, Commit 2.4, Layerize 2.4, EventDispatch 2.2, FunctionCall 1.5, PrePaint 1.4, FireAnimationFrame 0.9, Layout 0.5, TimerFire 0.3
ZOOMSUM Frosted zoom out (23 windows) total 1099 ms main 408 raster 691 per step 30.5 ms, restyled/step 5
ZOOM Frosted zoom out (23 windows): 15 frames | per frame: main 27.2 ms, raster 46.1 ms, total 73.3 ms | Layerize 2.4 Commit 2.4 style 2.8 ms/frame (11 elements) | main breakdown ms/frame: FunctionCall 1.5 Layout 0.5 PrePaint 1.4 Paint 8.9 FireAnimationFrame 0.9 HitTest 0.0 UpdateLayer 0.1
ZOOMTOP Frosted zoom in: Paint 6.3, Commit 4.1, V8.GC_MC_INCREMENTAL 3.1, V8.GC_MC_INCREMENTAL_EMBEDDER_TRACING 3.0, Layerize 2.7, UpdateLayoutTree 1.8, EventDispatch 1.7, V8.GC_MC_INCREMENTAL_START 1.2, MajorGC 1.0, V8.GC_MARK_COMPACTOR 1.0
ZOOMSUM Frosted zoom in total 761 ms main 528 raster 234 per step 21.1 ms, restyled/step 5
ZOOM Frosted zoom in: 17 frames | per frame: main 31.0 ms, raster 13.7 ms, total 44.8 ms | Layerize 2.7 Commit 4.1 style 1.8 ms/frame (10 elements) | main breakdown ms/frame: FunctionCall 0.9 Layout 0.7 PrePaint 0.8 Paint 6.3 FireAnimationFrame 0.6 HitTest 0.0 UpdateLayer 0.3
ZOOM Frosted zoom 0.75 -> 0.32 -> 0.75
  ✓  1 test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted (15.3s)

  1 passed (22.8s)

Invocation exit: 0
Load after: 19.50 17.89 21.81 13/2966 240945
#163 verbatim evidence: browser-case-merge-clusters-zoom-bench.spec-2.log (1/1) ```text Load before: 18.71 17.66 21.85 11/2945 239915 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p239916-i50523581.scope; invocation ID: 462d515e0e8f42cfb51131eef5f1309e [WebServer] $ bun run build.ts [WebServer] built chunk-zbvx3hdw.js, chunk-tvynw18r.js, chunk-6x2hw81x.js, chunk-b5qzwpce.js, chunk-x7faw08h.js, chunk-0phr3w7b.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-8wwc18b9.js, chunk-k6xh1gvt.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vxggjhgm.js, chunk-7nczvd3c.js, chunk-r5c4bfkz.js, chunk-23zj2qk3.js, chunk-yvhhqffe.js, chunk-v34hdqbq.js, chunk-dax33rpg.js, chunk-zt1vx6ah.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-dgmxt3gh.js, chunk-rtgqtpt2.js, chunk-emzqn6vr.js, chunk-zwvkr9cw.js, chunk-8gqdshxw.js, chunk-kd4qhgc0.js, chunk-r83md3xg.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-frhs9px3.js, chunk-nvtry9qm.js, chunk-eztz2cz4.js, chunk-6hsr7egd.js, chunk-1d0qvnvb.js, chunk-t0t72aw1.js, chunk-axbkkqp1.js, chunk-8vk90v97.js, chunk-rd3fq7bd.js, chunk-wbs4am26.js, chunk-j2j0a6b2.js, chunk-xvpkg930.js, chunk-y1f05ydh.js, chunk-v86b5paa.js, chunk-mcyyfwa5.js, chunk-3x0k0356.js, chunk-nqr5cgrz.js, chunk-dspk1t7c.js, chunk-2e4yh13p.js, chunk-42422bj2.js, chunk-021s5fsp.js, chunk-j63433mb.js, chunk-mh8ng01z.js, chunk-xs6t686t.js, chunk-cw683nmc.js, chunk-2dcdjh1z.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-2t33h42k.js, chunk-3wvf0gk6.js, chunk-0sxn500c.js, chunk-5h9nrvac.js, chunk-js25n7kt.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:240097) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ZOOMTOP Frosted zoom out (23 windows): Paint 8.9, UpdateLayoutTree 2.8, Commit 2.4, Layerize 2.4, EventDispatch 2.2, FunctionCall 1.5, PrePaint 1.4, FireAnimationFrame 0.9, Layout 0.5, TimerFire 0.3 ZOOMSUM Frosted zoom out (23 windows) total 1099 ms main 408 raster 691 per step 30.5 ms, restyled/step 5 ZOOM Frosted zoom out (23 windows): 15 frames | per frame: main 27.2 ms, raster 46.1 ms, total 73.3 ms | Layerize 2.4 Commit 2.4 style 2.8 ms/frame (11 elements) | main breakdown ms/frame: FunctionCall 1.5 Layout 0.5 PrePaint 1.4 Paint 8.9 FireAnimationFrame 0.9 HitTest 0.0 UpdateLayer 0.1 ZOOMTOP Frosted zoom in: Paint 6.3, Commit 4.1, V8.GC_MC_INCREMENTAL 3.1, V8.GC_MC_INCREMENTAL_EMBEDDER_TRACING 3.0, Layerize 2.7, UpdateLayoutTree 1.8, EventDispatch 1.7, V8.GC_MC_INCREMENTAL_START 1.2, MajorGC 1.0, V8.GC_MARK_COMPACTOR 1.0 ZOOMSUM Frosted zoom in total 761 ms main 528 raster 234 per step 21.1 ms, restyled/step 5 ZOOM Frosted zoom in: 17 frames | per frame: main 31.0 ms, raster 13.7 ms, total 44.8 ms | Layerize 2.7 Commit 4.1 style 1.8 ms/frame (10 elements) | main breakdown ms/frame: FunctionCall 0.9 Layout 0.7 PrePaint 0.8 Paint 6.3 FireAnimationFrame 0.6 HitTest 0.0 UpdateLayer 0.3 ZOOM Frosted zoom 0.75 -> 0.32 -> 0.75 ✓ 1 test/clusters-zoom-bench.spec.ts:44:3 › zoom with 21 windows, Frosted (15.3s) 1 passed (22.8s) Invocation exit: 0 Load after: 19.50 17.89 21.81 13/2966 240945 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-clusters.spec-3.log (1/1)

Load before: 19.50 17.89 21.81 13/2966 240945
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p240946-i50524611.scope; invocation ID: c1827528eeb44016bd302c99767632e5
[WebServer] $ bun run build.ts
[WebServer] built chunk-smgr1124.js, chunk-tvynw18r.js, chunk-xp9zzgr3.js, chunk-b5qzwpce.js, chunk-aw7h1tg0.js, chunk-veq19qk6.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-0bhfjq3d.js, chunk-n33nt82f.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-2evaqbny.js, chunk-7nczvd3c.js, chunk-qwssh14x.js, chunk-rvzd3ra0.js, chunk-yvhhqffe.js, chunk-6paex3hq.js, chunk-r2mdaabb.js, chunk-p17gj718.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-7waqhxwp.js, chunk-1bp30c9w.js, chunk-hzz9p7sa.js, chunk-1fq7eqbs.js, chunk-8gqdshxw.js, chunk-53h75k03.js, chunk-r827h8g6.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-3qw4s4g6.js, chunk-4gxrf8qh.js, chunk-y3jk3yxm.js, chunk-farbmxkb.js, chunk-1d0qvnvb.js, chunk-7v462snd.js, chunk-axbkkqp1.js, chunk-nqznknqn.js, chunk-k6pq6gdh.js, chunk-48bywsd4.js, chunk-geter38v.js, chunk-35jyh6y3.js, chunk-rn5p395t.js, chunk-v86b5paa.js, chunk-0hq99xqz.js, chunk-waefpvt2.js, chunk-hpzdefwx.js, chunk-g7pyawdt.js, chunk-2e4yh13p.js, chunk-vw7zhan9.js, chunk-cxc1fzky.js, chunk-2t6ws7h5.js, chunk-n53p2d0w.js, chunk-gj3yyqtb.js, chunk-gczv4prm.js, chunk-v3m3qb7p.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-w9wzj6d4.js, chunk-b71khpjz.js, chunk-0sxn500c.js, chunk-58qan23e.js, chunk-rf9dvhkm.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 6 tests using 1 worker

(node:241896) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows (14.4s)
(node:243026) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  2 test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row (11.6s)
MOTION_COST {"viewJump":1.2999999523162842,"windowStep":11.200000047683716,"canvasLockToggle":5.299999952316284,"keyJumpMoved":0}
  ✘  3 test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate (11.6s)
(node:244781) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  4 test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal (9.4s)
(node:245774) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  5 test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px (18.9s)
(node:247325) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  6 test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus (8.3s)


  1) test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "keys"
    Received: "canvas"

    Call Log:
    - Timeout 5000ms exceeded while waiting on the predicate

      555 |     for (let i = 1; i <= 7; i++) { await t.touch("touchMove", [{ x: tray.x + 100, y: tray.y + 32 - i * 6 }]); await page.waitForTimeout(40); }
      556 |     await t.touch("touchEnd", []);
    > 557 |     await expect.poll(row).toBe("keys");
          |                            ^
      558 |     await page.waitForTimeout(500);
      559 |     await swipe(t, { x: tray.x + 100, y: tray.y + 12 }, { x: tray.x + 100, y: tray.y + 44 }, 6);
      560 |     await expect.poll(row).toBe("canvas");
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:557:28

    Error Context: test-results/clusters-toolbar-the-keybo-cd378-ipes-switch-and-scroll-rows/error-context.md

  2) test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate 

    Error: expect(received).toBeGreaterThan(expected)

    Expected: > 500
    Received:   0

      722 |   expect(costs.windowStep).toBeLessThan(16);
      723 |   expect(costs.canvasLockToggle).toBeLessThan(16);
    > 724 |   expect(costs.keyJumpMoved).toBeGreaterThan(500);
          |                              ^
      725 | });
      726 |
      727 | test("canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next", async ({ page }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:724:30

    Error Context: test-results/clusters-motion-rule-the-w-165eb-ame-and-keys-do-not-animate/error-context.md

  3) test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 0
    + Received  + 1

    @@ -1,8 +1,9 @@
      Array [
        "s-appearance",
        "s-windows",
    +   "s-hosts",
        "s-toolbar",
        "s-shortcuts",
        "s-devices",
        "s-account",
        "s-about",

      837 |   await open(page, 1);
      838 |   const sections = async (): Promise<string[]> => (await probe(page, (p) => p.views())).find((v) => v.id === "settings")!.windows;
    > 839 |   expect(await sections()).toEqual(["s-appearance", "s-windows", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", "s-users", "s-grants", "s-discovery"]);
          |                            ^
      840 |   // The sidebar lists it last, after a divider; the gear in the sidebar footer flies there.
      841 |   await page.locator("#sidebar-toggle").click();
      842 |   await expect(page.locator('#tree .bm-sec[data-id="view:settings"].cl-divided')).toHaveCount(1);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:839:28

    Error Context: test-results/clusters-settings-is-a-vie-c2a75-for-operators-nothing-modal/error-context.md

  4) test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 0.5
    Received:   12

      1109 |     // session manager are in the canvas row while a terminal is focused, and in ⌘K.
      1110 |     expect(pd.buttons).toEqual(["close"]);
    > 1111 |     expect(Math.abs(pd.aH - pd.tH)).toBeLessThan(0.5);
           |                                     ^
      1112 |     expect(Math.abs(pd.aTop - pd.tTop)).toBeLessThan(0.5);
      1113 |     const hits = await p.evaluate(() => {
      1114 |       const w = document.querySelector('.ui-window[data-window-id="w-build-01"]')!;
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:1111:37

    Error Context: test-results/clusters-window-header-act-d4932-with-touch-targets-of-44-px/error-context.md

  5) test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 

    Error: expect(received).toMatchObject(expected)

    - Expected  - 3
    + Received  + 3

      Object {
    -   "dots": "none",
    +   "dots": "flex",
        "editable": false,
    -   "keysHidden": true,
    -   "rows": "1",
    +   "keysHidden": false,
    +   "rows": "2",
      }

      1144 |     await page.waitForTimeout(900);
      1145 |     let s = await state();
    > 1146 |     expect(s).toMatchObject({ rows: "1", keysHidden: true, dots: "none", editable: false });
           |               ^
      1147 |     // Every canvas-row control: no input takes focus, no keyboard.
      1148 |     const ids = await page.evaluate(() => [...document.querySelectorAll<HTMLElement>("#keyrow-canvas > button")].map((b) => b.dataset.cv!));
      1149 |     expect(ids.length).toBeGreaterThan(5);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:1146:15

    Error Context: test-results/clusters-toolbar-and-keybo-094d8-key-row-and-keeps-its-focus/error-context.md

  5 failed
    test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows 
    test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate 
    test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal 
    test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px 
    test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 
  1 passed (1.6m)

Invocation exit: 1
Load after: 28.18 20.65 22.35 41/3137 249245
#163 verbatim evidence: browser-case-merge-clusters.spec-3.log (1/1) ```text Load before: 19.50 17.89 21.81 13/2966 240945 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p240946-i50524611.scope; invocation ID: c1827528eeb44016bd302c99767632e5 [WebServer] $ bun run build.ts [WebServer] built chunk-smgr1124.js, chunk-tvynw18r.js, chunk-xp9zzgr3.js, chunk-b5qzwpce.js, chunk-aw7h1tg0.js, chunk-veq19qk6.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-0bhfjq3d.js, chunk-n33nt82f.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-2evaqbny.js, chunk-7nczvd3c.js, chunk-qwssh14x.js, chunk-rvzd3ra0.js, chunk-yvhhqffe.js, chunk-6paex3hq.js, chunk-r2mdaabb.js, chunk-p17gj718.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-7waqhxwp.js, chunk-1bp30c9w.js, chunk-hzz9p7sa.js, chunk-1fq7eqbs.js, chunk-8gqdshxw.js, chunk-53h75k03.js, chunk-r827h8g6.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-3qw4s4g6.js, chunk-4gxrf8qh.js, chunk-y3jk3yxm.js, chunk-farbmxkb.js, chunk-1d0qvnvb.js, chunk-7v462snd.js, chunk-axbkkqp1.js, chunk-nqznknqn.js, chunk-k6pq6gdh.js, chunk-48bywsd4.js, chunk-geter38v.js, chunk-35jyh6y3.js, chunk-rn5p395t.js, chunk-v86b5paa.js, chunk-0hq99xqz.js, chunk-waefpvt2.js, chunk-hpzdefwx.js, chunk-g7pyawdt.js, chunk-2e4yh13p.js, chunk-vw7zhan9.js, chunk-cxc1fzky.js, chunk-2t6ws7h5.js, chunk-n53p2d0w.js, chunk-gj3yyqtb.js, chunk-gczv4prm.js, chunk-v3m3qb7p.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-w9wzj6d4.js, chunk-b71khpjz.js, chunk-0sxn500c.js, chunk-58qan23e.js, chunk-rf9dvhkm.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 6 tests using 1 worker (node:241896) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows (14.4s) (node:243026) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 2 test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row (11.6s) MOTION_COST {"viewJump":1.2999999523162842,"windowStep":11.200000047683716,"canvasLockToggle":5.299999952316284,"keyJumpMoved":0} ✘ 3 test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate (11.6s) (node:244781) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 4 test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal (9.4s) (node:245774) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 5 test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px (18.9s) (node:247325) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 6 test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus (8.3s) 1) test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows Error: expect(received).toBe(expected) // Object.is equality Expected: "keys" Received: "canvas" Call Log: - Timeout 5000ms exceeded while waiting on the predicate 555 | for (let i = 1; i <= 7; i++) { await t.touch("touchMove", [{ x: tray.x + 100, y: tray.y + 32 - i * 6 }]); await page.waitForTimeout(40); } 556 | await t.touch("touchEnd", []); > 557 | await expect.poll(row).toBe("keys"); | ^ 558 | await page.waitForTimeout(500); 559 | await swipe(t, { x: tray.x + 100, y: tray.y + 12 }, { x: tray.x + 100, y: tray.y + 44 }, 6); 560 | await expect.poll(row).toBe("canvas"); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:557:28 Error Context: test-results/clusters-toolbar-the-keybo-cd378-ipes-switch-and-scroll-rows/error-context.md 2) test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate Error: expect(received).toBeGreaterThan(expected) Expected: > 500 Received: 0 722 | expect(costs.windowStep).toBeLessThan(16); 723 | expect(costs.canvasLockToggle).toBeLessThan(16); > 724 | expect(costs.keyJumpMoved).toBeGreaterThan(500); | ^ 725 | }); 726 | 727 | test("canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next", async ({ page }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:724:30 Error Context: test-results/clusters-motion-rule-the-w-165eb-ame-and-keys-do-not-animate/error-context.md 3) test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 @@ -1,8 +1,9 @@ Array [ "s-appearance", "s-windows", + "s-hosts", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", 837 | await open(page, 1); 838 | const sections = async (): Promise<string[]> => (await probe(page, (p) => p.views())).find((v) => v.id === "settings")!.windows; > 839 | expect(await sections()).toEqual(["s-appearance", "s-windows", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", "s-users", "s-grants", "s-discovery"]); | ^ 840 | // The sidebar lists it last, after a divider; the gear in the sidebar footer flies there. 841 | await page.locator("#sidebar-toggle").click(); 842 | await expect(page.locator('#tree .bm-sec[data-id="view:settings"].cl-divided')).toHaveCount(1); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:839:28 Error Context: test-results/clusters-settings-is-a-vie-c2a75-for-operators-nothing-modal/error-context.md 4) test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px Error: expect(received).toBeLessThan(expected) Expected: < 0.5 Received: 12 1109 | // session manager are in the canvas row while a terminal is focused, and in ⌘K. 1110 | expect(pd.buttons).toEqual(["close"]); > 1111 | expect(Math.abs(pd.aH - pd.tH)).toBeLessThan(0.5); | ^ 1112 | expect(Math.abs(pd.aTop - pd.tTop)).toBeLessThan(0.5); 1113 | const hits = await p.evaluate(() => { 1114 | const w = document.querySelector('.ui-window[data-window-id="w-build-01"]')!; at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:1111:37 Error Context: test-results/clusters-window-header-act-d4932-with-touch-targets-of-44-px/error-context.md 5) test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus Error: expect(received).toMatchObject(expected) - Expected - 3 + Received + 3 Object { - "dots": "none", + "dots": "flex", "editable": false, - "keysHidden": true, - "rows": "1", + "keysHidden": false, + "rows": "2", } 1144 | await page.waitForTimeout(900); 1145 | let s = await state(); > 1146 | expect(s).toMatchObject({ rows: "1", keysHidden: true, dots: "none", editable: false }); | ^ 1147 | // Every canvas-row control: no input takes focus, no keyboard. 1148 | const ids = await page.evaluate(() => [...document.querySelectorAll<HTMLElement>("#keyrow-canvas > button")].map((b) => b.dataset.cv!)); 1149 | expect(ids.length).toBeGreaterThan(5); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/clusters.spec.ts:1146:15 Error Context: test-results/clusters-toolbar-and-keybo-094d8-key-row-and-keeps-its-focus/error-context.md 5 failed test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 1 passed (1.6m) Invocation exit: 1 Load after: 28.18 20.65 22.35 41/3137 249245 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-core-screen.spec-1.log (1/1)

Load before: 6.84 14.38 20.15 4/3000 4009020
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p4009021-i50099022.scope; invocation ID: 7593e3c29ff4468daa2cc9fb4477a3cb
[WebServer] $ bun run build.ts
[WebServer] built chunk-ayhar9f5.js, chunk-tvynw18r.js, chunk-2dn5cre8.js, chunk-b5qzwpce.js, chunk-bdym8frk.js, chunk-g4ffzbxx.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zc9ymn27.js, chunk-jbefc7kd.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-xx2z1vx8.js, chunk-7nczvd3c.js, chunk-wajasqrd.js, chunk-6rqa9ntg.js, chunk-yvhhqffe.js, chunk-z80fn73s.js, chunk-b1v74hg1.js, chunk-k16zk6c0.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4p39tg7n.js, chunk-p6brpr3a.js, chunk-qm2y04mp.js, chunk-t6w5zq54.js, chunk-8gqdshxw.js, chunk-p7zytd4a.js, chunk-fd18mmh4.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-fdca84vk.js, chunk-3khtp13p.js, chunk-237g9npc.js, chunk-c9qww71k.js, chunk-1d0qvnvb.js, chunk-a5pewm17.js, chunk-axbkkqp1.js, chunk-gfk6q0at.js, chunk-669c615d.js, chunk-8y85z1nw.js, chunk-f40sve0m.js, chunk-70ztk0c2.js, chunk-g7965a6j.js, chunk-v86b5paa.js, chunk-zgebs6e3.js, chunk-cdpc986a.js, chunk-x1pbzqfa.js, chunk-kq6bdadr.js, chunk-2e4yh13p.js, chunk-t042pnwz.js, chunk-qt67kzcr.js, chunk-tj3mb0a9.js, chunk-9e5adn90.js, chunk-jwv77snv.js, chunk-hk68pt9b.js, chunk-xb9vwy2r.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-e8jm854g.js, chunk-57k86n6d.js, chunk-0sxn500c.js, chunk-18e4ka0s.js, chunk-jns2k8hy.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:4009250) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots (16.5s)


  1) test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ──

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 4
    + Received  + 4

      Array [
    -   251,
    -   251,
    -   251,
    -   0.78,
    +   0.980622,
    +   0.000315863,
    +   0.00124064,
    +   0.872627,
      ]

      138 |       return { background: style.backgroundColor, line: style.borderTopColor, shadow: style.boxShadow };
      139 |     });
    > 140 |     expect(cssChannels(paletteMaterial.background)).toEqual(cssChannels(material.root));
          |                                                     ^
      141 |     expect(cssChannels(paletteMaterial.line)).toEqual(cssChannels(material.rootLine));
      142 |     expect(paletteMaterial.shadow).toBe(sidebarMaterial.shadow);
      143 |     expect(paletteMaterial.shadow).not.toBe(material.layers[0]!.shadow);
        at screenshotMatrix (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/core-screen.spec.ts:140:53)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/core-screen.spec.ts:219:27

    attachment #1: tracer-core-1440x900-paper-sidebar-closed (image/png) ───────────────────────────
    test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-closed-f2a69fa10e485509c64325fcfa79abcfc6f00a51.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: tracer-core-1440x900-paper-sidebar-open (image/png) ─────────────────────────────
    test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-open-739a0ffd7d594fe186ccdedf48ad6e50e4aa30b9.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/error-context.md

  1 failed
    test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ───

Invocation exit: 1
Load after: 8.23 14.12 19.91 6/3039 4009903
#163 verbatim evidence: browser-case-merge-core-screen.spec-1.log (1/1) ```text Load before: 6.84 14.38 20.15 4/3000 4009020 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p4009021-i50099022.scope; invocation ID: 7593e3c29ff4468daa2cc9fb4477a3cb [WebServer] $ bun run build.ts [WebServer] built chunk-ayhar9f5.js, chunk-tvynw18r.js, chunk-2dn5cre8.js, chunk-b5qzwpce.js, chunk-bdym8frk.js, chunk-g4ffzbxx.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zc9ymn27.js, chunk-jbefc7kd.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-xx2z1vx8.js, chunk-7nczvd3c.js, chunk-wajasqrd.js, chunk-6rqa9ntg.js, chunk-yvhhqffe.js, chunk-z80fn73s.js, chunk-b1v74hg1.js, chunk-k16zk6c0.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4p39tg7n.js, chunk-p6brpr3a.js, chunk-qm2y04mp.js, chunk-t6w5zq54.js, chunk-8gqdshxw.js, chunk-p7zytd4a.js, chunk-fd18mmh4.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-fdca84vk.js, chunk-3khtp13p.js, chunk-237g9npc.js, chunk-c9qww71k.js, chunk-1d0qvnvb.js, chunk-a5pewm17.js, chunk-axbkkqp1.js, chunk-gfk6q0at.js, chunk-669c615d.js, chunk-8y85z1nw.js, chunk-f40sve0m.js, chunk-70ztk0c2.js, chunk-g7965a6j.js, chunk-v86b5paa.js, chunk-zgebs6e3.js, chunk-cdpc986a.js, chunk-x1pbzqfa.js, chunk-kq6bdadr.js, chunk-2e4yh13p.js, chunk-t042pnwz.js, chunk-qt67kzcr.js, chunk-tj3mb0a9.js, chunk-9e5adn90.js, chunk-jwv77snv.js, chunk-hk68pt9b.js, chunk-xb9vwy2r.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-e8jm854g.js, chunk-57k86n6d.js, chunk-0sxn500c.js, chunk-18e4ka0s.js, chunk-jns2k8hy.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:4009250) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots (16.5s) 1) test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ── Error: expect(received).toEqual(expected) // deep equality - Expected - 4 + Received + 4 Array [ - 251, - 251, - 251, - 0.78, + 0.980622, + 0.000315863, + 0.00124064, + 0.872627, ] 138 | return { background: style.backgroundColor, line: style.borderTopColor, shadow: style.boxShadow }; 139 | }); > 140 | expect(cssChannels(paletteMaterial.background)).toEqual(cssChannels(material.root)); | ^ 141 | expect(cssChannels(paletteMaterial.line)).toEqual(cssChannels(material.rootLine)); 142 | expect(paletteMaterial.shadow).toBe(sidebarMaterial.shadow); 143 | expect(paletteMaterial.shadow).not.toBe(material.layers[0]!.shadow); at screenshotMatrix (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/core-screen.spec.ts:140:53) at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/core-screen.spec.ts:219:27 attachment #1: tracer-core-1440x900-paper-sidebar-closed (image/png) ─────────────────────────── test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-closed-f2a69fa10e485509c64325fcfa79abcfc6f00a51.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: tracer-core-1440x900-paper-sidebar-open (image/png) ───────────────────────────── test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-open-739a0ffd7d594fe186ccdedf48ad6e50e4aa30b9.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/error-context.md 1 failed test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ─── Invocation exit: 1 Load after: 8.23 14.12 19.91 6/3039 4009903 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-font-metrics.spec-4.log (1/1)

Load before: 30.22 23.84 23.33 14/3097 265696
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p265697-i50549362.scope; invocation ID: 88aa450f885b4a08b458f6be0a306681
[WebServer] $ bun run build.ts
[WebServer] built chunk-4tk3hf8h.js, chunk-tvynw18r.js, chunk-9r8v974v.js, chunk-b5qzwpce.js, chunk-danayrjk.js, chunk-geb6atfa.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-6fn8btjz.js, chunk-ncyh9zh1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-jqc5cq42.js, chunk-7nczvd3c.js, chunk-sqwzdycr.js, chunk-cx6m4v9h.js, chunk-yvhhqffe.js, chunk-pc0mzxvn.js, chunk-n02rzm4y.js, chunk-zt2vh179.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-ssk0hpb7.js, chunk-zx5asm8j.js, chunk-dq3dgrbp.js, chunk-0dpqwy9a.js, chunk-8gqdshxw.js, chunk-fq6j04p5.js, chunk-wzj7qskm.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-7v65m874.js, chunk-vy41thhm.js, chunk-wtkeaeqk.js, chunk-9ahdr74t.js, chunk-1d0qvnvb.js, chunk-nk9jq9e7.js, chunk-axbkkqp1.js, chunk-xr94mqkh.js, chunk-vcd4xhm2.js, chunk-ya54vdr7.js, chunk-mxxrwdye.js, chunk-n933y3y9.js, chunk-asttz6yh.js, chunk-v86b5paa.js, chunk-qepfg4qd.js, chunk-0p299e5v.js, chunk-gqd3q69a.js, chunk-ka6y5pe1.js, chunk-2e4yh13p.js, chunk-drp1bpa7.js, chunk-0cmyhzyn.js, chunk-s84wf64h.js, chunk-wyvjpn38.js, chunk-y66vj6tv.js, chunk-jya264t9.js, chunk-44xza36g.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-4ck4cnwk.js, chunk-qxgkkwed.js, chunk-0sxn500c.js, chunk-9qt3b77h.js, chunk-nt205cy6.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:267817) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
FONT_BENCH {"font":"monaspace-neon","dpr":2,"redrawP50Ms":1.5,"redrawP95Ms":2.100000023841858,"load":[32.14,24.88,23.7],"cores":8}
LINE86 {"font":"monaspace-neon","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":1548,"lastInk":1545,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":18}
  ✓  1 test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 (10.5s)

  1 passed (26.7s)

Invocation exit: 0
Load after: 32.14 24.88 23.70 12/3071 270380
#163 verbatim evidence: browser-case-merge-font-metrics.spec-4.log (1/1) ```text Load before: 30.22 23.84 23.33 14/3097 265696 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p265697-i50549362.scope; invocation ID: 88aa450f885b4a08b458f6be0a306681 [WebServer] $ bun run build.ts [WebServer] built chunk-4tk3hf8h.js, chunk-tvynw18r.js, chunk-9r8v974v.js, chunk-b5qzwpce.js, chunk-danayrjk.js, chunk-geb6atfa.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-6fn8btjz.js, chunk-ncyh9zh1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-jqc5cq42.js, chunk-7nczvd3c.js, chunk-sqwzdycr.js, chunk-cx6m4v9h.js, chunk-yvhhqffe.js, chunk-pc0mzxvn.js, chunk-n02rzm4y.js, chunk-zt2vh179.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-ssk0hpb7.js, chunk-zx5asm8j.js, chunk-dq3dgrbp.js, chunk-0dpqwy9a.js, chunk-8gqdshxw.js, chunk-fq6j04p5.js, chunk-wzj7qskm.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-7v65m874.js, chunk-vy41thhm.js, chunk-wtkeaeqk.js, chunk-9ahdr74t.js, chunk-1d0qvnvb.js, chunk-nk9jq9e7.js, chunk-axbkkqp1.js, chunk-xr94mqkh.js, chunk-vcd4xhm2.js, chunk-ya54vdr7.js, chunk-mxxrwdye.js, chunk-n933y3y9.js, chunk-asttz6yh.js, chunk-v86b5paa.js, chunk-qepfg4qd.js, chunk-0p299e5v.js, chunk-gqd3q69a.js, chunk-ka6y5pe1.js, chunk-2e4yh13p.js, chunk-drp1bpa7.js, chunk-0cmyhzyn.js, chunk-s84wf64h.js, chunk-wyvjpn38.js, chunk-y66vj6tv.js, chunk-jya264t9.js, chunk-44xza36g.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-4ck4cnwk.js, chunk-qxgkkwed.js, chunk-0sxn500c.js, chunk-9qt3b77h.js, chunk-nt205cy6.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:267817) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) FONT_BENCH {"font":"monaspace-neon","dpr":2,"redrawP50Ms":1.5,"redrawP95Ms":2.100000023841858,"load":[32.14,24.88,23.7],"cores":8} LINE86 {"font":"monaspace-neon","mapleLoaded":true,"cursorX":86,"renderCursorX":86,"cellWidth":9,"natural":9,"cursorLeft":1548,"lastInk":1545,"inkAfter":0,"barMin":0,"dpr":2,"cellWidthPx":18} ✓ 1 test/font-metrics.spec.ts:18:3 › Monaspace Neon: 86-character line keeps the cursor on its cell at DPR 2 (10.5s) 1 passed (26.7s) Invocation exit: 0 Load after: 32.14 24.88 23.70 12/3071 270380 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-font-weight.spec-5.log (1/1)

Load before: 32.14 24.88 23.70 7/3071 270410
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p270411-i50554076.scope; invocation ID: 2f33312bd0c24d8785f0e797bfeb0b0d
[WebServer] $ bun run build.ts
[WebServer] built chunk-peggscx1.js, chunk-tvynw18r.js, chunk-x42jh8rh.js, chunk-b5qzwpce.js, chunk-g988tr0n.js, chunk-r88frfr8.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-k1s010n9.js, chunk-a0wh4wqv.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-neqtdens.js, chunk-7nczvd3c.js, chunk-3pkbbrd0.js, chunk-rb8ck3kk.js, chunk-yvhhqffe.js, chunk-16b4tbgs.js, chunk-a6faghya.js, chunk-1btaw03p.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-65xvrj2c.js, chunk-mcxyne01.js, chunk-05zkj7v6.js, chunk-mzez5nwn.js, chunk-8gqdshxw.js, chunk-n55qhfv4.js, chunk-d6mvwmtt.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8ay2rz05.js, chunk-btvf3kay.js, chunk-7rv9en9p.js, chunk-sq1zeesh.js, chunk-1d0qvnvb.js, chunk-1ksv0gy0.js, chunk-axbkkqp1.js, chunk-rqcgbyr4.js, chunk-9acgrv5x.js, chunk-y59dvbqc.js, chunk-t0g1wwyy.js, chunk-zd73rd2y.js, chunk-w2ddqnfw.js, chunk-v86b5paa.js, chunk-xjb2c5sg.js, chunk-7xqk5sbr.js, chunk-tefcf9zf.js, chunk-jab8vzqa.js, chunk-2e4yh13p.js, chunk-qcg5y7yz.js, chunk-5gs6bzs4.js, chunk-dcdpqgxy.js, chunk-8asfrarf.js, chunk-x9693n1m.js, chunk-mqnkq3n0.js, chunk-bhp6y1zc.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-zp8g2r7p.js, chunk-9yy91ydp.js, chunk-0sxn500c.js, chunk-8kgcsxwh.js, chunk-trxd70x2.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:271942) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
FONT_WEIGHT {"font":"maple-mono-nf","dpr":1,"loaded":true,"canvasFont":"500 14px \"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","regularInk":1085.503267973856,"boldInk":1327.0588235294117,"ratio":1.222528630435568,"rendererFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","rootFont":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","tokens":["450","500","550","650"]}
  ✓  1 test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 (9.2s)

  1 passed (24.4s)

Invocation exit: 0
Load after: 32.59 25.54 23.94 45/3066 274560
#163 verbatim evidence: browser-case-merge-font-weight.spec-5.log (1/1) ```text Load before: 32.14 24.88 23.70 7/3071 270410 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p270411-i50554076.scope; invocation ID: 2f33312bd0c24d8785f0e797bfeb0b0d [WebServer] $ bun run build.ts [WebServer] built chunk-peggscx1.js, chunk-tvynw18r.js, chunk-x42jh8rh.js, chunk-b5qzwpce.js, chunk-g988tr0n.js, chunk-r88frfr8.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-k1s010n9.js, chunk-a0wh4wqv.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-neqtdens.js, chunk-7nczvd3c.js, chunk-3pkbbrd0.js, chunk-rb8ck3kk.js, chunk-yvhhqffe.js, chunk-16b4tbgs.js, chunk-a6faghya.js, chunk-1btaw03p.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-65xvrj2c.js, chunk-mcxyne01.js, chunk-05zkj7v6.js, chunk-mzez5nwn.js, chunk-8gqdshxw.js, chunk-n55qhfv4.js, chunk-d6mvwmtt.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8ay2rz05.js, chunk-btvf3kay.js, chunk-7rv9en9p.js, chunk-sq1zeesh.js, chunk-1d0qvnvb.js, chunk-1ksv0gy0.js, chunk-axbkkqp1.js, chunk-rqcgbyr4.js, chunk-9acgrv5x.js, chunk-y59dvbqc.js, chunk-t0g1wwyy.js, chunk-zd73rd2y.js, chunk-w2ddqnfw.js, chunk-v86b5paa.js, chunk-xjb2c5sg.js, chunk-7xqk5sbr.js, chunk-tefcf9zf.js, chunk-jab8vzqa.js, chunk-2e4yh13p.js, chunk-qcg5y7yz.js, chunk-5gs6bzs4.js, chunk-dcdpqgxy.js, chunk-8asfrarf.js, chunk-x9693n1m.js, chunk-mqnkq3n0.js, chunk-bhp6y1zc.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-zp8g2r7p.js, chunk-9yy91ydp.js, chunk-0sxn500c.js, chunk-8kgcsxwh.js, chunk-trxd70x2.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:271942) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) FONT_WEIGHT {"font":"maple-mono-nf","dpr":1,"loaded":true,"canvasFont":"500 14px \"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","regularInk":1085.503267973856,"boldInk":1327.0588235294117,"ratio":1.222528630435568,"rendererFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","rootFont":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","tokens":["450","500","550","650"]} ✓ 1 test/font-weight.spec.ts:15:5 › Maple Mono NF draws terminal and UI text at its registry weights at DPR 1 (9.2s) 1 passed (24.4s) Invocation exit: 0 Load after: 32.59 25.54 23.94 45/3066 274560 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-glass-ghost.spec-1.log (1/1)

Load before: 32.59 23.75 21.27 35/3279 4085702
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p4085703-i50175646.scope; invocation ID: 44a7833381fd41509b5afc03490b9370
[WebServer] $ bun run build.ts
[WebServer] built chunk-1pnaahnn.js, chunk-tvynw18r.js, chunk-fvkv06ft.js, chunk-b5qzwpce.js, chunk-nt9rpbxs.js, chunk-bx0qmbnk.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-nk3a12ka.js, chunk-n7j7sf49.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-dvve05g9.js, chunk-7nczvd3c.js, chunk-9q0a3n6q.js, chunk-6shpw2ep.js, chunk-yvhhqffe.js, chunk-kh992c5v.js, chunk-v3qhh3tb.js, chunk-p7pznb8b.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-15cx49b1.js, chunk-gakea8gb.js, chunk-6pacqmmq.js, chunk-tw4196xn.js, chunk-8gqdshxw.js, chunk-rznk20ry.js, chunk-3p9bdcq9.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-wpfaamrb.js, chunk-q574fqcr.js, chunk-r7brb17x.js, chunk-7h2c0p7z.js, chunk-1d0qvnvb.js, chunk-apaxyaqh.js, chunk-axbkkqp1.js, chunk-sa08dn2e.js, chunk-ada4g0p8.js, chunk-dnexzv2m.js, chunk-twxafg9e.js, chunk-m4bnbvea.js, chunk-st31gd9k.js, chunk-v86b5paa.js, chunk-mtmd2z2q.js, chunk-8z2vvj73.js, chunk-4b105kp8.js, chunk-ddjzd388.js, chunk-2e4yh13p.js, chunk-ck6wd1sj.js, chunk-8qpyvr0y.js, chunk-6eq4efw5.js, chunk-afd8k8se.js, chunk-dppkybwx.js, chunk-yzj241ss.js, chunk-0d6jx1f6.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-2y1f7sjp.js, chunk-gezf7ff1.js, chunk-0sxn500c.js, chunk-mjn26g47.js, chunk-n57bkfth.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 1 test using 1 worker

(node:4088856) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 1 | ink | dpr 1 | 0.0000
GHOST palette | level 1 | ink | dpr 1 | 0.0000
GHOST sidebar | level 1 | ink | dpr 1 | 0.0005
GHOST share dialog | level 1 | ink | dpr 1 | 0.0000
  ✘  1 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 (2.0m)


  1) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ────────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-aHjTEU --remote-debugging-pipe --no-startup-window
    <launched> pid=4089303
    [pid=4089303][err] [1011/160548.198566:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=4089303][err] [1011/160548.463386:ERROR:gpu/ipc/client/command_buffer_proxy_impl.cc:285] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
    [pid=4089303][err] [1011/160607.182743:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4643/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=1&session=52110aac-0978-4a70-b52e-ebd016135d49 (0)
    [pid=4089303] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-e364b-urface-at-level-1-ink-DPR-1/error-context.md

  1 failed
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ─────────

Invocation exit: 1
Load after: 45.01 32.23 24.75 29/3206 4113815
#163 verbatim evidence: browser-case-merge-glass-ghost.spec-1.log (1/1) ```text Load before: 32.59 23.75 21.27 35/3279 4085702 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p4085703-i50175646.scope; invocation ID: 44a7833381fd41509b5afc03490b9370 [WebServer] $ bun run build.ts [WebServer] built chunk-1pnaahnn.js, chunk-tvynw18r.js, chunk-fvkv06ft.js, chunk-b5qzwpce.js, chunk-nt9rpbxs.js, chunk-bx0qmbnk.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-nk3a12ka.js, chunk-n7j7sf49.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-dvve05g9.js, chunk-7nczvd3c.js, chunk-9q0a3n6q.js, chunk-6shpw2ep.js, chunk-yvhhqffe.js, chunk-kh992c5v.js, chunk-v3qhh3tb.js, chunk-p7pznb8b.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-15cx49b1.js, chunk-gakea8gb.js, chunk-6pacqmmq.js, chunk-tw4196xn.js, chunk-8gqdshxw.js, chunk-rznk20ry.js, chunk-3p9bdcq9.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-wpfaamrb.js, chunk-q574fqcr.js, chunk-r7brb17x.js, chunk-7h2c0p7z.js, chunk-1d0qvnvb.js, chunk-apaxyaqh.js, chunk-axbkkqp1.js, chunk-sa08dn2e.js, chunk-ada4g0p8.js, chunk-dnexzv2m.js, chunk-twxafg9e.js, chunk-m4bnbvea.js, chunk-st31gd9k.js, chunk-v86b5paa.js, chunk-mtmd2z2q.js, chunk-8z2vvj73.js, chunk-4b105kp8.js, chunk-ddjzd388.js, chunk-2e4yh13p.js, chunk-ck6wd1sj.js, chunk-8qpyvr0y.js, chunk-6eq4efw5.js, chunk-afd8k8se.js, chunk-dppkybwx.js, chunk-yzj241ss.js, chunk-0d6jx1f6.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-2y1f7sjp.js, chunk-gezf7ff1.js, chunk-0sxn500c.js, chunk-mjn26g47.js, chunk-n57bkfth.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 1 test using 1 worker (node:4088856) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 1 | ink | dpr 1 | 0.0000 GHOST palette | level 1 | ink | dpr 1 | 0.0000 GHOST sidebar | level 1 | ink | dpr 1 | 0.0005 GHOST share dialog | level 1 | ink | dpr 1 | 0.0000 ✘ 1 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 (2.0m) 1) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ──────── Test timeout of 120000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-aHjTEU --remote-debugging-pipe --no-startup-window <launched> pid=4089303 [pid=4089303][err] [1011/160548.198566:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=4089303][err] [1011/160548.463386:ERROR:gpu/ipc/client/command_buffer_proxy_impl.cc:285] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer. [pid=4089303][err] [1011/160607.182743:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4643/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=1&session=52110aac-0978-4a70-b52e-ebd016135d49 (0) [pid=4089303] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-e364b-urface-at-level-1-ink-DPR-1/error-context.md 1 failed test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ───────── Invocation exit: 1 Load after: 45.01 32.23 24.75 29/3206 4113815 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-mesh-perf.spec-6.log (1/1)

Load before: 32.59 25.54 23.94 34/3044 274576
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p274577-i50558242.scope; invocation ID: 2840c2813538451989aae4f387558e69
[WebServer] $ bun run build.ts
[WebServer] built chunk-hrvh8qa6.js, chunk-tvynw18r.js, chunk-3q3qn7tr.js, chunk-b5qzwpce.js, chunk-6k3spezy.js, chunk-smjn4956.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-6ggdz7sk.js, chunk-0yrpgjb4.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-predna9p.js, chunk-7nczvd3c.js, chunk-js374zr0.js, chunk-vp3ksxyq.js, chunk-yvhhqffe.js, chunk-p9gesv7n.js, chunk-dmbdq67y.js, chunk-64szpdk6.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-kpwb7kh0.js, chunk-eypfpsn8.js, chunk-nmy7b1qv.js, chunk-behhtcsy.js, chunk-8gqdshxw.js, chunk-jkefj3zg.js, chunk-fq7her68.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-211nfk4v.js, chunk-x7cazc77.js, chunk-np91mjbx.js, chunk-54e022ar.js, chunk-1d0qvnvb.js, chunk-y6ebv6qh.js, chunk-axbkkqp1.js, chunk-gdwytbg0.js, chunk-w5nem76h.js, chunk-kfnxzqb8.js, chunk-t55zr6kj.js, chunk-z05pv1b5.js, chunk-chgfhwwk.js, chunk-v86b5paa.js, chunk-3yjz6794.js, chunk-yz2m6f81.js, chunk-5tjxc1v4.js, chunk-6dz82rhm.js, chunk-2e4yh13p.js, chunk-803s09ab.js, chunk-a3cbq4mz.js, chunk-d5x6fdqj.js, chunk-vcbzypr3.js, chunk-86ts33fc.js, chunk-rfa22k6z.js, chunk-ha62zwpq.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-frzx56wc.js, chunk-22hxkydz.js, chunk-0sxn500c.js, chunk-f7xsy6x5.js, chunk-fkvwxrjc.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:279983) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
MESH-PERF load/core=4.00 {"zoom":{"top":"UpdateLayoutTree=87ms Layout=39ms PrePaint=35ms Paint=94ms Layerize=33ms FireAnimationFrame=35ms EventDispatch=32ms RunTask=344ms","n":10,"p50":27.85,"p95":35.32,"max":35.32,"over8":9},"pan":{"top":"UpdateLayoutTree=94ms Layout=26ms PrePaint=21ms Paint=120ms Layerize=131ms FireAnimationFrame=79ms EventDispatch=17ms RunTask=593ms","n":59,"p50":6.61,"p95":33.39,"max":45.97,"over8":20},"drag":{"top":"UpdateLayoutTree=56ms Layout=20ms PrePaint=37ms Paint=118ms Layerize=311ms FireAnimationFrame=166ms EventDispatch=44ms RunTask=1601ms","n":473,"p50":0.65,"p95":12.11,"max":28.04,"over8":75}}
  ✘  1 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (39.2s)


  1) test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag 

    Error: expect(received).toBeGreaterThan(expected)

    Expected: > 10
    Received:   10

      78 |   const load = loadavg()[0]! / cpus().length;
      79 |   console.log(`MESH-PERF load/core=${load.toFixed(2)} ${JSON.stringify(out)}`);
    > 80 |   for (const k of Object.keys(out)) expect(out[k]!.n).toBeGreaterThan(10);
         |                                                       ^
      81 |   // The owner's target is 8 ms of work in a frame (#121). A drag meets it; a pan's median does, and a zoom's median is at
      82 |   // its edge (the browser lays out and paints the page's cards and chips once per frame while the scale changes). The
      83 |   // bounds are what the build measures today with a margin, so that a regression shows; the target stays in the report.
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/mesh-perf.spec.ts:80:55

    Error Context: test-results/mesh-perf-1-000-nodes-the--12417--of-a-zoom-a-pan-and-a-drag/error-context.md

  1 failed
    test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag 

Invocation exit: 1
Load after: 32.00 26.84 24.50 30/3070 287071
#163 verbatim evidence: browser-case-merge-mesh-perf.spec-6.log (1/1) ```text Load before: 32.59 25.54 23.94 34/3044 274576 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p274577-i50558242.scope; invocation ID: 2840c2813538451989aae4f387558e69 [WebServer] $ bun run build.ts [WebServer] built chunk-hrvh8qa6.js, chunk-tvynw18r.js, chunk-3q3qn7tr.js, chunk-b5qzwpce.js, chunk-6k3spezy.js, chunk-smjn4956.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-6ggdz7sk.js, chunk-0yrpgjb4.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-predna9p.js, chunk-7nczvd3c.js, chunk-js374zr0.js, chunk-vp3ksxyq.js, chunk-yvhhqffe.js, chunk-p9gesv7n.js, chunk-dmbdq67y.js, chunk-64szpdk6.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-kpwb7kh0.js, chunk-eypfpsn8.js, chunk-nmy7b1qv.js, chunk-behhtcsy.js, chunk-8gqdshxw.js, chunk-jkefj3zg.js, chunk-fq7her68.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-211nfk4v.js, chunk-x7cazc77.js, chunk-np91mjbx.js, chunk-54e022ar.js, chunk-1d0qvnvb.js, chunk-y6ebv6qh.js, chunk-axbkkqp1.js, chunk-gdwytbg0.js, chunk-w5nem76h.js, chunk-kfnxzqb8.js, chunk-t55zr6kj.js, chunk-z05pv1b5.js, chunk-chgfhwwk.js, chunk-v86b5paa.js, chunk-3yjz6794.js, chunk-yz2m6f81.js, chunk-5tjxc1v4.js, chunk-6dz82rhm.js, chunk-2e4yh13p.js, chunk-803s09ab.js, chunk-a3cbq4mz.js, chunk-d5x6fdqj.js, chunk-vcbzypr3.js, chunk-86ts33fc.js, chunk-rfa22k6z.js, chunk-ha62zwpq.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-frzx56wc.js, chunk-22hxkydz.js, chunk-0sxn500c.js, chunk-f7xsy6x5.js, chunk-fkvwxrjc.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:279983) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) MESH-PERF load/core=4.00 {"zoom":{"top":"UpdateLayoutTree=87ms Layout=39ms PrePaint=35ms Paint=94ms Layerize=33ms FireAnimationFrame=35ms EventDispatch=32ms RunTask=344ms","n":10,"p50":27.85,"p95":35.32,"max":35.32,"over8":9},"pan":{"top":"UpdateLayoutTree=94ms Layout=26ms PrePaint=21ms Paint=120ms Layerize=131ms FireAnimationFrame=79ms EventDispatch=17ms RunTask=593ms","n":59,"p50":6.61,"p95":33.39,"max":45.97,"over8":20},"drag":{"top":"UpdateLayoutTree=56ms Layout=20ms PrePaint=37ms Paint=118ms Layerize=311ms FireAnimationFrame=166ms EventDispatch=44ms RunTask=1601ms","n":473,"p50":0.65,"p95":12.11,"max":28.04,"over8":75}} ✘ 1 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (39.2s) 1) test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag Error: expect(received).toBeGreaterThan(expected) Expected: > 10 Received: 10 78 | const load = loadavg()[0]! / cpus().length; 79 | console.log(`MESH-PERF load/core=${load.toFixed(2)} ${JSON.stringify(out)}`); > 80 | for (const k of Object.keys(out)) expect(out[k]!.n).toBeGreaterThan(10); | ^ 81 | // The owner's target is 8 ms of work in a frame (#121). A drag meets it; a pan's median does, and a zoom's median is at 82 | // its edge (the browser lays out and paints the page's cards and chips once per frame while the scale changes). The 83 | // bounds are what the build measures today with a margin, so that a regression shows; the target stays in the report. at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/mesh-perf.spec.ts:80:55 Error Context: test-results/mesh-perf-1-000-nodes-the--12417--of-a-zoom-a-pan-and-a-drag/error-context.md 1 failed test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag Invocation exit: 1 Load after: 32.00 26.84 24.50 30/3070 287071 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-motion-audit.spec-7.log (1/1)

Load before: 22.40 25.07 24.00 5/2966 288005
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p288006-i50571671.scope; invocation ID: 3155652ba6a34f8184006fe4a408b8b2
[WebServer] $ bun run build.ts
[WebServer] built chunk-s4rf4cwj.js, chunk-tvynw18r.js, chunk-9q2hhbpq.js, chunk-b5qzwpce.js, chunk-5p8ve16p.js, chunk-k0528w6h.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-3rp2hs51.js, chunk-5nhm60j4.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-r0d9g7ch.js, chunk-7nczvd3c.js, chunk-9gkv8zsf.js, chunk-6dyv9zr2.js, chunk-yvhhqffe.js, chunk-d966x8rg.js, chunk-dkhj5km8.js, chunk-yy4kn8mt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-em73p4c0.js, chunk-fpjyf693.js, chunk-cp55b6zm.js, chunk-k7mpa2fv.js, chunk-8gqdshxw.js, chunk-hvvshmse.js, chunk-xm24bcns.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-cy2s97ne.js, chunk-tfp2kb36.js, chunk-gkvqeh3w.js, chunk-dkbqhk85.js, chunk-1d0qvnvb.js, chunk-h1sxh5pc.js, chunk-axbkkqp1.js, chunk-g18n2fe6.js, chunk-pmf6k8t5.js, chunk-v6cr8hfr.js, chunk-6xhxn03e.js, chunk-e1s5ghxz.js, chunk-4d95rjmh.js, chunk-v86b5paa.js, chunk-jhnggqz6.js, chunk-gnk3718j.js, chunk-y2awd1tm.js, chunk-t215eab3.js, chunk-2e4yh13p.js, chunk-htgnyn2m.js, chunk-tfnht9h3.js, chunk-srp7w54p.js, chunk-yt37nwba.js, chunk-fhwscv6q.js, chunk-yhf75gwx.js, chunk-g7w1bwea.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-shf7kcsj.js, chunk-geemeb7b.js, chunk-0sxn500c.js, chunk-kyxaefs4.js, chunk-87cq6krd.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:288215) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens (9.3s)


  1) test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens 

    Error: expect(received).toBeGreaterThanOrEqual(expected)

    Expected: >= 20
    Received:    19

      293 |   expect(authIdle.pending).toEqual([]);
      294 |   expect(authIdle.idleRafFrames).toBe(0);
    > 295 |   expect(authIdle.shaderFrames).toBeGreaterThanOrEqual(20);
          |                                 ^
      296 |   expect(authIdle.shaderFrames).toBeLessThanOrEqual(35);
      297 |   expect(authIdle.shaderGaps.every((gap) => gap >= 30)).toBe(true);
      298 |   const shaderSurface = await page.evaluate(() => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/motion-audit.spec.ts:295:33

    attachment #1: production setup (image/png) ────────────────────────────────────────────────────
    test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-setup-f74611237959cea2480bf36cd0f4b956d40b08f4.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/error-context.md

  1 failed
    test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens 

Invocation exit: 1
Load after: 20.00 24.40 23.80 18/2976 289696
#163 verbatim evidence: browser-case-merge-motion-audit.spec-7.log (1/1) ```text Load before: 22.40 25.07 24.00 5/2966 288005 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p288006-i50571671.scope; invocation ID: 3155652ba6a34f8184006fe4a408b8b2 [WebServer] $ bun run build.ts [WebServer] built chunk-s4rf4cwj.js, chunk-tvynw18r.js, chunk-9q2hhbpq.js, chunk-b5qzwpce.js, chunk-5p8ve16p.js, chunk-k0528w6h.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-3rp2hs51.js, chunk-5nhm60j4.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-r0d9g7ch.js, chunk-7nczvd3c.js, chunk-9gkv8zsf.js, chunk-6dyv9zr2.js, chunk-yvhhqffe.js, chunk-d966x8rg.js, chunk-dkhj5km8.js, chunk-yy4kn8mt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-em73p4c0.js, chunk-fpjyf693.js, chunk-cp55b6zm.js, chunk-k7mpa2fv.js, chunk-8gqdshxw.js, chunk-hvvshmse.js, chunk-xm24bcns.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-cy2s97ne.js, chunk-tfp2kb36.js, chunk-gkvqeh3w.js, chunk-dkbqhk85.js, chunk-1d0qvnvb.js, chunk-h1sxh5pc.js, chunk-axbkkqp1.js, chunk-g18n2fe6.js, chunk-pmf6k8t5.js, chunk-v6cr8hfr.js, chunk-6xhxn03e.js, chunk-e1s5ghxz.js, chunk-4d95rjmh.js, chunk-v86b5paa.js, chunk-jhnggqz6.js, chunk-gnk3718j.js, chunk-y2awd1tm.js, chunk-t215eab3.js, chunk-2e4yh13p.js, chunk-htgnyn2m.js, chunk-tfnht9h3.js, chunk-srp7w54p.js, chunk-yt37nwba.js, chunk-fhwscv6q.js, chunk-yhf75gwx.js, chunk-g7w1bwea.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-shf7kcsj.js, chunk-geemeb7b.js, chunk-0sxn500c.js, chunk-kyxaefs4.js, chunk-87cq6krd.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:288215) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens (9.3s) 1) test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens Error: expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 20 Received: 19 293 | expect(authIdle.pending).toEqual([]); 294 | expect(authIdle.idleRafFrames).toBe(0); > 295 | expect(authIdle.shaderFrames).toBeGreaterThanOrEqual(20); | ^ 296 | expect(authIdle.shaderFrames).toBeLessThanOrEqual(35); 297 | expect(authIdle.shaderGaps.every((gap) => gap >= 30)).toBe(true); 298 | const shaderSurface = await page.evaluate(() => { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/motion-audit.spec.ts:295:33 attachment #1: production setup (image/png) ──────────────────────────────────────────────────── test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-setup-f74611237959cea2480bf36cd0f4b956d40b08f4.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/error-context.md 1 failed test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens Invocation exit: 1 Load after: 20.00 24.40 23.80 18/2976 289696 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-onboarding.spec-8.log (1/1)

Load before: 19.79 23.93 23.66 11/2980 292235
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p292236-i50575901.scope; invocation ID: 994e37d8c03c4dcfa54bddeace8256c9
[WebServer] $ bun run build.ts
[WebServer] built chunk-bwn660jr.js, chunk-tvynw18r.js, chunk-78230b0w.js, chunk-b5qzwpce.js, chunk-ccy8n293.js, chunk-8wkaxgj7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jsmbd5jp.js, chunk-ps1cy5yn.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-tm1cwa79.js, chunk-7nczvd3c.js, chunk-df0x175y.js, chunk-82r7xg3f.js, chunk-yvhhqffe.js, chunk-7d7a4136.js, chunk-8ayb4t2g.js, chunk-7ajfwsjq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-2ftetdyb.js, chunk-yeje004t.js, chunk-ehc1ysnr.js, chunk-bkxsf6y3.js, chunk-8gqdshxw.js, chunk-tcfca8r0.js, chunk-m4efqm15.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-e568rekz.js, chunk-nnzr2dk5.js, chunk-hbgwavcb.js, chunk-qmr9wjkh.js, chunk-1d0qvnvb.js, chunk-n7jyp7rs.js, chunk-axbkkqp1.js, chunk-qz0twkya.js, chunk-psyrtqp9.js, chunk-ymdpwrqf.js, chunk-w15xrxvm.js, chunk-adsxtjdf.js, chunk-28yjm31q.js, chunk-v86b5paa.js, chunk-0a0rfw19.js, chunk-43y8sgkq.js, chunk-mp4292fj.js, chunk-92xy0bgw.js, chunk-2e4yh13p.js, chunk-xz9qch9h.js, chunk-zzmwj3gb.js, chunk-4rwchwyq.js, chunk-syc6p87w.js, chunk-482nxxra.js, chunk-77mj2nvg.js, chunk-zs3zqf6d.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-yjatfbw4.js, chunk-mq0hasss.js, chunk-0sxn500c.js, chunk-gaexzfyc.js, chunk-wed8tf6y.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:292654) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (6.8s)


  1) test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract 

    Error: apiRequestContext.get: socket hang up
    Call log:
      - → GET http://localhost:4643/__mock/setup-token
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br


      83 |   await installShiftObserver(page);
      84 |
    > 85 |   const setupResponse = await context.request.get("/__mock/setup-token");
         |                                               ^
      86 |   const setupBody = await setupResponse.json() as { setup_token: string };
      87 |   await page.locator("#setup-token").fill(setupBody.setup_token);
      88 |   await page.getByRole("button", { name: "Continue" }).click();
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/onboarding.spec.ts:85:47

    attachment #1: step-1-token-iphone-15 (image/png) ──────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-iphone-15-9ebbdb2bedca0af1424e882cddafaa1fbb79a8f7.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: step-1-token-desktop (image/png) ────────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-desktop-4c129327150e3b080c043d7a43c66e9db92d5b7e.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/error-context.md

  1 failed
    test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract 

Invocation exit: 1
Load after: 18.56 23.44 23.50 12/2988 293266
#163 verbatim evidence: browser-case-merge-onboarding.spec-8.log (1/1) ```text Load before: 19.79 23.93 23.66 11/2980 292235 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p292236-i50575901.scope; invocation ID: 994e37d8c03c4dcfa54bddeace8256c9 [WebServer] $ bun run build.ts [WebServer] built chunk-bwn660jr.js, chunk-tvynw18r.js, chunk-78230b0w.js, chunk-b5qzwpce.js, chunk-ccy8n293.js, chunk-8wkaxgj7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jsmbd5jp.js, chunk-ps1cy5yn.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-tm1cwa79.js, chunk-7nczvd3c.js, chunk-df0x175y.js, chunk-82r7xg3f.js, chunk-yvhhqffe.js, chunk-7d7a4136.js, chunk-8ayb4t2g.js, chunk-7ajfwsjq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-2ftetdyb.js, chunk-yeje004t.js, chunk-ehc1ysnr.js, chunk-bkxsf6y3.js, chunk-8gqdshxw.js, chunk-tcfca8r0.js, chunk-m4efqm15.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-e568rekz.js, chunk-nnzr2dk5.js, chunk-hbgwavcb.js, chunk-qmr9wjkh.js, chunk-1d0qvnvb.js, chunk-n7jyp7rs.js, chunk-axbkkqp1.js, chunk-qz0twkya.js, chunk-psyrtqp9.js, chunk-ymdpwrqf.js, chunk-w15xrxvm.js, chunk-adsxtjdf.js, chunk-28yjm31q.js, chunk-v86b5paa.js, chunk-0a0rfw19.js, chunk-43y8sgkq.js, chunk-mp4292fj.js, chunk-92xy0bgw.js, chunk-2e4yh13p.js, chunk-xz9qch9h.js, chunk-zzmwj3gb.js, chunk-4rwchwyq.js, chunk-syc6p87w.js, chunk-482nxxra.js, chunk-77mj2nvg.js, chunk-zs3zqf6d.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-yjatfbw4.js, chunk-mq0hasss.js, chunk-0sxn500c.js, chunk-gaexzfyc.js, chunk-wed8tf6y.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:292654) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (6.8s) 1) test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract Error: apiRequestContext.get: socket hang up Call log: - → GET http://localhost:4643/__mock/setup-token - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br 83 | await installShiftObserver(page); 84 | > 85 | const setupResponse = await context.request.get("/__mock/setup-token"); | ^ 86 | const setupBody = await setupResponse.json() as { setup_token: string }; 87 | await page.locator("#setup-token").fill(setupBody.setup_token); 88 | await page.getByRole("button", { name: "Continue" }).click(); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/onboarding.spec.ts:85:47 attachment #1: step-1-token-iphone-15 (image/png) ────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-iphone-15-9ebbdb2bedca0af1424e882cddafaa1fbb79a8f7.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: step-1-token-desktop (image/png) ──────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-desktop-4c129327150e3b080c043d7a43c66e9db92d5b7e.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/error-context.md 1 failed test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract Invocation exit: 1 Load after: 18.56 23.44 23.50 12/2988 293266 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-palette-navigation.spec-9.log (1/1)

Load before: 20.82 23.24 23.43 26/3001 302858
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p302859-i50586524.scope; invocation ID: 3acccecb58d247f9bf2478e390c443c9
[WebServer] $ bun run build.ts
[WebServer] built chunk-ndv8bgp1.js, chunk-tvynw18r.js, chunk-q4ctyexr.js, chunk-b5qzwpce.js, chunk-p5h7tq0c.js, chunk-7v6pssbk.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-8bp5gcsc.js, chunk-xpk77qvx.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-71ye35ad.js, chunk-7nczvd3c.js, chunk-vr3qew4x.js, chunk-z2jjxswv.js, chunk-yvhhqffe.js, chunk-gfm60qaf.js, chunk-tnx6f2yt.js, chunk-h3xc1x48.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-vytvfat3.js, chunk-1e8xxgcs.js, chunk-af5frcx6.js, chunk-rfrdanqm.js, chunk-8gqdshxw.js, chunk-jhsc4475.js, chunk-j2mktgzr.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-vfjymsyb.js, chunk-81p265bw.js, chunk-4nb71mrs.js, chunk-4cze4c07.js, chunk-1d0qvnvb.js, chunk-3j0jp4ng.js, chunk-axbkkqp1.js, chunk-v5s7kmth.js, chunk-e4xqam9t.js, chunk-rty1c87s.js, chunk-jrtxtqw3.js, chunk-zn9v157c.js, chunk-jr61bp2r.js, chunk-v86b5paa.js, chunk-nhcwfsnq.js, chunk-mnmr9m0b.js, chunk-pp6snz1k.js, chunk-7agqw8b1.js, chunk-2e4yh13p.js, chunk-khp8xtbt.js, chunk-gagtxk8e.js, chunk-pt9mx2ng.js, chunk-gemnv3z9.js, chunk-qscss6me.js, chunk-t05v25jb.js, chunk-v74e4mh9.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-cwhv9xs2.js, chunk-0erqcde8.js, chunk-0sxn500c.js, chunk-54wpb14e.js, chunk-r3wtkx03.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:306653) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ENVIRONMENT machine=infraternal-dev cores=8 load_1_5_15=24.83,23.97,23.66
METRIC name=palette_arrow_handler_ms_per_press value=3.5900 presses=100 viewport=1440x900
METRIC name=palette_filter_handler_ms_per_input value=0.3580 inputs=100 viewport=1440x900
  ✘  1 test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile (10.1s)


  1) test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile 

    Error: expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 0.13
    Received:    0.35800000071525573

      117 |   console.log(`METRIC name=palette_filter_handler_ms_per_input value=${millisecondsPerFilter.toFixed(4)} inputs=100 viewport=1440x900`);
      118 |   expect(millisecondsPerArrow).toBeGreaterThanOrEqual(0);
    > 119 |   expect(millisecondsPerFilter).toBeLessThanOrEqual(0.13);
          |                                 ^
      120 | }
      121 |
      122 | async function walkDownAndUp(page: Page): Promise<void> {
        at measureHandlers (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/palette-navigation.spec.ts:119:33)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/palette-navigation.spec.ts:169:3

    Error Context: test-results/palette-navigation-palette-08dcc-sible-on-desktop-and-mobile/error-context.md

  1 failed
    test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile 

Invocation exit: 1
Load after: 25.64 24.16 23.72 34/3083 309543
#163 verbatim evidence: browser-case-merge-palette-navigation.spec-9.log (1/1) ```text Load before: 20.82 23.24 23.43 26/3001 302858 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p302859-i50586524.scope; invocation ID: 3acccecb58d247f9bf2478e390c443c9 [WebServer] $ bun run build.ts [WebServer] built chunk-ndv8bgp1.js, chunk-tvynw18r.js, chunk-q4ctyexr.js, chunk-b5qzwpce.js, chunk-p5h7tq0c.js, chunk-7v6pssbk.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-8bp5gcsc.js, chunk-xpk77qvx.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-71ye35ad.js, chunk-7nczvd3c.js, chunk-vr3qew4x.js, chunk-z2jjxswv.js, chunk-yvhhqffe.js, chunk-gfm60qaf.js, chunk-tnx6f2yt.js, chunk-h3xc1x48.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-vytvfat3.js, chunk-1e8xxgcs.js, chunk-af5frcx6.js, chunk-rfrdanqm.js, chunk-8gqdshxw.js, chunk-jhsc4475.js, chunk-j2mktgzr.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-vfjymsyb.js, chunk-81p265bw.js, chunk-4nb71mrs.js, chunk-4cze4c07.js, chunk-1d0qvnvb.js, chunk-3j0jp4ng.js, chunk-axbkkqp1.js, chunk-v5s7kmth.js, chunk-e4xqam9t.js, chunk-rty1c87s.js, chunk-jrtxtqw3.js, chunk-zn9v157c.js, chunk-jr61bp2r.js, chunk-v86b5paa.js, chunk-nhcwfsnq.js, chunk-mnmr9m0b.js, chunk-pp6snz1k.js, chunk-7agqw8b1.js, chunk-2e4yh13p.js, chunk-khp8xtbt.js, chunk-gagtxk8e.js, chunk-pt9mx2ng.js, chunk-gemnv3z9.js, chunk-qscss6me.js, chunk-t05v25jb.js, chunk-v74e4mh9.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-cwhv9xs2.js, chunk-0erqcde8.js, chunk-0sxn500c.js, chunk-54wpb14e.js, chunk-r3wtkx03.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:306653) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ENVIRONMENT machine=infraternal-dev cores=8 load_1_5_15=24.83,23.97,23.66 METRIC name=palette_arrow_handler_ms_per_press value=3.5900 presses=100 viewport=1440x900 METRIC name=palette_filter_handler_ms_per_input value=0.3580 inputs=100 viewport=1440x900 ✘ 1 test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile (10.1s) 1) test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile Error: expect(received).toBeLessThanOrEqual(expected) Expected: <= 0.13 Received: 0.35800000071525573 117 | console.log(`METRIC name=palette_filter_handler_ms_per_input value=${millisecondsPerFilter.toFixed(4)} inputs=100 viewport=1440x900`); 118 | expect(millisecondsPerArrow).toBeGreaterThanOrEqual(0); > 119 | expect(millisecondsPerFilter).toBeLessThanOrEqual(0.13); | ^ 120 | } 121 | 122 | async function walkDownAndUp(page: Page): Promise<void> { at measureHandlers (/home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/palette-navigation.spec.ts:119:33) at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/palette-navigation.spec.ts:169:3 Error Context: test-results/palette-navigation-palette-08dcc-sible-on-desktop-and-mobile/error-context.md 1 failed test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile Invocation exit: 1 Load after: 25.64 24.16 23.72 34/3083 309543 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-perf-hud.spec-10.log (1/1)

Load before: 29.02 25.02 24.02 28/3028 314101
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p314102-i50597767.scope; invocation ID: b99032d8b5734ad399e5014aaf3e12c3
[WebServer] $ bun run build.ts
[WebServer] built chunk-19z4hfg8.js, chunk-tvynw18r.js, chunk-vakev5hx.js, chunk-b5qzwpce.js, chunk-btz24xam.js, chunk-8k16snct.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-n2bmt896.js, chunk-365kkmk6.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-qq714h8a.js, chunk-7nczvd3c.js, chunk-09ze69rs.js, chunk-5f23qkyw.js, chunk-yvhhqffe.js, chunk-14fd7mg0.js, chunk-yjqsaxnn.js, chunk-567saa9w.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-h19ebwh2.js, chunk-b9v9mvq4.js, chunk-mnpafrx4.js, chunk-dsj72kr9.js, chunk-8gqdshxw.js, chunk-vx9dd0f1.js, chunk-zw537hra.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-ms5k733e.js, chunk-89e2fta6.js, chunk-7rjbz01a.js, chunk-eftsbh04.js, chunk-1d0qvnvb.js, chunk-x33p6e7j.js, chunk-axbkkqp1.js, chunk-v8ynfr3g.js, chunk-2qqxez93.js, chunk-bnm67kge.js, chunk-6nh4v0f1.js, chunk-6aa5kbh6.js, chunk-kk9cnf15.js, chunk-v86b5paa.js, chunk-j89jng27.js, chunk-nnk6bg85.js, chunk-3604rnhn.js, chunk-v4h3tfv6.js, chunk-2e4yh13p.js, chunk-ddvj5ec1.js, chunk-ehz2xc3m.js, chunk-fzc6ae4r.js, chunk-3012t88k.js, chunk-0y7xj7cp.js, chunk-ts19v7a3.js, chunk-73an271b.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-42r4wdqj.js, chunk-e6zw3b2p.js, chunk-0sxn500c.js, chunk-y2gewc34.js, chunk-wkt23szj.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:316784) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
PERF-BENCH {"meanUs":0.18299999952316284,"p99Us":1.000000238418579,"maxUs":130}
PERF-RECALC none (3 rounds x 3 s idle): layouts 12, style recalcs 84, style 39.9 ms, layout 42.5 ms, script 150.6 ms
PERF-RECALC empty-raf (3 rounds x 3 s idle): layouts 8, style recalcs 179, style 39.6 ms, layout 22.9 ms, script 127.8 ms
PERF-RECALC meter (3 rounds x 3 s idle): layouts 10, style recalcs 308, style 58.8 ms, layout 48.5 ms, script 149.8 ms
  ✘  1 test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints (1.6m)


  1) test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints 

    Error: expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 191
    Received:    308

      114 |   }
      115 |   expect(sum("meter", "layout")).toBeLessThanOrEqual(sum("empty-raf", "layout") + 3);
    > 116 |   expect(sum("meter", "style")).toBeLessThanOrEqual(Math.ceil(sum("empty-raf", "style") * 1.05) + 3);
          |                                 ^
      117 |   await hud(page).call((h) => { h.pauseRepaint(); return 0; });
      118 |   // Nothing in the meter's own subtree changes while the repaint is stopped: the loop writes the ring and nothing else.
      119 |   const mutations = await page.evaluate(() => new Promise<number>((done) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/perf-hud.spec.ts:116:33

    Error Context: test-results/perf-hud-the-frame-body-co-c2992-style-work-between-repaints/error-context.md

  1 failed
    test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints 

Invocation exit: 1
Load after: 18.04 23.84 23.81 8/2982 330813
#163 verbatim evidence: browser-case-merge-perf-hud.spec-10.log (1/1) ```text Load before: 29.02 25.02 24.02 28/3028 314101 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p314102-i50597767.scope; invocation ID: b99032d8b5734ad399e5014aaf3e12c3 [WebServer] $ bun run build.ts [WebServer] built chunk-19z4hfg8.js, chunk-tvynw18r.js, chunk-vakev5hx.js, chunk-b5qzwpce.js, chunk-btz24xam.js, chunk-8k16snct.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-n2bmt896.js, chunk-365kkmk6.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-qq714h8a.js, chunk-7nczvd3c.js, chunk-09ze69rs.js, chunk-5f23qkyw.js, chunk-yvhhqffe.js, chunk-14fd7mg0.js, chunk-yjqsaxnn.js, chunk-567saa9w.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-h19ebwh2.js, chunk-b9v9mvq4.js, chunk-mnpafrx4.js, chunk-dsj72kr9.js, chunk-8gqdshxw.js, chunk-vx9dd0f1.js, chunk-zw537hra.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-ms5k733e.js, chunk-89e2fta6.js, chunk-7rjbz01a.js, chunk-eftsbh04.js, chunk-1d0qvnvb.js, chunk-x33p6e7j.js, chunk-axbkkqp1.js, chunk-v8ynfr3g.js, chunk-2qqxez93.js, chunk-bnm67kge.js, chunk-6nh4v0f1.js, chunk-6aa5kbh6.js, chunk-kk9cnf15.js, chunk-v86b5paa.js, chunk-j89jng27.js, chunk-nnk6bg85.js, chunk-3604rnhn.js, chunk-v4h3tfv6.js, chunk-2e4yh13p.js, chunk-ddvj5ec1.js, chunk-ehz2xc3m.js, chunk-fzc6ae4r.js, chunk-3012t88k.js, chunk-0y7xj7cp.js, chunk-ts19v7a3.js, chunk-73an271b.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-42r4wdqj.js, chunk-e6zw3b2p.js, chunk-0sxn500c.js, chunk-y2gewc34.js, chunk-wkt23szj.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:316784) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) PERF-BENCH {"meanUs":0.18299999952316284,"p99Us":1.000000238418579,"maxUs":130} PERF-RECALC none (3 rounds x 3 s idle): layouts 12, style recalcs 84, style 39.9 ms, layout 42.5 ms, script 150.6 ms PERF-RECALC empty-raf (3 rounds x 3 s idle): layouts 8, style recalcs 179, style 39.6 ms, layout 22.9 ms, script 127.8 ms PERF-RECALC meter (3 rounds x 3 s idle): layouts 10, style recalcs 308, style 58.8 ms, layout 48.5 ms, script 149.8 ms ✘ 1 test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints (1.6m) 1) test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints Error: expect(received).toBeLessThanOrEqual(expected) Expected: <= 191 Received: 308 114 | } 115 | expect(sum("meter", "layout")).toBeLessThanOrEqual(sum("empty-raf", "layout") + 3); > 116 | expect(sum("meter", "style")).toBeLessThanOrEqual(Math.ceil(sum("empty-raf", "style") * 1.05) + 3); | ^ 117 | await hud(page).call((h) => { h.pauseRepaint(); return 0; }); 118 | // Nothing in the meter's own subtree changes while the repaint is stopped: the loop writes the ring and nothing else. 119 | const mutations = await page.evaluate(() => new Promise<number>((done) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/perf-hud.spec.ts:116:33 Error Context: test-results/perf-hud-the-frame-body-co-c2992-style-work-between-repaints/error-context.md 1 failed test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints Invocation exit: 1 Load after: 18.04 23.84 23.81 8/2982 330813 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-platform-consistency.spec-11.log (1/1)

Load before: 7.17 18.50 21.90 9/2949 335498
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p335499-i50619164.scope; invocation ID: cde60004ab8d4a20aae2933e3f97c524
[WebServer] $ bun run build.ts
[WebServer] built chunk-4gz4bhre.js, chunk-tvynw18r.js, chunk-brkftpt1.js, chunk-b5qzwpce.js, chunk-ej2g43t4.js, chunk-6w0n0cr0.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-ydrazjdj.js, chunk-hqptayse.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-8jv4a8qq.js, chunk-7nczvd3c.js, chunk-3jkf3dk2.js, chunk-ygktjsja.js, chunk-yvhhqffe.js, chunk-wecgy5jp.js, chunk-3psx66jf.js, chunk-e70tnwbr.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-ykfq202p.js, chunk-jqyg755w.js, chunk-99anahpa.js, chunk-spvxp7db.js, chunk-8gqdshxw.js, chunk-gpqe1k3g.js, chunk-d8x1nebd.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9dwd3ry0.js, chunk-46p11e2w.js, chunk-3xxjn2qx.js, chunk-kcjjdrnc.js, chunk-1d0qvnvb.js, chunk-33ak7qdn.js, chunk-axbkkqp1.js, chunk-ac8tja9d.js, chunk-fmjm6x5h.js, chunk-tps62gt7.js, chunk-yg0sfx2c.js, chunk-24fq86zq.js, chunk-1zz68xq5.js, chunk-v86b5paa.js, chunk-ffg2sdmx.js, chunk-46xdpa4s.js, chunk-cxx3xwz1.js, chunk-03whbc42.js, chunk-2e4yh13p.js, chunk-jrwxgqcv.js, chunk-jbzett4a.js, chunk-j5tqpynx.js, chunk-msc20vz3.js, chunk-yywev8yq.js, chunk-81xzgfd5.js, chunk-1shmcx45.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-xtkt1wsm.js, chunk-pexa67m0.js, chunk-0sxn500c.js, chunk-n6zvmmyg.js, chunk-720sfqtd.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 3 tests using 1 worker

(node:336014) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph (5.3s)
  ✘  2 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling (6.9s)
(node:337030) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  3 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling (8.0s)


  1) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 6
    Received:   14

      192 |     await expect(page.locator("#palette")).toBeVisible();
      193 |     await expect.poll(async () => (await scrollState(page)).overflows).toBe(true);
    > 194 |     expect(await trackSpread(page)).toBeLessThan(6);
          |                                     ^
      195 |     await page.locator("#palette-results").hover();
      196 |     await page.mouse.wheel(0, 160);
      197 |     await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/platform-consistency.spec.ts:194:37

    Error Context: test-results/platform-consistency-captu-ea6fb--a-thin-bar-while-scrolling/error-context.md

  1 failed
    test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling 
  2 passed (28.2s)

Invocation exit: 1
Load after: 6.60 17.29 21.39 3/2908 337246
#163 verbatim evidence: browser-case-merge-platform-consistency.spec-11.log (1/1) ```text Load before: 7.17 18.50 21.90 9/2949 335498 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p335499-i50619164.scope; invocation ID: cde60004ab8d4a20aae2933e3f97c524 [WebServer] $ bun run build.ts [WebServer] built chunk-4gz4bhre.js, chunk-tvynw18r.js, chunk-brkftpt1.js, chunk-b5qzwpce.js, chunk-ej2g43t4.js, chunk-6w0n0cr0.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-ydrazjdj.js, chunk-hqptayse.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-8jv4a8qq.js, chunk-7nczvd3c.js, chunk-3jkf3dk2.js, chunk-ygktjsja.js, chunk-yvhhqffe.js, chunk-wecgy5jp.js, chunk-3psx66jf.js, chunk-e70tnwbr.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-ykfq202p.js, chunk-jqyg755w.js, chunk-99anahpa.js, chunk-spvxp7db.js, chunk-8gqdshxw.js, chunk-gpqe1k3g.js, chunk-d8x1nebd.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9dwd3ry0.js, chunk-46p11e2w.js, chunk-3xxjn2qx.js, chunk-kcjjdrnc.js, chunk-1d0qvnvb.js, chunk-33ak7qdn.js, chunk-axbkkqp1.js, chunk-ac8tja9d.js, chunk-fmjm6x5h.js, chunk-tps62gt7.js, chunk-yg0sfx2c.js, chunk-24fq86zq.js, chunk-1zz68xq5.js, chunk-v86b5paa.js, chunk-ffg2sdmx.js, chunk-46xdpa4s.js, chunk-cxx3xwz1.js, chunk-03whbc42.js, chunk-2e4yh13p.js, chunk-jrwxgqcv.js, chunk-jbzett4a.js, chunk-j5tqpynx.js, chunk-msc20vz3.js, chunk-yywev8yq.js, chunk-81xzgfd5.js, chunk-1shmcx45.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-xtkt1wsm.js, chunk-pexa67m0.js, chunk-0sxn500c.js, chunk-n6zvmmyg.js, chunk-720sfqtd.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 3 tests using 1 worker (node:336014) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph (5.3s) ✘ 2 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling (6.9s) (node:337030) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 3 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling (8.0s) 1) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling Error: expect(received).toBeLessThan(expected) Expected: < 6 Received: 14 192 | await expect(page.locator("#palette")).toBeVisible(); 193 | await expect.poll(async () => (await scrollState(page)).overflows).toBe(true); > 194 | expect(await trackSpread(page)).toBeLessThan(6); | ^ 195 | await page.locator("#palette-results").hover(); 196 | await page.mouse.wheel(0, 160); 197 | await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/platform-consistency.spec.ts:194:37 Error Context: test-results/platform-consistency-captu-ea6fb--a-thin-bar-while-scrolling/error-context.md 1 failed test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling 2 passed (28.2s) Invocation exit: 1 Load after: 6.60 17.29 21.39 3/2908 337246 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-predictive-backspace.spec-12.log (1/1)

Load before: 5.95 16.30 20.95 7/2911 341102
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p341103-i50624768.scope; invocation ID: 22c802fe4b67403083f0ef1180903770
[WebServer] $ bun run build.ts
[WebServer] built chunk-ycrqm9m4.js, chunk-tvynw18r.js, chunk-et1j6kyn.js, chunk-b5qzwpce.js, chunk-4r1bnasd.js, chunk-9hw30dn4.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zmcgbj18.js, chunk-2847mnga.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-gkntjarr.js, chunk-7nczvd3c.js, chunk-2vmvnwx8.js, chunk-qv6kq47y.js, chunk-yvhhqffe.js, chunk-6pk9bqn4.js, chunk-dvv094gh.js, chunk-0v5v4hyw.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-yw0t0x6e.js, chunk-ab4cyde4.js, chunk-fnbpr16r.js, chunk-e0dkcahv.js, chunk-8gqdshxw.js, chunk-erq65vhc.js, chunk-96ajv9kt.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8yaesxnn.js, chunk-98vkp97y.js, chunk-4wxkex5v.js, chunk-bkgf64dr.js, chunk-1d0qvnvb.js, chunk-wkf1dnze.js, chunk-axbkkqp1.js, chunk-ck3fkmjd.js, chunk-a5sfrg2n.js, chunk-ewnm1af0.js, chunk-4rzq5038.js, chunk-yf2k3rtn.js, chunk-qtmhkn2s.js, chunk-v86b5paa.js, chunk-ydedfhs0.js, chunk-g1ndzvhv.js, chunk-kwz4vre9.js, chunk-6zk1ysde.js, chunk-2e4yh13p.js, chunk-ysdt3mme.js, chunk-62naf7eh.js, chunk-4a6zzxrp.js, chunk-rd546868.js, chunk-p3j3zwdy.js, chunk-v3scj528.js, chunk-0zvxp0bh.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-xjaq8v9r.js, chunk-mka9kjjm.js, chunk-0sxn500c.js, chunk-fhhd10q3.js, chunk-f9ky2240.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 2 tests using 1 worker

(node:341367) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 (9.2s)
first-key cost 1.10 ms; rest max 0.60 ms
  ✓  2 test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 (7.4s)

  2 passed (23.2s)

Invocation exit: 0
Load after: 5.43 15.34 20.51 5/2909 341949
#163 verbatim evidence: browser-case-merge-predictive-backspace.spec-12.log (1/1) ```text Load before: 5.95 16.30 20.95 7/2911 341102 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p341103-i50624768.scope; invocation ID: 22c802fe4b67403083f0ef1180903770 [WebServer] $ bun run build.ts [WebServer] built chunk-ycrqm9m4.js, chunk-tvynw18r.js, chunk-et1j6kyn.js, chunk-b5qzwpce.js, chunk-4r1bnasd.js, chunk-9hw30dn4.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zmcgbj18.js, chunk-2847mnga.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-gkntjarr.js, chunk-7nczvd3c.js, chunk-2vmvnwx8.js, chunk-qv6kq47y.js, chunk-yvhhqffe.js, chunk-6pk9bqn4.js, chunk-dvv094gh.js, chunk-0v5v4hyw.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-yw0t0x6e.js, chunk-ab4cyde4.js, chunk-fnbpr16r.js, chunk-e0dkcahv.js, chunk-8gqdshxw.js, chunk-erq65vhc.js, chunk-96ajv9kt.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8yaesxnn.js, chunk-98vkp97y.js, chunk-4wxkex5v.js, chunk-bkgf64dr.js, chunk-1d0qvnvb.js, chunk-wkf1dnze.js, chunk-axbkkqp1.js, chunk-ck3fkmjd.js, chunk-a5sfrg2n.js, chunk-ewnm1af0.js, chunk-4rzq5038.js, chunk-yf2k3rtn.js, chunk-qtmhkn2s.js, chunk-v86b5paa.js, chunk-ydedfhs0.js, chunk-g1ndzvhv.js, chunk-kwz4vre9.js, chunk-6zk1ysde.js, chunk-2e4yh13p.js, chunk-ysdt3mme.js, chunk-62naf7eh.js, chunk-4a6zzxrp.js, chunk-rd546868.js, chunk-p3j3zwdy.js, chunk-v3scj528.js, chunk-0zvxp0bh.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-xjaq8v9r.js, chunk-mka9kjjm.js, chunk-0sxn500c.js, chunk-fhhd10q3.js, chunk-f9ky2240.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 2 tests using 1 worker (node:341367) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/predictive-backspace.spec.ts:169:1 › backspace mixed with typing keeps the predicted cursor on exact cells at DPR 1 (9.2s) first-key cost 1.10 ms; rest max 0.60 ms ✓ 2 test/predictive-backspace.spec.ts:320:1 › the first predicted key stays within the per-key budget at DPR 1 (7.4s) 2 passed (23.2s) Invocation exit: 0 Load after: 5.43 15.34 20.51 5/2909 341949 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-predictive-echo.spec-13.log (1/1)

Load before: 5.43 15.34 20.51 5/2909 341949
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p341950-i50625615.scope; invocation ID: 1daab21dc4724b94b728906c1f2f32cd
[WebServer] $ bun run build.ts
[WebServer] built chunk-erm46te8.js, chunk-tvynw18r.js, chunk-jfr7mp0k.js, chunk-b5qzwpce.js, chunk-b198twp8.js, chunk-8nya9sb3.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-qefz2727.js, chunk-541at500.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-6tdnq4n8.js, chunk-7nczvd3c.js, chunk-q447by66.js, chunk-vb3mny5j.js, chunk-yvhhqffe.js, chunk-0h3m6qd5.js, chunk-za6436fm.js, chunk-zghvwd50.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-cb7b2fhc.js, chunk-j4ddnbxm.js, chunk-7gnyt074.js, chunk-ehq66hqh.js, chunk-8gqdshxw.js, chunk-z3cfkp02.js, chunk-ke02dwy4.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-c92ary8f.js, chunk-2dkpysxm.js, chunk-mg3tp5fb.js, chunk-ad4ddhpe.js, chunk-1d0qvnvb.js, chunk-1va2a3cx.js, chunk-axbkkqp1.js, chunk-nyr62gy5.js, chunk-3sqartcs.js, chunk-mbj3kz84.js, chunk-c1178mf4.js, chunk-c914xt82.js, chunk-czaeccpe.js, chunk-v86b5paa.js, chunk-qm8n00yj.js, chunk-d24pb0pb.js, chunk-6wcw3bp3.js, chunk-e00wr1pf.js, chunk-2e4yh13p.js, chunk-mtkczp5n.js, chunk-r7eg22j8.js, chunk-8a3vcr8j.js, chunk-gh6k6n6e.js, chunk-awxpas01.js, chunk-e76mf7ny.js, chunk-0ttkfpv1.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-d82kjbd4.js, chunk-ket8t2d2.js, chunk-0sxn500c.js, chunk-mmv5bk4h.js, chunk-rnarvcxr.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 2 tests using 1 worker

(node:342244) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (8.3s)
  ✘  2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (19.1s)


  1) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "visible"
    Received: "hidden"

      559 |       // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque.
      560 |       expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility))
    > 561 |         .toBe("visible");
          |          ^
      562 |
      563 |       await expect.poll(async () => {
      564 |         const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string };
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:561:10

    attachment #1: predictive-mobile-ink-pending (image/png) ───────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-da7dd55b38c3b74917026255e191f55ff79cddce.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: predictive-mobile-ink-confirmed (image/png) ─────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-confirmed-13a5d73b0a4416f61c8e68c098609f7bb7a8211b.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #3: predictive-mobile-paper-pending (image/png) ─────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-paper-pending-85217083c45cd77bec42800b7604972898fb1846.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #4: predictive-mobile-paper-confirmed (image/png) ───────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-paper-confirmed-c0e4bca84f580107a78501fea539ecf58b37f389.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #5: predictive-desktop-ink-pending (image/png) ──────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-desktop-ink-pending-2bfb2c40dca8950c660ff62bdf943fbc5b1354d3.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md

  1 failed
    test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 
  1 passed (34.2s)

Invocation exit: 1
Load after: 5.68 14.28 19.96 12/2946 343531
#163 verbatim evidence: browser-case-merge-predictive-echo.spec-13.log (1/1) ```text Load before: 5.43 15.34 20.51 5/2909 341949 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p341950-i50625615.scope; invocation ID: 1daab21dc4724b94b728906c1f2f32cd [WebServer] $ bun run build.ts [WebServer] built chunk-erm46te8.js, chunk-tvynw18r.js, chunk-jfr7mp0k.js, chunk-b5qzwpce.js, chunk-b198twp8.js, chunk-8nya9sb3.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-qefz2727.js, chunk-541at500.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-6tdnq4n8.js, chunk-7nczvd3c.js, chunk-q447by66.js, chunk-vb3mny5j.js, chunk-yvhhqffe.js, chunk-0h3m6qd5.js, chunk-za6436fm.js, chunk-zghvwd50.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-cb7b2fhc.js, chunk-j4ddnbxm.js, chunk-7gnyt074.js, chunk-ehq66hqh.js, chunk-8gqdshxw.js, chunk-z3cfkp02.js, chunk-ke02dwy4.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-c92ary8f.js, chunk-2dkpysxm.js, chunk-mg3tp5fb.js, chunk-ad4ddhpe.js, chunk-1d0qvnvb.js, chunk-1va2a3cx.js, chunk-axbkkqp1.js, chunk-nyr62gy5.js, chunk-3sqartcs.js, chunk-mbj3kz84.js, chunk-c1178mf4.js, chunk-c914xt82.js, chunk-czaeccpe.js, chunk-v86b5paa.js, chunk-qm8n00yj.js, chunk-d24pb0pb.js, chunk-6wcw3bp3.js, chunk-e00wr1pf.js, chunk-2e4yh13p.js, chunk-mtkczp5n.js, chunk-r7eg22j8.js, chunk-8a3vcr8j.js, chunk-gh6k6n6e.js, chunk-awxpas01.js, chunk-e76mf7ny.js, chunk-0ttkfpv1.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-d82kjbd4.js, chunk-ket8t2d2.js, chunk-0sxn500c.js, chunk-mmv5bk4h.js, chunk-rnarvcxr.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 2 tests using 1 worker (node:342244) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (8.3s) ✘ 2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (19.1s) 1) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes Error: expect(received).toBe(expected) // Object.is equality Expected: "visible" Received: "hidden" 559 | // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque. 560 | expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility)) > 561 | .toBe("visible"); | ^ 562 | 563 | await expect.poll(async () => { 564 | const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string }; at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:561:10 attachment #1: predictive-mobile-ink-pending (image/png) ─────────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-da7dd55b38c3b74917026255e191f55ff79cddce.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: predictive-mobile-ink-confirmed (image/png) ───────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-confirmed-13a5d73b0a4416f61c8e68c098609f7bb7a8211b.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: predictive-mobile-paper-pending (image/png) ───────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-paper-pending-85217083c45cd77bec42800b7604972898fb1846.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #4: predictive-mobile-paper-confirmed (image/png) ─────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-paper-confirmed-c0e4bca84f580107a78501fea539ecf58b37f389.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #5: predictive-desktop-ink-pending (image/png) ────────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-desktop-ink-pending-2bfb2c40dca8950c660ff62bdf943fbc5b1354d3.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md 1 failed test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 1 passed (34.2s) Invocation exit: 1 Load after: 5.68 14.28 19.96 12/2946 343531 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-recovery-ui-hold.spec-14.log (1/1)

Load before: 9.55 14.17 19.66 7/3000 346176
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p346177-i50629842.scope; invocation ID: d6d0fb453f644b76a6edf637c32ddd40
[WebServer] $ bun run build.ts
[WebServer] built chunk-swm3j4wf.js, chunk-tvynw18r.js, chunk-s48pha71.js, chunk-b5qzwpce.js, chunk-4sj5yvqw.js, chunk-yhs9ct51.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-r8ypgqdy.js, chunk-8g69ctt1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-xswdr9n7.js, chunk-7nczvd3c.js, chunk-esnq01ry.js, chunk-60bvxy7b.js, chunk-yvhhqffe.js, chunk-jhtkeam8.js, chunk-3s9c2nha.js, chunk-2qkefxx4.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-c3b7wzn5.js, chunk-wk3zsqjw.js, chunk-rq6vb4pw.js, chunk-r1dtahv7.js, chunk-8gqdshxw.js, chunk-kwpr0vf7.js, chunk-4bh13sbt.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-vhgfhzbe.js, chunk-sghb59hz.js, chunk-tn2p3f39.js, chunk-s165wsp5.js, chunk-1d0qvnvb.js, chunk-5r8s07q5.js, chunk-axbkkqp1.js, chunk-mzbyq68g.js, chunk-3s5dbfyr.js, chunk-tq470f2s.js, chunk-r0zg2jzj.js, chunk-8vv0fjbb.js, chunk-mjaeacbh.js, chunk-v86b5paa.js, chunk-9jds29cv.js, chunk-x5paxmrd.js, chunk-hb6ajqdd.js, chunk-r3n5snhz.js, chunk-2e4yh13p.js, chunk-xa18s475.js, chunk-r12y3t2a.js, chunk-p00r9amb.js, chunk-rbdb3hqn.js, chunk-zb1zka0v.js, chunk-32zszarp.js, chunk-0x74svkd.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ds4x0tdr.js, chunk-2n9ph68k.js, chunk-0sxn500c.js, chunk-sm5dh86r.js, chunk-nwv25c3f.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 4 tests using 1 worker

(node:346365) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points (2.2s)
(node:346549) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  2 test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points (4.4s)
(node:347632) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  3 test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points (3.0s)
(node:347973) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  4 test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points (3.5s)


  1) test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      3085 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-mobile.png

    Call log:
      - Expect "toHaveScreenshot(signin-mobile.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 3085 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 3085 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-mobile (image/png) ───────────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-linux.png
    Received: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-actual.png
    Diff:     test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/error-context.md

  2) test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      3048 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-desktop.png

    Call log:
      - Expect "toHaveScreenshot(signin-desktop.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 3048 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 3048 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-desktop (image/png) ──────────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-linux.png
    Received: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-actual.png
    Diff:     test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/error-context.md

  3) test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      2007 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-mobile-light.png

    Call log:
      - Expect "toHaveScreenshot(signin-mobile-light.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 2007 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 2007 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-mobile-light (image/png) ─────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-light-linux.png
    Received: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-actual.png
    Diff:     test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/error-context.md

  4) test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      2033 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-desktop-light.png

    Call log:
      - Expect "toHaveScreenshot(signin-desktop-light.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 2033 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 2033 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-desktop-light (image/png) ────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-light-linux.png
    Received: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-actual.png
    Diff:     test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/error-context.md

  4 failed
    test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points 

Invocation exit: 1
Load after: 8.21 13.48 19.28 6/3052 348370
#163 verbatim evidence: browser-case-merge-recovery-ui-hold.spec-14.log (1/1) ```text Load before: 9.55 14.17 19.66 7/3000 346176 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p346177-i50629842.scope; invocation ID: d6d0fb453f644b76a6edf637c32ddd40 [WebServer] $ bun run build.ts [WebServer] built chunk-swm3j4wf.js, chunk-tvynw18r.js, chunk-s48pha71.js, chunk-b5qzwpce.js, chunk-4sj5yvqw.js, chunk-yhs9ct51.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-r8ypgqdy.js, chunk-8g69ctt1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-xswdr9n7.js, chunk-7nczvd3c.js, chunk-esnq01ry.js, chunk-60bvxy7b.js, chunk-yvhhqffe.js, chunk-jhtkeam8.js, chunk-3s9c2nha.js, chunk-2qkefxx4.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-c3b7wzn5.js, chunk-wk3zsqjw.js, chunk-rq6vb4pw.js, chunk-r1dtahv7.js, chunk-8gqdshxw.js, chunk-kwpr0vf7.js, chunk-4bh13sbt.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-vhgfhzbe.js, chunk-sghb59hz.js, chunk-tn2p3f39.js, chunk-s165wsp5.js, chunk-1d0qvnvb.js, chunk-5r8s07q5.js, chunk-axbkkqp1.js, chunk-mzbyq68g.js, chunk-3s5dbfyr.js, chunk-tq470f2s.js, chunk-r0zg2jzj.js, chunk-8vv0fjbb.js, chunk-mjaeacbh.js, chunk-v86b5paa.js, chunk-9jds29cv.js, chunk-x5paxmrd.js, chunk-hb6ajqdd.js, chunk-r3n5snhz.js, chunk-2e4yh13p.js, chunk-xa18s475.js, chunk-r12y3t2a.js, chunk-p00r9amb.js, chunk-rbdb3hqn.js, chunk-zb1zka0v.js, chunk-32zszarp.js, chunk-0x74svkd.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ds4x0tdr.js, chunk-2n9ph68k.js, chunk-0sxn500c.js, chunk-sm5dh86r.js, chunk-nwv25c3f.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 4 tests using 1 worker (node:346365) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points (2.2s) (node:346549) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 2 test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points (4.4s) (node:347632) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 3 test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points (3.0s) (node:347973) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 4 test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points (3.5s) 1) test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 3085 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-mobile.png Call log: - Expect "toHaveScreenshot(signin-mobile.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 3085 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 3085 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-mobile (image/png) ─────────────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-linux.png Received: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-actual.png Diff: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/error-context.md 2) test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 3048 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-desktop.png Call log: - Expect "toHaveScreenshot(signin-desktop.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 3048 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 3048 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-desktop (image/png) ────────────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-linux.png Received: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-actual.png Diff: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/error-context.md 3) test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 2007 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-mobile-light.png Call log: - Expect "toHaveScreenshot(signin-mobile-light.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 2007 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 2007 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-mobile-light (image/png) ───────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-light-linux.png Received: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-actual.png Diff: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/error-context.md 4) test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 2033 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-desktop-light.png Call log: - Expect "toHaveScreenshot(signin-desktop-light.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 2033 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 2033 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-desktop-light (image/png) ──────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-light-linux.png Received: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-actual.png Diff: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/error-context.md 4 failed test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points Invocation exit: 1 Load after: 8.21 13.48 19.28 6/3052 348370 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-renderer-regression.spec-15.log (1/1)

Load before: 10.07 13.57 19.19 6/3056 350024
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p350025-i50633690.scope; invocation ID: d56135e4e58d493fa40c95080cf90111
[WebServer] $ bun run build.ts
[WebServer] built chunk-reh1e067.js, chunk-tvynw18r.js, chunk-c9ddz61b.js, chunk-b5qzwpce.js, chunk-pqzggm11.js, chunk-a156me8y.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-z9z9den2.js, chunk-8yc68rxk.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-kntnx0eh.js, chunk-7nczvd3c.js, chunk-xxywtj51.js, chunk-bw941ztg.js, chunk-yvhhqffe.js, chunk-1n47ker1.js, chunk-95c35ts6.js, chunk-ve7ee9h6.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4n3tmk0q.js, chunk-8gd288y3.js, chunk-ptqrxypx.js, chunk-m4kmx4qn.js, chunk-8gqdshxw.js, chunk-9340et5w.js, chunk-8sdp0fsj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-5rve9ax1.js, chunk-1m3y847t.js, chunk-m8qbmm4h.js, chunk-jcnqjh7p.js, chunk-1d0qvnvb.js, chunk-2sgja9fv.js, chunk-axbkkqp1.js, chunk-cka4e7zh.js, chunk-n2448fjj.js, chunk-2syc3600.js, chunk-rmx81my2.js, chunk-we2nhnv6.js, chunk-55pb5nv2.js, chunk-v86b5paa.js, chunk-ahfygeq4.js, chunk-0j3t320g.js, chunk-w2yhx6fy.js, chunk-e73xen6p.js, chunk-2e4yh13p.js, chunk-fhak2dr4.js, chunk-ertqn2sb.js, chunk-ss1y7df9.js, chunk-gkypae50.js, chunk-kd6k18w2.js, chunk-tetv89e3.js, chunk-mjyq4xvq.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-egesw7k8.js, chunk-yr9k5p92.js, chunk-0sxn500c.js, chunk-f4x6ka2n.js, chunk-by2z0b4k.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 3 tests using 1 worker

(node:350178) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
minimal-combining-5679.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=279, wasm=11730944 B
minimal-combining-5679.bin: grid=205x56, scrollback=0, wasm=11730944 B
  ✓  1 test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary (8.0s)
binary.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=10, wasm=11534336 B
binary.bin: grid=205x56, scrollback=0, wasm=11534336 B
  ✓  2 test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary (46.2s)
METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=20239 throughput_mbps=2.47
  ✘  3 test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent (33.3s)


  1) test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 

    Error: apiRequestContext.post: socket hang up
    Call log:
      - → POST http://localhost:4643/__mock/fixture
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 23
        - cookie: __Host-infraternal=ncUcuh8YK4xAw6A8BazCYt8QSOSgQ8_RrRo2aagByTg


      170 |       await page.setViewportSize({ width: 1440, height: 900 });
      171 |       const startedAt = Date.now();
    > 172 |       const response = await context.request.post("/__mock/fixture", { data: { name: fixtureName } });
          |                                              ^
      173 |       expect(response.status()).toBe(200);
      174 |       await expect.poll(async () => BigInt(await page.evaluate(
      175 |         () => window.__tracerTestDouble?.rendererMetrics()?.outputSequence ?? "0",
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/renderer-regression.spec.ts:172:46

    Error Context: test-results/renderer-regression-predic-2f890-oughput-within-five-percent/error-context.md

  1 failed
    test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 
  2 passed (1.6m)

Invocation exit: 1
Load after: 13.43 13.35 18.53 15/3042 355081
#163 verbatim evidence: browser-case-merge-renderer-regression.spec-15.log (1/1) ```text Load before: 10.07 13.57 19.19 6/3056 350024 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p350025-i50633690.scope; invocation ID: d56135e4e58d493fa40c95080cf90111 [WebServer] $ bun run build.ts [WebServer] built chunk-reh1e067.js, chunk-tvynw18r.js, chunk-c9ddz61b.js, chunk-b5qzwpce.js, chunk-pqzggm11.js, chunk-a156me8y.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-z9z9den2.js, chunk-8yc68rxk.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-kntnx0eh.js, chunk-7nczvd3c.js, chunk-xxywtj51.js, chunk-bw941ztg.js, chunk-yvhhqffe.js, chunk-1n47ker1.js, chunk-95c35ts6.js, chunk-ve7ee9h6.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4n3tmk0q.js, chunk-8gd288y3.js, chunk-ptqrxypx.js, chunk-m4kmx4qn.js, chunk-8gqdshxw.js, chunk-9340et5w.js, chunk-8sdp0fsj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-5rve9ax1.js, chunk-1m3y847t.js, chunk-m8qbmm4h.js, chunk-jcnqjh7p.js, chunk-1d0qvnvb.js, chunk-2sgja9fv.js, chunk-axbkkqp1.js, chunk-cka4e7zh.js, chunk-n2448fjj.js, chunk-2syc3600.js, chunk-rmx81my2.js, chunk-we2nhnv6.js, chunk-55pb5nv2.js, chunk-v86b5paa.js, chunk-ahfygeq4.js, chunk-0j3t320g.js, chunk-w2yhx6fy.js, chunk-e73xen6p.js, chunk-2e4yh13p.js, chunk-fhak2dr4.js, chunk-ertqn2sb.js, chunk-ss1y7df9.js, chunk-gkypae50.js, chunk-kd6k18w2.js, chunk-tetv89e3.js, chunk-mjyq4xvq.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-egesw7k8.js, chunk-yr9k5p92.js, chunk-0sxn500c.js, chunk-f4x6ka2n.js, chunk-by2z0b4k.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 3 tests using 1 worker (node:350178) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) minimal-combining-5679.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=279, wasm=11730944 B minimal-combining-5679.bin: grid=205x56, scrollback=0, wasm=11730944 B ✓ 1 test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary (8.0s) binary.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=10, wasm=11534336 B binary.bin: grid=205x56, scrollback=0, wasm=11534336 B ✓ 2 test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary (46.2s) METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=20239 throughput_mbps=2.47 ✘ 3 test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent (33.3s) 1) test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent Error: apiRequestContext.post: socket hang up Call log: - → POST http://localhost:4643/__mock/fixture - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 23 - cookie: __Host-infraternal=ncUcuh8YK4xAw6A8BazCYt8QSOSgQ8_RrRo2aagByTg 170 | await page.setViewportSize({ width: 1440, height: 900 }); 171 | const startedAt = Date.now(); > 172 | const response = await context.request.post("/__mock/fixture", { data: { name: fixtureName } }); | ^ 173 | expect(response.status()).toBe(200); 174 | await expect.poll(async () => BigInt(await page.evaluate( 175 | () => window.__tracerTestDouble?.rendererMetrics()?.outputSequence ?? "0", at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/renderer-regression.spec.ts:172:46 Error Context: test-results/renderer-regression-predic-2f890-oughput-within-five-percent/error-context.md 1 failed test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 2 passed (1.6m) Invocation exit: 1 Load after: 13.43 13.35 18.53 15/3042 355081 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-retry-clusters-swipes.spec-1.log (1/1)

Load before: 21.53 33.56 29.71 8/3024 472265
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p472266-i50755879.scope; invocation ID: 57dedf3bb50549e68e583512a692b731
[WebServer] $ bun run build.ts
[WebServer] built chunk-2tfh2nhj.js, chunk-tvynw18r.js, chunk-beqysdr7.js, chunk-b5qzwpce.js, chunk-et067347.js, chunk-53apztxz.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-eggf384g.js, chunk-8z54w84m.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-5xaq85d3.js, chunk-7nczvd3c.js, chunk-59s6ejby.js, chunk-37h6h6ft.js, chunk-yvhhqffe.js, chunk-sqnzdvrf.js, chunk-f91dzw8m.js, chunk-sd48w6br.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-aznydxew.js, chunk-d0vqngbd.js, chunk-ztahbbyj.js, chunk-8gm3x4hd.js, chunk-8gqdshxw.js, chunk-5e0mb1hf.js, chunk-br9995rr.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-xxz66s39.js, chunk-54jzwgtn.js, chunk-8tscm32j.js, chunk-r3f7r6tz.js, chunk-1d0qvnvb.js, chunk-3xp27htf.js, chunk-axbkkqp1.js, chunk-rc0t1188.js, chunk-mp1387s6.js, chunk-sh4jk10m.js, chunk-vh8a3vzy.js, chunk-hrkyz7aa.js, chunk-nhnst4mv.js, chunk-v86b5paa.js, chunk-va422pcc.js, chunk-kbh8ngkc.js, chunk-8z19gdwq.js, chunk-k8sy1x6g.js, chunk-2e4yh13p.js, chunk-3brk5ca4.js, chunk-1g7ftxyp.js, chunk-a6skrh2f.js, chunk-pvg7gzf7.js, chunk-9zwrb73m.js, chunk-5frsy8fq.js, chunk-efpwfsjq.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-0vrzgxdf.js, chunk-sradt5m3.js, chunk-0sxn500c.js, chunk-dy3vekk6.js, chunk-nkn8rwv6.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 2 tests using 1 worker

(node:472472) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (13.5s)
  ✓  2 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (9.4s)

  2 passed (36.3s)

Invocation exit: 0
Load after: 15.40 30.70 28.90 6/3000 473019
#163 verbatim evidence: browser-case-merge-retry-clusters-swipes.spec-1.log (1/1) ```text Load before: 21.53 33.56 29.71 8/3024 472265 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p472266-i50755879.scope; invocation ID: 57dedf3bb50549e68e583512a692b731 [WebServer] $ bun run build.ts [WebServer] built chunk-2tfh2nhj.js, chunk-tvynw18r.js, chunk-beqysdr7.js, chunk-b5qzwpce.js, chunk-et067347.js, chunk-53apztxz.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-eggf384g.js, chunk-8z54w84m.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-5xaq85d3.js, chunk-7nczvd3c.js, chunk-59s6ejby.js, chunk-37h6h6ft.js, chunk-yvhhqffe.js, chunk-sqnzdvrf.js, chunk-f91dzw8m.js, chunk-sd48w6br.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-aznydxew.js, chunk-d0vqngbd.js, chunk-ztahbbyj.js, chunk-8gm3x4hd.js, chunk-8gqdshxw.js, chunk-5e0mb1hf.js, chunk-br9995rr.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-xxz66s39.js, chunk-54jzwgtn.js, chunk-8tscm32j.js, chunk-r3f7r6tz.js, chunk-1d0qvnvb.js, chunk-3xp27htf.js, chunk-axbkkqp1.js, chunk-rc0t1188.js, chunk-mp1387s6.js, chunk-sh4jk10m.js, chunk-vh8a3vzy.js, chunk-hrkyz7aa.js, chunk-nhnst4mv.js, chunk-v86b5paa.js, chunk-va422pcc.js, chunk-kbh8ngkc.js, chunk-8z19gdwq.js, chunk-k8sy1x6g.js, chunk-2e4yh13p.js, chunk-3brk5ca4.js, chunk-1g7ftxyp.js, chunk-a6skrh2f.js, chunk-pvg7gzf7.js, chunk-9zwrb73m.js, chunk-5frsy8fq.js, chunk-efpwfsjq.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-0vrzgxdf.js, chunk-sradt5m3.js, chunk-0sxn500c.js, chunk-dy3vekk6.js, chunk-nkn8rwv6.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 2 tests using 1 worker (node:472472) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (13.5s) ✓ 2 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (9.4s) 2 passed (36.3s) Invocation exit: 0 Load after: 15.40 30.70 28.90 6/3000 473019 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-retry-mesh-perf.spec-6.log (1/1)

Load before: 15.40 30.70 28.90 8/3000 473019
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p473020-i50756633.scope; invocation ID: 542539f8015144829f5b2a9063dca859
[WebServer] $ bun run build.ts
[WebServer] built chunk-n6nbcaf4.js, chunk-tvynw18r.js, chunk-92r48ezm.js, chunk-b5qzwpce.js, chunk-n4wtzm7r.js, chunk-2qht927j.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-s0vzswcx.js, chunk-7dfspw0f.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-jqe100tn.js, chunk-7nczvd3c.js, chunk-rbev6s4y.js, chunk-fx2472j6.js, chunk-yvhhqffe.js, chunk-m054kxqv.js, chunk-f1d8n8k8.js, chunk-ad5d540v.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-tx040cp2.js, chunk-96pn6n29.js, chunk-dg9ktq7p.js, chunk-sace9ttv.js, chunk-8gqdshxw.js, chunk-3whhfek9.js, chunk-mg0baqay.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-fftv3v7v.js, chunk-dj4tq5ym.js, chunk-xdjr1hpr.js, chunk-2b5sawqk.js, chunk-1d0qvnvb.js, chunk-p3c3ryqh.js, chunk-axbkkqp1.js, chunk-q48fsd4j.js, chunk-969mydty.js, chunk-yfa57dyd.js, chunk-0fv9tdw2.js, chunk-fcg0d38d.js, chunk-v0en0321.js, chunk-v86b5paa.js, chunk-7q0a39zw.js, chunk-e97npye0.js, chunk-6xhf94zz.js, chunk-5a6y4dvp.js, chunk-2e4yh13p.js, chunk-cmp443f3.js, chunk-tpb9kcnh.js, chunk-8dzdhy37.js, chunk-pmr4vd0s.js, chunk-cbtkx7s3.js, chunk-dc8ssser.js, chunk-0v5n434p.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-88qg2eq4.js, chunk-5cwp9yeg.js, chunk-0sxn500c.js, chunk-hved2gqj.js, chunk-prs7b7vq.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 1 test using 1 worker

(node:474091) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
MESH-PERF load/core=3.21 {"zoom":{"top":"UpdateLayoutTree=65ms Layout=17ms PrePaint=18ms Paint=70ms Layerize=88ms FireAnimationFrame=32ms EventDispatch=21ms RunTask=362ms","n":38,"p50":5.6,"p95":24.14,"max":56.54,"over8":9},"pan":{"top":"UpdateLayoutTree=108ms Layout=49ms PrePaint=22ms Paint=183ms Layerize=232ms FireAnimationFrame=124ms EventDispatch=27ms RunTask=865ms","n":89,"p50":6.92,"p95":27.02,"max":50.61,"over8":37},"drag":{"top":"UpdateLayoutTree=1ms Layout=3ms PrePaint=7ms Paint=5ms Layerize=2ms FireAnimationFrame=64ms EventDispatch=37ms RunTask=510ms","n":269,"p50":0.84,"p95":2.51,"max":6.1,"over8":0}}
  ✓  1 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (39.4s)

  1 passed (51.3s)

Invocation exit: 0
Load after: 25.68 30.66 28.97 42/3205 481318
#163 verbatim evidence: browser-case-merge-retry-mesh-perf.spec-6.log (1/1) ```text Load before: 15.40 30.70 28.90 8/3000 473019 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p473020-i50756633.scope; invocation ID: 542539f8015144829f5b2a9063dca859 [WebServer] $ bun run build.ts [WebServer] built chunk-n6nbcaf4.js, chunk-tvynw18r.js, chunk-92r48ezm.js, chunk-b5qzwpce.js, chunk-n4wtzm7r.js, chunk-2qht927j.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-s0vzswcx.js, chunk-7dfspw0f.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-jqe100tn.js, chunk-7nczvd3c.js, chunk-rbev6s4y.js, chunk-fx2472j6.js, chunk-yvhhqffe.js, chunk-m054kxqv.js, chunk-f1d8n8k8.js, chunk-ad5d540v.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-tx040cp2.js, chunk-96pn6n29.js, chunk-dg9ktq7p.js, chunk-sace9ttv.js, chunk-8gqdshxw.js, chunk-3whhfek9.js, chunk-mg0baqay.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-fftv3v7v.js, chunk-dj4tq5ym.js, chunk-xdjr1hpr.js, chunk-2b5sawqk.js, chunk-1d0qvnvb.js, chunk-p3c3ryqh.js, chunk-axbkkqp1.js, chunk-q48fsd4j.js, chunk-969mydty.js, chunk-yfa57dyd.js, chunk-0fv9tdw2.js, chunk-fcg0d38d.js, chunk-v0en0321.js, chunk-v86b5paa.js, chunk-7q0a39zw.js, chunk-e97npye0.js, chunk-6xhf94zz.js, chunk-5a6y4dvp.js, chunk-2e4yh13p.js, chunk-cmp443f3.js, chunk-tpb9kcnh.js, chunk-8dzdhy37.js, chunk-pmr4vd0s.js, chunk-cbtkx7s3.js, chunk-dc8ssser.js, chunk-0v5n434p.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-88qg2eq4.js, chunk-5cwp9yeg.js, chunk-0sxn500c.js, chunk-hved2gqj.js, chunk-prs7b7vq.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 1 test using 1 worker (node:474091) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) MESH-PERF load/core=3.21 {"zoom":{"top":"UpdateLayoutTree=65ms Layout=17ms PrePaint=18ms Paint=70ms Layerize=88ms FireAnimationFrame=32ms EventDispatch=21ms RunTask=362ms","n":38,"p50":5.6,"p95":24.14,"max":56.54,"over8":9},"pan":{"top":"UpdateLayoutTree=108ms Layout=49ms PrePaint=22ms Paint=183ms Layerize=232ms FireAnimationFrame=124ms EventDispatch=27ms RunTask=865ms","n":89,"p50":6.92,"p95":27.02,"max":50.61,"over8":37},"drag":{"top":"UpdateLayoutTree=1ms Layout=3ms PrePaint=7ms Paint=5ms Layerize=2ms FireAnimationFrame=64ms EventDispatch=37ms RunTask=510ms","n":269,"p50":0.84,"p95":2.51,"max":6.1,"over8":0}} ✓ 1 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (39.4s) 1 passed (51.3s) Invocation exit: 0 Load after: 25.68 30.66 28.97 42/3205 481318 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-retry-predictive-echo.spec-13.log (1/1)

Load before: 25.68 30.66 28.97 45/3207 481321
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p481322-i50764935.scope; invocation ID: 2d89277e9e2c47a4878e015956bf9a9f
[WebServer] $ bun run build.ts
[WebServer] built chunk-bm92t8m4.js, chunk-tvynw18r.js, chunk-n8mzewp8.js, chunk-b5qzwpce.js, chunk-774ajxnf.js, chunk-18pa391v.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zatdyc7r.js, chunk-zxdpjar1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-h96c1cce.js, chunk-7nczvd3c.js, chunk-fnfvtrke.js, chunk-e32n90z2.js, chunk-yvhhqffe.js, chunk-z0bewj43.js, chunk-sm40b4sp.js, chunk-6tewhqek.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-n7821pgy.js, chunk-5z48s25d.js, chunk-5zr9j96x.js, chunk-b4t2hpwz.js, chunk-8gqdshxw.js, chunk-qet22mkk.js, chunk-81j2f4rw.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-x9f7ynzc.js, chunk-ynk1h7sn.js, chunk-aeysvjhv.js, chunk-41mhnjp7.js, chunk-1d0qvnvb.js, chunk-nqakj4aq.js, chunk-axbkkqp1.js, chunk-d0b8tkfz.js, chunk-e3fdz2qm.js, chunk-ra8785en.js, chunk-hf5s7fq0.js, chunk-7f1385nq.js, chunk-n7t0r0f7.js, chunk-v86b5paa.js, chunk-md6yt6s7.js, chunk-qs8hym5h.js, chunk-pty3feeq.js, chunk-3e221ras.js, chunk-2e4yh13p.js, chunk-bbyjj2vk.js, chunk-m736w5wx.js, chunk-bfemcz0q.js, chunk-twxmf9zh.js, chunk-59756jyf.js, chunk-c40b7rz8.js, chunk-4h0mp62a.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ptgm14fc.js, chunk-7sa08b85.js, chunk-0sxn500c.js, chunk-9rehc2xx.js, chunk-km8p2wqv.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 2 tests using 1 worker

(node:482448) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (21.6s)
(node:484796) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (20.5s)


  1) test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

      405 |   expect(pendingShortPixels.scaleX).toBe(dpr);
      406 |   expect(pendingShortPixels.scaleY).toBe(dpr);
    > 407 |   expect(pendingShortPixels.glyphPixels.every((count) => count > 0)).toBe(true);
          |                                                                      ^
      408 |   expectCursorPixelBounds(pendingShortPixels, pendingCursorBox, dpr);
      409 |   await testInfo.attach(`predictive-dpr${dpr}-short-pending.png`, {
      410 |     body: pendingShortPng,
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:407:70

    Error Context: test-results/predictive-echo-predicted--8ce89-ch-confirmed-cells-at-DPR-1/error-context.md

  2) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "visible"
    Received: "hidden"

      559 |       // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque.
      560 |       expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility))
    > 561 |         .toBe("visible");
          |          ^
      562 |
      563 |       await expect.poll(async () => {
      564 |         const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string };
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:561:10

    attachment #1: predictive-mobile-ink-pending (image/png) ───────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-da7dd55b38c3b74917026255e191f55ff79cddce.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: predictive-mobile-ink-confirmed (image/png) ─────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-confirmed-13a5d73b0a4416f61c8e68c098609f7bb7a8211b.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #3: predictive-mobile-paper-pending (image/png) ─────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-paper-pending-85217083c45cd77bec42800b7604972898fb1846.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md

  2 failed
    test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 
    test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 

Invocation exit: 1
Load after: 27.80 30.72 29.10 9/3108 486271
#163 verbatim evidence: browser-case-merge-retry-predictive-echo.spec-13.log (1/1) ```text Load before: 25.68 30.66 28.97 45/3207 481321 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p481322-i50764935.scope; invocation ID: 2d89277e9e2c47a4878e015956bf9a9f [WebServer] $ bun run build.ts [WebServer] built chunk-bm92t8m4.js, chunk-tvynw18r.js, chunk-n8mzewp8.js, chunk-b5qzwpce.js, chunk-774ajxnf.js, chunk-18pa391v.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-zatdyc7r.js, chunk-zxdpjar1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-h96c1cce.js, chunk-7nczvd3c.js, chunk-fnfvtrke.js, chunk-e32n90z2.js, chunk-yvhhqffe.js, chunk-z0bewj43.js, chunk-sm40b4sp.js, chunk-6tewhqek.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-n7821pgy.js, chunk-5z48s25d.js, chunk-5zr9j96x.js, chunk-b4t2hpwz.js, chunk-8gqdshxw.js, chunk-qet22mkk.js, chunk-81j2f4rw.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-x9f7ynzc.js, chunk-ynk1h7sn.js, chunk-aeysvjhv.js, chunk-41mhnjp7.js, chunk-1d0qvnvb.js, chunk-nqakj4aq.js, chunk-axbkkqp1.js, chunk-d0b8tkfz.js, chunk-e3fdz2qm.js, chunk-ra8785en.js, chunk-hf5s7fq0.js, chunk-7f1385nq.js, chunk-n7t0r0f7.js, chunk-v86b5paa.js, chunk-md6yt6s7.js, chunk-qs8hym5h.js, chunk-pty3feeq.js, chunk-3e221ras.js, chunk-2e4yh13p.js, chunk-bbyjj2vk.js, chunk-m736w5wx.js, chunk-bfemcz0q.js, chunk-twxmf9zh.js, chunk-59756jyf.js, chunk-c40b7rz8.js, chunk-4h0mp62a.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ptgm14fc.js, chunk-7sa08b85.js, chunk-0sxn500c.js, chunk-9rehc2xx.js, chunk-km8p2wqv.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 2 tests using 1 worker (node:482448) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (21.6s) (node:484796) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (20.5s) 1) test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 405 | expect(pendingShortPixels.scaleX).toBe(dpr); 406 | expect(pendingShortPixels.scaleY).toBe(dpr); > 407 | expect(pendingShortPixels.glyphPixels.every((count) => count > 0)).toBe(true); | ^ 408 | expectCursorPixelBounds(pendingShortPixels, pendingCursorBox, dpr); 409 | await testInfo.attach(`predictive-dpr${dpr}-short-pending.png`, { 410 | body: pendingShortPng, at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:407:70 Error Context: test-results/predictive-echo-predicted--8ce89-ch-confirmed-cells-at-DPR-1/error-context.md 2) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes Error: expect(received).toBe(expected) // Object.is equality Expected: "visible" Received: "hidden" 559 | // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque. 560 | expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility)) > 561 | .toBe("visible"); | ^ 562 | 563 | await expect.poll(async () => { 564 | const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string }; at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:561:10 attachment #1: predictive-mobile-ink-pending (image/png) ─────────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-da7dd55b38c3b74917026255e191f55ff79cddce.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: predictive-mobile-ink-confirmed (image/png) ───────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-confirmed-13a5d73b0a4416f61c8e68c098609f7bb7a8211b.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: predictive-mobile-paper-pending (image/png) ───────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-paper-pending-85217083c45cd77bec42800b7604972898fb1846.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md 2 failed test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes Invocation exit: 1 Load after: 27.80 30.72 29.10 9/3108 486271 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-retry2-predictive-echo.spec-13.log (1/1)

Load before: 22.72 30.09 29.35 15/3317 550831
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p550832-i50834445.scope; invocation ID: d0b500b29ef64aad8a83a7ff67aa96fc
[WebServer] $ bun run build.ts
[WebServer] built chunk-8ze023zc.js, chunk-tvynw18r.js, chunk-7ecxfy0g.js, chunk-b5qzwpce.js, chunk-vtkkf88p.js, chunk-7a6t1eyv.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-s4yw0581.js, chunk-14r8fqje.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-mtpz93fm.js, chunk-7nczvd3c.js, chunk-371v34at.js, chunk-b6vyzege.js, chunk-yvhhqffe.js, chunk-rrjfze1m.js, chunk-38vjjhef.js, chunk-b140yxp9.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-wm7nznea.js, chunk-yzevt08z.js, chunk-dm3hn59d.js, chunk-1b11dacz.js, chunk-8gqdshxw.js, chunk-ymxk1n08.js, chunk-gq0khpaj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-sy10zjqe.js, chunk-zdanyd45.js, chunk-tey4tyew.js, chunk-apkq1e96.js, chunk-1d0qvnvb.js, chunk-haq79zak.js, chunk-axbkkqp1.js, chunk-1c9hck5k.js, chunk-rzb26553.js, chunk-zkbhzz2w.js, chunk-zxrrhv8a.js, chunk-655p4sr9.js, chunk-hsra5ear.js, chunk-v86b5paa.js, chunk-0m1dp749.js, chunk-b2t8ggjh.js, chunk-76gzps34.js, chunk-x0mpznsq.js, chunk-2e4yh13p.js, chunk-32tr0fwe.js, chunk-zswa73ms.js, chunk-7cbmqd93.js, chunk-w5sejx7y.js, chunk-wzp00b10.js, chunk-22qc9t75.js, chunk-arndfe9t.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5nxq78xw.js, chunk-76jwqn23.js, chunk-0sxn500c.js, chunk-6821c1mn.js, chunk-a231bcwm.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 2 tests using 1 worker

(node:552310) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (12.7s)
  ✘  2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (8.4s)


  1) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "visible"
    Received: "hidden"

      559 |       // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque.
      560 |       expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility))
    > 561 |         .toBe("visible");
          |          ^
      562 |
      563 |       await expect.poll(async () => {
      564 |         const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string };
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:561:10

    attachment #1: predictive-mobile-ink-pending (image/png) ───────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-da7dd55b38c3b74917026255e191f55ff79cddce.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md

  1 failed
    test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 
  1 passed (31.3s)

Invocation exit: 1
Load after: 27.57 30.40 29.48 41/3221 556962
#163 verbatim evidence: browser-case-merge-retry2-predictive-echo.spec-13.log (1/1) ```text Load before: 22.72 30.09 29.35 15/3317 550831 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p550832-i50834445.scope; invocation ID: d0b500b29ef64aad8a83a7ff67aa96fc [WebServer] $ bun run build.ts [WebServer] built chunk-8ze023zc.js, chunk-tvynw18r.js, chunk-7ecxfy0g.js, chunk-b5qzwpce.js, chunk-vtkkf88p.js, chunk-7a6t1eyv.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-s4yw0581.js, chunk-14r8fqje.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-mtpz93fm.js, chunk-7nczvd3c.js, chunk-371v34at.js, chunk-b6vyzege.js, chunk-yvhhqffe.js, chunk-rrjfze1m.js, chunk-38vjjhef.js, chunk-b140yxp9.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-wm7nznea.js, chunk-yzevt08z.js, chunk-dm3hn59d.js, chunk-1b11dacz.js, chunk-8gqdshxw.js, chunk-ymxk1n08.js, chunk-gq0khpaj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-sy10zjqe.js, chunk-zdanyd45.js, chunk-tey4tyew.js, chunk-apkq1e96.js, chunk-1d0qvnvb.js, chunk-haq79zak.js, chunk-axbkkqp1.js, chunk-1c9hck5k.js, chunk-rzb26553.js, chunk-zkbhzz2w.js, chunk-zxrrhv8a.js, chunk-655p4sr9.js, chunk-hsra5ear.js, chunk-v86b5paa.js, chunk-0m1dp749.js, chunk-b2t8ggjh.js, chunk-76gzps34.js, chunk-x0mpznsq.js, chunk-2e4yh13p.js, chunk-32tr0fwe.js, chunk-zswa73ms.js, chunk-7cbmqd93.js, chunk-w5sejx7y.js, chunk-wzp00b10.js, chunk-22qc9t75.js, chunk-arndfe9t.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5nxq78xw.js, chunk-76jwqn23.js, chunk-0sxn500c.js, chunk-6821c1mn.js, chunk-a231bcwm.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 2 tests using 1 worker (node:552310) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (12.7s) ✘ 2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (8.4s) 1) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes Error: expect(received).toBe(expected) // Object.is equality Expected: "visible" Received: "hidden" 559 | // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque. 560 | expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility)) > 561 | .toBe("visible"); | ^ 562 | 563 | await expect.poll(async () => { 564 | const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string }; at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/predictive-echo.spec.ts:561:10 attachment #1: predictive-mobile-ink-pending (image/png) ─────────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-da7dd55b38c3b74917026255e191f55ff79cddce.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md 1 failed test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 1 passed (31.3s) Invocation exit: 1 Load after: 27.57 30.40 29.48 41/3221 556962 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-sessions-canvas.spec-16.log (1/1)

Load before: 15.71 13.91 18.37 16/3039 362674
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p362675-i50646337.scope; invocation ID: 499c1e403495466c8819ef6b3b608f1c
[WebServer] $ bun run build.ts
[WebServer] built chunk-g8gmwbmm.js, chunk-tvynw18r.js, chunk-tbdspm6q.js, chunk-b5qzwpce.js, chunk-6vcdg1xr.js, chunk-674nawbh.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-sdt9rhbn.js, chunk-f9f0qrtf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-0hvkkr37.js, chunk-7nczvd3c.js, chunk-1c4aqgka.js, chunk-7v9btfcj.js, chunk-yvhhqffe.js, chunk-6aep6v15.js, chunk-8g2e91hy.js, chunk-37jgnxbt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-t2geta9r.js, chunk-5s5jh8sr.js, chunk-m081r3w0.js, chunk-j95ycabs.js, chunk-8gqdshxw.js, chunk-ptcx4407.js, chunk-0r2hrxpq.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-80xqd48g.js, chunk-a6b4q7vz.js, chunk-xkw2a8yq.js, chunk-5ea5rty2.js, chunk-1d0qvnvb.js, chunk-sv9v5n1t.js, chunk-axbkkqp1.js, chunk-bvcdwve2.js, chunk-cpvjxnnv.js, chunk-0hj56w3h.js, chunk-ppm9ft4n.js, chunk-mavtcza7.js, chunk-mcbqtz1c.js, chunk-v86b5paa.js, chunk-yt7hjsqx.js, chunk-dbca8rh2.js, chunk-8asmsy8q.js, chunk-xv7fcg1w.js, chunk-2e4yh13p.js, chunk-zngedjve.js, chunk-mg1nc1nb.js, chunk-arv7pv6n.js, chunk-hz566297.js, chunk-1j9y3yvc.js, chunk-w8gsy6ce.js, chunk-nwsq25b8.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-v1kxw0qm.js, chunk-4pg4ew6j.js, chunk-0sxn500c.js, chunk-6tkvhk09.js, chunk-tnf72z21.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 6 tests using 1 worker

(node:364313) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill (7.7s)
(node:366384) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  2 test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column (30.0s)
(node:371948) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  3 test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm (30.0s)
(node:375243) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  4 test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger (30.0s)
(node:380023) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  5 test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows (20.1s)
  ✘  6 test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window (15.2s)


  1) test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ─

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 0
    + Received  + 1

      Array [
        "Split right",
        "Split down",
        "Sessions",
        "Close",
    +   "More window actions",
      ]

      66 |       expect(geometry.actionsH).toBe(geometry.pillH);
      67 |       expect(geometry.border).toBe("1px");
    > 68 |       expect(geometry.labels).toEqual(["Split right", "Split down", "Sessions", "Close"]);
         |                               ^
      69 |       expect(geometry.inside).toBe(true);
      70 |       expect(geometry.titleClipped).toBe(true);
      71 |     } finally { await context.close(); }
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:68:31

    Error Context: test-results/sessions-canvas-a-window-s-bfaee-l-as-tall-as-its-title-pill/error-context.md

  2) test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      274 |     expect(columns).toContain(2);
      275 |     await expect(page.locator(".ui-window .ui-window-session", { hasText: "infraternal" })).toHaveCount(2, { timeout: 5000 });
    > 276 |   } finally { await context.close(); }
          |               ^
      277 | });
      278 |
      279 | test("another device typed last: scaled to fit, a badge says so, typing takes the size over", async ({ browser }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:276:15

    Error Context: test-results/sessions-canvas-both-split-fa6c2-own-stacks-it-in-the-column/error-context.md

  3) test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      331 |     await expect(failed.page.locator(".cl-sx-state[data-kind='loading']")).toBeVisible();
      332 |     await expect(failed.page.locator(".cl-sx-row")).toHaveCount(6, { timeout: 6000 });
    > 333 |   } finally { await failed.context.close(); }
          |               ^
      334 | });
      335 |
      336 | test("mouse and shortcuts draw no focus ring; Tab does", async ({ browser }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:333:15

    Error Context: test-results/sessions-canvas-the-empty--a4659-s-keep-the-product-s-rhythm/error-context.md

  4) test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-VI0Sjb --remote-debugging-pipe --no-startup-window
    <launched> pid=375387
    [pid=375387][err] [1011/170723.194577:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=375387] <gracefully close start>

      367 |     await expect(page.locator(".cl-sx-pop")).toBeVisible();
      368 |     expect(await stateOf(page, "build-01", "journal")).toBe("detached");
    > 369 |   } finally { await context.close(); }
          |               ^
      370 | });
      371 |
      372 | test("scenes run one after another and each starts from the same four windows", async ({ browser }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:369:15

    Error Context: test-results/sessions-canvas-on-touch-e-591a9-es-open-1-1-with-the-finger/error-context.md

  5) test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 

    Error: expect(locator).toBeVisible() failed

    Locator: locator('.cl-sx-pop')
    Expected: visible
    Timeout: 8000ms
    Error: element(s) not found

    Call log:
      - Expect "toBeVisible" with timeout 8000ms
      - waiting for locator('.cl-sx-pop')


      412 |     await expect(item).toBeEnabled();
      413 |     await item.tap();
    > 414 |     await expect(page.locator(".cl-sx-pop")).toBeVisible({ timeout: 8000 });
          |                                              ^
      415 |     await expect(page.locator(".cl-sx-title")).toHaveText("build-01");
      416 |   } finally { await context.close(); }
      417 | });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:414:46

    Error Context: test-results/sessions-canvas-on-a-phone-87ddb-anager-of-the-active-window/error-context.md

  5 failed
    test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ──
    test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column 
    test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm 
    test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger 
    test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 
  1 passed (2.5m)

Invocation exit: 1
Load after: 22.01 18.34 19.42 20/3115 384641
#163 verbatim evidence: browser-case-merge-sessions-canvas.spec-16.log (1/1) ```text Load before: 15.71 13.91 18.37 16/3039 362674 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p362675-i50646337.scope; invocation ID: 499c1e403495466c8819ef6b3b608f1c [WebServer] $ bun run build.ts [WebServer] built chunk-g8gmwbmm.js, chunk-tvynw18r.js, chunk-tbdspm6q.js, chunk-b5qzwpce.js, chunk-6vcdg1xr.js, chunk-674nawbh.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-sdt9rhbn.js, chunk-f9f0qrtf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-0hvkkr37.js, chunk-7nczvd3c.js, chunk-1c4aqgka.js, chunk-7v9btfcj.js, chunk-yvhhqffe.js, chunk-6aep6v15.js, chunk-8g2e91hy.js, chunk-37jgnxbt.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-t2geta9r.js, chunk-5s5jh8sr.js, chunk-m081r3w0.js, chunk-j95ycabs.js, chunk-8gqdshxw.js, chunk-ptcx4407.js, chunk-0r2hrxpq.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-80xqd48g.js, chunk-a6b4q7vz.js, chunk-xkw2a8yq.js, chunk-5ea5rty2.js, chunk-1d0qvnvb.js, chunk-sv9v5n1t.js, chunk-axbkkqp1.js, chunk-bvcdwve2.js, chunk-cpvjxnnv.js, chunk-0hj56w3h.js, chunk-ppm9ft4n.js, chunk-mavtcza7.js, chunk-mcbqtz1c.js, chunk-v86b5paa.js, chunk-yt7hjsqx.js, chunk-dbca8rh2.js, chunk-8asmsy8q.js, chunk-xv7fcg1w.js, chunk-2e4yh13p.js, chunk-zngedjve.js, chunk-mg1nc1nb.js, chunk-arv7pv6n.js, chunk-hz566297.js, chunk-1j9y3yvc.js, chunk-w8gsy6ce.js, chunk-nwsq25b8.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-v1kxw0qm.js, chunk-4pg4ew6j.js, chunk-0sxn500c.js, chunk-6tkvhk09.js, chunk-tnf72z21.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 6 tests using 1 worker (node:364313) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill (7.7s) (node:366384) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 2 test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column (30.0s) (node:371948) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 3 test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm (30.0s) (node:375243) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 4 test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger (30.0s) (node:380023) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 5 test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows (20.1s) ✘ 6 test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window (15.2s) 1) test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ─ Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "Split right", "Split down", "Sessions", "Close", + "More window actions", ] 66 | expect(geometry.actionsH).toBe(geometry.pillH); 67 | expect(geometry.border).toBe("1px"); > 68 | expect(geometry.labels).toEqual(["Split right", "Split down", "Sessions", "Close"]); | ^ 69 | expect(geometry.inside).toBe(true); 70 | expect(geometry.titleClipped).toBe(true); 71 | } finally { await context.close(); } at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:68:31 Error Context: test-results/sessions-canvas-a-window-s-bfaee-l-as-tall-as-its-title-pill/error-context.md 2) test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column Test timeout of 30000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 274 | expect(columns).toContain(2); 275 | await expect(page.locator(".ui-window .ui-window-session", { hasText: "infraternal" })).toHaveCount(2, { timeout: 5000 }); > 276 | } finally { await context.close(); } | ^ 277 | }); 278 | 279 | test("another device typed last: scaled to fit, a badge says so, typing takes the size over", async ({ browser }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:276:15 Error Context: test-results/sessions-canvas-both-split-fa6c2-own-stacks-it-in-the-column/error-context.md 3) test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm Test timeout of 30000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 331 | await expect(failed.page.locator(".cl-sx-state[data-kind='loading']")).toBeVisible(); 332 | await expect(failed.page.locator(".cl-sx-row")).toHaveCount(6, { timeout: 6000 }); > 333 | } finally { await failed.context.close(); } | ^ 334 | }); 335 | 336 | test("mouse and shortcuts draw no focus ring; Tab does", async ({ browser }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:333:15 Error Context: test-results/sessions-canvas-the-empty--a4659-s-keep-the-product-s-rhythm/error-context.md 4) test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger Test timeout of 30000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-VI0Sjb --remote-debugging-pipe --no-startup-window <launched> pid=375387 [pid=375387][err] [1011/170723.194577:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=375387] <gracefully close start> 367 | await expect(page.locator(".cl-sx-pop")).toBeVisible(); 368 | expect(await stateOf(page, "build-01", "journal")).toBe("detached"); > 369 | } finally { await context.close(); } | ^ 370 | }); 371 | 372 | test("scenes run one after another and each starts from the same four windows", async ({ browser }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:369:15 Error Context: test-results/sessions-canvas-on-touch-e-591a9-es-open-1-1-with-the-finger/error-context.md 5) test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window Error: expect(locator).toBeVisible() failed Locator: locator('.cl-sx-pop') Expected: visible Timeout: 8000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 8000ms - waiting for locator('.cl-sx-pop') 412 | await expect(item).toBeEnabled(); 413 | await item.tap(); > 414 | await expect(page.locator(".cl-sx-pop")).toBeVisible({ timeout: 8000 }); | ^ 415 | await expect(page.locator(".cl-sx-title")).toHaveText("build-01"); 416 | } finally { await context.close(); } 417 | }); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/sessions-canvas.spec.ts:414:46 Error Context: test-results/sessions-canvas-on-a-phone-87ddb-anager-of-the-active-window/error-context.md 5 failed test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ── test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 1 passed (2.5m) Invocation exit: 1 Load after: 22.01 18.34 19.42 20/3115 384641 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-terminal-theme.spec-17.log (1/1)

Load before: 54.37 32.01 24.27 44/3213 410838
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p410839-i50694476.scope; invocation ID: 97e6c54c762b4ce2bdab70282662c557
[WebServer] $ bun run build.ts
[WebServer] built chunk-bkgrk0wd.js, chunk-tvynw18r.js, chunk-c3gqn465.js, chunk-b5qzwpce.js, chunk-ae5mf149.js, chunk-mwp575ed.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-gqgk3gen.js, chunk-s8d981j0.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-s3hraae5.js, chunk-7nczvd3c.js, chunk-vt1sjxp9.js, chunk-zr9qw1j3.js, chunk-yvhhqffe.js, chunk-xp6e95ck.js, chunk-nx6qfetm.js, chunk-9gpnaas9.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-y1nb5s5q.js, chunk-bt2p92c7.js, chunk-gy2wmfj5.js, chunk-ppwrznkb.js, chunk-8gqdshxw.js, chunk-wbg3xwc1.js, chunk-qd1sat44.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-psk64mjb.js, chunk-qf9pr5zt.js, chunk-48wrtc3t.js, chunk-9abcbz8t.js, chunk-1d0qvnvb.js, chunk-arh60xme.js, chunk-axbkkqp1.js, chunk-3nnvsy5f.js, chunk-37a659qv.js, chunk-ar3j53pw.js, chunk-esqczcbh.js, chunk-7gk4hw26.js, chunk-dw7ec79r.js, chunk-v86b5paa.js, chunk-7fy8kxgd.js, chunk-zwarabgq.js, chunk-y0st2zx8.js, chunk-73tyrp26.js, chunk-2e4yh13p.js, chunk-12xsbak7.js, chunk-fc2d314m.js, chunk-8pn0m3e2.js, chunk-8pyb9d7n.js, chunk-nyx1xbrg.js, chunk-9c2wwghh.js, chunk-1x1jmxpb.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-f38bh425.js, chunk-vvhpvzs4.js, chunk-0sxn500c.js, chunk-kxf4ts73.js, chunk-bz7j12w3.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 1 test using 1 worker

(node:412095) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
theme fixture bytes=605847 metrics={"cols":170,"rows":44,"cellWidth":8,"cellHeight":18,"naturalCellWidth":8,"configuredScrollback":40000000,"cursorX":16,"cursorY":43,"renderCursorX":16,"renderCursorY":43,"renderCursorVisible":true,"themeColorsMs":0,"themeRenderMs":0,"terminalColors":{"background":{"r":246,"g":246,"b":244},"foreground":{"r":29,"g":29,"b":31}},"receivedSequence":"605847","outputSequence":"605847","scrollbackRows":10024,"viewportY":0,"cursorVisible":true,"fontSize":14,"fontFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","fontId":"maple-mono-nf","wasmMemoryBytes":35717120}
theme-switch click-to-full-paint JS ms: n=50 p50=0.700 p99=30.800 max=30.800 long_tasks_gt_50ms=27
slowest theme samples: [{"sample":1,"click":30.799999952316284,"colors":14.900000095367432,"render":118.59999990463257},{"sample":2,"click":23.799999952316284,"colors":0,"render":57.5},{"sample":13,"click":11.700000047683716,"colors":0.10000002384185791,"render":62.200000047683716},{"sample":50,"click":11,"colors":0,"render":40.10000002384186},{"sample":15,"click":10.200000047683716,"colors":0,"render":40.699999928474426}]
theme work JS ms: color_setters_p50=0.000 repaint_p50=26.300
  ✘  1 test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text (31.2s)


  1) test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 16.67
    Received:   30.799999952316284

      287 |     contentType: "application/json",
      288 |   });
    > 289 |   expect(p99).toBeLessThan(16.67);
          |               ^
      290 |   expect(longTasks.filter((duration) => duration > 50)).toEqual([]);
      291 |   expect(await readSocketCounts(page)).toEqual(socketCounts);
      292 |   expect(await page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.scrollbackRows ?? 0)).toBe(scrollbackRowsBefore);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/terminal-theme.spec.ts:289:15

    Error Context: test-results/terminal-theme-every-curat-3627b--and-its-existing-ANSI-text/error-context.md

  1 failed
    test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text 

Invocation exit: 1
Load after: 51.63 34.32 25.41 44/3212 418531
#163 verbatim evidence: browser-case-merge-terminal-theme.spec-17.log (1/1) ```text Load before: 54.37 32.01 24.27 44/3213 410838 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p410839-i50694476.scope; invocation ID: 97e6c54c762b4ce2bdab70282662c557 [WebServer] $ bun run build.ts [WebServer] built chunk-bkgrk0wd.js, chunk-tvynw18r.js, chunk-c3gqn465.js, chunk-b5qzwpce.js, chunk-ae5mf149.js, chunk-mwp575ed.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-gqgk3gen.js, chunk-s8d981j0.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-s3hraae5.js, chunk-7nczvd3c.js, chunk-vt1sjxp9.js, chunk-zr9qw1j3.js, chunk-yvhhqffe.js, chunk-xp6e95ck.js, chunk-nx6qfetm.js, chunk-9gpnaas9.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-y1nb5s5q.js, chunk-bt2p92c7.js, chunk-gy2wmfj5.js, chunk-ppwrznkb.js, chunk-8gqdshxw.js, chunk-wbg3xwc1.js, chunk-qd1sat44.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-psk64mjb.js, chunk-qf9pr5zt.js, chunk-48wrtc3t.js, chunk-9abcbz8t.js, chunk-1d0qvnvb.js, chunk-arh60xme.js, chunk-axbkkqp1.js, chunk-3nnvsy5f.js, chunk-37a659qv.js, chunk-ar3j53pw.js, chunk-esqczcbh.js, chunk-7gk4hw26.js, chunk-dw7ec79r.js, chunk-v86b5paa.js, chunk-7fy8kxgd.js, chunk-zwarabgq.js, chunk-y0st2zx8.js, chunk-73tyrp26.js, chunk-2e4yh13p.js, chunk-12xsbak7.js, chunk-fc2d314m.js, chunk-8pn0m3e2.js, chunk-8pyb9d7n.js, chunk-nyx1xbrg.js, chunk-9c2wwghh.js, chunk-1x1jmxpb.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-f38bh425.js, chunk-vvhpvzs4.js, chunk-0sxn500c.js, chunk-kxf4ts73.js, chunk-bz7j12w3.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 1 test using 1 worker (node:412095) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) theme fixture bytes=605847 metrics={"cols":170,"rows":44,"cellWidth":8,"cellHeight":18,"naturalCellWidth":8,"configuredScrollback":40000000,"cursorX":16,"cursorY":43,"renderCursorX":16,"renderCursorY":43,"renderCursorVisible":true,"themeColorsMs":0,"themeRenderMs":0,"terminalColors":{"background":{"r":246,"g":246,"b":244},"foreground":{"r":29,"g":29,"b":31}},"receivedSequence":"605847","outputSequence":"605847","scrollbackRows":10024,"viewportY":0,"cursorVisible":true,"fontSize":14,"fontFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","fontId":"maple-mono-nf","wasmMemoryBytes":35717120} theme-switch click-to-full-paint JS ms: n=50 p50=0.700 p99=30.800 max=30.800 long_tasks_gt_50ms=27 slowest theme samples: [{"sample":1,"click":30.799999952316284,"colors":14.900000095367432,"render":118.59999990463257},{"sample":2,"click":23.799999952316284,"colors":0,"render":57.5},{"sample":13,"click":11.700000047683716,"colors":0.10000002384185791,"render":62.200000047683716},{"sample":50,"click":11,"colors":0,"render":40.10000002384186},{"sample":15,"click":10.200000047683716,"colors":0,"render":40.699999928474426}] theme work JS ms: color_setters_p50=0.000 repaint_p50=26.300 ✘ 1 test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text (31.2s) 1) test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text Error: expect(received).toBeLessThan(expected) Expected: < 16.67 Received: 30.799999952316284 287 | contentType: "application/json", 288 | }); > 289 | expect(p99).toBeLessThan(16.67); | ^ 290 | expect(longTasks.filter((duration) => duration > 50)).toEqual([]); 291 | expect(await readSocketCounts(page)).toEqual(socketCounts); 292 | expect(await page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.scrollbackRows ?? 0)).toBe(scrollbackRowsBefore); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/terminal-theme.spec.ts:289:15 Error Context: test-results/terminal-theme-every-curat-3627b--and-its-existing-ANSI-text/error-context.md 1 failed test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text Invocation exit: 1 Load after: 51.63 34.32 25.41 44/3212 418531 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-terminal.spec-18.log (1/1)

Load before: 42.31 34.04 25.66 40/3137 425383
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p425384-i50708997.scope; invocation ID: 6e8056822885477e8aab903f28b50da2
[WebServer] $ bun run build.ts
[WebServer] built chunk-esq3frqh.js, chunk-tvynw18r.js, chunk-jjq9rsrt.js, chunk-b5qzwpce.js, chunk-v1vqy7yf.js, chunk-6vbnwgeq.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-avgwm7md.js, chunk-0vf779nf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-sqzf4c6e.js, chunk-7nczvd3c.js, chunk-ttethb0k.js, chunk-czq8prgj.js, chunk-yvhhqffe.js, chunk-4dbms5j8.js, chunk-j2h9y3cs.js, chunk-rzxnetwn.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-54g0njx0.js, chunk-1jkht76a.js, chunk-4xhxndym.js, chunk-zf1c1xc4.js, chunk-8gqdshxw.js, chunk-rp3m57bq.js, chunk-j2mvde5a.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9azmbwpc.js, chunk-787yv3wj.js, chunk-knkjnzcc.js, chunk-xw0ay2ft.js, chunk-1d0qvnvb.js, chunk-fwztthzp.js, chunk-axbkkqp1.js, chunk-eqvqpkg0.js, chunk-mqdf3fqf.js, chunk-z3fpvkpw.js, chunk-w4v5ah9r.js, chunk-r8c5fw0j.js, chunk-scn3vksx.js, chunk-v86b5paa.js, chunk-j38e87wh.js, chunk-a6gwj5j6.js, chunk-rcvx9yqz.js, chunk-9hsycszd.js, chunk-2e4yh13p.js, chunk-r19713ce.js, chunk-44664qp8.js, chunk-nxsab9r6.js, chunk-7mzhxh2n.js, chunk-5r3q86cq.js, chunk-gfgadr49.js, chunk-hwmdyqvg.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-shrvwe7j.js, chunk-qqdk4edd.js, chunk-0sxn500c.js, chunk-ajy8z9cx.js, chunk-h49gbt95.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644

Running 2 tests using 1 worker

(node:426182) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (24.3s)
(node:428990) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
METRIC name=access_screen_render_upper_bound_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=2184.10 p99_ms=3255.10 budget_ms=1000 result=FAIL
METRIC name=access_screen_first_contentful_paint_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1852.50 p99_ms=2674.50 budget_ms=1000 result=REPORT
  ✘  2 test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget (2.0m)


  1) test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ──

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

    Call Log:
    - Timeout 5000ms exceeded while waiting on the predicate

      82 |     const started = await page.evaluate(() => performance.now());
      83 |     await page.getByRole("button", { name: "Continue with passkey" }).click();
    > 84 |     await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true);
         |                                                                                                     ^
      85 |     returningSigninSamples.push(await page.evaluate((start) => performance.now() - start, started));
      86 |     expect(await page.evaluate(() => document.documentElement.dataset.passkeyGets)).toBe("1");
      87 |     if (attempt + 1 < signinTrials) {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/terminal.spec.ts:84:101

    attachment #1: signin-light (image/png) ────────────────────────────────────────────────────────
    test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-light-358b8af318c8f780d29168f186b4dd0ae75565d8.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: signin-dark (image/png) ─────────────────────────────────────────────────────────
    test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-dark-b2c72cadb24e5e28f929ed1fbdf209146cca1e4a.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/error-context.md

  2) test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ───────

    Test timeout of 120000ms exceeded.

    Error: page.goto: Test timeout of 120000ms exceeded.
    Call log:
      - navigating to "http://localhost:4643/", waiting until "load"


      640 |       const sample = await page.context().newPage();
      641 |       await sample.route("**/auth/status", (route) => route.fulfill({ json: { setup_required: setupRequired } }));
    > 642 |       await sample.goto("/");
          |                    ^
      643 |       await expect(sample.locator(setupRequired ? "#setup-card" : "#login-passkey")).toBeVisible();
      644 |       firstPaints.push(await sample.evaluate(() =>
      645 |         performance.getEntriesByName("first-contentful-paint")[0]?.startTime ?? performance.now()));
        at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/terminal.spec.ts:642:20

    Error Context: test-results/terminal-access-screens-re-da0df-he-local-first-paint-budget/error-context.md

  2 failed
    test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ───
    test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ────────

Invocation exit: 1
Load after: 51.89 39.58 28.93 53/3168 443385
#163 verbatim evidence: browser-case-merge-terminal.spec-18.log (1/1) ```text Load before: 42.31 34.04 25.66 40/3137 425383 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p425384-i50708997.scope; invocation ID: 6e8056822885477e8aab903f28b50da2 [WebServer] $ bun run build.ts [WebServer] built chunk-esq3frqh.js, chunk-tvynw18r.js, chunk-jjq9rsrt.js, chunk-b5qzwpce.js, chunk-v1vqy7yf.js, chunk-6vbnwgeq.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-avgwm7md.js, chunk-0vf779nf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-sqzf4c6e.js, chunk-7nczvd3c.js, chunk-ttethb0k.js, chunk-czq8prgj.js, chunk-yvhhqffe.js, chunk-4dbms5j8.js, chunk-j2h9y3cs.js, chunk-rzxnetwn.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-54g0njx0.js, chunk-1jkht76a.js, chunk-4xhxndym.js, chunk-zf1c1xc4.js, chunk-8gqdshxw.js, chunk-rp3m57bq.js, chunk-j2mvde5a.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9azmbwpc.js, chunk-787yv3wj.js, chunk-knkjnzcc.js, chunk-xw0ay2ft.js, chunk-1d0qvnvb.js, chunk-fwztthzp.js, chunk-axbkkqp1.js, chunk-eqvqpkg0.js, chunk-mqdf3fqf.js, chunk-z3fpvkpw.js, chunk-w4v5ah9r.js, chunk-r8c5fw0j.js, chunk-scn3vksx.js, chunk-v86b5paa.js, chunk-j38e87wh.js, chunk-a6gwj5j6.js, chunk-rcvx9yqz.js, chunk-9hsycszd.js, chunk-2e4yh13p.js, chunk-r19713ce.js, chunk-44664qp8.js, chunk-nxsab9r6.js, chunk-7mzhxh2n.js, chunk-5r3q86cq.js, chunk-gfgadr49.js, chunk-hwmdyqvg.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-shrvwe7j.js, chunk-qqdk4edd.js, chunk-0sxn500c.js, chunk-ajy8z9cx.js, chunk-h49gbt95.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 Running 2 tests using 1 worker (node:426182) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (24.3s) (node:428990) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) METRIC name=access_screen_render_upper_bound_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=2184.10 p99_ms=3255.10 budget_ms=1000 result=FAIL METRIC name=access_screen_first_contentful_paint_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1852.50 p99_ms=2674.50 budget_ms=1000 result=REPORT ✘ 2 test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget (2.0m) 1) test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ── Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false Call Log: - Timeout 5000ms exceeded while waiting on the predicate 82 | const started = await page.evaluate(() => performance.now()); 83 | await page.getByRole("button", { name: "Continue with passkey" }).click(); > 84 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true); | ^ 85 | returningSigninSamples.push(await page.evaluate((start) => performance.now() - start, started)); 86 | expect(await page.evaluate(() => document.documentElement.dataset.passkeyGets)).toBe("1"); 87 | if (attempt + 1 < signinTrials) { at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/terminal.spec.ts:84:101 attachment #1: signin-light (image/png) ──────────────────────────────────────────────────────── test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-light-358b8af318c8f780d29168f186b4dd0ae75565d8.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: signin-dark (image/png) ───────────────────────────────────────────────────────── test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-dark-b2c72cadb24e5e28f929ed1fbdf209146cca1e4a.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/error-context.md 2) test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ─────── Test timeout of 120000ms exceeded. Error: page.goto: Test timeout of 120000ms exceeded. Call log: - navigating to "http://localhost:4643/", waiting until "load" 640 | const sample = await page.context().newPage(); 641 | await sample.route("**/auth/status", (route) => route.fulfill({ json: { setup_required: setupRequired } })); > 642 | await sample.goto("/"); | ^ 643 | await expect(sample.locator(setupRequired ? "#setup-card" : "#login-passkey")).toBeVisible(); 644 | firstPaints.push(await sample.evaluate(() => 645 | performance.getEntriesByName("first-contentful-paint")[0]?.startTime ?? performance.now())); at /home/kayg/.cache/codex-scratch/dev-backmerge/merge-isolated/apps/tracer/test/terminal.spec.ts:642:20 Error Context: test-results/terminal-access-screens-re-da0df-he-local-first-paint-budget/error-context.md 2 failed test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ─── test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ──────── Invocation exit: 1 Load after: 51.89 39.58 28.93 53/3168 443385 ```
Author
Owner

#163 verbatim evidence: browser-case-merge-unicode-fidelity.spec-19.log (1/1)

Load before: 38.09 39.92 30.91 28/3175 468549
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p468550-i50752163.scope; invocation ID: e1c140e674894af6bb65913e72d536bd
[WebServer] $ bun run build.ts
[WebServer] built chunk-twqqgd7z.js, chunk-tvynw18r.js, chunk-p8fhvdnn.js, chunk-b5qzwpce.js, chunk-9w123mtc.js, chunk-t6ef9yjd.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-xpactjsx.js, chunk-g1ncdt4n.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-4crq6xb7.js, chunk-7nczvd3c.js, chunk-kr6vmbqs.js, chunk-pqfsybd8.js, chunk-yvhhqffe.js, chunk-mr2921qc.js, chunk-cwsdhrm7.js, chunk-4wrg7e1m.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-6c4507wt.js, chunk-te4ketef.js, chunk-qfxnrspw.js, chunk-cp1etfhr.js, chunk-8gqdshxw.js, chunk-k2g88m7r.js, chunk-9pfh7t4j.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-agarjz88.js, chunk-0v9m6vjj.js, chunk-ka1675g0.js, chunk-68r71q5f.js, chunk-1d0qvnvb.js, chunk-pb8q4v3s.js, chunk-axbkkqp1.js, chunk-9zdyafhv.js, chunk-k92mefjy.js, chunk-jtd97y66.js, chunk-x0zz0kj0.js, chunk-z5f6cgye.js, chunk-21n7s3bk.js, chunk-v86b5paa.js, chunk-9y8b0kww.js, chunk-1kzqj4nn.js, chunk-3nenrt0p.js, chunk-cvhq24rx.js, chunk-2e4yh13p.js, chunk-qskbbzr4.js, chunk-pe9y022t.js, chunk-pzgh6nmc.js, chunk-fmvzcx2q.js, chunk-1xekv5jy.js, chunk-aq2xtres.js, chunk-w56wemhk.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-8atcdn7m.js, chunk-9p6bgvfa.js, chunk-0sxn500c.js, chunk-mp6k333e.js, chunk-23xe3mbt.js
[WebServer] latency proxy listening on http://localhost:4643; upstream port=4644
[WebServer] tracer TEST DOUBLE listening on http://localhost:4644

Running 1 test using 1 worker

(node:468727) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
Unicode single: output=77 B; all five clusters retained
Unicode utf8-split: output=16454 B; all five clusters retained
Unicode grapheme-split: output=16457 B; all five clusters retained
Unicode snapshot: output=77 B; all five clusters retained
  ✓  1 test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries (27.3s)

  1 passed (34.8s)

Invocation exit: 0
Load after: 32.65 38.39 30.74 21/3184 470465
#163 verbatim evidence: browser-case-merge-unicode-fidelity.spec-19.log (1/1) ```text Load before: 38.09 39.92 30.91 28/3175 468549 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p468550-i50752163.scope; invocation ID: e1c140e674894af6bb65913e72d536bd [WebServer] $ bun run build.ts [WebServer] built chunk-twqqgd7z.js, chunk-tvynw18r.js, chunk-p8fhvdnn.js, chunk-b5qzwpce.js, chunk-9w123mtc.js, chunk-t6ef9yjd.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-xpactjsx.js, chunk-g1ncdt4n.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-4crq6xb7.js, chunk-7nczvd3c.js, chunk-kr6vmbqs.js, chunk-pqfsybd8.js, chunk-yvhhqffe.js, chunk-mr2921qc.js, chunk-cwsdhrm7.js, chunk-4wrg7e1m.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-6c4507wt.js, chunk-te4ketef.js, chunk-qfxnrspw.js, chunk-cp1etfhr.js, chunk-8gqdshxw.js, chunk-k2g88m7r.js, chunk-9pfh7t4j.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-agarjz88.js, chunk-0v9m6vjj.js, chunk-ka1675g0.js, chunk-68r71q5f.js, chunk-1d0qvnvb.js, chunk-pb8q4v3s.js, chunk-axbkkqp1.js, chunk-9zdyafhv.js, chunk-k92mefjy.js, chunk-jtd97y66.js, chunk-x0zz0kj0.js, chunk-z5f6cgye.js, chunk-21n7s3bk.js, chunk-v86b5paa.js, chunk-9y8b0kww.js, chunk-1kzqj4nn.js, chunk-3nenrt0p.js, chunk-cvhq24rx.js, chunk-2e4yh13p.js, chunk-qskbbzr4.js, chunk-pe9y022t.js, chunk-pzgh6nmc.js, chunk-fmvzcx2q.js, chunk-1xekv5jy.js, chunk-aq2xtres.js, chunk-w56wemhk.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-8atcdn7m.js, chunk-9p6bgvfa.js, chunk-0sxn500c.js, chunk-mp6k333e.js, chunk-23xe3mbt.js [WebServer] latency proxy listening on http://localhost:4643; upstream port=4644 [WebServer] tracer TEST DOUBLE listening on http://localhost:4644 Running 1 test using 1 worker (node:468727) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) Unicode single: output=77 B; all five clusters retained Unicode utf8-split: output=16454 B; all five clusters retained Unicode grapheme-split: output=16457 B; all five clusters retained Unicode snapshot: output=77 B; all five clusters retained ✓ 1 test/unicode-fidelity.spec.ts:7:1 › raw frames retain behemoth emoji clusters across UTF-8 and grapheme boundaries (27.3s) 1 passed (34.8s) Invocation exit: 0 Load after: 32.65 38.39 30.74 21/3184 470465 ```
Author
Owner

#163 verbatim evidence: browser-case-production-clusters-swipes.spec-1.log (1/1)

Load before: 22.61 18.09 22.14 14/2952 239080
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p239081-i50522746.scope; invocation ID: ab453f70287a4ab3a576022181544076
[WebServer] $ bun run build.ts
[WebServer] built chunk-ynt0p8dy.js, chunk-tvynw18r.js, chunk-6s8aqqpj.js, chunk-b5qzwpce.js, chunk-xtg43tas.js, chunk-9vf4emf9.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-myqamfze.js, chunk-gaknmpa1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-wyb9h4ch.js, chunk-7nczvd3c.js, chunk-r6bwnx8f.js, chunk-xb1kvrr9.js, chunk-yvhhqffe.js, chunk-54s96paz.js, chunk-gg697b1v.js, chunk-0n6mngy9.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-h51rwkp8.js, chunk-sajjzz4y.js, chunk-2tj2v5me.js, chunk-3tt9rakj.js, chunk-8gqdshxw.js, chunk-pc3ajqeh.js, chunk-fjmde730.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-45wjh7eg.js, chunk-q13q6g1a.js, chunk-7e075bjz.js, chunk-zdghkgfh.js, chunk-1d0qvnvb.js, chunk-nxf8kh26.js, chunk-axbkkqp1.js, chunk-bzcxsjc0.js, chunk-sevm6mn9.js, chunk-vs37knze.js, chunk-yt3deyxb.js, chunk-8w56mym7.js, chunk-rnja74ha.js, chunk-v86b5paa.js, chunk-fsaxzabx.js, chunk-883fh4rv.js, chunk-t6b8x0n4.js, chunk-q1ngcdsv.js, chunk-2e4yh13p.js, chunk-ekpn7rdt.js, chunk-xdmn28rh.js, chunk-f5kwherb.js, chunk-2x09tp3x.js, chunk-946r0206.js, chunk-4kr83xdt.js, chunk-mx1xdyg1.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-pv11b6c8.js, chunk-kkh05y17.js, chunk-0sxn500c.js, chunk-6yg77mtj.js, chunk-cbf2h28z.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 2 tests using 1 worker

(node:239407) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (10.4s)
  ✓  2 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (12.1s)

  2 passed (32.6s)

Invocation exit: 0
Load after: 18.71 17.66 21.85 10/2945 239915
#163 verbatim evidence: browser-case-production-clusters-swipes.spec-1.log (1/1) ```text Load before: 22.61 18.09 22.14 14/2952 239080 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p239081-i50522746.scope; invocation ID: ab453f70287a4ab3a576022181544076 [WebServer] $ bun run build.ts [WebServer] built chunk-ynt0p8dy.js, chunk-tvynw18r.js, chunk-6s8aqqpj.js, chunk-b5qzwpce.js, chunk-xtg43tas.js, chunk-9vf4emf9.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-myqamfze.js, chunk-gaknmpa1.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-wyb9h4ch.js, chunk-7nczvd3c.js, chunk-r6bwnx8f.js, chunk-xb1kvrr9.js, chunk-yvhhqffe.js, chunk-54s96paz.js, chunk-gg697b1v.js, chunk-0n6mngy9.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-h51rwkp8.js, chunk-sajjzz4y.js, chunk-2tj2v5me.js, chunk-3tt9rakj.js, chunk-8gqdshxw.js, chunk-pc3ajqeh.js, chunk-fjmde730.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-45wjh7eg.js, chunk-q13q6g1a.js, chunk-7e075bjz.js, chunk-zdghkgfh.js, chunk-1d0qvnvb.js, chunk-nxf8kh26.js, chunk-axbkkqp1.js, chunk-bzcxsjc0.js, chunk-sevm6mn9.js, chunk-vs37knze.js, chunk-yt3deyxb.js, chunk-8w56mym7.js, chunk-rnja74ha.js, chunk-v86b5paa.js, chunk-fsaxzabx.js, chunk-883fh4rv.js, chunk-t6b8x0n4.js, chunk-q1ngcdsv.js, chunk-2e4yh13p.js, chunk-ekpn7rdt.js, chunk-xdmn28rh.js, chunk-f5kwherb.js, chunk-2x09tp3x.js, chunk-946r0206.js, chunk-4kr83xdt.js, chunk-mx1xdyg1.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-pv11b6c8.js, chunk-kkh05y17.js, chunk-0sxn500c.js, chunk-6yg77mtj.js, chunk-cbf2h28z.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 2 tests using 1 worker (node:239407) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further without momentum events (10.4s) ✓ 2 test/clusters-swipes.spec.ts:33:3 › six swipes in 2 s land six windows further with momentum events (12.1s) 2 passed (32.6s) Invocation exit: 0 Load after: 18.71 17.66 21.85 10/2945 239915 ```
Author
Owner

#163 verbatim evidence: browser-case-production-clusters.spec-3.log (1/1)

Load before: 28.18 20.65 22.35 40/3135 249250
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p249251-i50532916.scope; invocation ID: ec843d440c194c19bf8e746449fa65ef
[WebServer] $ bun run build.ts
[WebServer] built chunk-8j19r9qx.js, chunk-tvynw18r.js, chunk-w57sh2xq.js, chunk-b5qzwpce.js, chunk-p58kcv8j.js, chunk-rfkh4md5.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-qxn2cxx8.js, chunk-a8j86323.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-00ay91qr.js, chunk-7nczvd3c.js, chunk-18hs93jy.js, chunk-tbjc3gpn.js, chunk-yvhhqffe.js, chunk-6bwg02xs.js, chunk-nam3x8q7.js, chunk-9175syda.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-bvahmr5y.js, chunk-7ybzx6k0.js, chunk-1tejqemg.js, chunk-df0seg0p.js, chunk-8gqdshxw.js, chunk-34c75qy3.js, chunk-8gja6t5v.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-jv78fab0.js, chunk-9ak8ktn6.js, chunk-rkhpcrek.js, chunk-macy0kqb.js, chunk-1d0qvnvb.js, chunk-5c1jygz9.js, chunk-axbkkqp1.js, chunk-846wccgv.js, chunk-xsggsnf6.js, chunk-dtcx7kes.js, chunk-1ytpj363.js, chunk-r15ema0x.js, chunk-ya95ret3.js, chunk-v86b5paa.js, chunk-sd8ckjev.js, chunk-317v9vq8.js, chunk-rtaqwgs7.js, chunk-ky063asq.js, chunk-2e4yh13p.js, chunk-2czabez8.js, chunk-y0x468kq.js, chunk-2hwgavk6.js, chunk-5x59hvkc.js, chunk-th3cvr6p.js, chunk-jbf6q9d0.js, chunk-zf7bcmdh.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-4mgb3k66.js, chunk-e89vk2gf.js, chunk-0sxn500c.js, chunk-a955hhep.js, chunk-8a8tfzam.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 6 tests using 1 worker

(node:251609) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows (15.0s)
  ✓  2 test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row (9.1s)
MOTION_COST {"viewJump":1.2999999523162842,"windowStep":10.800000071525574,"canvasLockToggle":1.5,"keyJumpMoved":0}
  ✘  3 test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate (11.1s)
(node:256835) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  4 test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal (9.6s)
(node:259398) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  5 test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px (15.7s)
(node:262275) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  6 test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus (30.0s)


  1) test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate 

    Error: expect(received).toBeGreaterThan(expected)

    Expected: > 500
    Received:   0

      722 |   expect(costs.windowStep).toBeLessThan(16);
      723 |   expect(costs.canvasLockToggle).toBeLessThan(16);
    > 724 |   expect(costs.keyJumpMoved).toBeGreaterThan(500);
          |                              ^
      725 | });
      726 |
      727 | test("canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next", async ({ page }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:724:30

    Error Context: test-results/clusters-motion-rule-the-w-165eb-ame-and-keys-do-not-animate/error-context.md

  2) test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 0
    + Received  + 1

    @@ -1,8 +1,9 @@
      Array [
        "s-appearance",
        "s-windows",
    +   "s-hosts",
        "s-toolbar",
        "s-shortcuts",
        "s-devices",
        "s-account",
        "s-about",

      837 |   await open(page, 1);
      838 |   const sections = async (): Promise<string[]> => (await probe(page, (p) => p.views())).find((v) => v.id === "settings")!.windows;
    > 839 |   expect(await sections()).toEqual(["s-appearance", "s-windows", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", "s-users", "s-grants", "s-discovery"]);
          |                            ^
      840 |   // The sidebar lists it last, after a divider; the gear in the sidebar footer flies there.
      841 |   await page.locator("#sidebar-toggle").click();
      842 |   await expect(page.locator('#tree .bm-sec[data-id="view:settings"].cl-divided')).toHaveCount(1);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:839:28

    Error Context: test-results/clusters-settings-is-a-vie-c2a75-for-operators-nothing-modal/error-context.md

  3) test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 0.5
    Received:   12

      1109 |     // session manager are in the canvas row while a terminal is focused, and in ⌘K.
      1110 |     expect(pd.buttons).toEqual(["close"]);
    > 1111 |     expect(Math.abs(pd.aH - pd.tH)).toBeLessThan(0.5);
           |                                     ^
      1112 |     expect(Math.abs(pd.aTop - pd.tTop)).toBeLessThan(0.5);
      1113 |     const hits = await p.evaluate(() => {
      1114 |       const w = document.querySelector('.ui-window[data-window-id="w-build-01"]')!;
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:1111:37

    Error Context: test-results/clusters-window-header-act-d4932-with-touch-targets-of-44-px/error-context.md

  4) test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-R3pLi4 --remote-debugging-pipe --no-startup-window
    <launched> pid=262474
    [pid=262474][err] [1011/165050.338077:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=262474][err] [1011/165050.501219:ERROR:gpu/ipc/client/command_buffer_proxy_impl.cc:285] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
    [pid=262474] <gracefully close start>

      1180 |     await expect.poll(async () => (await state()).rows, { timeout: 4000 }).toBe("1");
      1181 |     expect(await state()).toMatchObject({ keysHidden: true, dots: "none" });
    > 1182 |   } finally { await t.close(); }
           |               ^
      1183 | });
      1184 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:1182:15

    Error Context: test-results/clusters-toolbar-and-keybo-094d8-key-row-and-keeps-its-focus/error-context.md

  4 failed
    test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate 
    test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal 
    test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px 
    test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 
  2 passed (1.8m)

Invocation exit: 1
Load after: 30.22 23.84 23.33 11/3097 265696
#163 verbatim evidence: browser-case-production-clusters.spec-3.log (1/1) ```text Load before: 28.18 20.65 22.35 40/3135 249250 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p249251-i50532916.scope; invocation ID: ec843d440c194c19bf8e746449fa65ef [WebServer] $ bun run build.ts [WebServer] built chunk-8j19r9qx.js, chunk-tvynw18r.js, chunk-w57sh2xq.js, chunk-b5qzwpce.js, chunk-p58kcv8j.js, chunk-rfkh4md5.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-qxn2cxx8.js, chunk-a8j86323.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-00ay91qr.js, chunk-7nczvd3c.js, chunk-18hs93jy.js, chunk-tbjc3gpn.js, chunk-yvhhqffe.js, chunk-6bwg02xs.js, chunk-nam3x8q7.js, chunk-9175syda.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-bvahmr5y.js, chunk-7ybzx6k0.js, chunk-1tejqemg.js, chunk-df0seg0p.js, chunk-8gqdshxw.js, chunk-34c75qy3.js, chunk-8gja6t5v.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-jv78fab0.js, chunk-9ak8ktn6.js, chunk-rkhpcrek.js, chunk-macy0kqb.js, chunk-1d0qvnvb.js, chunk-5c1jygz9.js, chunk-axbkkqp1.js, chunk-846wccgv.js, chunk-xsggsnf6.js, chunk-dtcx7kes.js, chunk-1ytpj363.js, chunk-r15ema0x.js, chunk-ya95ret3.js, chunk-v86b5paa.js, chunk-sd8ckjev.js, chunk-317v9vq8.js, chunk-rtaqwgs7.js, chunk-ky063asq.js, chunk-2e4yh13p.js, chunk-2czabez8.js, chunk-y0x468kq.js, chunk-2hwgavk6.js, chunk-5x59hvkc.js, chunk-th3cvr6p.js, chunk-jbf6q9d0.js, chunk-zf7bcmdh.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-4mgb3k66.js, chunk-e89vk2gf.js, chunk-0sxn500c.js, chunk-a955hhep.js, chunk-8a8tfzam.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 6 tests using 1 worker (node:251609) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/clusters.spec.ts:538:1 › toolbar: the keyboard row follows terminal focus, the canvas row follows a tap on the canvas, swipes switch and scroll rows (15.0s) ✓ 2 test/clusters.spec.ts:571:1 › toolbar: Ctrl latches (tap arms, double tap holds), snap and lock work from the canvas row (9.1s) MOTION_COST {"viewJump":1.2999999523162842,"windowStep":10.800000071525574,"canvasLockToggle":1.5,"keyJumpMoved":0} ✘ 3 test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate (11.1s) (node:256835) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 4 test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal (9.6s) (node:259398) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 5 test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px (15.7s) (node:262275) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 6 test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus (30.0s) 1) test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate Error: expect(received).toBeGreaterThan(expected) Expected: > 500 Received: 0 722 | expect(costs.windowStep).toBeLessThan(16); 723 | expect(costs.canvasLockToggle).toBeLessThan(16); > 724 | expect(costs.keyJumpMoved).toBeGreaterThan(500); | ^ 725 | }); 726 | 727 | test("canvas backdrop: the dots stay on world multiples, a layer is a bounded box (only the screen's tiles are rastered) at any zoom, and at most two exist while one fades into the next", async ({ page }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:724:30 Error Context: test-results/clusters-motion-rule-the-w-165eb-ame-and-keys-do-not-animate/error-context.md 2) test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 @@ -1,8 +1,9 @@ Array [ "s-appearance", "s-windows", + "s-hosts", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", 837 | await open(page, 1); 838 | const sections = async (): Promise<string[]> => (await probe(page, (p) => p.views())).find((v) => v.id === "settings")!.windows; > 839 | expect(await sections()).toEqual(["s-appearance", "s-windows", "s-toolbar", "s-shortcuts", "s-devices", "s-account", "s-about", "s-users", "s-grants", "s-discovery"]); | ^ 840 | // The sidebar lists it last, after a divider; the gear in the sidebar footer flies there. 841 | await page.locator("#sidebar-toggle").click(); 842 | await expect(page.locator('#tree .bm-sec[data-id="view:settings"].cl-divided')).toHaveCount(1); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:839:28 Error Context: test-results/clusters-settings-is-a-vie-c2a75-for-operators-nothing-modal/error-context.md 3) test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px Error: expect(received).toBeLessThan(expected) Expected: < 0.5 Received: 12 1109 | // session manager are in the canvas row while a terminal is focused, and in ⌘K. 1110 | expect(pd.buttons).toEqual(["close"]); > 1111 | expect(Math.abs(pd.aH - pd.tH)).toBeLessThan(0.5); | ^ 1112 | expect(Math.abs(pd.aTop - pd.tTop)).toBeLessThan(0.5); 1113 | const hits = await p.evaluate(() => { 1114 | const w = document.querySelector('.ui-window[data-window-id="w-build-01"]')!; at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:1111:37 Error Context: test-results/clusters-window-header-act-d4932-with-touch-targets-of-44-px/error-context.md 4) test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus Test timeout of 30000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-R3pLi4 --remote-debugging-pipe --no-startup-window <launched> pid=262474 [pid=262474][err] [1011/165050.338077:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=262474][err] [1011/165050.501219:ERROR:gpu/ipc/client/command_buffer_proxy_impl.cc:285] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer. [pid=262474] <gracefully close start> 1180 | await expect.poll(async () => (await state()).rows, { timeout: 4000 }).toBe("1"); 1181 | expect(await state()).toMatchObject({ keysHidden: true, dots: "none" }); > 1182 | } finally { await t.close(); } | ^ 1183 | }); 1184 | at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/clusters.spec.ts:1182:15 Error Context: test-results/clusters-toolbar-and-keybo-094d8-key-row-and-keeps-its-focus/error-context.md 4 failed test/clusters.spec.ts:701:1 › motion rule: the work of a view jump, a window step and a column step finishes inside one frame, and keys do not animate test/clusters.spec.ts:836:1 › settings is a view: a gear after a divider, one window per section, admin windows only for operators, nothing modal test/clusters.spec.ts:1085:1 › window header actions are one pill: as tall as the title pill, on its line, with touch targets of 44 px test/clusters.spec.ts:1127:1 › toolbar and keyboard: no terminal focused means one row and no dots, a toolbar tap never focuses an input, a focused terminal gets the key row and keeps its focus 2 passed (1.8m) Invocation exit: 1 Load after: 30.22 23.84 23.33 11/3097 265696 ```
Author
Owner

#163 verbatim evidence: browser-case-production-core-screen.spec-1.log (1/1)

Load before: 8.23 14.12 19.91 8/3039 4009903
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p4009904-i50099905.scope; invocation ID: c2e5c0690b604a259cbce996c33668a1
[WebServer] $ bun run build.ts
[WebServer] built chunk-2spw9w0e.js, chunk-tvynw18r.js, chunk-84n22gpk.js, chunk-b5qzwpce.js, chunk-n7p337fe.js, chunk-hyeeh2v3.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-y7w2vbmx.js, chunk-bmn5mfkb.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vbcdfkck.js, chunk-7nczvd3c.js, chunk-evhvz8y3.js, chunk-azeaw67r.js, chunk-yvhhqffe.js, chunk-dmj9ffcx.js, chunk-mwz4gqqp.js, chunk-bt1mhxas.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-8k9tp05c.js, chunk-jzkerwx4.js, chunk-s1n2waj4.js, chunk-cqzy40ak.js, chunk-8gqdshxw.js, chunk-qgan2ysb.js, chunk-6mak6qnc.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-s2de8v9y.js, chunk-fftnzyp4.js, chunk-ve7e6vka.js, chunk-6f0sptpr.js, chunk-1d0qvnvb.js, chunk-63bj2832.js, chunk-axbkkqp1.js, chunk-4cq9tbzc.js, chunk-xedp73mj.js, chunk-fh2c01m8.js, chunk-w6dst94n.js, chunk-52hz42x1.js, chunk-b9q40swr.js, chunk-v86b5paa.js, chunk-j4527qck.js, chunk-0rx2j5v5.js, chunk-6wt2k496.js, chunk-66nwbgbt.js, chunk-2e4yh13p.js, chunk-7mg39g43.js, chunk-yt81jkp0.js, chunk-0hsmnc61.js, chunk-r2r38ss5.js, chunk-vyj4p8bh.js, chunk-2qqkg0ak.js, chunk-k8w8bn99.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-brvbhg8z.js, chunk-7wbkmznr.js, chunk-0sxn500c.js, chunk-beysmeaq.js, chunk-yk6hddf9.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 1 test using 1 worker

(node:4010107) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots (20.2s)


  1) test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ──

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 4
    + Received  + 4

      Array [
    -   251,
    -   251,
    -   251,
    -   0.78,
    +   0.980622,
    +   0.000315863,
    +   0.00124064,
    +   0.872627,
      ]

      138 |       return { background: style.backgroundColor, line: style.borderTopColor, shadow: style.boxShadow };
      139 |     });
    > 140 |     expect(cssChannels(paletteMaterial.background)).toEqual(cssChannels(material.root));
          |                                                     ^
      141 |     expect(cssChannels(paletteMaterial.line)).toEqual(cssChannels(material.rootLine));
      142 |     expect(paletteMaterial.shadow).toBe(sidebarMaterial.shadow);
      143 |     expect(paletteMaterial.shadow).not.toBe(material.layers[0]!.shadow);
        at screenshotMatrix (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/core-screen.spec.ts:140:53)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/core-screen.spec.ts:219:27

    attachment #1: tracer-core-1440x900-paper-sidebar-closed (image/png) ───────────────────────────
    test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-closed-e1b7ede65b11e53db8781b3dd0631d9333c65688.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: tracer-core-1440x900-paper-sidebar-open (image/png) ─────────────────────────────
    test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-open-2bda9f17f1c0c0f34b9bf6ce70c3438eef3d7e3c.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/error-context.md

  1 failed
    test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ───

Invocation exit: 1
Load after: 10.98 14.17 19.74 19/3035 4011895
#163 verbatim evidence: browser-case-production-core-screen.spec-1.log (1/1) ```text Load before: 8.23 14.12 19.91 8/3039 4009903 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p4009904-i50099905.scope; invocation ID: c2e5c0690b604a259cbce996c33668a1 [WebServer] $ bun run build.ts [WebServer] built chunk-2spw9w0e.js, chunk-tvynw18r.js, chunk-84n22gpk.js, chunk-b5qzwpce.js, chunk-n7p337fe.js, chunk-hyeeh2v3.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-y7w2vbmx.js, chunk-bmn5mfkb.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vbcdfkck.js, chunk-7nczvd3c.js, chunk-evhvz8y3.js, chunk-azeaw67r.js, chunk-yvhhqffe.js, chunk-dmj9ffcx.js, chunk-mwz4gqqp.js, chunk-bt1mhxas.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-8k9tp05c.js, chunk-jzkerwx4.js, chunk-s1n2waj4.js, chunk-cqzy40ak.js, chunk-8gqdshxw.js, chunk-qgan2ysb.js, chunk-6mak6qnc.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-s2de8v9y.js, chunk-fftnzyp4.js, chunk-ve7e6vka.js, chunk-6f0sptpr.js, chunk-1d0qvnvb.js, chunk-63bj2832.js, chunk-axbkkqp1.js, chunk-4cq9tbzc.js, chunk-xedp73mj.js, chunk-fh2c01m8.js, chunk-w6dst94n.js, chunk-52hz42x1.js, chunk-b9q40swr.js, chunk-v86b5paa.js, chunk-j4527qck.js, chunk-0rx2j5v5.js, chunk-6wt2k496.js, chunk-66nwbgbt.js, chunk-2e4yh13p.js, chunk-7mg39g43.js, chunk-yt81jkp0.js, chunk-0hsmnc61.js, chunk-r2r38ss5.js, chunk-vyj4p8bh.js, chunk-2qqkg0ak.js, chunk-k8w8bn99.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-brvbhg8z.js, chunk-7wbkmznr.js, chunk-0sxn500c.js, chunk-beysmeaq.js, chunk-yk6hddf9.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 1 test using 1 worker (node:4010107) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots (20.2s) 1) test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ── Error: expect(received).toEqual(expected) // deep equality - Expected - 4 + Received + 4 Array [ - 251, - 251, - 251, - 0.78, + 0.980622, + 0.000315863, + 0.00124064, + 0.872627, ] 138 | return { background: style.backgroundColor, line: style.borderTopColor, shadow: style.boxShadow }; 139 | }); > 140 | expect(cssChannels(paletteMaterial.background)).toEqual(cssChannels(material.root)); | ^ 141 | expect(cssChannels(paletteMaterial.line)).toEqual(cssChannels(material.rootLine)); 142 | expect(paletteMaterial.shadow).toBe(sidebarMaterial.shadow); 143 | expect(paletteMaterial.shadow).not.toBe(material.layers[0]!.shadow); at screenshotMatrix (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/core-screen.spec.ts:140:53) at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/core-screen.spec.ts:219:27 attachment #1: tracer-core-1440x900-paper-sidebar-closed (image/png) ─────────────────────────── test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-closed-e1b7ede65b11e53db8781b3dd0631d9333c65688.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: tracer-core-1440x900-paper-sidebar-open (image/png) ───────────────────────────── test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/attachments/tracer-core-1440x900-paper-sidebar-open-2bda9f17f1c0c0f34b9bf6ce70c3438eef3d7e3c.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/core-screen-core-screen-th-1b4b8-mobile-tray-and-screenshots/error-context.md 1 failed test/core-screen.spec.ts:150:1 › core screen themes, tree, RTT, mobile tray, and screenshots ─── Invocation exit: 1 Load after: 10.98 14.17 19.74 19/3035 4011895 ```
Author
Owner

#163 verbatim evidence: browser-case-production-glass-ghost.spec-1.log (1/1)

Load before: 45.01 32.23 24.75 33/3196 4113871
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p4113872-i50203814.scope; invocation ID: b003e5ae103d4fc091169c79a03d2c2f
[WebServer] $ bun run build.ts
[WebServer] built chunk-bsav05vv.js, chunk-tvynw18r.js, chunk-eewk01h8.js, chunk-b5qzwpce.js, chunk-d3w4f9sm.js, chunk-f6tk9kcs.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-d3ks698h.js, chunk-6f64260h.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-8d87y8jr.js, chunk-7nczvd3c.js, chunk-nz8gm5aa.js, chunk-h93j8wh3.js, chunk-yvhhqffe.js, chunk-wnxvrdyn.js, chunk-wb9j878g.js, chunk-n4zvjqw1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4yfgxvjk.js, chunk-henp89ab.js, chunk-pwbyn99g.js, chunk-zggvm3ky.js, chunk-8gqdshxw.js, chunk-vj7gja6m.js, chunk-j27awhfz.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9sn79nqr.js, chunk-bnptj7av.js, chunk-8scbb2f5.js, chunk-ss83pd83.js, chunk-1d0qvnvb.js, chunk-ka9v1y6f.js, chunk-axbkkqp1.js, chunk-g6m79916.js, chunk-530vcby2.js, chunk-esyczke0.js, chunk-kzskn8d9.js, chunk-g1y0yqjb.js, chunk-b378xmwc.js, chunk-v86b5paa.js, chunk-19b8xkqn.js, chunk-28wa8j1x.js, chunk-dfhjas5k.js, chunk-f9bw1rxj.js, chunk-2e4yh13p.js, chunk-1ezrt84g.js, chunk-376cm836.js, chunk-18kh7rx2.js, chunk-4pkjzkww.js, chunk-ghxr26xe.js, chunk-6fqyp8jp.js, chunk-msebbkj6.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5tr1hhv6.js, chunk-58aq2ac2.js, chunk-0sxn500c.js, chunk-5qkx8spx.js, chunk-f35jw2cd.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 1 test using 1 worker

(node:4117033) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
GHOST view switcher | level 1 | ink | dpr 1 | 0.0000
GHOST palette | level 1 | ink | dpr 1 | 0.0000
GHOST sidebar | level 1 | ink | dpr 1 | 0.0005
GHOST share dialog | level 1 | ink | dpr 1 | 0.0000
  ✘  1 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 (2.0m)


  1) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ────────

    Test timeout of 120000ms exceeded.

    Error: browserContext.close: Test ended.
    Browser logs:

    <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-7cj2og --remote-debugging-pipe --no-startup-window
    <launched> pid=4117773
    [pid=4117773][err] [1011/160803.042586:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process.
    [pid=4117773][err] [1011/160819.014642:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4641/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=1&session=cc52e0d7-9636-4ea4-a86b-9db51918b17e (0)
    [pid=4117773] <gracefully close start>

      81 |         await page.close();
      82 |       }
    > 83 |     } finally { await desktop.close(); await phone.close(); }
         |                 ^
      84 |   });
      85 | }
      86 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/glass-ghost.spec.ts:83:17

    Error Context: test-results/glass-ghost-ghost-text-eve-e364b-urface-at-level-1-ink-DPR-1/error-context.md

  1 failed
    test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ─────────

Invocation exit: 1
Load after: 16.18 26.29 23.63 14/3158 4133797
#163 verbatim evidence: browser-case-production-glass-ghost.spec-1.log (1/1) ```text Load before: 45.01 32.23 24.75 33/3196 4113871 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p4113872-i50203814.scope; invocation ID: b003e5ae103d4fc091169c79a03d2c2f [WebServer] $ bun run build.ts [WebServer] built chunk-bsav05vv.js, chunk-tvynw18r.js, chunk-eewk01h8.js, chunk-b5qzwpce.js, chunk-d3w4f9sm.js, chunk-f6tk9kcs.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-d3ks698h.js, chunk-6f64260h.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-8d87y8jr.js, chunk-7nczvd3c.js, chunk-nz8gm5aa.js, chunk-h93j8wh3.js, chunk-yvhhqffe.js, chunk-wnxvrdyn.js, chunk-wb9j878g.js, chunk-n4zvjqw1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4yfgxvjk.js, chunk-henp89ab.js, chunk-pwbyn99g.js, chunk-zggvm3ky.js, chunk-8gqdshxw.js, chunk-vj7gja6m.js, chunk-j27awhfz.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9sn79nqr.js, chunk-bnptj7av.js, chunk-8scbb2f5.js, chunk-ss83pd83.js, chunk-1d0qvnvb.js, chunk-ka9v1y6f.js, chunk-axbkkqp1.js, chunk-g6m79916.js, chunk-530vcby2.js, chunk-esyczke0.js, chunk-kzskn8d9.js, chunk-g1y0yqjb.js, chunk-b378xmwc.js, chunk-v86b5paa.js, chunk-19b8xkqn.js, chunk-28wa8j1x.js, chunk-dfhjas5k.js, chunk-f9bw1rxj.js, chunk-2e4yh13p.js, chunk-1ezrt84g.js, chunk-376cm836.js, chunk-18kh7rx2.js, chunk-4pkjzkww.js, chunk-ghxr26xe.js, chunk-6fqyp8jp.js, chunk-msebbkj6.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-5tr1hhv6.js, chunk-58aq2ac2.js, chunk-0sxn500c.js, chunk-5qkx8spx.js, chunk-f35jw2cd.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 1 test using 1 worker (node:4117033) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) GHOST view switcher | level 1 | ink | dpr 1 | 0.0000 GHOST palette | level 1 | ink | dpr 1 | 0.0000 GHOST sidebar | level 1 | ink | dpr 1 | 0.0005 GHOST share dialog | level 1 | ink | dpr 1 | 0.0000 ✘ 1 test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 (2.0m) 1) test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ──────── Test timeout of 120000ms exceeded. Error: browserContext.close: Test ended. Browser logs: <launching> /home/kayg/.cache/ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-linux64/chrome-headless-shell --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --disable-renderer-backgrounding --user-data-dir=/tmp/playwright_chromiumdev_profile-7cj2og --remote-debugging-pipe --no-startup-window <launched> pid=4117773 [pid=4117773][err] [1011/160803.042586:WARNING:sandbox/policy/linux/sandbox_linux.cc:404] InitializeSandbox() called with multiple threads in process gpu-process. [pid=4117773][err] [1011/160819.014642:INFO:CONSOLE:0] "ResizeObserver loop completed with undelivered notifications.", source: http://localhost:4641/?mock=1&proto=clusters&scene=3&theme=ink&bg=soft&card=1&session=cc52e0d7-9636-4ea4-a86b-9db51918b17e (0) [pid=4117773] <gracefully close start> 81 | await page.close(); 82 | } > 83 | } finally { await desktop.close(); await phone.close(); } | ^ 84 | }); 85 | } 86 | at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/glass-ghost.spec.ts:83:17 Error Context: test-results/glass-ghost-ghost-text-eve-e364b-urface-at-level-1-ink-DPR-1/error-context.md 1 failed test/glass-ghost.spec.ts:45:3 › ghost text: every glass surface at level 1, ink, DPR 1 ───────── Invocation exit: 1 Load after: 16.18 26.29 23.63 14/3158 4133797 ```
Author
Owner

#163 verbatim evidence: browser-case-production-mesh-perf.spec-6.log (1/1)

Load before: 32.00 26.84 24.50 31/3070 287071
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p287072-i50570737.scope; invocation ID: 30c63d07058f4f449c990cb9c177d939
[WebServer] $ bun run build.ts
[WebServer] built chunk-9c624bqq.js, chunk-tvynw18r.js, chunk-qatwad5g.js, chunk-b5qzwpce.js, chunk-zd6npez9.js, chunk-5aqv8219.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jzmx9z7g.js, chunk-rc3b42vx.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-bggs88k8.js, chunk-7nczvd3c.js, chunk-np8hkk19.js, chunk-7mgg0dq1.js, chunk-yvhhqffe.js, chunk-05pb8tm1.js, chunk-tkbjg2qf.js, chunk-z4w6ymsk.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-rxm94mvt.js, chunk-e6b7a7am.js, chunk-x2b6jnss.js, chunk-t8r2dx12.js, chunk-8gqdshxw.js, chunk-mzg1r2tn.js, chunk-cnhv5a5y.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-978bfah2.js, chunk-nw4q085b.js, chunk-fp1gmhck.js, chunk-1tnqepz1.js, chunk-1d0qvnvb.js, chunk-en5qmjbm.js, chunk-axbkkqp1.js, chunk-sjvqg1gn.js, chunk-myv6tyhk.js, chunk-8h05468r.js, chunk-279t2c4x.js, chunk-wh7449bb.js, chunk-4azqazw1.js, chunk-v86b5paa.js, chunk-74cathbq.js, chunk-nasaxjk6.js, chunk-h0j4ee1c.js, chunk-79bz1g02.js, chunk-2e4yh13p.js, chunk-5c9t6z2v.js, chunk-2g7h2rbz.js, chunk-ttmrbwfg.js, chunk-5v68e4qc.js, chunk-3tc8q7r9.js, chunk-ppg9dm7e.js, chunk-nkt736wm.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-0k79ynzf.js, chunk-pfshf6va.js, chunk-0sxn500c.js, chunk-r66q84f2.js, chunk-75zsxms8.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 1 test using 1 worker

(node:287357) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
MESH-PERF load/core=2.80 {"zoom":{"top":"UpdateLayoutTree=178ms Layout=21ms PrePaint=30ms Paint=275ms Layerize=183ms FireAnimationFrame=158ms EventDispatch=40ms RunTask=826ms","n":91,"p50":7,"p95":20.55,"max":60.2,"over8":30},"pan":{"top":"UpdateLayoutTree=144ms Layout=70ms PrePaint=28ms Paint=232ms Layerize=353ms FireAnimationFrame=154ms EventDispatch=41ms RunTask=1197ms","n":138,"p50":5.76,"p95":23.06,"max":42.73,"over8":39},"drag":{"top":"UpdateLayoutTree=0ms Layout=0ms PrePaint=5ms Paint=0ms Layerize=1ms FireAnimationFrame=43ms EventDispatch=33ms RunTask=338ms","n":191,"p50":0.88,"p95":1.62,"max":7.94,"over8":0}}
  ✓  1 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (25.1s)

  1 passed (35.2s)

Invocation exit: 0
Load after: 22.40 25.07 24.00 4/2966 288005
#163 verbatim evidence: browser-case-production-mesh-perf.spec-6.log (1/1) ```text Load before: 32.00 26.84 24.50 31/3070 287071 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p287072-i50570737.scope; invocation ID: 30c63d07058f4f449c990cb9c177d939 [WebServer] $ bun run build.ts [WebServer] built chunk-9c624bqq.js, chunk-tvynw18r.js, chunk-qatwad5g.js, chunk-b5qzwpce.js, chunk-zd6npez9.js, chunk-5aqv8219.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jzmx9z7g.js, chunk-rc3b42vx.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-bggs88k8.js, chunk-7nczvd3c.js, chunk-np8hkk19.js, chunk-7mgg0dq1.js, chunk-yvhhqffe.js, chunk-05pb8tm1.js, chunk-tkbjg2qf.js, chunk-z4w6ymsk.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-rxm94mvt.js, chunk-e6b7a7am.js, chunk-x2b6jnss.js, chunk-t8r2dx12.js, chunk-8gqdshxw.js, chunk-mzg1r2tn.js, chunk-cnhv5a5y.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-978bfah2.js, chunk-nw4q085b.js, chunk-fp1gmhck.js, chunk-1tnqepz1.js, chunk-1d0qvnvb.js, chunk-en5qmjbm.js, chunk-axbkkqp1.js, chunk-sjvqg1gn.js, chunk-myv6tyhk.js, chunk-8h05468r.js, chunk-279t2c4x.js, chunk-wh7449bb.js, chunk-4azqazw1.js, chunk-v86b5paa.js, chunk-74cathbq.js, chunk-nasaxjk6.js, chunk-h0j4ee1c.js, chunk-79bz1g02.js, chunk-2e4yh13p.js, chunk-5c9t6z2v.js, chunk-2g7h2rbz.js, chunk-ttmrbwfg.js, chunk-5v68e4qc.js, chunk-3tc8q7r9.js, chunk-ppg9dm7e.js, chunk-nkt736wm.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-0k79ynzf.js, chunk-pfshf6va.js, chunk-0sxn500c.js, chunk-r66q84f2.js, chunk-75zsxms8.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 1 test using 1 worker (node:287357) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) MESH-PERF load/core=2.80 {"zoom":{"top":"UpdateLayoutTree=178ms Layout=21ms PrePaint=30ms Paint=275ms Layerize=183ms FireAnimationFrame=158ms EventDispatch=40ms RunTask=826ms","n":91,"p50":7,"p95":20.55,"max":60.2,"over8":30},"pan":{"top":"UpdateLayoutTree=144ms Layout=70ms PrePaint=28ms Paint=232ms Layerize=353ms FireAnimationFrame=154ms EventDispatch=41ms RunTask=1197ms","n":138,"p50":5.76,"p95":23.06,"max":42.73,"over8":39},"drag":{"top":"UpdateLayoutTree=0ms Layout=0ms PrePaint=5ms Paint=0ms Layerize=1ms FireAnimationFrame=43ms EventDispatch=33ms RunTask=338ms","n":191,"p50":0.88,"p95":1.62,"max":7.94,"over8":0}} ✓ 1 test/mesh-perf.spec.ts:47:1 › 1,000 nodes: the main thread's work per frame of a zoom, a pan and a drag (25.1s) 1 passed (35.2s) Invocation exit: 0 Load after: 22.40 25.07 24.00 4/2966 288005 ```
Author
Owner

#163 verbatim evidence: browser-case-production-motion-audit.spec-7.log (1/1)

Load before: 20.00 24.40 23.80 18/2976 289696
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p289697-i50573362.scope; invocation ID: 4062bac3159748dca9687238e17996ab
[WebServer] $ bun run build.ts
[WebServer] built chunk-jj99cdh2.js, chunk-tvynw18r.js, chunk-xb1tsj6z.js, chunk-b5qzwpce.js, chunk-vjc4wywy.js, chunk-f3dzsfr1.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-66fjc40m.js, chunk-jns5y2tg.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-hxe6d5rr.js, chunk-7nczvd3c.js, chunk-kfaen30b.js, chunk-0p5hrmbm.js, chunk-yvhhqffe.js, chunk-myykkfmn.js, chunk-1581mspp.js, chunk-gpvtdzty.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pmz3t4fq.js, chunk-hgxnv469.js, chunk-0qaefdzp.js, chunk-q4z7djs6.js, chunk-8gqdshxw.js, chunk-rfrgsn6d.js, chunk-7ke91zv0.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-bn817qma.js, chunk-tpy2v24k.js, chunk-kehwrj4v.js, chunk-4vswnsbd.js, chunk-1d0qvnvb.js, chunk-h9w4h4x4.js, chunk-axbkkqp1.js, chunk-4m8jzs4a.js, chunk-xmww4jaf.js, chunk-bhxywa96.js, chunk-5wwhwxvh.js, chunk-n6gxs4qd.js, chunk-s1xvz5c1.js, chunk-v86b5paa.js, chunk-t63qex7s.js, chunk-2pb5cv0r.js, chunk-bhd4w8ad.js, chunk-t7xshf3m.js, chunk-2e4yh13p.js, chunk-7wh07hys.js, chunk-gk5330gy.js, chunk-r94erxzq.js, chunk-1s2ffqpx.js, chunk-kv5k9hbf.js, chunk-ntf29b7b.js, chunk-cdp65gbf.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-cremkx2p.js, chunk-bqfkxehg.js, chunk-0sxn500c.js, chunk-x0nxnje3.js, chunk-fga95epm.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 1 test using 1 worker

(node:290584) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
MOTION_AUDIT auth-visible-loop {"rafCallbacks":[],"pending":[],"idleRafFrames":0,"shaderFrames":23,"shaderGaps":[33.299999952316284,41.39999997615814,34.39999997615814,51.10000002384186,49.60000002384186,34.799999952316284,52.40000009536743,44.5,41.39999997615814,34.699999928474426,64.20000004768372,59.39999997615814,57.10000002384186,62.700000047683716,68.19999992847443,84,81.39999997615814,42,60.40000009536743,44.199999928474426,54.200000047683716,36.5],"shaderSurface":{"cssWidth":1280,"cssHeight":720,"dpr":1,"shaderWidth":640,"shaderHeight":360},"hiddenPause":{"paused":true,"resumed":true},"offscreenPause":{"paused":true,"resumed":true}}
MOTION_AUDIT auth-start [{"selector":"#setup-card","animationName":"auth-card-in","animationDuration":"0.24s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"220px 254px","transform":"matrix(1, 0, 0, 1, 0, 0)","visible":"true"},{"selector":".auth-pane","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"opacity, transform","transitionDuration":"0.24s, 0.24s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"187px 130.883px","transform":"none","visible":"true"},{"selector":"#setup-viewport","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"height","transitionDuration":"0.24s","transitionDelay":"0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"193px 131px","transform":"none","visible":"true"},{"selector":".auth-step-bar","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"38.3281px 0.5px","transform":"none","visible":"true"},{"selector":"#setup-token","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"187px 24px","transform":"none","visible":"true"},{"selector":".auth-dot","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"12px 12px","transform":"none","visible":"true"},{"selector":"#setup-next","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"transform, opacity","transitionDuration":"0.14s, 0.16s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), ease","transformOrigin":"70px 21px","transform":"none","visible":"true"}]
MOTION_AUDIT keyboard-step-token {"sample":{"frames":25,"dropped":31,"longestGapMs":116.70000000000073},"events":[]}
MOTION_AUDIT keyboard-step-identity {"sample":{"frames":18,"dropped":7,"longestGapMs":33.399999999999636},"events":[]}
MOTION_AUDIT create-passkey {"sample":{"frames":33,"dropped":67,"longestGapMs":316.59999999999854},"events":[]}
MOTION_AUDIT copy-feedback {"sample":{"frames":9,"dropped":25,"longestGapMs":116.79999999999927},"events":[{"label":"copy-feedback","kind":"transition","selector":"svg.is-idle","property":"filter","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-idle","property":"opacity","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-idle","property":"transform","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-done","property":"filter","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-done","property":"opacity","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-done","property":"transform","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"path","property":"stroke-dashoffset","duration":"0.26s","delay":"0.05s","easing":"cubic-bezier(0.23, 1, 0.32, 1)"}],"copyMorph":{"idleFilter":"blur(2px)","idleScale":0.6,"doneFilter":"none"}}
  ✘  1 test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens (20.6s)


  1) test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens 

    Error: expect(locator).toHaveAttribute(expected) failed

    Locator:  locator('#copy-recovery')
    Expected: ""
    Received: serializes to the same string
    Timeout:  5000ms

    Call log:
      - Expect "toHaveAttribute" with timeout 5000ms
      - waiting for locator('#copy-recovery')
        13 × locator resolved to <button type="button" id="copy-recovery" class="icon-action" aria-label="Copy recovery key" data-idle-label="Copy recovery key">…</button>
           - unexpected value "null"


      402 |
      403 |   await page.waitForTimeout(520);
    > 404 |   await expect(page.locator("#copy-recovery")).toHaveAttribute("data-done", "");
          |                                                ^
      405 |   await page.evaluate(() => { window.__motionAudit.label = "copy-feedback-return"; window.__motionAudit.startSample(); });
      406 |   await page.waitForTimeout(230);
      407 |   const copyReturn = await sampleAndEvents(page, "copy-feedback-return");
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/motion-audit.spec.ts:404:48

    attachment #1: production setup (image/png) ────────────────────────────────────────────────────
    test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-setup-12f0fde5620f880820bb2f601a2b1ea59524d45e.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: production recovery (image/png) ─────────────────────────────────────────────────
    test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-recovery-2a9258fada39eea607dd24ad2781d64b4031073b.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/error-context.md

  1 failed
    test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens 

Invocation exit: 1
Load after: 19.79 23.93 23.66 11/2980 292235
#163 verbatim evidence: browser-case-production-motion-audit.spec-7.log (1/1) ```text Load before: 20.00 24.40 23.80 18/2976 289696 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p289697-i50573362.scope; invocation ID: 4062bac3159748dca9687238e17996ab [WebServer] $ bun run build.ts [WebServer] built chunk-jj99cdh2.js, chunk-tvynw18r.js, chunk-xb1tsj6z.js, chunk-b5qzwpce.js, chunk-vjc4wywy.js, chunk-f3dzsfr1.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-66fjc40m.js, chunk-jns5y2tg.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-hxe6d5rr.js, chunk-7nczvd3c.js, chunk-kfaen30b.js, chunk-0p5hrmbm.js, chunk-yvhhqffe.js, chunk-myykkfmn.js, chunk-1581mspp.js, chunk-gpvtdzty.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pmz3t4fq.js, chunk-hgxnv469.js, chunk-0qaefdzp.js, chunk-q4z7djs6.js, chunk-8gqdshxw.js, chunk-rfrgsn6d.js, chunk-7ke91zv0.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-bn817qma.js, chunk-tpy2v24k.js, chunk-kehwrj4v.js, chunk-4vswnsbd.js, chunk-1d0qvnvb.js, chunk-h9w4h4x4.js, chunk-axbkkqp1.js, chunk-4m8jzs4a.js, chunk-xmww4jaf.js, chunk-bhxywa96.js, chunk-5wwhwxvh.js, chunk-n6gxs4qd.js, chunk-s1xvz5c1.js, chunk-v86b5paa.js, chunk-t63qex7s.js, chunk-2pb5cv0r.js, chunk-bhd4w8ad.js, chunk-t7xshf3m.js, chunk-2e4yh13p.js, chunk-7wh07hys.js, chunk-gk5330gy.js, chunk-r94erxzq.js, chunk-1s2ffqpx.js, chunk-kv5k9hbf.js, chunk-ntf29b7b.js, chunk-cdp65gbf.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-cremkx2p.js, chunk-bqfkxehg.js, chunk-0sxn500c.js, chunk-x0nxnje3.js, chunk-fga95epm.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 1 test using 1 worker (node:290584) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) MOTION_AUDIT auth-visible-loop {"rafCallbacks":[],"pending":[],"idleRafFrames":0,"shaderFrames":23,"shaderGaps":[33.299999952316284,41.39999997615814,34.39999997615814,51.10000002384186,49.60000002384186,34.799999952316284,52.40000009536743,44.5,41.39999997615814,34.699999928474426,64.20000004768372,59.39999997615814,57.10000002384186,62.700000047683716,68.19999992847443,84,81.39999997615814,42,60.40000009536743,44.199999928474426,54.200000047683716,36.5],"shaderSurface":{"cssWidth":1280,"cssHeight":720,"dpr":1,"shaderWidth":640,"shaderHeight":360},"hiddenPause":{"paused":true,"resumed":true},"offscreenPause":{"paused":true,"resumed":true}} MOTION_AUDIT auth-start [{"selector":"#setup-card","animationName":"auth-card-in","animationDuration":"0.24s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"220px 254px","transform":"matrix(1, 0, 0, 1, 0, 0)","visible":"true"},{"selector":".auth-pane","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"opacity, transform","transitionDuration":"0.24s, 0.24s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"187px 130.883px","transform":"none","visible":"true"},{"selector":"#setup-viewport","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"height","transitionDuration":"0.24s","transitionDelay":"0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1)","transformOrigin":"193px 131px","transform":"none","visible":"true"},{"selector":".auth-step-bar","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"38.3281px 0.5px","transform":"none","visible":"true"},{"selector":"#setup-token","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"187px 24px","transform":"none","visible":"true"},{"selector":".auth-dot","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"all","transitionDuration":"0s","transitionDelay":"0s","transitionTimingFunction":"ease","transformOrigin":"12px 12px","transform":"none","visible":"true"},{"selector":"#setup-next","animationName":"none","animationDuration":"0s","animationDelay":"0s","transitionProperty":"transform, opacity","transitionDuration":"0.14s, 0.16s","transitionDelay":"0s, 0s","transitionTimingFunction":"cubic-bezier(0.23, 1, 0.32, 1), ease","transformOrigin":"70px 21px","transform":"none","visible":"true"}] MOTION_AUDIT keyboard-step-token {"sample":{"frames":25,"dropped":31,"longestGapMs":116.70000000000073},"events":[]} MOTION_AUDIT keyboard-step-identity {"sample":{"frames":18,"dropped":7,"longestGapMs":33.399999999999636},"events":[]} MOTION_AUDIT create-passkey {"sample":{"frames":33,"dropped":67,"longestGapMs":316.59999999999854},"events":[]} MOTION_AUDIT copy-feedback {"sample":{"frames":9,"dropped":25,"longestGapMs":116.79999999999927},"events":[{"label":"copy-feedback","kind":"transition","selector":"svg.is-idle","property":"filter","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-idle","property":"opacity","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-idle","property":"transform","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-done","property":"filter","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-done","property":"opacity","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"svg.is-done","property":"transform","duration":"0.2s","delay":"0s, 0s, 0s","easing":"cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.23, 1, 0.32, 1)"},{"label":"copy-feedback","kind":"transition","selector":"path","property":"stroke-dashoffset","duration":"0.26s","delay":"0.05s","easing":"cubic-bezier(0.23, 1, 0.32, 1)"}],"copyMorph":{"idleFilter":"blur(2px)","idleScale":0.6,"doneFilter":"none"}} ✘ 1 test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens (20.6s) 1) test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('#copy-recovery') Expected: "" Received: serializes to the same string Timeout: 5000ms Call log: - Expect "toHaveAttribute" with timeout 5000ms - waiting for locator('#copy-recovery') 13 × locator resolved to <button type="button" id="copy-recovery" class="icon-action" aria-label="Copy recovery key" data-idle-label="Copy recovery key">…</button> - unexpected value "null" 402 | 403 | await page.waitForTimeout(520); > 404 | await expect(page.locator("#copy-recovery")).toHaveAttribute("data-done", ""); | ^ 405 | await page.evaluate(() => { window.__motionAudit.label = "copy-feedback-return"; window.__motionAudit.startSample(); }); 406 | await page.waitForTimeout(230); 407 | const copyReturn = await sampleAndEvents(page, "copy-feedback-return"); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/motion-audit.spec.ts:404:48 attachment #1: production setup (image/png) ──────────────────────────────────────────────────── test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-setup-12f0fde5620f880820bb2f601a2b1ea59524d45e.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: production recovery (image/png) ───────────────────────────────────────────────── test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/attachments/production-recovery-2a9258fada39eea607dd24ad2781d64b4031073b.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/motion-audit-measure-deplo-2b97c--capture-production-screens/error-context.md 1 failed test/motion-audit.spec.ts:39:1 › measure deployed motion at 4x CPU and capture production screens Invocation exit: 1 Load after: 19.79 23.93 23.66 11/2980 292235 ```
Author
Owner

#163 verbatim evidence: browser-case-production-onboarding.spec-8.log (1/1)

Load before: 18.56 23.44 23.50 14/2988 293266
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p293267-i50576932.scope; invocation ID: e57fb411cbfd4849b21fea38e90b55a2
[WebServer] $ bun run build.ts
[WebServer] built chunk-92f1e8n3.js, chunk-tvynw18r.js, chunk-rcac4719.js, chunk-b5qzwpce.js, chunk-7rjkcswd.js, chunk-b5vrf89k.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-4b68e2sw.js, chunk-h1myvxyy.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-mfk38ad6.js, chunk-7nczvd3c.js, chunk-vdre5dm5.js, chunk-pxjsfvty.js, chunk-yvhhqffe.js, chunk-yd3skazz.js, chunk-9en039vy.js, chunk-1vwkgj6s.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-jhhw8txy.js, chunk-gh1pb2v6.js, chunk-h7xrbkxn.js, chunk-j4e4dwne.js, chunk-8gqdshxw.js, chunk-77rmchqg.js, chunk-j5nx9twz.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-ckb6jpn1.js, chunk-2sah8qmt.js, chunk-ej92gjca.js, chunk-rrhr3rr3.js, chunk-1d0qvnvb.js, chunk-8c2hbyvt.js, chunk-axbkkqp1.js, chunk-v18pyrtj.js, chunk-aathkdzb.js, chunk-pby90tnp.js, chunk-n6rt0943.js, chunk-m93s163f.js, chunk-480sw2zy.js, chunk-v86b5paa.js, chunk-syxe6883.js, chunk-h09yv1r9.js, chunk-44cf62dp.js, chunk-9e3np3s6.js, chunk-2e4yh13p.js, chunk-vnrf3x5s.js, chunk-bf84p2vj.js, chunk-xky0ey1z.js, chunk-aa0kapv8.js, chunk-q4wxzjm9.js, chunk-vkyyb7w8.js, chunk-3zyn726g.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b7ab9t8a.js, chunk-t4yq4ech.js, chunk-0sxn500c.js, chunk-c4gt67ey.js, chunk-af58rhtq.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 1 test using 1 worker

(node:293686) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (33.0s)


  1) test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

    Call Log:
    - Timeout 5000ms exceeded while waiting on the predicate

      204 |   const signInTransitions = await page.evaluate(() => (window as Window & { __signinTransitions?: string[] }).__signinTransitions ?? []);
      205 |   expect(signInTransitions).toEqual([]);
    > 206 |   await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true);
          |                                                                                                   ^
      207 |   console.log(`ONBOARDING_SCREENSHOTS ${screenshots.join(" ")}`);
      208 | });
      209 |
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/onboarding.spec.ts:206:99

    attachment #1: step-1-token-iphone-15 (image/png) ──────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-iphone-15-0f5d53b4e37db7305023a9239aed2c4fbd80134d.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: step-1-token-desktop (image/png) ────────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-desktop-469545c01b60a2b086bda7396bf958e48e0b65d7.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #3: step-2-identity-iphone-15 (image/png) ───────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-iphone-15-71618509f2100f98d18222907255085f502dd50f.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #4: step-2-identity-desktop (image/png) ─────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-desktop-a5e4fc01c83763ab6554b248a7b6f41e9c39fc22.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #5: step-3-passkey-iphone-15 (image/png) ────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-iphone-15-98266a9c86429b740bbcc02c18244159a7370a90.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #6: step-3-passkey-desktop (image/png) ──────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-desktop-ce280e3f57b4c5a408b39b7d57c4fede2f5aced0.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #7: step-4-recovery-iphone-15 (image/png) ───────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-iphone-15-67d44c8b433755b44addf4deedd7fe209835985b.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #8: step-4-recovery-desktop (image/png) ─────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-desktop-83ec57272213e8967fe0b7eaf30fb749599c4612.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #9: welcome-iphone-15 (image/png) ───────────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-iphone-15-e377822db69427e35b8d774e97c21446a5519b16.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #10: welcome-desktop (image/png) ────────────────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-desktop-2e5a2ebc1503eed4029f38d696a3e24e77a475e6.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #11: returning-sign-in-iphone-15 (image/png) ────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-iphone-15-e7f5d43679d33773e0e59d6e78b11b2bef202331.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #12: returning-sign-in-desktop (image/png) ──────────────────────────────────────────
    test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-desktop-a7b83e31965f6f1e1c95ef90c67dc88ee2ed0c29.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/error-context.md

  1 failed
    test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract 

Invocation exit: 1
Load after: 20.82 23.24 23.43 28/3001 302858
#163 verbatim evidence: browser-case-production-onboarding.spec-8.log (1/1) ```text Load before: 18.56 23.44 23.50 14/2988 293266 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p293267-i50576932.scope; invocation ID: e57fb411cbfd4849b21fea38e90b55a2 [WebServer] $ bun run build.ts [WebServer] built chunk-92f1e8n3.js, chunk-tvynw18r.js, chunk-rcac4719.js, chunk-b5qzwpce.js, chunk-7rjkcswd.js, chunk-b5vrf89k.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-4b68e2sw.js, chunk-h1myvxyy.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-mfk38ad6.js, chunk-7nczvd3c.js, chunk-vdre5dm5.js, chunk-pxjsfvty.js, chunk-yvhhqffe.js, chunk-yd3skazz.js, chunk-9en039vy.js, chunk-1vwkgj6s.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-jhhw8txy.js, chunk-gh1pb2v6.js, chunk-h7xrbkxn.js, chunk-j4e4dwne.js, chunk-8gqdshxw.js, chunk-77rmchqg.js, chunk-j5nx9twz.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-ckb6jpn1.js, chunk-2sah8qmt.js, chunk-ej92gjca.js, chunk-rrhr3rr3.js, chunk-1d0qvnvb.js, chunk-8c2hbyvt.js, chunk-axbkkqp1.js, chunk-v18pyrtj.js, chunk-aathkdzb.js, chunk-pby90tnp.js, chunk-n6rt0943.js, chunk-m93s163f.js, chunk-480sw2zy.js, chunk-v86b5paa.js, chunk-syxe6883.js, chunk-h09yv1r9.js, chunk-44cf62dp.js, chunk-9e3np3s6.js, chunk-2e4yh13p.js, chunk-vnrf3x5s.js, chunk-bf84p2vj.js, chunk-xky0ey1z.js, chunk-aa0kapv8.js, chunk-q4wxzjm9.js, chunk-vkyyb7w8.js, chunk-3zyn726g.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b7ab9t8a.js, chunk-t4yq4ech.js, chunk-0sxn500c.js, chunk-c4gt67ey.js, chunk-af58rhtq.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 1 test using 1 worker (node:293686) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (33.0s) 1) test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false Call Log: - Timeout 5000ms exceeded while waiting on the predicate 204 | const signInTransitions = await page.evaluate(() => (window as Window & { __signinTransitions?: string[] }).__signinTransitions ?? []); 205 | expect(signInTransitions).toEqual([]); > 206 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true); | ^ 207 | console.log(`ONBOARDING_SCREENSHOTS ${screenshots.join(" ")}`); 208 | }); 209 | at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/onboarding.spec.ts:206:99 attachment #1: step-1-token-iphone-15 (image/png) ────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-iphone-15-0f5d53b4e37db7305023a9239aed2c4fbd80134d.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: step-1-token-desktop (image/png) ──────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-1-token-desktop-469545c01b60a2b086bda7396bf958e48e0b65d7.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: step-2-identity-iphone-15 (image/png) ─────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-iphone-15-71618509f2100f98d18222907255085f502dd50f.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #4: step-2-identity-desktop (image/png) ───────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-2-identity-desktop-a5e4fc01c83763ab6554b248a7b6f41e9c39fc22.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #5: step-3-passkey-iphone-15 (image/png) ──────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-iphone-15-98266a9c86429b740bbcc02c18244159a7370a90.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #6: step-3-passkey-desktop (image/png) ────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-3-passkey-desktop-ce280e3f57b4c5a408b39b7d57c4fede2f5aced0.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #7: step-4-recovery-iphone-15 (image/png) ─────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-iphone-15-67d44c8b433755b44addf4deedd7fe209835985b.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #8: step-4-recovery-desktop (image/png) ───────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/step-4-recovery-desktop-83ec57272213e8967fe0b7eaf30fb749599c4612.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #9: welcome-iphone-15 (image/png) ─────────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-iphone-15-e377822db69427e35b8d774e97c21446a5519b16.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #10: welcome-desktop (image/png) ──────────────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/welcome-desktop-2e5a2ebc1503eed4029f38d696a3e24e77a475e6.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #11: returning-sign-in-iphone-15 (image/png) ──────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-iphone-15-e7f5d43679d33773e0e59d6e78b11b2bef202331.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #12: returning-sign-in-desktop (image/png) ────────────────────────────────────────── test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/attachments/returning-sign-in-desktop-a7b83e31965f6f1e1c95ef90c67dc88ee2ed0c29.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/error-context.md 1 failed test/onboarding.spec.ts:54:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract Invocation exit: 1 Load after: 20.82 23.24 23.43 28/3001 302858 ```
Author
Owner

#163 verbatim evidence: browser-case-production-palette-navigation.spec-9.log (1/1)

Load before: 25.64 24.16 23.72 34/3083 309543
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p309544-i50593209.scope; invocation ID: 90cefb404105454f85acb612e1b53741
[WebServer] $ bun run build.ts
[WebServer] built chunk-p8n23y91.js, chunk-tvynw18r.js, chunk-fyjegxzy.js, chunk-b5qzwpce.js, chunk-k978pcdj.js, chunk-cb3xjyjv.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-3b92sypr.js, chunk-53r1s2ab.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vqqagpn5.js, chunk-7nczvd3c.js, chunk-cg6zmw3m.js, chunk-kmb7c6p5.js, chunk-yvhhqffe.js, chunk-syzbb2ep.js, chunk-92ftqnff.js, chunk-vvcry5fc.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pbad2je3.js, chunk-n7xxhdam.js, chunk-kmzqpt69.js, chunk-gsf1van7.js, chunk-8gqdshxw.js, chunk-8qn85ba6.js, chunk-69f4sd7c.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-kpktcx9m.js, chunk-4yg8f0e9.js, chunk-ktbj54r1.js, chunk-gxyc11vk.js, chunk-1d0qvnvb.js, chunk-hmbcpdxy.js, chunk-axbkkqp1.js, chunk-8x4h11fc.js, chunk-zfy47dvb.js, chunk-mp69w8r9.js, chunk-6317jk6y.js, chunk-p1vq4nra.js, chunk-2fq6eth2.js, chunk-v86b5paa.js, chunk-jhhs89c3.js, chunk-qeb0dx7m.js, chunk-1q0y4jx6.js, chunk-se7ypbdg.js, chunk-2e4yh13p.js, chunk-b14e5xry.js, chunk-36w7xg9j.js, chunk-q378t293.js, chunk-sahvpe67.js, chunk-v5yzdj6m.js, chunk-a3jzhcgk.js, chunk-vh0k6wrk.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ha3s12pc.js, chunk-j4kaxqmb.js, chunk-0sxn500c.js, chunk-qezx7752.js, chunk-04xgn3ms.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 1 test using 1 worker

(node:311638) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ENVIRONMENT machine=infraternal-dev cores=8 load_1_5_15=29.02,25.02,24.02
METRIC name=palette_arrow_handler_ms_per_press value=2.6440 presses=100 viewport=1440x900
METRIC name=palette_filter_handler_ms_per_input value=0.3500 inputs=100 viewport=1440x900
  ✘  1 test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile (9.2s)


  1) test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile 

    Error: expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 0.13
    Received:    0.35

      117 |   console.log(`METRIC name=palette_filter_handler_ms_per_input value=${millisecondsPerFilter.toFixed(4)} inputs=100 viewport=1440x900`);
      118 |   expect(millisecondsPerArrow).toBeGreaterThanOrEqual(0);
    > 119 |   expect(millisecondsPerFilter).toBeLessThanOrEqual(0.13);
          |                                 ^
      120 | }
      121 |
      122 | async function walkDownAndUp(page: Page): Promise<void> {
        at measureHandlers (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/palette-navigation.spec.ts:119:33)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/palette-navigation.spec.ts:169:3

    Error Context: test-results/palette-navigation-palette-08dcc-sible-on-desktop-and-mobile/error-context.md

  1 failed
    test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile 

Invocation exit: 1
Load after: 29.02 25.02 24.02 28/3028 314101
#163 verbatim evidence: browser-case-production-palette-navigation.spec-9.log (1/1) ```text Load before: 25.64 24.16 23.72 34/3083 309543 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p309544-i50593209.scope; invocation ID: 90cefb404105454f85acb612e1b53741 [WebServer] $ bun run build.ts [WebServer] built chunk-p8n23y91.js, chunk-tvynw18r.js, chunk-fyjegxzy.js, chunk-b5qzwpce.js, chunk-k978pcdj.js, chunk-cb3xjyjv.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-3b92sypr.js, chunk-53r1s2ab.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vqqagpn5.js, chunk-7nczvd3c.js, chunk-cg6zmw3m.js, chunk-kmb7c6p5.js, chunk-yvhhqffe.js, chunk-syzbb2ep.js, chunk-92ftqnff.js, chunk-vvcry5fc.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pbad2je3.js, chunk-n7xxhdam.js, chunk-kmzqpt69.js, chunk-gsf1van7.js, chunk-8gqdshxw.js, chunk-8qn85ba6.js, chunk-69f4sd7c.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-kpktcx9m.js, chunk-4yg8f0e9.js, chunk-ktbj54r1.js, chunk-gxyc11vk.js, chunk-1d0qvnvb.js, chunk-hmbcpdxy.js, chunk-axbkkqp1.js, chunk-8x4h11fc.js, chunk-zfy47dvb.js, chunk-mp69w8r9.js, chunk-6317jk6y.js, chunk-p1vq4nra.js, chunk-2fq6eth2.js, chunk-v86b5paa.js, chunk-jhhs89c3.js, chunk-qeb0dx7m.js, chunk-1q0y4jx6.js, chunk-se7ypbdg.js, chunk-2e4yh13p.js, chunk-b14e5xry.js, chunk-36w7xg9j.js, chunk-q378t293.js, chunk-sahvpe67.js, chunk-v5yzdj6m.js, chunk-a3jzhcgk.js, chunk-vh0k6wrk.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ha3s12pc.js, chunk-j4kaxqmb.js, chunk-0sxn500c.js, chunk-qezx7752.js, chunk-04xgn3ms.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 1 test using 1 worker (node:311638) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ENVIRONMENT machine=infraternal-dev cores=8 load_1_5_15=29.02,25.02,24.02 METRIC name=palette_arrow_handler_ms_per_press value=2.6440 presses=100 viewport=1440x900 METRIC name=palette_filter_handler_ms_per_input value=0.3500 inputs=100 viewport=1440x900 ✘ 1 test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile (9.2s) 1) test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile Error: expect(received).toBeLessThanOrEqual(expected) Expected: <= 0.13 Received: 0.35 117 | console.log(`METRIC name=palette_filter_handler_ms_per_input value=${millisecondsPerFilter.toFixed(4)} inputs=100 viewport=1440x900`); 118 | expect(millisecondsPerArrow).toBeGreaterThanOrEqual(0); > 119 | expect(millisecondsPerFilter).toBeLessThanOrEqual(0.13); | ^ 120 | } 121 | 122 | async function walkDownAndUp(page: Page): Promise<void> { at measureHandlers (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/palette-navigation.spec.ts:119:33) at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/palette-navigation.spec.ts:169:3 Error Context: test-results/palette-navigation-palette-08dcc-sible-on-desktop-and-mobile/error-context.md 1 failed test/palette-navigation.spec.ts:166:1 › palette keyboard navigation stays visible and accessible on desktop and mobile Invocation exit: 1 Load after: 29.02 25.02 24.02 28/3028 314101 ```
Author
Owner

#163 verbatim evidence: browser-case-production-perf-hud.spec-10.log (1/1)

Load before: 18.04 23.84 23.81 8/2982 330813
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p330814-i50614479.scope; invocation ID: 9ec1fd6526314e58a4f25c9e2c065888
[WebServer] $ bun run build.ts
[WebServer] built chunk-aq541twc.js, chunk-tvynw18r.js, chunk-njb689gz.js, chunk-b5qzwpce.js, chunk-53wzmwq4.js, chunk-j9gh3yz8.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-z0az22bp.js, chunk-x7y2667a.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-08jw3ant.js, chunk-7nczvd3c.js, chunk-2krp2vqr.js, chunk-72zcf46p.js, chunk-yvhhqffe.js, chunk-dpa4278t.js, chunk-rdjf85wq.js, chunk-xx8swhvd.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-eej7wqbs.js, chunk-rnx2dncy.js, chunk-d5rbtgkb.js, chunk-gpnvbjcs.js, chunk-8gqdshxw.js, chunk-95vm5w7s.js, chunk-fckwpx5w.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8j8fm41e.js, chunk-1aq4x15s.js, chunk-xh7ebs73.js, chunk-phkp1n7q.js, chunk-1d0qvnvb.js, chunk-zmf9t208.js, chunk-axbkkqp1.js, chunk-yqh27hpd.js, chunk-rwfrvkee.js, chunk-7asgceeh.js, chunk-7m1wkkpp.js, chunk-wd4wkhxm.js, chunk-4dbadbp3.js, chunk-v86b5paa.js, chunk-mb48e5f4.js, chunk-zkrhr5zp.js, chunk-e3pmhg9m.js, chunk-s9yca26d.js, chunk-2e4yh13p.js, chunk-w3w4wrs8.js, chunk-h8c9mady.js, chunk-82cb1a8n.js, chunk-6jjw28xg.js, chunk-b02zzjhf.js, chunk-vwnv2grc.js, chunk-qk5w78pb.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ahg63kgb.js, chunk-sc6d1x6e.js, chunk-0sxn500c.js, chunk-0b4tbncy.js, chunk-62jk6tpw.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 1 test using 1 worker

(node:331609) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
PERF-BENCH {"meanUs":0.027000001072883605,"p99Us":1.000000238418579,"maxUs":11.000000238418579}
PERF-RECALC none (3 rounds x 3 s idle): layouts 7, style recalcs 61, style 10.6 ms, layout 11.8 ms, script 72.3 ms
PERF-RECALC empty-raf (3 rounds x 3 s idle): layouts 9, style recalcs 361, style 53.2 ms, layout 14.4 ms, script 86.1 ms
PERF-RECALC meter (3 rounds x 3 s idle): layouts 12, style recalcs 510, style 79.7 ms, layout 13.7 ms, script 111.6 ms
  ✘  1 test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints (1.5m)


  1) test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints 

    Error: expect(received).toBeLessThanOrEqual(expected)

    Expected: <= 383
    Received:    510

      114 |   }
      115 |   expect(sum("meter", "layout")).toBeLessThanOrEqual(sum("empty-raf", "layout") + 3);
    > 116 |   expect(sum("meter", "style")).toBeLessThanOrEqual(Math.ceil(sum("empty-raf", "style") * 1.05) + 3);
          |                                 ^
      117 |   await hud(page).call((h) => { h.pauseRepaint(); return 0; });
      118 |   // Nothing in the meter's own subtree changes while the repaint is stopped: the loop writes the ring and nothing else.
      119 |   const mutations = await page.evaluate(() => new Promise<number>((done) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/perf-hud.spec.ts:116:33

    Error Context: test-results/perf-hud-the-frame-body-co-c2992-style-work-between-repaints/error-context.md

  1 failed
    test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints 

Invocation exit: 1
Load after: 7.17 18.50 21.90 8/2949 335497
#163 verbatim evidence: browser-case-production-perf-hud.spec-10.log (1/1) ```text Load before: 18.04 23.84 23.81 8/2982 330813 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p330814-i50614479.scope; invocation ID: 9ec1fd6526314e58a4f25c9e2c065888 [WebServer] $ bun run build.ts [WebServer] built chunk-aq541twc.js, chunk-tvynw18r.js, chunk-njb689gz.js, chunk-b5qzwpce.js, chunk-53wzmwq4.js, chunk-j9gh3yz8.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-z0az22bp.js, chunk-x7y2667a.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-08jw3ant.js, chunk-7nczvd3c.js, chunk-2krp2vqr.js, chunk-72zcf46p.js, chunk-yvhhqffe.js, chunk-dpa4278t.js, chunk-rdjf85wq.js, chunk-xx8swhvd.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-eej7wqbs.js, chunk-rnx2dncy.js, chunk-d5rbtgkb.js, chunk-gpnvbjcs.js, chunk-8gqdshxw.js, chunk-95vm5w7s.js, chunk-fckwpx5w.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-8j8fm41e.js, chunk-1aq4x15s.js, chunk-xh7ebs73.js, chunk-phkp1n7q.js, chunk-1d0qvnvb.js, chunk-zmf9t208.js, chunk-axbkkqp1.js, chunk-yqh27hpd.js, chunk-rwfrvkee.js, chunk-7asgceeh.js, chunk-7m1wkkpp.js, chunk-wd4wkhxm.js, chunk-4dbadbp3.js, chunk-v86b5paa.js, chunk-mb48e5f4.js, chunk-zkrhr5zp.js, chunk-e3pmhg9m.js, chunk-s9yca26d.js, chunk-2e4yh13p.js, chunk-w3w4wrs8.js, chunk-h8c9mady.js, chunk-82cb1a8n.js, chunk-6jjw28xg.js, chunk-b02zzjhf.js, chunk-vwnv2grc.js, chunk-qk5w78pb.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ahg63kgb.js, chunk-sc6d1x6e.js, chunk-0sxn500c.js, chunk-0b4tbncy.js, chunk-62jk6tpw.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 1 test using 1 worker (node:331609) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) PERF-BENCH {"meanUs":0.027000001072883605,"p99Us":1.000000238418579,"maxUs":11.000000238418579} PERF-RECALC none (3 rounds x 3 s idle): layouts 7, style recalcs 61, style 10.6 ms, layout 11.8 ms, script 72.3 ms PERF-RECALC empty-raf (3 rounds x 3 s idle): layouts 9, style recalcs 361, style 53.2 ms, layout 14.4 ms, script 86.1 ms PERF-RECALC meter (3 rounds x 3 s idle): layouts 12, style recalcs 510, style 79.7 ms, layout 13.7 ms, script 111.6 ms ✘ 1 test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints (1.5m) 1) test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints Error: expect(received).toBeLessThanOrEqual(expected) Expected: <= 383 Received: 510 114 | } 115 | expect(sum("meter", "layout")).toBeLessThanOrEqual(sum("empty-raf", "layout") + 3); > 116 | expect(sum("meter", "style")).toBeLessThanOrEqual(Math.ceil(sum("empty-raf", "style") * 1.05) + 3); | ^ 117 | await hud(page).call((h) => { h.pauseRepaint(); return 0; }); 118 | // Nothing in the meter's own subtree changes while the repaint is stopped: the loop writes the ring and nothing else. 119 | const mutations = await page.evaluate(() => new Promise<number>((done) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/perf-hud.spec.ts:116:33 Error Context: test-results/perf-hud-the-frame-body-co-c2992-style-work-between-repaints/error-context.md 1 failed test/perf-hud.spec.ts:75:1 › the frame body costs under 0.05 ms and the meter causes no layout or style work between repaints Invocation exit: 1 Load after: 7.17 18.50 21.90 8/2949 335497 ```
Author
Owner

#163 verbatim evidence: browser-case-production-platform-consistency.spec-11.log (1/1)

Load before: 6.60 17.29 21.39 4/2908 337246
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p337247-i50620912.scope; invocation ID: b623abb2828e403dace32b2615e99f22
[WebServer] $ bun run build.ts
[WebServer] built chunk-6sgkch9w.js, chunk-tvynw18r.js, chunk-35e60h15.js, chunk-b5qzwpce.js, chunk-z4r1fx6b.js, chunk-xxhv09ec.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-y9j7rbfn.js, chunk-yk397s0w.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-4v5x0hh9.js, chunk-7nczvd3c.js, chunk-wfk7q1mj.js, chunk-jxfb9c0v.js, chunk-yvhhqffe.js, chunk-n3d51b4g.js, chunk-8k6fwjs2.js, chunk-k5ae5pdq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pbz4tepw.js, chunk-m4793hvk.js, chunk-y7k9qb6w.js, chunk-v8zrzzq2.js, chunk-8gqdshxw.js, chunk-7534297e.js, chunk-ewkktqde.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-kvapfjqx.js, chunk-qpde2svg.js, chunk-dm052hmy.js, chunk-aaywk480.js, chunk-1d0qvnvb.js, chunk-d2af21t2.js, chunk-axbkkqp1.js, chunk-42as4rct.js, chunk-tj2b0xp1.js, chunk-0pvtcqe6.js, chunk-98db1vnt.js, chunk-q3y68qc5.js, chunk-xm6yvksg.js, chunk-v86b5paa.js, chunk-zbk0dzbm.js, chunk-2nza1p5d.js, chunk-p4kvh439.js, chunk-vr6jdc6y.js, chunk-2e4yh13p.js, chunk-6082t4db.js, chunk-eywed28v.js, chunk-9606ae9q.js, chunk-2n3pcg9p.js, chunk-ve40d6yr.js, chunk-5a19d5vz.js, chunk-37t6chz5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-426baven.js, chunk-d0jjm7y8.js, chunk-0sxn500c.js, chunk-mvgg75ac.js, chunk-cxc7ssag.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 3 tests using 1 worker

(node:337733) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph (5.2s)
  ✓  2 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling (6.0s)
  ✘  3 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling (5.7s)


  1) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling 

    Error: expect(received).toBeLessThan(expected)

    Expected: < 6
    Received:   29

      192 |     await expect(page.locator("#palette")).toBeVisible();
      193 |     await expect.poll(async () => (await scrollState(page)).overflows).toBe(true);
    > 194 |     expect(await trackSpread(page)).toBeLessThan(6);
          |                                     ^
      195 |     await page.locator("#palette-results").hover();
      196 |     await page.mouse.wheel(0, 160);
      197 |     await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/platform-consistency.spec.ts:194:37

    Error Context: test-results/platform-consistency-captu-c649d--a-thin-bar-while-scrolling/error-context.md

  1 failed
    test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling 
  2 passed (22.4s)

Invocation exit: 1
Load after: 5.95 16.30 20.95 6/2911 341102
#163 verbatim evidence: browser-case-production-platform-consistency.spec-11.log (1/1) ```text Load before: 6.60 17.29 21.39 4/2908 337246 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p337247-i50620912.scope; invocation ID: b623abb2828e403dace32b2615e99f22 [WebServer] $ bun run build.ts [WebServer] built chunk-6sgkch9w.js, chunk-tvynw18r.js, chunk-35e60h15.js, chunk-b5qzwpce.js, chunk-z4r1fx6b.js, chunk-xxhv09ec.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-y9j7rbfn.js, chunk-yk397s0w.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-4v5x0hh9.js, chunk-7nczvd3c.js, chunk-wfk7q1mj.js, chunk-jxfb9c0v.js, chunk-yvhhqffe.js, chunk-n3d51b4g.js, chunk-8k6fwjs2.js, chunk-k5ae5pdq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pbz4tepw.js, chunk-m4793hvk.js, chunk-y7k9qb6w.js, chunk-v8zrzzq2.js, chunk-8gqdshxw.js, chunk-7534297e.js, chunk-ewkktqde.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-kvapfjqx.js, chunk-qpde2svg.js, chunk-dm052hmy.js, chunk-aaywk480.js, chunk-1d0qvnvb.js, chunk-d2af21t2.js, chunk-axbkkqp1.js, chunk-42as4rct.js, chunk-tj2b0xp1.js, chunk-0pvtcqe6.js, chunk-98db1vnt.js, chunk-q3y68qc5.js, chunk-xm6yvksg.js, chunk-v86b5paa.js, chunk-zbk0dzbm.js, chunk-2nza1p5d.js, chunk-p4kvh439.js, chunk-vr6jdc6y.js, chunk-2e4yh13p.js, chunk-6082t4db.js, chunk-eywed28v.js, chunk-9606ae9q.js, chunk-2n3pcg9p.js, chunk-ve40d6yr.js, chunk-5a19d5vz.js, chunk-37t6chz5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-426baven.js, chunk-d0jjm7y8.js, chunk-0sxn500c.js, chunk-mvgg75ac.js, chunk-cxc7ssag.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 3 tests using 1 worker (node:337733) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/platform-consistency.spec.ts:165:1 › Windows: the shortcuts panel names every key in words, with no Apple glyph (5.2s) ✓ 2 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 393x852, paper: no bar at rest, a thin bar while scrolling (6.0s) ✘ 3 test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling (5.7s) 1) test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling Error: expect(received).toBeLessThan(expected) Expected: < 6 Received: 29 192 | await expect(page.locator("#palette")).toBeVisible(); 193 | await expect.poll(async () => (await scrollState(page)).overflows).toBe(true); > 194 | expect(await trackSpread(page)).toBeLessThan(6); | ^ 195 | await page.locator("#palette-results").hover(); 196 | await page.mouse.wheel(0, 160); 197 | await expect.poll(async () => (await scrollState(page)).scrolling).toBe(true); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/platform-consistency.spec.ts:194:37 Error Context: test-results/platform-consistency-captu-c649d--a-thin-bar-while-scrolling/error-context.md 1 failed test/platform-consistency.spec.ts:183:3 › captures: Windows palette at 375x667, ink: no bar at rest, a thin bar while scrolling 2 passed (22.4s) Invocation exit: 1 Load after: 5.95 16.30 20.95 6/2911 341102 ```
Author
Owner

Final source head f5a9d02cd9. ARM --locked release builds in 8m48s: statically linked, no PT_INTERP, 18,062,680 bytes versus known 13,817,816 ceiling. Final x86 20,295,024 versus 16,404,816. Both unavailable CLI checks pass. No size-ceiling work attempted, as instructed.

Running as unit: run-p555639-i50839252.scope; invocation ID: 42241e9c167e434bbdca1cb1c27e4652
   Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote)
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent)
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 8m 48s
/home/kayg/.cache/codex-scratch/dev-backmerge/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 18062680 bytes (baseline 13555672 + allowance 262144 = max 13817816)
binary exceeds the 13817816-byte size budget: 18062680 bytes
server subcommand: exit 2, versioned JSON unavailable result
agent subcommand: exit 2, versioned JSON unavailable result
Final source head f5a9d02cd9092daf0320d49397912d9b86d3e304. ARM --locked release builds in 8m48s: statically linked, no PT_INTERP, 18,062,680 bytes versus known 13,817,816 ceiling. Final x86 20,295,024 versus 16,404,816. Both unavailable CLI checks pass. No size-ceiling work attempted, as instructed. ```text Running as unit: run-p555639-i50839252.scope; invocation ID: 42241e9c167e434bbdca1cb1c27e4652 Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent) Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `release` profile [optimized] target(s) in 8m 48s /home/kayg/.cache/codex-scratch/dev-backmerge/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 18062680 bytes (baseline 13555672 + allowance 262144 = max 13817816) binary exceeds the 13817816-byte size budget: 18062680 bytes server subcommand: exit 2, versioned JSON unavailable result agent subcommand: exit 2, versioned JSON unavailable result ```
Author
Owner

#163 verbatim evidence: browser-case-production-predictive-echo.spec-13.log (1/1)

Load before: 5.68 14.28 19.96 13/2946 343531
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p343532-i50627197.scope; invocation ID: e6d167c2d46b470fbb2176d68278bcd8
[WebServer] $ bun run build.ts
[WebServer] built chunk-tax1471s.js, chunk-tvynw18r.js, chunk-2ngab331.js, chunk-b5qzwpce.js, chunk-7j36t9by.js, chunk-zmbqwm8r.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-7gp85en5.js, chunk-eczh8jps.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vzmetv61.js, chunk-7nczvd3c.js, chunk-kwqhdp49.js, chunk-16tvbksv.js, chunk-yvhhqffe.js, chunk-gqj48tnz.js, chunk-1mbze4z1.js, chunk-h3s5qq7m.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-z26wejrd.js, chunk-tc01fdjn.js, chunk-38emdyx3.js, chunk-g4cwmmzb.js, chunk-8gqdshxw.js, chunk-xt9w66qm.js, chunk-9n51cew4.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-nq8p967v.js, chunk-e1swkxet.js, chunk-y84p5jjt.js, chunk-sbhcmzrw.js, chunk-1d0qvnvb.js, chunk-k3bxyfwy.js, chunk-axbkkqp1.js, chunk-g09nmn3p.js, chunk-7nnk5qdn.js, chunk-72sdamxe.js, chunk-fcp7wv19.js, chunk-80zs8aqv.js, chunk-vest5fs2.js, chunk-v86b5paa.js, chunk-8pqyh7ej.js, chunk-2kgbhn41.js, chunk-w4hb39tj.js, chunk-27qnj924.js, chunk-2e4yh13p.js, chunk-mqrhpj4g.js, chunk-0e0p1dt7.js, chunk-2ztwcj83.js, chunk-aakytkwa.js, chunk-4gq1dndt.js, chunk-8696zn5t.js, chunk-k1qz9swc.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-mh0fmzfw.js, chunk-ab27tdxg.js, chunk-0sxn500c.js, chunk-ekba334q.js, chunk-b3kda8gh.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 2 tests using 1 worker

(node:344274) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (10.2s)
  ✓  2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (27.5s)

  2 passed (45.4s)

Invocation exit: 0
Load after: 9.55 14.17 19.66 6/3000 346176
#163 verbatim evidence: browser-case-production-predictive-echo.spec-13.log (1/1) ```text Load before: 5.68 14.28 19.96 13/2946 343531 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p343532-i50627197.scope; invocation ID: e6d167c2d46b470fbb2176d68278bcd8 [WebServer] $ bun run build.ts [WebServer] built chunk-tax1471s.js, chunk-tvynw18r.js, chunk-2ngab331.js, chunk-b5qzwpce.js, chunk-7j36t9by.js, chunk-zmbqwm8r.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-7gp85en5.js, chunk-eczh8jps.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-vzmetv61.js, chunk-7nczvd3c.js, chunk-kwqhdp49.js, chunk-16tvbksv.js, chunk-yvhhqffe.js, chunk-gqj48tnz.js, chunk-1mbze4z1.js, chunk-h3s5qq7m.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-z26wejrd.js, chunk-tc01fdjn.js, chunk-38emdyx3.js, chunk-g4cwmmzb.js, chunk-8gqdshxw.js, chunk-xt9w66qm.js, chunk-9n51cew4.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-nq8p967v.js, chunk-e1swkxet.js, chunk-y84p5jjt.js, chunk-sbhcmzrw.js, chunk-1d0qvnvb.js, chunk-k3bxyfwy.js, chunk-axbkkqp1.js, chunk-g09nmn3p.js, chunk-7nnk5qdn.js, chunk-72sdamxe.js, chunk-fcp7wv19.js, chunk-80zs8aqv.js, chunk-vest5fs2.js, chunk-v86b5paa.js, chunk-8pqyh7ej.js, chunk-2kgbhn41.js, chunk-w4hb39tj.js, chunk-27qnj924.js, chunk-2e4yh13p.js, chunk-mqrhpj4g.js, chunk-0e0p1dt7.js, chunk-2ztwcj83.js, chunk-aakytkwa.js, chunk-4gq1dndt.js, chunk-8696zn5t.js, chunk-k1qz9swc.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-mh0fmzfw.js, chunk-ab27tdxg.js, chunk-0sxn500c.js, chunk-ekba334q.js, chunk-b3kda8gh.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 2 tests using 1 worker (node:344274) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (10.2s) ✓ 2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (27.5s) 2 passed (45.4s) Invocation exit: 0 Load after: 9.55 14.17 19.66 6/3000 346176 ```
Author
Owner

#163 verbatim evidence: browser-case-production-recovery-ui-hold.spec-14.log (1/1)

Load before: 8.21 13.48 19.28 6/3052 348370
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p348371-i50632036.scope; invocation ID: 1607f1db440749dd9b3fcb1be85f5656
[WebServer] $ bun run build.ts
[WebServer] built chunk-93jbzegm.js, chunk-tvynw18r.js, chunk-9e5dtfra.js, chunk-b5qzwpce.js, chunk-avbt1rtt.js, chunk-q1e3ntdn.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jewxzrkk.js, chunk-4b9jp9hh.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-swwdx74v.js, chunk-7nczvd3c.js, chunk-0c9m42ac.js, chunk-beavgx4r.js, chunk-yvhhqffe.js, chunk-pb5vtn17.js, chunk-t0r46cne.js, chunk-j4spqyvq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4rpj1wyf.js, chunk-51m31f36.js, chunk-6znqydxz.js, chunk-r85njm9g.js, chunk-8gqdshxw.js, chunk-br7jttxk.js, chunk-09c04srj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-hh7yt05g.js, chunk-6gktrk0s.js, chunk-cjyrkwd2.js, chunk-4hnvty2f.js, chunk-1d0qvnvb.js, chunk-yffwzs7g.js, chunk-axbkkqp1.js, chunk-1yd0f571.js, chunk-cevm9mn9.js, chunk-rc41pbbs.js, chunk-nzxr1jx5.js, chunk-8201ea3z.js, chunk-aa6yh843.js, chunk-v86b5paa.js, chunk-c3fnjbda.js, chunk-88x8zqxg.js, chunk-j3yf9jee.js, chunk-985ketq3.js, chunk-2e4yh13p.js, chunk-16rvrsk4.js, chunk-wbadvfrc.js, chunk-gzymwdg1.js, chunk-ek08rbs4.js, chunk-fzenhx62.js, chunk-64s5zp4q.js, chunk-nk6011z5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-82dya4b4.js, chunk-vmys0tzk.js, chunk-0sxn500c.js, chunk-0vkdr29q.js, chunk-gxbadw54.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 4 tests using 1 worker

(node:348817) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points (2.1s)
(node:349088) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  2 test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points (3.7s)
(node:349706) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  3 test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points (2.0s)
(node:349839) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  4 test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points (3.4s)


  1) test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      3085 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-mobile.png

    Call log:
      - Expect "toHaveScreenshot(signin-mobile.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 3085 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 3085 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-mobile (image/png) ───────────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-linux.png
    Received: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-actual.png
    Diff:     test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/error-context.md

  2) test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      3048 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-desktop.png

    Call log:
      - Expect "toHaveScreenshot(signin-desktop.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 3048 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 3048 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-desktop (image/png) ──────────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-linux.png
    Received: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-actual.png
    Diff:     test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/error-context.md

  3) test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      2007 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-mobile-light.png

    Call log:
      - Expect "toHaveScreenshot(signin-mobile-light.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 2007 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 2007 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-mobile-light (image/png) ─────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-light-linux.png
    Received: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-actual.png
    Diff:     test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/error-context.md

  4) test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points 

    Error: expect(page).toHaveScreenshot(expected) failed

      2033 pixels (ratio 0.01 of all image pixels) are different.

      Snapshot: signin-desktop-light.png

    Call log:
      - Expect "toHaveScreenshot(signin-desktop-light.png)" with timeout 5000ms
        - verifying given screenshot expectation
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - 2033 pixels (ratio 0.01 of all image pixels) are different.
      - waiting 100ms before taking screenshot
      - taking page screenshot
        - disabled all CSS animations
      - waiting for fonts to load...
      - fonts loaded
      - captured a stable screenshot
      - 2033 pixels (ratio 0.01 of all image pixels) are different.


      24 |     // Exclude the time-dependent shader only; all sign-in pixels and geometry remain.
      25 |     await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" });
    > 26 |     await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 });
         |                        ^
      27 |     const path = info.outputPath(`production-signin-${name}.png`);
      28 |     await page.screenshot({ path, animations: "disabled" });
      29 |     await info.attach(`production-signin-${name}`, { path, contentType: "image/png" });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24

    attachment #1: signin-desktop-light (image/png) ────────────────────────────────────────────────
    Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-light-linux.png
    Received: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-actual.png
    Diff:     test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-diff.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/error-context.md

  4 failed
    test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points 
    test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points 

Invocation exit: 1
Load after: 10.07 13.57 19.19 6/3056 350024
#163 verbatim evidence: browser-case-production-recovery-ui-hold.spec-14.log (1/1) ```text Load before: 8.21 13.48 19.28 6/3052 348370 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p348371-i50632036.scope; invocation ID: 1607f1db440749dd9b3fcb1be85f5656 [WebServer] $ bun run build.ts [WebServer] built chunk-93jbzegm.js, chunk-tvynw18r.js, chunk-9e5dtfra.js, chunk-b5qzwpce.js, chunk-avbt1rtt.js, chunk-q1e3ntdn.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jewxzrkk.js, chunk-4b9jp9hh.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-swwdx74v.js, chunk-7nczvd3c.js, chunk-0c9m42ac.js, chunk-beavgx4r.js, chunk-yvhhqffe.js, chunk-pb5vtn17.js, chunk-t0r46cne.js, chunk-j4spqyvq.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-4rpj1wyf.js, chunk-51m31f36.js, chunk-6znqydxz.js, chunk-r85njm9g.js, chunk-8gqdshxw.js, chunk-br7jttxk.js, chunk-09c04srj.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-hh7yt05g.js, chunk-6gktrk0s.js, chunk-cjyrkwd2.js, chunk-4hnvty2f.js, chunk-1d0qvnvb.js, chunk-yffwzs7g.js, chunk-axbkkqp1.js, chunk-1yd0f571.js, chunk-cevm9mn9.js, chunk-rc41pbbs.js, chunk-nzxr1jx5.js, chunk-8201ea3z.js, chunk-aa6yh843.js, chunk-v86b5paa.js, chunk-c3fnjbda.js, chunk-88x8zqxg.js, chunk-j3yf9jee.js, chunk-985ketq3.js, chunk-2e4yh13p.js, chunk-16rvrsk4.js, chunk-wbadvfrc.js, chunk-gzymwdg1.js, chunk-ek08rbs4.js, chunk-fzenhx62.js, chunk-64s5zp4q.js, chunk-nk6011z5.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-82dya4b4.js, chunk-vmys0tzk.js, chunk-0sxn500c.js, chunk-0vkdr29q.js, chunk-gxbadw54.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 4 tests using 1 worker (node:348817) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points (2.1s) (node:349088) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 2 test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points (3.7s) (node:349706) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 3 test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points (2.0s) (node:349839) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 4 test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points (3.4s) 1) test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 3085 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-mobile.png Call log: - Expect "toHaveScreenshot(signin-mobile.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 3085 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 3085 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-mobile (image/png) ─────────────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-linux.png Received: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-actual.png Diff: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/signin-mobile-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-56b29-thout-recovery-entry-points/error-context.md 2) test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 3048 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-desktop.png Call log: - Expect "toHaveScreenshot(signin-desktop.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 3048 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 3048 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-desktop (image/png) ────────────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-linux.png Received: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-actual.png Diff: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/signin-desktop-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-f6545-thout-recovery-entry-points/error-context.md 3) test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 2007 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-mobile-light.png Call log: - Expect "toHaveScreenshot(signin-mobile-light.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 2007 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 2007 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-mobile-light (image/png) ───────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-mobile-light-linux.png Received: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-actual.png Diff: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/signin-mobile-light-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-870ce-thout-recovery-entry-points/error-context.md 4) test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points Error: expect(page).toHaveScreenshot(expected) failed 2033 pixels (ratio 0.01 of all image pixels) are different. Snapshot: signin-desktop-light.png Call log: - Expect "toHaveScreenshot(signin-desktop-light.png)" with timeout 5000ms - verifying given screenshot expectation - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - 2033 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - taking page screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - captured a stable screenshot - 2033 pixels (ratio 0.01 of all image pixels) are different. 24 | // Exclude the time-dependent shader only; all sign-in pixels and geometry remain. 25 | await page.addStyleTag({ content: "#faulty-field { visibility: hidden !important; }" }); > 26 | await expect(page).toHaveScreenshot(`signin-${name}.png`, { animations: "disabled", maxDiffPixels: 0, threshold: 0 }); | ^ 27 | const path = info.outputPath(`production-signin-${name}.png`); 28 | await page.screenshot({ path, animations: "disabled" }); 29 | await info.attach(`production-signin-${name}`, { path, contentType: "image/png" }); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/recovery-ui-hold.spec.ts:26:24 attachment #1: signin-desktop-light (image/png) ──────────────────────────────────────────────── Expected: test/recovery-ui-hold.spec.ts-snapshots/signin-desktop-light-linux.png Received: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-actual.png Diff: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/signin-desktop-light-diff.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/recovery-ui-hold-productio-310f6-thout-recovery-entry-points/error-context.md 4 failed test/recovery-ui-hold.spec.ts:13:3 › production mobile sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production desktop sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production mobile-light sign-in matches its baseline without recovery entry points test/recovery-ui-hold.spec.ts:13:3 › production desktop-light sign-in matches its baseline without recovery entry points Invocation exit: 1 Load after: 10.07 13.57 19.19 6/3056 350024 ```
Author
Owner

#163 verbatim evidence: browser-case-production-renderer-regression.spec-15.log (1/1)

Load before: 13.43 13.35 18.53 14/3042 355081
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p355082-i50638744.scope; invocation ID: 5b49efa6a8e7400ea7541584c43da486
[WebServer] $ bun run build.ts
[WebServer] built chunk-y2xbe4vd.js, chunk-tvynw18r.js, chunk-162ja7b2.js, chunk-b5qzwpce.js, chunk-3yjvh1em.js, chunk-k7w1wnpd.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jk18db37.js, chunk-rrn8nzbb.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-mnh25eek.js, chunk-7nczvd3c.js, chunk-5mew5egj.js, chunk-t9p1xbjg.js, chunk-yvhhqffe.js, chunk-jwfmxnm8.js, chunk-ysakp1qn.js, chunk-rmywf5c6.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-jfdy32f8.js, chunk-des1bcb8.js, chunk-jy6xma3x.js, chunk-f7w4eref.js, chunk-8gqdshxw.js, chunk-q72jb6xd.js, chunk-zprka5hy.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-2jahdhwz.js, chunk-ym3ew1ba.js, chunk-d2azm9x6.js, chunk-c137kjs2.js, chunk-1d0qvnvb.js, chunk-cptsn856.js, chunk-axbkkqp1.js, chunk-hp1zkwyh.js, chunk-f60ebc50.js, chunk-xfpn5cc7.js, chunk-r0kg7dpw.js, chunk-3r7fm73r.js, chunk-wvdnenyd.js, chunk-v86b5paa.js, chunk-09bk4dg3.js, chunk-z4g93bhz.js, chunk-6n6pdww2.js, chunk-3ezersqd.js, chunk-2e4yh13p.js, chunk-emy5p4z6.js, chunk-tfrj41wt.js, chunk-pt6y1cfj.js, chunk-qjtbx4ak.js, chunk-8c895s9e.js, chunk-0fr0dqem.js, chunk-wqxh9435.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-xndcxhzh.js, chunk-6nh31frk.js, chunk-0sxn500c.js, chunk-80xwb64f.js, chunk-zxzntykn.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 3 tests using 1 worker

(node:355901) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
minimal-combining-5679.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=279, wasm=11730944 B
minimal-combining-5679.bin: grid=205x56, scrollback=0, wasm=11730944 B
  ✓  1 test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary (8.9s)
  ✘  2 test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary (6.7s)
(node:357321) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=23526 throughput_mbps=2.13
  ✘  3 test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent (38.5s)


  1) test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ──────

    Error: apiRequestContext.post: socket hang up
    Call log:
      - → POST http://localhost:4641/__mock/fixture
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 21
        - cookie: __Host-infraternal=hseabnyjcp1cRycWlVa994iXr5-ThcnaPu0r89RYSbY


      56 |     })).toEqual({ cols: 205, rows: 56 });
      57 |
    > 58 |     const fixtureResponse = await context.request.post("/__mock/fixture", { data: { name: fixture.name } });
         |                                                   ^
      59 |     expect(fixtureResponse.status(), "the fixture must match its checked-in size and SHA256").toBe(200);
      60 |     const fixtureResult = await fixtureResponse.json() as { bytes: number; sha256: string };
      61 |     expect(fixtureResult.bytes).toBe(fixture.bytes);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/renderer-regression.spec.ts:58:51

    Error Context: test-results/renderer-regression-render-de715-ary-bin-and-paints-a-canary/error-context.md

  2) test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 

    Error: apiRequestContext.post: socket hang up
    Call log:
      - → POST http://localhost:4641/__mock/fixture
        - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36
        - accept: */*
        - accept-encoding: gzip,deflate,br
        - content-type: application/json
        - content-length: 23
        - cookie: __Host-infraternal=6VCTlQ-9nS_rzDyMkaIocHyQPi6Z2Q0SAwdbnt1Rbp8


      170 |       await page.setViewportSize({ width: 1440, height: 900 });
      171 |       const startedAt = Date.now();
    > 172 |       const response = await context.request.post("/__mock/fixture", { data: { name: fixtureName } });
          |                                              ^
      173 |       expect(response.status()).toBe(200);
      174 |       await expect.poll(async () => BigInt(await page.evaluate(
      175 |         () => window.__tracerTestDouble?.rendererMetrics()?.outputSequence ?? "0",
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/renderer-regression.spec.ts:172:46

    Error Context: test-results/renderer-regression-predic-2f890-oughput-within-five-percent/error-context.md

  2 failed
    test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ───────
    test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 
  1 passed (1.1m)

Invocation exit: 1
Load after: 15.71 13.91 18.37 15/3033 362659
#163 verbatim evidence: browser-case-production-renderer-regression.spec-15.log (1/1) ```text Load before: 13.43 13.35 18.53 14/3042 355081 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p355082-i50638744.scope; invocation ID: 5b49efa6a8e7400ea7541584c43da486 [WebServer] $ bun run build.ts [WebServer] built chunk-y2xbe4vd.js, chunk-tvynw18r.js, chunk-162ja7b2.js, chunk-b5qzwpce.js, chunk-3yjvh1em.js, chunk-k7w1wnpd.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-jk18db37.js, chunk-rrn8nzbb.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-mnh25eek.js, chunk-7nczvd3c.js, chunk-5mew5egj.js, chunk-t9p1xbjg.js, chunk-yvhhqffe.js, chunk-jwfmxnm8.js, chunk-ysakp1qn.js, chunk-rmywf5c6.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-jfdy32f8.js, chunk-des1bcb8.js, chunk-jy6xma3x.js, chunk-f7w4eref.js, chunk-8gqdshxw.js, chunk-q72jb6xd.js, chunk-zprka5hy.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-2jahdhwz.js, chunk-ym3ew1ba.js, chunk-d2azm9x6.js, chunk-c137kjs2.js, chunk-1d0qvnvb.js, chunk-cptsn856.js, chunk-axbkkqp1.js, chunk-hp1zkwyh.js, chunk-f60ebc50.js, chunk-xfpn5cc7.js, chunk-r0kg7dpw.js, chunk-3r7fm73r.js, chunk-wvdnenyd.js, chunk-v86b5paa.js, chunk-09bk4dg3.js, chunk-z4g93bhz.js, chunk-6n6pdww2.js, chunk-3ezersqd.js, chunk-2e4yh13p.js, chunk-emy5p4z6.js, chunk-tfrj41wt.js, chunk-pt6y1cfj.js, chunk-qjtbx4ak.js, chunk-8c895s9e.js, chunk-0fr0dqem.js, chunk-wqxh9435.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-xndcxhzh.js, chunk-6nh31frk.js, chunk-0sxn500c.js, chunk-80xwb64f.js, chunk-zxzntykn.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 3 tests using 1 worker (node:355901) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) minimal-combining-5679.bin before canary: grid=205x56, configuredScrollback=10000, retainedRows=279, wasm=11730944 B minimal-combining-5679.bin: grid=205x56, scrollback=0, wasm=11730944 B ✓ 1 test/renderer-regression.spec.ts:17:3 › renderer survives minimal-combining-5679.bin and paints a canary (8.9s) ✘ 2 test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary (6.7s) (node:357321) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) METRIC name=browser_bulk_output_throughput_prediction_off source=tracer-production-build bytes=50000000 sample=1 elapsed_ms=23526 throughput_mbps=2.13 ✘ 3 test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent (38.5s) 1) test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ────── Error: apiRequestContext.post: socket hang up Call log: - → POST http://localhost:4641/__mock/fixture - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 21 - cookie: __Host-infraternal=hseabnyjcp1cRycWlVa994iXr5-ThcnaPu0r89RYSbY 56 | })).toEqual({ cols: 205, rows: 56 }); 57 | > 58 | const fixtureResponse = await context.request.post("/__mock/fixture", { data: { name: fixture.name } }); | ^ 59 | expect(fixtureResponse.status(), "the fixture must match its checked-in size and SHA256").toBe(200); 60 | const fixtureResult = await fixtureResponse.json() as { bytes: number; sha256: string }; 61 | expect(fixtureResult.bytes).toBe(fixture.bytes); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/renderer-regression.spec.ts:58:51 Error Context: test-results/renderer-regression-render-de715-ary-bin-and-paints-a-canary/error-context.md 2) test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent Error: apiRequestContext.post: socket hang up Call log: - → POST http://localhost:4641/__mock/fixture - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36 - accept: */* - accept-encoding: gzip,deflate,br - content-type: application/json - content-length: 23 - cookie: __Host-infraternal=6VCTlQ-9nS_rzDyMkaIocHyQPi6Z2Q0SAwdbnt1Rbp8 170 | await page.setViewportSize({ width: 1440, height: 900 }); 171 | const startedAt = Date.now(); > 172 | const response = await context.request.post("/__mock/fixture", { data: { name: fixtureName } }); | ^ 173 | expect(response.status()).toBe(200); 174 | await expect.poll(async () => BigInt(await page.evaluate( 175 | () => window.__tracerTestDouble?.rendererMetrics()?.outputSequence ?? "0", at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/renderer-regression.spec.ts:172:46 Error Context: test-results/renderer-regression-predic-2f890-oughput-within-five-percent/error-context.md 2 failed test/renderer-regression.spec.ts:17:3 › renderer survives binary.bin and paints a canary ─────── test/renderer-regression.spec.ts:148:1 › predictive echo keeps 50 MB output throughput within five percent 1 passed (1.1m) Invocation exit: 1 Load after: 15.71 13.91 18.37 15/3033 362659 ```
Author
Owner

#163 verbatim evidence: browser-case-production-retry-predictive-echo.spec-13.log (1/1)

Load before: 35.28 33.03 30.60 55/3189 577093
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p577094-i50860707.scope; invocation ID: d35fa848f3b245eab0ad21cc11e3a6e1
[WebServer] $ bun run build.ts
[WebServer] built chunk-94e0rver.js, chunk-tvynw18r.js, chunk-zw2x8x3s.js, chunk-b5qzwpce.js, chunk-142jcgd8.js, chunk-4s8qknn1.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-9h9d222r.js, chunk-n2qmsba2.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-2eg3tda0.js, chunk-7nczvd3c.js, chunk-2fpg6qba.js, chunk-9ajvq3rx.js, chunk-yvhhqffe.js, chunk-jy13bbv8.js, chunk-zf3gccw7.js, chunk-98nzh93y.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-bt0zzvaj.js, chunk-kw14nhe0.js, chunk-gyc5k292.js, chunk-42ze0kme.js, chunk-8gqdshxw.js, chunk-rh5zd1p8.js, chunk-qx1kfztx.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-dg7hj15f.js, chunk-zrjr8j4q.js, chunk-8n6dc3h1.js, chunk-8p82acwa.js, chunk-1d0qvnvb.js, chunk-5f021w82.js, chunk-axbkkqp1.js, chunk-vgrbxxjn.js, chunk-329s8dtf.js, chunk-a2162k1g.js, chunk-2jeeb8xc.js, chunk-php3pnp3.js, chunk-b943b2e3.js, chunk-v86b5paa.js, chunk-gyb8xfd9.js, chunk-qqy9tw9j.js, chunk-va5fwy8t.js, chunk-sgxxyg2p.js, chunk-2e4yh13p.js, chunk-3cj2a04e.js, chunk-kc6bv406.js, chunk-4bw8ss3p.js, chunk-516d0cq0.js, chunk-v0j6h55f.js, chunk-c3h0jjdx.js, chunk-e4273jfp.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-1zjmwwqc.js, chunk-kpne5n0k.js, chunk-0sxn500c.js, chunk-7rsdmmyc.js, chunk-we4wp77h.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 2 tests using 1 worker

(node:580991) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (11.9s)
  ✘  2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (9.3s)


  1) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: "visible"
    Received: "hidden"

      559 |       // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque.
      560 |       expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility))
    > 561 |         .toBe("visible");
          |          ^
      562 |
      563 |       await expect.poll(async () => {
      564 |         const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string };
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/predictive-echo.spec.ts:561:10

    attachment #1: predictive-mobile-ink-pending (image/png) ───────────────────────────────────────
    test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-4ab140064da69bd2bd075694291537239f49e337.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md

  1 failed
    test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 
  1 passed (33.2s)

Invocation exit: 1
Load after: 39.04 34.32 31.14 39/3237 585206
#163 verbatim evidence: browser-case-production-retry-predictive-echo.spec-13.log (1/1) ```text Load before: 35.28 33.03 30.60 55/3189 577093 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p577094-i50860707.scope; invocation ID: d35fa848f3b245eab0ad21cc11e3a6e1 [WebServer] $ bun run build.ts [WebServer] built chunk-94e0rver.js, chunk-tvynw18r.js, chunk-zw2x8x3s.js, chunk-b5qzwpce.js, chunk-142jcgd8.js, chunk-4s8qknn1.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-9h9d222r.js, chunk-n2qmsba2.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-2eg3tda0.js, chunk-7nczvd3c.js, chunk-2fpg6qba.js, chunk-9ajvq3rx.js, chunk-yvhhqffe.js, chunk-jy13bbv8.js, chunk-zf3gccw7.js, chunk-98nzh93y.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-bt0zzvaj.js, chunk-kw14nhe0.js, chunk-gyc5k292.js, chunk-42ze0kme.js, chunk-8gqdshxw.js, chunk-rh5zd1p8.js, chunk-qx1kfztx.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-dg7hj15f.js, chunk-zrjr8j4q.js, chunk-8n6dc3h1.js, chunk-8p82acwa.js, chunk-1d0qvnvb.js, chunk-5f021w82.js, chunk-axbkkqp1.js, chunk-vgrbxxjn.js, chunk-329s8dtf.js, chunk-a2162k1g.js, chunk-2jeeb8xc.js, chunk-php3pnp3.js, chunk-b943b2e3.js, chunk-v86b5paa.js, chunk-gyb8xfd9.js, chunk-qqy9tw9j.js, chunk-va5fwy8t.js, chunk-sgxxyg2p.js, chunk-2e4yh13p.js, chunk-3cj2a04e.js, chunk-kc6bv406.js, chunk-4bw8ss3p.js, chunk-516d0cq0.js, chunk-v0j6h55f.js, chunk-c3h0jjdx.js, chunk-e4273jfp.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-1zjmwwqc.js, chunk-kpne5n0k.js, chunk-0sxn500c.js, chunk-7rsdmmyc.js, chunk-we4wp77h.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 2 tests using 1 worker (node:580991) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 1 test/predictive-echo.spec.ts:329:1 › predicted glyph and cursor pixels match confirmed cells at DPR 1 (11.9s) ✘ 2 test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes (9.3s) 1) test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes Error: expect(received).toBe(expected) // Object.is equality Expected: "visible" Received: "hidden" 559 | // The canvas draws predicted text at the theme's prediction alpha; the cursor stays opaque. 560 | expect(await capturePage.locator(".terminal-text-overlay").evaluate((node) => getComputedStyle(node).visibility)) > 561 | .toBe("visible"); | ^ 562 | 563 | await expect.poll(async () => { 564 | const state = await (await context.request.get("/__mock/state")).json() as { echoed_text: string }; at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/predictive-echo.spec.ts:561:10 attachment #1: predictive-mobile-ink-pending (image/png) ─────────────────────────────────────── test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/attachments/predictive-mobile-ink-pending-4ab140064da69bd2bd075694291537239f49e337.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/predictive-echo-predictive-5c604-uction-viewports-and-themes/error-context.md 1 failed test/predictive-echo.spec.ts:522:1 › predictive echo captures pending and confirmed glyphs across production viewports and themes 1 passed (33.2s) Invocation exit: 1 Load after: 39.04 34.32 31.14 39/3237 585206 ```
Author
Owner

#163 verbatim evidence: browser-case-production-sessions-canvas.spec-16.log (1/1)

Load before: 22.01 18.34 19.42 15/3107 384644
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p384645-i50668291.scope; invocation ID: 22bbff8676be4bb882abc8f805a5b6b0
[WebServer] $ bun run build.ts
[WebServer] built chunk-5qp4x9fm.js, chunk-tvynw18r.js, chunk-tx81etng.js, chunk-b5qzwpce.js, chunk-f9q7p4mt.js, chunk-cmxfbs6y.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-3fnp54pa.js, chunk-rq0425f5.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-w7xmmpxh.js, chunk-7nczvd3c.js, chunk-vrrrsp7a.js, chunk-d26r2xqx.js, chunk-yvhhqffe.js, chunk-tr93jh02.js, chunk-jec7whdk.js, chunk-jtt2eg8n.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-mbkjhmh3.js, chunk-8tvvknnk.js, chunk-y3jfdkxh.js, chunk-d6ngev8d.js, chunk-8gqdshxw.js, chunk-f5kc0pjy.js, chunk-v7gnz8zy.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9rfcpqxa.js, chunk-szp5bygv.js, chunk-mk3zz1cj.js, chunk-tfsm10ht.js, chunk-1d0qvnvb.js, chunk-tcrrzkhe.js, chunk-axbkkqp1.js, chunk-cwm4jhnr.js, chunk-fpanra3v.js, chunk-vppj28w0.js, chunk-n7dww2mj.js, chunk-vh11149m.js, chunk-tmbe2svg.js, chunk-v86b5paa.js, chunk-gjz69ytb.js, chunk-p1xerhx8.js, chunk-7yctwjxe.js, chunk-13m16ak1.js, chunk-2e4yh13p.js, chunk-wdpehrg1.js, chunk-90d3ahxj.js, chunk-ma2qp7wg.js, chunk-pdkcjq5q.js, chunk-erb2ak5j.js, chunk-5cea6act.js, chunk-qvpvry4a.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ar2e8wrc.js, chunk-fqpbxzv7.js, chunk-0sxn500c.js, chunk-gwfrsg1h.js, chunk-76709c4a.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 6 tests using 1 worker

(node:385671) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill (7.5s)
(node:387099) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  2 test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column (30.0s)
(node:391698) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  3 test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm (30.0s)
(node:397938) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  4 test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger (30.0s)
(node:403983) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✓  5 test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows (24.2s)
  ✘  6 test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window (18.1s)


  1) test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ─

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 0
    + Received  + 1

      Array [
        "Split right",
        "Split down",
        "Sessions",
        "Close",
    +   "More window actions",
      ]

      66 |       expect(geometry.actionsH).toBe(geometry.pillH);
      67 |       expect(geometry.border).toBe("1px");
    > 68 |       expect(geometry.labels).toEqual(["Split right", "Split down", "Sessions", "Close"]);
         |                               ^
      69 |       expect(geometry.inside).toBe(true);
      70 |       expect(geometry.titleClipped).toBe(true);
      71 |     } finally { await context.close(); }
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:68:31

    Error Context: test-results/sessions-canvas-a-window-s-bfaee-l-as-tall-as-its-title-pill/error-context.md

  2) test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      274 |     expect(columns).toContain(2);
      275 |     await expect(page.locator(".ui-window .ui-window-session", { hasText: "infraternal" })).toHaveCount(2, { timeout: 5000 });
    > 276 |   } finally { await context.close(); }
          |               ^
      277 | });
      278 |
      279 | test("another device typed last: scaled to fit, a badge says so, typing takes the size over", async ({ browser }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:276:15

    Error Context: test-results/sessions-canvas-both-split-fa6c2-own-stacks-it-in-the-column/error-context.md

  3) test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm 

    Test timeout of 30000ms exceeded.

    Error: expect(locator).toHaveCount(expected) failed

    Locator:  locator('[data-view=\'console\'] .ui-window')
    Expected: 4
    Received: 0

    Call log:
      - Expect "toHaveCount" with timeout 20000ms
      - waiting for locator('[data-view=\'console\'] .ui-window')
        7 × locator resolved to 0 elements
          - unexpected value "0"


      15 |   const page = await context.newPage();
      16 |   await page.goto(`/?mock=1&proto=clusters&scene=3&theme=${theme}&bg=none${scene ? `&sessions=${scene}` : ""}`);
    > 17 |   await expect(page.locator("[data-view='console'] .ui-window")).toHaveCount(4, { timeout: 20_000 });
         |                                                                  ^
      18 |   await expect.poll(() => page.evaluate(() => typeof (window as unknown as { __tracerClusters?: { sessions?: unknown } }).__tracerClusters?.sessions)).toBe("function");
      19 |   await page.waitForTimeout(600);
      20 |   return { context, page };
        at open (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:17:66)
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:322:18

    Error Context: test-results/sessions-canvas-the-empty--a4659-s-keep-the-product-s-rhythm/error-context.md

  4) test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger 

    Test timeout of 30000ms exceeded.

    Error: browserContext.close: Target page, context or browser has been closed

      367 |     await expect(page.locator(".cl-sx-pop")).toBeVisible();
      368 |     expect(await stateOf(page, "build-01", "journal")).toBe("detached");
    > 369 |   } finally { await context.close(); }
          |               ^
      370 | });
      371 |
      372 | test("scenes run one after another and each starts from the same four windows", async ({ browser }) => {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:369:15

    Error Context: test-results/sessions-canvas-on-touch-e-591a9-es-open-1-1-with-the-finger/error-context.md

  5) test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 

    Error: expect(locator).toBeVisible() failed

    Locator: locator('.cl-sx-pop')
    Expected: visible
    Timeout: 8000ms
    Error: element(s) not found

    Call log:
      - Expect "toBeVisible" with timeout 8000ms
      - waiting for locator('.cl-sx-pop')


      412 |     await expect(item).toBeEnabled();
      413 |     await item.tap();
    > 414 |     await expect(page.locator(".cl-sx-pop")).toBeVisible({ timeout: 8000 });
          |                                              ^
      415 |     await expect(page.locator(".cl-sx-title")).toHaveText("build-01");
      416 |   } finally { await context.close(); }
      417 | });
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:414:46

    Error Context: test-results/sessions-canvas-on-a-phone-87ddb-anager-of-the-active-window/error-context.md

  5 failed
    test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ──
    test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column 
    test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm 
    test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger 
    test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 
  1 passed (2.7m)

Invocation exit: 1
Load after: 54.37 32.01 24.27 41/3213 410838
#163 verbatim evidence: browser-case-production-sessions-canvas.spec-16.log (1/1) ```text Load before: 22.01 18.34 19.42 15/3107 384644 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p384645-i50668291.scope; invocation ID: 22bbff8676be4bb882abc8f805a5b6b0 [WebServer] $ bun run build.ts [WebServer] built chunk-5qp4x9fm.js, chunk-tvynw18r.js, chunk-tx81etng.js, chunk-b5qzwpce.js, chunk-f9q7p4mt.js, chunk-cmxfbs6y.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-3fnp54pa.js, chunk-rq0425f5.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-w7xmmpxh.js, chunk-7nczvd3c.js, chunk-vrrrsp7a.js, chunk-d26r2xqx.js, chunk-yvhhqffe.js, chunk-tr93jh02.js, chunk-jec7whdk.js, chunk-jtt2eg8n.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-mbkjhmh3.js, chunk-8tvvknnk.js, chunk-y3jfdkxh.js, chunk-d6ngev8d.js, chunk-8gqdshxw.js, chunk-f5kc0pjy.js, chunk-v7gnz8zy.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-9rfcpqxa.js, chunk-szp5bygv.js, chunk-mk3zz1cj.js, chunk-tfsm10ht.js, chunk-1d0qvnvb.js, chunk-tcrrzkhe.js, chunk-axbkkqp1.js, chunk-cwm4jhnr.js, chunk-fpanra3v.js, chunk-vppj28w0.js, chunk-n7dww2mj.js, chunk-vh11149m.js, chunk-tmbe2svg.js, chunk-v86b5paa.js, chunk-gjz69ytb.js, chunk-p1xerhx8.js, chunk-7yctwjxe.js, chunk-13m16ak1.js, chunk-2e4yh13p.js, chunk-wdpehrg1.js, chunk-90d3ahxj.js, chunk-ma2qp7wg.js, chunk-pdkcjq5q.js, chunk-erb2ak5j.js, chunk-5cea6act.js, chunk-qvpvry4a.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ar2e8wrc.js, chunk-fqpbxzv7.js, chunk-0sxn500c.js, chunk-gwfrsg1h.js, chunk-76709c4a.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 6 tests using 1 worker (node:385671) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill (7.5s) (node:387099) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 2 test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column (30.0s) (node:391698) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 3 test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm (30.0s) (node:397938) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 4 test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger (30.0s) (node:403983) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✓ 5 test/sessions-canvas.spec.ts:372:1 › scenes run one after another and each starts from the same four windows (24.2s) ✘ 6 test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window (18.1s) 1) test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ─ Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 Array [ "Split right", "Split down", "Sessions", "Close", + "More window actions", ] 66 | expect(geometry.actionsH).toBe(geometry.pillH); 67 | expect(geometry.border).toBe("1px"); > 68 | expect(geometry.labels).toEqual(["Split right", "Split down", "Sessions", "Close"]); | ^ 69 | expect(geometry.inside).toBe(true); 70 | expect(geometry.titleClipped).toBe(true); 71 | } finally { await context.close(); } at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:68:31 Error Context: test-results/sessions-canvas-a-window-s-bfaee-l-as-tall-as-its-title-pill/error-context.md 2) test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column Test timeout of 30000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 274 | expect(columns).toContain(2); 275 | await expect(page.locator(".ui-window .ui-window-session", { hasText: "infraternal" })).toHaveCount(2, { timeout: 5000 }); > 276 | } finally { await context.close(); } | ^ 277 | }); 278 | 279 | test("another device typed last: scaled to fit, a badge says so, typing takes the size over", async ({ browser }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:276:15 Error Context: test-results/sessions-canvas-both-split-fa6c2-own-stacks-it-in-the-column/error-context.md 3) test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm Test timeout of 30000ms exceeded. Error: expect(locator).toHaveCount(expected) failed Locator: locator('[data-view=\'console\'] .ui-window') Expected: 4 Received: 0 Call log: - Expect "toHaveCount" with timeout 20000ms - waiting for locator('[data-view=\'console\'] .ui-window') 7 × locator resolved to 0 elements - unexpected value "0" 15 | const page = await context.newPage(); 16 | await page.goto(`/?mock=1&proto=clusters&scene=3&theme=${theme}&bg=none${scene ? `&sessions=${scene}` : ""}`); > 17 | await expect(page.locator("[data-view='console'] .ui-window")).toHaveCount(4, { timeout: 20_000 }); | ^ 18 | await expect.poll(() => page.evaluate(() => typeof (window as unknown as { __tracerClusters?: { sessions?: unknown } }).__tracerClusters?.sessions)).toBe("function"); 19 | await page.waitForTimeout(600); 20 | return { context, page }; at open (/home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:17:66) at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:322:18 Error Context: test-results/sessions-canvas-the-empty--a4659-s-keep-the-product-s-rhythm/error-context.md 4) test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger Test timeout of 30000ms exceeded. Error: browserContext.close: Target page, context or browser has been closed 367 | await expect(page.locator(".cl-sx-pop")).toBeVisible(); 368 | expect(await stateOf(page, "build-01", "journal")).toBe("detached"); > 369 | } finally { await context.close(); } | ^ 370 | }); 371 | 372 | test("scenes run one after another and each starts from the same four windows", async ({ browser }) => { at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:369:15 Error Context: test-results/sessions-canvas-on-touch-e-591a9-es-open-1-1-with-the-finger/error-context.md 5) test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window Error: expect(locator).toBeVisible() failed Locator: locator('.cl-sx-pop') Expected: visible Timeout: 8000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 8000ms - waiting for locator('.cl-sx-pop') 412 | await expect(item).toBeEnabled(); 413 | await item.tap(); > 414 | await expect(page.locator(".cl-sx-pop")).toBeVisible({ timeout: 8000 }); | ^ 415 | await expect(page.locator(".cl-sx-title")).toHaveText("build-01"); 416 | } finally { await context.close(); } 417 | }); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/sessions-canvas.spec.ts:414:46 Error Context: test-results/sessions-canvas-on-a-phone-87ddb-anager-of-the-active-window/error-context.md 5 failed test/sessions-canvas.spec.ts:54:1 › a window's actions are one pill as tall as its title pill ── test/sessions-canvas.spec.ts:260:1 › both splits open a new shell with no prompt, through the droplet, and down stacks it in the column test/sessions-canvas.spec.ts:314:1 › the empty, loading and error states keep the product's rhythm test/sessions-canvas.spec.ts:350:1 › on touch every control is 44 px and a row swipes open 1:1 with the finger test/sessions-canvas.spec.ts:406:1 › on a phone the canvas row has a Sessions action that opens the manager of the active window 1 passed (2.7m) Invocation exit: 1 Load after: 54.37 32.01 24.27 41/3213 410838 ```
Author
Owner

#163 verbatim evidence: browser-case-production-terminal-theme.spec-17.log (1/1)

Load before: 51.63 34.32 25.41 45/3209 418539
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p418541-i50702154.scope; invocation ID: c1bc22424c0b448d8bedc7f465bb0e9c
[WebServer] $ bun run build.ts
[WebServer] built chunk-n8ps150c.js, chunk-tvynw18r.js, chunk-61nwwbpr.js, chunk-b5qzwpce.js, chunk-9q81zsd3.js, chunk-c12vypv7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-dy1rsnjf.js, chunk-7fatp4ad.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-8bg6xjp5.js, chunk-7nczvd3c.js, chunk-75hskk2j.js, chunk-qvbbqm1z.js, chunk-yvhhqffe.js, chunk-vxpwb3xr.js, chunk-jrs2ap2v.js, chunk-6shbpmf1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pymvkmg8.js, chunk-v9wz6tpr.js, chunk-gkpnx288.js, chunk-a4z5pdk0.js, chunk-8gqdshxw.js, chunk-zh6drkkm.js, chunk-axt99nax.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-epjw8j56.js, chunk-sn0v051e.js, chunk-cx929y1a.js, chunk-rav8vf1z.js, chunk-1d0qvnvb.js, chunk-1vn07zwe.js, chunk-axbkkqp1.js, chunk-nh0z34f4.js, chunk-3j7g7h1b.js, chunk-y3wchz8a.js, chunk-s0qvmm5t.js, chunk-5k06e57p.js, chunk-b1af70v4.js, chunk-v86b5paa.js, chunk-k1w8whwx.js, chunk-rnhwgm9w.js, chunk-0pg1d28b.js, chunk-2mpn6ajg.js, chunk-2e4yh13p.js, chunk-yweyaehb.js, chunk-x59y3ayn.js, chunk-5vemc6hh.js, chunk-9e2qaz09.js, chunk-81rftv28.js, chunk-9r1rc5bz.js, chunk-czezaxq8.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-qc1qt2wy.js, chunk-8q9xmy0t.js, chunk-0sxn500c.js, chunk-z09mtx5s.js, chunk-yq6f901p.js
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642

Running 1 test using 1 worker

(node:421533) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
theme fixture bytes=605847 metrics={"cols":170,"rows":44,"cellWidth":8,"cellHeight":18,"naturalCellWidth":8,"configuredScrollback":40000000,"cursorX":16,"cursorY":43,"renderCursorX":16,"renderCursorY":43,"renderCursorVisible":true,"themeColorsMs":0,"themeRenderMs":0,"terminalColors":{"background":{"r":246,"g":246,"b":244},"foreground":{"r":29,"g":29,"b":31}},"receivedSequence":"605847","outputSequence":"605847","scrollbackRows":10024,"viewportY":0,"cursorVisible":true,"fontSize":14,"fontFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","fontId":"maple-mono-nf","wasmMemoryBytes":35848192}
theme-switch click-to-full-paint JS ms: n=50 p50=0.600 p99=11.100 max=11.100 long_tasks_gt_50ms=5
slowest theme samples: [{"sample":1,"click":11.100000023841858,"colors":9.899999976158142,"render":4.199999928474426},{"sample":24,"click":7.600000023841858,"colors":0,"render":4.599999904632568},{"sample":32,"click":6.5,"colors":0,"render":1},{"sample":37,"click":4,"colors":0,"render":4.699999928474426},{"sample":27,"click":3.299999952316284,"colors":0.09999990463256836,"render":23.800000071525574}]
theme work JS ms: color_setters_p50=0.000 repaint_p50=15.600
  ✘  1 test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text (18.2s)


  1) test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text 

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 1
    + Received  + 7

    - Array []
    + Array [
    +   58,
    +   77,
    +   89,
    +   57,
    +   52,
    + ]

      288 |   });
      289 |   expect(p99).toBeLessThan(16.67);
    > 290 |   expect(longTasks.filter((duration) => duration > 50)).toEqual([]);
          |                                                         ^
      291 |   expect(await readSocketCounts(page)).toEqual(socketCounts);
      292 |   expect(await page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.scrollbackRows ?? 0)).toBe(scrollbackRowsBefore);
      293 |   expect(await page.evaluate(() => window.__tracerTestDouble?.screenText() ?? "")).toBe(historyText);
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/terminal-theme.spec.ts:290:57

    Error Context: test-results/terminal-theme-every-curat-3627b--and-its-existing-ANSI-text/error-context.md

  1 failed
    test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text 

Invocation exit: 1
Load after: 42.31 34.04 25.66 41/3135 425381
#163 verbatim evidence: browser-case-production-terminal-theme.spec-17.log (1/1) ```text Load before: 51.63 34.32 25.41 45/3209 418539 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p418541-i50702154.scope; invocation ID: c1bc22424c0b448d8bedc7f465bb0e9c [WebServer] $ bun run build.ts [WebServer] built chunk-n8ps150c.js, chunk-tvynw18r.js, chunk-61nwwbpr.js, chunk-b5qzwpce.js, chunk-9q81zsd3.js, chunk-c12vypv7.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-dy1rsnjf.js, chunk-7fatp4ad.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-8bg6xjp5.js, chunk-7nczvd3c.js, chunk-75hskk2j.js, chunk-qvbbqm1z.js, chunk-yvhhqffe.js, chunk-vxpwb3xr.js, chunk-jrs2ap2v.js, chunk-6shbpmf1.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-pymvkmg8.js, chunk-v9wz6tpr.js, chunk-gkpnx288.js, chunk-a4z5pdk0.js, chunk-8gqdshxw.js, chunk-zh6drkkm.js, chunk-axt99nax.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-epjw8j56.js, chunk-sn0v051e.js, chunk-cx929y1a.js, chunk-rav8vf1z.js, chunk-1d0qvnvb.js, chunk-1vn07zwe.js, chunk-axbkkqp1.js, chunk-nh0z34f4.js, chunk-3j7g7h1b.js, chunk-y3wchz8a.js, chunk-s0qvmm5t.js, chunk-5k06e57p.js, chunk-b1af70v4.js, chunk-v86b5paa.js, chunk-k1w8whwx.js, chunk-rnhwgm9w.js, chunk-0pg1d28b.js, chunk-2mpn6ajg.js, chunk-2e4yh13p.js, chunk-yweyaehb.js, chunk-x59y3ayn.js, chunk-5vemc6hh.js, chunk-9e2qaz09.js, chunk-81rftv28.js, chunk-9r1rc5bz.js, chunk-czezaxq8.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-qc1qt2wy.js, chunk-8q9xmy0t.js, chunk-0sxn500c.js, chunk-z09mtx5s.js, chunk-yq6f901p.js [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 Running 1 test using 1 worker (node:421533) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) theme fixture bytes=605847 metrics={"cols":170,"rows":44,"cellWidth":8,"cellHeight":18,"naturalCellWidth":8,"configuredScrollback":40000000,"cursorX":16,"cursorY":43,"renderCursorX":16,"renderCursorY":43,"renderCursorVisible":true,"themeColorsMs":0,"themeRenderMs":0,"terminalColors":{"background":{"r":246,"g":246,"b":244},"foreground":{"r":29,"g":29,"b":31}},"receivedSequence":"605847","outputSequence":"605847","scrollbackRows":10024,"viewportY":0,"cursorVisible":true,"fontSize":14,"fontFamily":"\"Maple Mono NF\", \"Nerd Symbols\", \"Maple Mono NF Fallback\", ui-monospace, monospace","fontId":"maple-mono-nf","wasmMemoryBytes":35848192} theme-switch click-to-full-paint JS ms: n=50 p50=0.600 p99=11.100 max=11.100 long_tasks_gt_50ms=5 slowest theme samples: [{"sample":1,"click":11.100000023841858,"colors":9.899999976158142,"render":4.199999928474426},{"sample":24,"click":7.600000023841858,"colors":0,"render":4.599999904632568},{"sample":32,"click":6.5,"colors":0,"render":1},{"sample":37,"click":4,"colors":0,"render":4.699999928474426},{"sample":27,"click":3.299999952316284,"colors":0.09999990463256836,"render":23.800000071525574}] theme work JS ms: color_setters_p50=0.000 repaint_p50=15.600 ✘ 1 test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text (18.2s) 1) test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 7 - Array [] + Array [ + 58, + 77, + 89, + 57, + 52, + ] 288 | }); 289 | expect(p99).toBeLessThan(16.67); > 290 | expect(longTasks.filter((duration) => duration > 50)).toEqual([]); | ^ 291 | expect(await readSocketCounts(page)).toEqual(socketCounts); 292 | expect(await page.evaluate(() => window.__tracerTestDouble?.rendererMetrics()?.scrollbackRows ?? 0)).toBe(scrollbackRowsBefore); 293 | expect(await page.evaluate(() => window.__tracerTestDouble?.screenText() ?? "")).toBe(historyText); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/terminal-theme.spec.ts:290:57 Error Context: test-results/terminal-theme-every-curat-3627b--and-its-existing-ANSI-text/error-context.md 1 failed test/terminal-theme.spec.ts:205:1 › every curated theme recolors the initial terminal and its existing ANSI text Invocation exit: 1 Load after: 42.31 34.04 25.66 41/3135 425381 ```
Author
Owner

#163 verbatim evidence: browser-case-production-terminal.spec-18.log (1/1)

Load before: 51.89 39.58 28.93 56/3168 443385
Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed.
Running as unit: run-p443386-i50726999.scope; invocation ID: d63ed52cb00c4b998afdbfe052083e7b
[WebServer] $ bun run build.ts
[WebServer] built chunk-0j3cryfp.js, chunk-tvynw18r.js, chunk-cmmj2wec.js, chunk-b5qzwpce.js, chunk-pdpt7qps.js, chunk-e0e2ezq8.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-cebpyc5j.js, chunk-zn14njnf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-hh8bsfan.js, chunk-7nczvd3c.js, chunk-9rqfyjmr.js, chunk-xxhafhss.js, chunk-yvhhqffe.js, chunk-kvvpd71e.js, chunk-aegbhnep.js, chunk-n4nfjnnf.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-p76r482j.js, chunk-4ykkf194.js, chunk-9xw08wv0.js, chunk-18cv7vn6.js, chunk-8gqdshxw.js, chunk-3qg4cv48.js, chunk-mxdgk5sa.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-r9fa3seg.js, chunk-kmaw2tx8.js, chunk-kb4y748v.js, chunk-2jmk46ys.js, chunk-1d0qvnvb.js, chunk-ybecf04f.js, chunk-axbkkqp1.js, chunk-cws249pa.js, chunk-jgzgtsk8.js, chunk-hbnw690q.js, chunk-4tmb3na0.js, chunk-2e90kv6h.js, chunk-ndex932p.js, chunk-v86b5paa.js, chunk-wzyjy252.js, chunk-rew9d7xj.js, chunk-0syk3nej.js, chunk-bxht4vb6.js, chunk-2e4yh13p.js, chunk-g4wzrtsg.js, chunk-6bf3a0p0.js, chunk-a81t6tz5.js, chunk-zxzr8ezh.js, chunk-y7dkrac9.js, chunk-8eq40htv.js, chunk-35rq1jma.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ta1y76fc.js, chunk-jewyscxs.js, chunk-0sxn500c.js, chunk-k2drspgq.js, chunk-gks6x6az.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4642
[WebServer] latency proxy listening on http://localhost:4641; upstream port=4642

Running 2 tests using 1 worker

(node:445498) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
  ✘  1 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (23.9s)
(node:449116) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
METRIC name=access_screen_render_upper_bound_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=2239.20 p99_ms=3387.70 budget_ms=1000 result=FAIL
METRIC name=access_screen_first_contentful_paint_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1860.30 p99_ms=2918.10 budget_ms=1000 result=REPORT
  ✘  2 test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget (2.0m)


  1) test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ──

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false

    Call Log:
    - Timeout 5000ms exceeded while waiting on the predicate

      82 |     const started = await page.evaluate(() => performance.now());
      83 |     await page.getByRole("button", { name: "Continue with passkey" }).click();
    > 84 |     await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true);
         |                                                                                                     ^
      85 |     returningSigninSamples.push(await page.evaluate((start) => performance.now() - start, started));
      86 |     expect(await page.evaluate(() => document.documentElement.dataset.passkeyGets)).toBe("1");
      87 |     if (attempt + 1 < signinTrials) {
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/terminal.spec.ts:84:101

    attachment #1: signin-light (image/png) ────────────────────────────────────────────────────────
    test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-light-cdd3dfca32c564da0fce33957fe999909a6ad6eb.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: signin-dark (image/png) ─────────────────────────────────────────────────────────
    test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-dark-efb0716d137b5c4bd3d9aea553e9eceeed5dd74b.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/error-context.md

  2) test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ───────

    Test timeout of 120000ms exceeded.

    Error: page.goto: net::ERR_ABORTED; maybe frame was detached?
    Call log:
      - navigating to "http://localhost:4641/", waiting until "load"


      640 |       const sample = await page.context().newPage();
      641 |       await sample.route("**/auth/status", (route) => route.fulfill({ json: { setup_required: setupRequired } }));
    > 642 |       await sample.goto("/");
          |                    ^
      643 |       await expect(sample.locator(setupRequired ? "#setup-card" : "#login-passkey")).toBeVisible();
      644 |       firstPaints.push(await sample.evaluate(() =>
      645 |         performance.getEntriesByName("first-contentful-paint")[0]?.startTime ?? performance.now()));
        at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/terminal.spec.ts:642:20

    Error Context: test-results/terminal-access-screens-re-da0df-he-local-first-paint-budget/error-context.md

  2 failed
    test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ───
    test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ────────

Invocation exit: 1
Load after: 38.09 39.92 30.91 28/3175 468549
#163 verbatim evidence: browser-case-production-terminal.spec-18.log (1/1) ```text Load before: 51.89 39.58 28.93 56/3168 443385 Scope command line contains environment variable, which is not expanded by default for now, but will be expanded by default in the future. Use --expand-environment=yes/no to explicitly control it as needed. Running as unit: run-p443386-i50726999.scope; invocation ID: d63ed52cb00c4b998afdbfe052083e7b [WebServer] $ bun run build.ts [WebServer] built chunk-0j3cryfp.js, chunk-tvynw18r.js, chunk-cmmj2wec.js, chunk-b5qzwpce.js, chunk-pdpt7qps.js, chunk-e0e2ezq8.js, chunk-987nys91.js, chunk-y3zz095k.js, chunk-cebpyc5j.js, chunk-zn14njnf.js, chunk-d6k91n8a.js, chunk-jtmd79cs.js, chunk-6gtm055g.js, chunk-7wcevm6t.js, chunk-hh8bsfan.js, chunk-7nczvd3c.js, chunk-9rqfyjmr.js, chunk-xxhafhss.js, chunk-yvhhqffe.js, chunk-kvvpd71e.js, chunk-aegbhnep.js, chunk-n4nfjnnf.js, chunk-na49xj9e.js, main.js, chunk-bmvvvw5y.js, chunk-cvqd1j3d.js, chunk-p76r482j.js, chunk-4ykkf194.js, chunk-9xw08wv0.js, chunk-18cv7vn6.js, chunk-8gqdshxw.js, chunk-3qg4cv48.js, chunk-mxdgk5sa.js, chunk-200yzybn.js, chunk-xcx46cbd.js, chunk-r9fa3seg.js, chunk-kmaw2tx8.js, chunk-kb4y748v.js, chunk-2jmk46ys.js, chunk-1d0qvnvb.js, chunk-ybecf04f.js, chunk-axbkkqp1.js, chunk-cws249pa.js, chunk-jgzgtsk8.js, chunk-hbnw690q.js, chunk-4tmb3na0.js, chunk-2e90kv6h.js, chunk-ndex932p.js, chunk-v86b5paa.js, chunk-wzyjy252.js, chunk-rew9d7xj.js, chunk-0syk3nej.js, chunk-bxht4vb6.js, chunk-2e4yh13p.js, chunk-g4wzrtsg.js, chunk-6bf3a0p0.js, chunk-a81t6tz5.js, chunk-zxzr8ezh.js, chunk-y7dkrac9.js, chunk-8eq40htv.js, chunk-35rq1jma.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-ta1y76fc.js, chunk-jewyscxs.js, chunk-0sxn500c.js, chunk-k2drspgq.js, chunk-gks6x6az.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4642 [WebServer] latency proxy listening on http://localhost:4641; upstream port=4642 Running 2 tests using 1 worker (node:445498) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ✘ 1 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (23.9s) (node:449116) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) METRIC name=access_screen_render_upper_bound_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=2239.20 p99_ms=3387.70 budget_ms=1000 result=FAIL METRIC name=access_screen_first_contentful_paint_setup source=tracer-production-build n=30 configured_rtt_ms=300 p50_ms=1860.30 p99_ms=2918.10 budget_ms=1000 result=REPORT ✘ 2 test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget (2.0m) 1) test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ── Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false Call Log: - Timeout 5000ms exceeded while waiting on the predicate 82 | const started = await page.evaluate(() => performance.now()); 83 | await page.getByRole("button", { name: "Continue with passkey" }).click(); > 84 | await expect.poll(() => page.evaluate(() => window.__tracerTestDouble?.isConnected() === true)).toBe(true); | ^ 85 | returningSigninSamples.push(await page.evaluate((start) => performance.now() - start, started)); 86 | expect(await page.evaluate(() => document.documentElement.dataset.passkeyGets)).toBe("1"); 87 | if (attempt + 1 < signinTrials) { at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/terminal.spec.ts:84:101 attachment #1: signin-light (image/png) ──────────────────────────────────────────────────────── test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-light-cdd3dfca32c564da0fce33957fe999909a6ad6eb.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: signin-dark (image/png) ───────────────────────────────────────────────────────── test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/attachments/signin-dark-efb0716d137b5c4bd3d9aea553e9eceeed5dd74b.png ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/error-context.md 2) test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ─────── Test timeout of 120000ms exceeded. Error: page.goto: net::ERR_ABORTED; maybe frame was detached? Call log: - navigating to "http://localhost:4641/", waiting until "load" 640 | const sample = await page.context().newPage(); 641 | await sample.route("**/auth/status", (route) => route.fulfill({ json: { setup_required: setupRequired } })); > 642 | await sample.goto("/"); | ^ 643 | await expect(sample.locator(setupRequired ? "#setup-card" : "#login-passkey")).toBeVisible(); 644 | firstPaints.push(await sample.evaluate(() => 645 | performance.getEntriesByName("first-contentful-paint")[0]?.startTime ?? performance.now())); at /home/kayg/.cache/codex-scratch/dev-backmerge/production-baseline/apps/tracer/test/terminal.spec.ts:642:20 Error Context: test-results/terminal-access-screens-re-da0df-he-local-first-paint-budget/error-context.md 2 failed test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe ─── test/terminal.spec.ts:630:1 › access screens render within the local first-paint budget ──────── Invocation exit: 1 Load after: 38.09 39.92 30.91 28/3175 468549 ```
Author
Owner

#163 verbatim evidence: remote-output-before.log (1/1)

Running as unit: run-p3941911-i50031925.scope; invocation ID: adb0878b400a4eedbb6b902519a3d8f0
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 3.21s
     Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-310481cc129ecc44)

running 1 test
test remote_refusal_matches_its_declared_cli_output ... FAILED

failures:

---- remote_refusal_matches_its_declared_cli_output stdout ----

thread 'remote_refusal_matches_its_declared_cli_output' (3943034) panicked at crates/infraternal/tests/remote_output.rs:38:9:
actual remote response lacks declared required field schema_version
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    remote_refusal_matches_its_declared_cli_output

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

error: test failed, to rerun pass `-p infraternal --test remote_output`
#163 verbatim evidence: remote-output-before.log (1/1) ```text Running as unit: run-p3941911-i50031925.scope; invocation ID: adb0878b400a4eedbb6b902519a3d8f0 Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 3.21s Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-310481cc129ecc44) running 1 test test remote_refusal_matches_its_declared_cli_output ... FAILED failures: ---- remote_refusal_matches_its_declared_cli_output stdout ---- thread 'remote_refusal_matches_its_declared_cli_output' (3943034) panicked at crates/infraternal/tests/remote_output.rs:38:9: actual remote response lacks declared required field schema_version note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failures: remote_refusal_matches_its_declared_cli_output test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s error: test failed, to rerun pass `-p infraternal --test remote_output` ```
Author
Owner

#163 verbatim evidence: remote-output-after.log (1/1)

Running as unit: run-p3958258-i50048272.scope; invocation ID: 44ff297ae943423f97ba8aa58e80034f
   Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote)
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent)
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 21.41s
     Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-310481cc129ecc44)

running 1 test
test remote_refusal_matches_its_declared_cli_output ... ok

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

#163 verbatim evidence: remote-output-after.log (1/1) ```text Running as unit: run-p3958258-i50048272.scope; invocation ID: 44ff297ae943423f97ba8aa58e80034f Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent) Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 21.41s Running tests/remote_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/remote_output-310481cc129ecc44) running 1 test test remote_refusal_matches_its_declared_cli_output ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s ```
Author
Owner

#163 verbatim evidence: setup-output-before.log (1/1)

Running as unit: run-p332985-i50616650.scope; invocation ID: 3986265af5604b17a2a64a1ae3ee68d6
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api)
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim)
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote)
   Compiling infraternal-plugin-host-facts v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/host-facts)
   Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh)
   Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh)
   Compiling infraternal-plugin-relay v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/relay)
   Compiling infraternal-plugin-backup v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/backup)
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent)
   Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 38.24s
     Running tests/setup_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/setup_output-10c32429c85fd60b)

running 1 test
test setup_output_keeps_legacy_and_versioned_readers ... FAILED

failures:

---- setup_output_keeps_legacy_and_versioned_readers stdout ----

thread 'setup_output_keeps_legacy_and_versioned_readers' (336023) panicked at crates/infraternal/tests/setup_output.rs:45:5:
legacy reader
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    setup_output_keeps_legacy_and_versioned_readers

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

error: test failed, to rerun pass `-p infraternal --test setup_output`
#163 verbatim evidence: setup-output-before.log (1/1) ```text Running as unit: run-p332985-i50616650.scope; invocation ID: 3986265af5604b17a2a64a1ae3ee68d6 Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api) Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim) Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote) Compiling infraternal-plugin-host-facts v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/host-facts) Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh) Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh) Compiling infraternal-plugin-relay v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/relay) Compiling infraternal-plugin-backup v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/backup) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent) Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 38.24s Running tests/setup_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/setup_output-10c32429c85fd60b) running 1 test test setup_output_keeps_legacy_and_versioned_readers ... FAILED failures: ---- setup_output_keeps_legacy_and_versioned_readers stdout ---- thread 'setup_output_keeps_legacy_and_versioned_readers' (336023) panicked at crates/infraternal/tests/setup_output.rs:45:5: legacy reader note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failures: setup_output_keeps_legacy_and_versioned_readers test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s error: test failed, to rerun pass `-p infraternal --test setup_output` ```
Author
Owner

#163 verbatim evidence: setup-output-after.log (1/1)

Running as unit: run-p346300-i50629965.scope; invocation ID: 2d2739df17a04d38a6958d7a2b9c31c9
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 9.88s
     Running tests/setup_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/setup_output-10c32429c85fd60b)

running 1 test
test setup_output_keeps_legacy_and_versioned_readers ... ok

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

#163 verbatim evidence: setup-output-after.log (1/1) ```text Running as unit: run-p346300-i50629965.scope; invocation ID: 2d2739df17a04d38a6958d7a2b9c31c9 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 9.88s Running tests/setup_output.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/setup_output-10c32429c85fd60b) running 1 test test setup_output_keeps_legacy_and_versioned_readers ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s ```
Author
Owner

#163 verbatim evidence: socket-gone-rerun.log (1/1)

Running as unit: run-p4165263-i50255128.scope; invocation ID: ef336275ad1541928d02e263a3068b0b
   Compiling sqlx-core v0.8.6
   Compiling sqlx-sqlite v0.8.6
   Compiling sqlx-macros-core v0.8.6
   Compiling uuid v1.27.0
   Compiling sqlx-macros v0.8.6
   Compiling sqlx v0.8.6
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim)
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api)
   Compiling webauthn-attestation-ca v0.5.5
   Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh)
   Compiling webauthn-rs-core v0.5.5
   Compiling tokio-openssl v0.6.5
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh)
   Compiling axum-server v0.8.0
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh)
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent)
warning: variable does not need to be mutable
  --> crates/infraternal-agent/src/cli.rs:14:9
   |
14 |     let mut plugin = PluginDefinition::new(
   |         ----^^^^^^
   |         |
   |         help: remove this `mut`
   |
   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: `infraternal-agent` (lib) generated 1 warning (run `cargo fix --lib -p infraternal-agent` to apply 1 suggestion)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 5m 21s
     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-281eeb97e9a78966)

running 1 test
test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok

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

#163 verbatim evidence: socket-gone-rerun.log (1/1) ```text Running as unit: run-p4165263-i50255128.scope; invocation ID: ef336275ad1541928d02e263a3068b0b Compiling sqlx-core v0.8.6 Compiling sqlx-sqlite v0.8.6 Compiling sqlx-macros-core v0.8.6 Compiling uuid v1.27.0 Compiling sqlx-macros v0.8.6 Compiling sqlx v0.8.6 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-shim) Compiling infraternal-plugin-api v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-plugin-api) Compiling webauthn-attestation-ca v0.5.5 Compiling infraternal-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-mesh) Compiling webauthn-rs-core v0.5.5 Compiling tokio-openssl v0.6.5 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/ssh) Compiling axum-server v0.8.0 Compiling webauthn-rs v0.5.5 Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/mesh) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent) warning: variable does not need to be mutable --> crates/infraternal-agent/src/cli.rs:14:9 | 14 | let mut plugin = PluginDefinition::new( | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: `infraternal-agent` (lib) generated 1 warning (run `cargo fix --lib -p infraternal-agent` to apply 1 suggestion) Finished `test` profile [unoptimized + debuginfo] target(s) in 5m 21s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-281eeb97e9a78966) running 1 test test auth::tests::socket_tests::session_gone::the_infraternal_agent_saying_gone_reaches_the_browser_as_the_final_close ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 196 filtered out; finished in 1.30s ```
Author
Owner

#163 verbatim evidence: socket-gone-dev-baseline.log (1/1)

Running as unit: run-p4178678-i50268542.scope; invocation ID: 0acb588f02c341e0a44af532c3f68dd7
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
   Compiling hyper v1.11.1
   Compiling nix v0.30.1
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-plugin-api)
   Compiling infraternal-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-mesh)
   Compiling hyper-util v0.1.21
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-server)
   Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-protocol)
   Compiling axum v0.8.9
   Compiling axum-server v0.8.0
   Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/plugins/mesh)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 4m 52s
     Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-2e762f2bc8cf85aa)

running 0 tests

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

#163 verbatim evidence: socket-gone-dev-baseline.log (1/1) ```text Running as unit: run-p4178678-i50268542.scope; invocation ID: 0acb588f02c341e0a44af532c3f68dd7 Blocking waiting for file lock on package cache Blocking waiting for file lock on build directory Compiling hyper v1.11.1 Compiling nix v0.30.1 Compiling infraternal-plugin-api v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-plugin-api) Compiling infraternal-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-mesh) Compiling hyper-util v0.1.21 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-server) Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/infraternal-protocol) Compiling axum v0.8.9 Compiling axum-server v0.8.0 Compiling infraternal-plugin-mesh v0.1.0 (/home/kayg/.cache/codex-scratch/dev-backmerge/baseline/crates/plugins/mesh) Finished `test` profile [unoptimized + debuginfo] target(s) in 4m 52s Running unittests src/lib.rs (/home/kayg/.cache/codex-scratch/dev-backmerge/target/debug/deps/infraternal_server-2e762f2bc8cf85aa) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 151 filtered out; finished in 0.00s ```
Author
Owner

Finished #163: 8d0fc8ba57, pushed only dev-backmerge. Merge 90247165 has dev and production parents; atomic compatibility fixes b9f21b82 and f5a9d02c preserve remote metadata and both setup-output readers. Evidence commits 865bfdad and 8d0fc8ba attach review, screenshots and raw ignored logs explicitly. No dev/other branch changes or deployment. Issue remains open.

Required native rows pass except acknowledged size ceiling: x86 20,295,024 / max16,404,816; ARM18,062,680 / max13,817,816. Both static without PT_INTERP, --locked. Required tracer compiler/tests/build/budget pass (147 source tests); protocol36/34462 assertions. Real PTY and four production-build captures pass.

Browser full gate is red: 423 passed,81 failed,38 skipped. Every failed file rerun alone; persistent failures reproduce on production, other cases pass alone. Predictive screenshot failed on both in the final load window after an earlier parent pass. Matrix/raw results: 8d0fc8ba57/evidence/dev-backmerge/browser-matrix.md
Resolution/review: 8d0fc8ba57/docs/verification/dev-backmerge.md

Full native, tracer, TS, complete browser and isolated outputs were quoted verbatim in preceding comments; final excerpts follow.

verify-fast-setup.log


==> static builds
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 5m 33s
/home/kayg/.cache/codex-scratch/dev-backmerge/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: 20295024 bytes (baseline 16142672 + allowance 262144 = max 16404816)
binary exceeds the 16404816-byte size budget: 20295024 bytes

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

static-aarch64-final.log

Running as unit: run-p555639-i50839252.scope; invocation ID: 42241e9c167e434bbdca1cb1c27e4652
   Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote)
   Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent)
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 8m 48s
/home/kayg/.cache/codex-scratch/dev-backmerge/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 18062680 bytes (baseline 13555672 + allowance 262144 = max 13817816)
binary exceeds the 13817816-byte size budget: 18062680 bytes

static-cli-stubs-final.log

server subcommand: exit 2, versioned JSON unavailable result
agent subcommand: exit 2, versioned JSON unavailable result

tracer.log (verbatim)

$ bun x tsc --project tsconfig.json
bun test v1.4.2 (744846f84)

src/palette-entry.test.ts:
(pass) palette rows are always titled > a titled row passes through untouched [0.11ms]
(pass) palette rows are always titled > a blank title throws in a strict build and names the row [1.35ms]
(pass) palette rows are always titled > a blank title is repaired from the settings section in production [14.67ms]
(pass) palette rows are always titled > a blank title with no section falls back to the group [0.05ms]
(pass) a settings window always has a title in the scoped palette > section appearance without its host field is still Appearance [0.12ms]
(pass) a settings window always has a title in the scoped palette > section windows without its host field is still Window Sizes [0.02ms]
(pass) a settings window always has a title in the scoped palette > section hosts without its host field is still Hosts
(pass) a settings window always has a title in the scoped palette > section toolbar without its host field is still Toolbar
(pass) a settings window always has a title in the scoped palette > section shortcuts without its host field is still Shortcuts
(pass) a settings window always has a title in the scoped palette > section devices without its host field is still Devices
(pass) a settings window always has a title in the scoped palette > section account without its host field is still Account
(pass) a settings window always has a title in the scoped palette > section about without its host field is still About [0.10ms]
(pass) a settings window always has a title in the scoped palette > section users without its host field is still Users [0.01ms]
(pass) a settings window always has a title in the scoped palette > section grants without its host field is still Access
(pass) a settings window always has a title in the scoped palette > section discovery without its host field is still Found hosts
(pass) a settings window always has a title in the scoped palette > a window of any other kind never has an empty name [0.06ms]

src/perf-detector.test.ts:
(pass) FrameDetector > estimates the refresh from the median and snaps it [1.67ms]
(pass) FrameDetector > nothing is a drop before the rate is known [0.05ms]
(pass) FrameDetector > a drop is over 1.5 refresh intervals, a freeze over 100 ms [0.42ms]
(pass) FrameDetector > the refresh only goes up: a slow page is not a slower display [0.10ms]
(pass) FrameDetector > the first frame after a pause is not an interval [0.06ms]
(pass) FrameDetector > fps, p95 and window read the ring [0.20ms]
(pass) FrameDetector > a throttled page (one frame a second) is neither a drop nor a freeze, and neither is its return [0.21ms]
(pass) FrameDetector > a lone long stall is still a freeze and is not a throttled run [0.07ms]

src/connection-pool.test.ts:
(pass) terminals fill the first socket, then open another, and a released slot is reused first [1.60ms]
(pass) 54 windows need two sockets, and the pool stops opening sockets at its cap [1.49ms]

src/canvas/recency.test.ts:
(pass) touch moves an item to the front and never duplicates it [0.60ms]
(pass) repeating the front item changes nothing [0.04ms]
(pass) the list is capped, so the oldest items fall off [0.04ms]
(pass) top skips items that are no longer live, without losing them [0.08ms]
(pass) recentRows: five used windows in reverse order of use, from 54 windows [0.18ms]
(pass) recentRows: a view with three windows and no use shows them in order [0.03ms]
(pass) recentRows: used windows lead, the rest fill up to five in window order [0.06ms]

src/canvas/windows/details-facts.test.ts:
(pass) host facts become plain-language details rows [0.69ms]
(pass) unknown optional host facts stay absent instead of appearing as placeholders [1.12ms]
(pass) extended info off: the machine tab shows only the essentials, ungrouped, and there is no More section [0.69ms]
(pass) extended info on: every fact sits under System, Resources or Access [0.22ms]
(pass) the header follows the machine's own facts, not the platform the host list guessed [0.14ms]
(pass) before facts arrive the host's platform names the header [0.05ms]
(pass) a reported system with no platform mark still names the header and shows no mark [0.33ms]

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

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

src/canvas/layout/stops.test.ts:
(pass) a view that fits the viewport has one stop, centred [0.52ms]
(pass) a wide view has one stop per column and the last stop ends at the right edge [0.29ms]
(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.20ms]
(pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.36ms]
(pass) a small graph keeps one stop per node column [0.16ms]
(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.11ms]

src/canvas/layout/grid.test.ts:
(pass) split right in a stacked column makes a group: the window's column halves, its neighbours span both halves [1.95ms]
(pass) closing the new half gives the layout back exactly, in the model [1.96ms]
(pass) closing the window it came from makes the new half take its band, and the layout is one column again [0.58ms]
(pass) split right of a spanning window halves its span inside the existing columns, with the footprint unchanged [0.39ms]
(pass) split down in a group divides only the window's band: the partner window grows to keep its height [0.73ms]
(pass) closing the window split down gives its band back to the window above and to the partner [2.64ms]
(pass) a window split down in a plain column stacks under it and moves the windows below down [0.33ms]
(pass) new window right opens a full-size column after the whole group, never inside it [0.27ms]
(pass) runs: adjacent columns linked by a spanning window form one group, the rest stay plain [0.09ms]
(pass) spans are clamped to the columns that exist and a stale row is re-placed, never overlapped [0.17ms]
(pass) random sequences of split right, split down, new window right and close never break the grid [101.50ms]
(pass) closing every window of a group returns the view to nothing, with no problem on the way [4.50ms]
(pass) a full-width band under a group moves nothing and extends the group by one band [0.17ms]
(pass) a band inserted between two bands of one column grows the windows beside it and moves the rest [0.09ms]

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.47ms]
(pass) a chain of neighbours is pushed in turn [0.15ms]
(pass) snapping rounds to whole cells [0.04ms]
(pass) reach follows grants through tags and keeps the relay [0.21ms]

src/canvas/sessions/live-inventory.test.ts:
(pass) inventory remembers a remote session and refuses a cross-host attach [0.81ms]

src/canvas/sessions/details-live.test.ts:
(pass) a refused host facts action stops its recurring timer [0.90ms]
(pass) a detected operating system supplies the live popover mark [10.38ms]

src/canvas/sessions/live.test.ts:
(pass) an enrolled host opens by UUID and splits keep that authority [0.68ms]
(pass) unknown and ambiguous labels never open an embedded shell [4.06ms]
(pass) removed hosts disappear from inventory and cannot route a new shell [0.23ms]

src/canvas/sessions/gone-review.test.ts:
(pass) selecting a known gone session keeps its final exited state [0.33ms]
(pass) a known retired status survives repeated selection and generic ended answers [0.14ms]

src/canvas/sessions/open-refusal.test.ts:
(pass) memory refusal retains the reason and current counters [1.33ms]
(pass) legacy refusals still work and malformed counters never reach the message [0.43ms]
(pass) product copy names the host and counters and never renders untrusted server text [0.79ms]
(pass) oversized refusal JSON is ignored before parsing [0.18ms]

src/canvas/model/document.test.ts:
(pass) a document holds references and layout, never content [0.59ms]
(pass) a document survives JSON and rebuilds the same columns [2.29ms]
(pass) a target that no longer exists is dropped, and an emptied column with it [0.20ms]
(pass) parseDocument rejects anything that is not a document of this format [0.38ms]
(pass) remote affinity survives reload and invalid UUIDs cannot become local references [0.16ms]
(pass) a version 1 document from before D212 loads, with its split pair and a full-size window [0.25ms]
(pass) a grouped view saves its spans and bands and loads back to the same grid (D212) [0.25ms]
(pass) a plain view is saved without spans or bands, exactly as before D212 [0.08ms]

src/canvas/addhost/real.test.ts:
(pass) parsing the server's data > a discovery row keeps only known fields and valid ids [1.61ms]
(pass) parsing the server's data > the server key needs its public key and fingerprint [0.08ms]
(pass) parsing the server's data > an install command needs a lifetime [0.05ms]
(pass) a server that lacks an endpoint > serving the web app (200, HTML) for an unknown path is 'not available' [1.48ms]
(pass) a server that lacks an endpoint > 404 discovery is an empty list; 500 discovery is an error to show [0.19ms]
(pass) a server that lacks an endpoint > private sign-in stays local until a target-bound socket start [0.74ms]
(pass) a server that lacks an endpoint > a wrong target consumes the reference without sending private input [0.16ms]
(pass) a server that lacks an endpoint > a local reference cannot change SSH address while keeping the target id [0.18ms]
(pass) a server that lacks an endpoint > closing before open discards queued sign-in even if a late open fires [0.12ms]
(pass) a server that lacks an endpoint > pre-open commands stay bounded and events after close cannot revive a run [0.91ms]
(pass) a server that lacks an endpoint > trust waits for the exact acknowledgement, and ignores another target [0.46ms]

src/canvas/addhost/authority.on-demand.test.ts:
(pass) CA wrapping matches the contract's HKDF domain and separates generations [7.09ms]

src/canvas/addhost/model.test.ts:
(pass) stagesOf > a host with no event is waiting everywhere [0.25ms]
(pass) stagesOf > check before sign-in is detecting how to sign in [3.75ms]
(pass) stagesOf > the sign-in report finishes detect and starts the system check [0.16ms]
(pass) stagesOf > install, facts and connect map to install, enrol and first session [0.12ms]
(pass) stagesOf > an auth failure before sign-in fails detect and says it in plain words, not the server's [0.16ms]
(pass) stagesOf > an unsupported host fails the system check, after sign-in [0.05ms]
(pass) stagesOf > an install failure fails the install stage and keeps the earlier ones done [0.04ms]
(pass) stagesOf > a new attempt starts over and forgets the old sign-in [0.06ms]
(pass) authLabel > names the method and a trusted network provider only [0.11ms]
(pass) guideFor > installation failures never claim that incomplete cleanup succeeded [0.13ms]
(pass) guideFor > each failure kind names its fix [0.09ms]
(pass) guideFor > mesh-policy words say possible, not certain [0.03ms]
(pass) parseTarget > reads user, host and port [0.20ms]
(pass) parseTarget > refuses what cannot name a host [0.04ms]
(pass) parseSshConfig > reads aliases with HostName, User and Port, skipping wildcards and Match [0.85ms]
(pass) parseSshConfig > recognises config text [0.15ms]
(pass) parseSshConfig > a hostname that is an option is dropped [0.04ms]
(pass) plain words > an unknown or missing failure gets the generic sentence, never the server's text [0.07ms]
(pass) plain words > no headline carries an arrow, an id or an API noun [0.13ms]
(pass) only a completed canonical host identity becomes terminal authority [0.08ms]
(pass) parseTarget > accepts user@host, host, user@host:port, IPv4 and bracketed IPv6 with an optional port [0.05ms]
(pass) parseTarget > rejects partial and malformed tokens, so they wait or show the hint [0.04ms]
(pass) matchListed > a name that is exactly one host's id or address names that host [0.54ms]
(pass) matchListed > a name that is also the start of another host's name is named but still prefixed [0.02ms]
(pass) matchListed > a partial name that starts several hosts names none and waits [0.02ms]
(pass) matchListed > a new name that starts no host is neither named nor waiting [0.02ms]
(pass) install diagnostics name the failed step and public host error [0.06ms]
(pass) missing payload tells the operator the architecture and expected server path [0.03ms]
(pass) an already added host says so and offers opening its existing terminal [1.50ms]

src/canvas/addhost/wizard.test.ts:
(pass) a saved-key prompt completing after close never starts an SSH attempt [1.63ms]
(pass) fresh CA requires setup before any SSH attempt and preserves root consent [0.30ms]
(pass) ready CA begins the requested installation mode without another prompt [0.14ms]
(pass) closing during CA confirmation never starts an SSH attempt [0.28ms]
(pass) a typed root login requires explicit consent before any installation [0.12ms]

 147 pass
 0 fail
 10911 expect() calls
Ran 147 tests across 20 files. [689.00ms]
$ bun run build.ts
built chunk-st9cmtfv.js, chunk-nha0rj7v.js, chunk-pymxpd8s.js, chunk-y6z565xe.js, chunk-vb5y9ewj.js, chunk-9yqtg4bm.js, chunk-5gvm30xx.js, chunk-a895a34j.js, chunk-y9z35mse.js, chunk-ry4q4gha.js, chunk-zgc7dqhe.js, chunk-13r8dgba.js, chunk-0g3v75e7.js, main.js, chunk-kdcxvw7m.js, chunk-wn0fy536.js, chunk-7gv2rj8n.js, chunk-b8wpddz4.js, chunk-1ygheb8n.js, chunk-jtk5ts7a.js, chunk-jkfrj4re.js, chunk-6xbv2xrg.js, chunk-33g8nawh.js, chunk-axbkkqp1.js, chunk-zg1ybte1.js, chunk-snndd2q8.js, chunk-7dsvc5jw.js, chunk-xyz5rvjn.js, chunk-6z3x4mch.js, chunk-4hym5et9.js, chunk-hcr19wwy.js, chunk-58dghazm.js, chunk-kqp8f7hm.js, chunk-yp1wavpf.js, chunk-6dtmdhhh.js, chunk-kwmx0ymg.js, chunk-b0dk85k4.js, chunk-fextp724.js, chunk-28rbcdd5.js, chunk-61xwpgvs.js, chunk-ryy15zqq.js, chunk-tvszvkt4.js, chunk-hdbnccvd.js, chunk-181kwkef.js, chunk-gw7a8g3g.js, chunk-pz06rmmw.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b0f0x50n.js, chunk-f2r0hhqc.js, chunk-8hdt2fh0.js, chunk-dfvrk7st.js, chunk-9xd3g65e.js
onDemand chunk-ryy15zqq.js: identity=552 gzip=406 brotli=307 bytes
onDemand chunk-13r8dgba.js: identity=4563 gzip=1607 brotli=1433 bytes
onDemand chunk-tvszvkt4.js: identity=47781 gzip=15015 brotli=13342 bytes
critical chunk-28rbcdd5.js: identity=39 gzip=39 brotli=39 bytes
onDemand chunk-pz06rmmw.js: identity=2316 gzip=1033 brotli=865 bytes
onDemand chunk-yp1wavpf.js: identity=5359 gzip=2581 brotli=2296 bytes
onDemand chunk-zgc7dqhe.js: identity=191 gzip=171 brotli=135 bytes
onDemand chunk-6dtmdhhh.js: identity=4640 gzip=1933 brotli=1707 bytes
critical chunk-8hdt2fh0.js: identity=199 gzip=160 brotli=128 bytes
onDemand chunk-kqp8f7hm.js: identity=11529 gzip=4652 brotli=4251 bytes
onDemand chunk-hcr19wwy.js: identity=1170 gzip=708 brotli=590 bytes
critical chunk-1ygheb8n.js: identity=590 gzip=326 brotli=304 bytes
onDemand chunk-fextp724.js: identity=10496 gzip=4087 brotli=3734 bytes
onDemand chunk-kwmx0ymg.js: identity=7662 gzip=3397 brotli=2962 bytes
deferred chunk-4hym5et9.js: identity=93915 gzip=31914 brotli=28177 bytes
onDemand chunk-gw7a8g3g.js: identity=31920 gzip=12275 brotli=11050 bytes
onDemand chunk-9yqtg4bm.js: identity=2188 gzip=1048 brotli=878 bytes
critical faulty-terminal.worker.js: identity=1086 gzip=558 brotli=486 bytes
critical backdrop.worker.js: identity=243 gzip=211 brotli=158 bytes
onDemand chunk-6z3x4mch.js: identity=1616 gzip=864 brotli=739 bytes
onDemand chunk-xyz5rvjn.js: identity=4575 gzip=2013 brotli=1779 bytes
onDemand chunk-0g3v75e7.js: identity=2108 gzip=1037 brotli=870 bytes
critical chunk-6xbv2xrg.js: identity=1104 gzip=666 brotli=605 bytes
critical chunk-hdbnccvd.js: identity=162 gzip=150 brotli=146 bytes
critical chunk-st9cmtfv.js: identity=21235 gzip=6854 brotli=6128 bytes
onDemand chunk-snndd2q8.js: identity=6198 gzip=2791 brotli=2521 bytes
critical chunk-jtk5ts7a.js: identity=2519 gzip=1008 brotli=878 bytes
critical chunk-a895a34j.js: identity=88 gzip=88 brotli=74 bytes
critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes
critical chunk-kdcxvw7m.js: identity=8377 gzip=3575 brotli=3197 bytes
critical chunk-jkfrj4re.js: identity=386 gzip=237 brotli=196 bytes
critical chunk-b8wpddz4.js: identity=17525 gzip=6115 brotli=5438 bytes
critical chunk-f2r0hhqc.js: identity=128 gzip=109 brotli=111 bytes
critical chunk-dfvrk7st.js: identity=41779 gzip=14276 brotli=12799 bytes
onDemand chunk-b0dk85k4.js: identity=13351 gzip=5013 brotli=4487 bytes
critical chunk-9xd3g65e.js: identity=39 gzip=39 brotli=39 bytes
onDemand chunk-33g8nawh.js: identity=1026 gzip=624 brotli=499 bytes
onDemand chunk-ry4q4gha.js: identity=2420 gzip=1198 brotli=1078 bytes
deferred chunk-y6z565xe.js: identity=42608 gzip=16267 brotli=14309 bytes
onDemand chunk-181kwkef.js: identity=6773 gzip=3175 brotli=2888 bytes
critical chunk-b0f0x50n.js: identity=9810 gzip=4015 brotli=3454 bytes
onDemand chunk-58dghazm.js: identity=540 gzip=353 brotli=314 bytes
critical chunk-wn0fy536.js: identity=5443 gzip=2604 brotli=2379 bytes
critical chunk-7gv2rj8n.js: identity=12516 gzip=5003 brotli=4452 bytes
critical chunk-zg1ybte1.js: identity=703957 gzip=203942 brotli=165278 bytes
critical chunk-5gvm30xx.js: identity=707 gzip=368 brotli=311 bytes
critical chunk-nha0rj7v.js: identity=2943 gzip=1315 brotli=1134 bytes
onDemand chunk-vb5y9ewj.js: identity=3891 gzip=1737 brotli=1521 bytes
critical main.js: identity=109195 gzip=39819 brotli=34577 bytes
critical chunk-61xwpgvs.js: identity=49 gzip=49 brotli=49 bytes
onDemand chunk-pymxpd8s.js: identity=5745 gzip=2167 brotli=1922 bytes
onDemand chunk-7dsvc5jw.js: identity=2824 gzip=1385 brotli=1193 bytes
onDemand chunk-y9z35mse.js: identity=228 gzip=179 brotli=165 bytes
JavaScript transfer, critical: identity=940209 gzip=291616/307200 brotli=242438/256000 bytes
JavaScript transfer, deferred: identity=136523 gzip=48181/51200 brotli=42486/45056 bytes
JavaScript transfer, onDemand: identity=181662 gzip=71449/20480 brotli=63526/18432 bytes
JavaScript transfer, onDemand largest chunk chunk-tvszvkt4.js: gzip=15015/20480 brotli=13342/18432 bytes (class total gzip=71449 brotli=63526, 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

playwright-scoped.log (verbatim summary)

  81 failed
  38 skipped
  423 passed (2.5h)

Cleanup complete: all three job-owned detached checkouts, scratch Cargo target and relative runtime target deleted. Worktree clean; no root result.md.

Finished #163: 8d0fc8ba5764cee17bb559e41a40f6adaa685b69, pushed only dev-backmerge. Merge 90247165 has dev and production parents; atomic compatibility fixes b9f21b82 and f5a9d02c preserve remote metadata and both setup-output readers. Evidence commits 865bfdad and 8d0fc8ba attach review, screenshots and raw ignored logs explicitly. No dev/other branch changes or deployment. Issue remains open. Required native rows pass except acknowledged size ceiling: x86 20,295,024 / max16,404,816; ARM18,062,680 / max13,817,816. Both static without PT_INTERP, --locked. Required tracer compiler/tests/build/budget pass (147 source tests); protocol36/34462 assertions. Real PTY and four production-build captures pass. Browser full gate is red: 423 passed,81 failed,38 skipped. Every failed file rerun alone; persistent failures reproduce on production, other cases pass alone. Predictive screenshot failed on both in the final load window after an earlier parent pass. Matrix/raw results: https://git.kayg.org/kayg/infraternal/src/commit/8d0fc8ba5764cee17bb559e41a40f6adaa685b69/evidence/dev-backmerge/browser-matrix.md Resolution/review: https://git.kayg.org/kayg/infraternal/src/commit/8d0fc8ba5764cee17bb559e41a40f6adaa685b69/docs/verification/dev-backmerge.md Full native, tracer, TS, complete browser and isolated outputs were quoted verbatim in preceding comments; final excerpts follow. verify-fast-setup.log ```text ==> static builds Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `release` profile [optimized] target(s) in 5m 33s /home/kayg/.cache/codex-scratch/dev-backmerge/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: 20295024 bytes (baseline 16142672 + allowance 262144 = max 16404816) binary exceeds the 16404816-byte size budget: 20295024 bytes +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | FAIL (1) | +---------------------------+--------------+ ``` static-aarch64-final.log ```text Running as unit: run-p555639-i50839252.scope; invocation ID: 42241e9c167e434bbdca1cb1c27e4652 Compiling infraternal-plugin-remote v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/plugins/remote) Compiling infraternal-agent v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-agent) Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/dev-backmerge/crates/infraternal) Finished `release` profile [optimized] target(s) in 8m 48s /home/kayg/.cache/codex-scratch/dev-backmerge/target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 18062680 bytes (baseline 13555672 + allowance 262144 = max 13817816) binary exceeds the 13817816-byte size budget: 18062680 bytes ``` static-cli-stubs-final.log ```text server subcommand: exit 2, versioned JSON unavailable result agent subcommand: exit 2, versioned JSON unavailable result ``` tracer.log (verbatim) ```text $ bun x tsc --project tsconfig.json bun test v1.4.2 (744846f84) src/palette-entry.test.ts: (pass) palette rows are always titled > a titled row passes through untouched [0.11ms] (pass) palette rows are always titled > a blank title throws in a strict build and names the row [1.35ms] (pass) palette rows are always titled > a blank title is repaired from the settings section in production [14.67ms] (pass) palette rows are always titled > a blank title with no section falls back to the group [0.05ms] (pass) a settings window always has a title in the scoped palette > section appearance without its host field is still Appearance [0.12ms] (pass) a settings window always has a title in the scoped palette > section windows without its host field is still Window Sizes [0.02ms] (pass) a settings window always has a title in the scoped palette > section hosts without its host field is still Hosts (pass) a settings window always has a title in the scoped palette > section toolbar without its host field is still Toolbar (pass) a settings window always has a title in the scoped palette > section shortcuts without its host field is still Shortcuts (pass) a settings window always has a title in the scoped palette > section devices without its host field is still Devices (pass) a settings window always has a title in the scoped palette > section account without its host field is still Account (pass) a settings window always has a title in the scoped palette > section about without its host field is still About [0.10ms] (pass) a settings window always has a title in the scoped palette > section users without its host field is still Users [0.01ms] (pass) a settings window always has a title in the scoped palette > section grants without its host field is still Access (pass) a settings window always has a title in the scoped palette > section discovery without its host field is still Found hosts (pass) a settings window always has a title in the scoped palette > a window of any other kind never has an empty name [0.06ms] src/perf-detector.test.ts: (pass) FrameDetector > estimates the refresh from the median and snaps it [1.67ms] (pass) FrameDetector > nothing is a drop before the rate is known [0.05ms] (pass) FrameDetector > a drop is over 1.5 refresh intervals, a freeze over 100 ms [0.42ms] (pass) FrameDetector > the refresh only goes up: a slow page is not a slower display [0.10ms] (pass) FrameDetector > the first frame after a pause is not an interval [0.06ms] (pass) FrameDetector > fps, p95 and window read the ring [0.20ms] (pass) FrameDetector > a throttled page (one frame a second) is neither a drop nor a freeze, and neither is its return [0.21ms] (pass) FrameDetector > a lone long stall is still a freeze and is not a throttled run [0.07ms] src/connection-pool.test.ts: (pass) terminals fill the first socket, then open another, and a released slot is reused first [1.60ms] (pass) 54 windows need two sockets, and the pool stops opening sockets at its cap [1.49ms] src/canvas/recency.test.ts: (pass) touch moves an item to the front and never duplicates it [0.60ms] (pass) repeating the front item changes nothing [0.04ms] (pass) the list is capped, so the oldest items fall off [0.04ms] (pass) top skips items that are no longer live, without losing them [0.08ms] (pass) recentRows: five used windows in reverse order of use, from 54 windows [0.18ms] (pass) recentRows: a view with three windows and no use shows them in order [0.03ms] (pass) recentRows: used windows lead, the rest fill up to five in window order [0.06ms] src/canvas/windows/details-facts.test.ts: (pass) host facts become plain-language details rows [0.69ms] (pass) unknown optional host facts stay absent instead of appearing as placeholders [1.12ms] (pass) extended info off: the machine tab shows only the essentials, ungrouped, and there is no More section [0.69ms] (pass) extended info on: every fact sits under System, Resources or Access [0.22ms] (pass) the header follows the machine's own facts, not the platform the host list guessed [0.14ms] (pass) before facts arrive the host's platform names the header [0.05ms] (pass) a reported system with no platform mark still names the header and shows no mark [0.33ms] src/canvas/mesh/protocol.test.ts: (pass) the server's own list becomes nodes, tags and grants, by name [0.80ms] (pass) without `access` (today's server) the person may view and may not edit [1.75ms] (pass) fields the server does not send are absent, never invented [0.15ms] (pass) anything that is not a list is refused, whole [9.56ms] (pass) a node's own tag list and the tag table agree even when a server sends only one [0.17ms] (pass) the subscription's events: a pushed list, a revision that invalidates, and the end of the subscription [3.19ms] (pass) answers carry the new revision, and a create the new arrow's id [0.13ms] (pass) endpoints go out as the server writes them: a node by id, a tag by name [0.11ms] src/canvas/mesh/layout.test.ts: (pass) a small mesh keeps the approved arrangement: tags down the left, hosts two to a row [1.57ms] (pass) the layout is deterministic and does not depend on input order [5.10ms] (pass) no two cards overlap, and every card lies inside the graph [15.01ms] (pass) the sheet is wider than tall, roughly 16:10 [1.36ms] (pass) a pinned node stays where it was put and the others do not move [5.51ms] (pass) a pin beyond the sheet grows the graph [0.36ms] (pass) a host's other tags do not move it; a tag nobody carries still has its node [0.19ms] (pass) 1,000 nodes lay out in a few milliseconds [42.77ms] src/canvas/layout/stops.test.ts: (pass) a view that fits the viewport has one stop, centred [0.52ms] (pass) a wide view has one stop per column and the last stop ends at the right edge [0.29ms] (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.20ms] (pass) a big graph opens fitted whole, in one stop, and its canvas is free [0.36ms] (pass) a small graph keeps one stop per node column [0.16ms] (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.11ms] src/canvas/layout/grid.test.ts: (pass) split right in a stacked column makes a group: the window's column halves, its neighbours span both halves [1.95ms] (pass) closing the new half gives the layout back exactly, in the model [1.96ms] (pass) closing the window it came from makes the new half take its band, and the layout is one column again [0.58ms] (pass) split right of a spanning window halves its span inside the existing columns, with the footprint unchanged [0.39ms] (pass) split down in a group divides only the window's band: the partner window grows to keep its height [0.73ms] (pass) closing the window split down gives its band back to the window above and to the partner [2.64ms] (pass) a window split down in a plain column stacks under it and moves the windows below down [0.33ms] (pass) new window right opens a full-size column after the whole group, never inside it [0.27ms] (pass) runs: adjacent columns linked by a spanning window form one group, the rest stay plain [0.09ms] (pass) spans are clamped to the columns that exist and a stale row is re-placed, never overlapped [0.17ms] (pass) random sequences of split right, split down, new window right and close never break the grid [101.50ms] (pass) closing every window of a group returns the view to nothing, with no problem on the way [4.50ms] (pass) a full-width band under a group moves nothing and extends the group by one band [0.17ms] (pass) a band inserted between two bands of one column grows the windows beside it and moves the rest [0.09ms] 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.47ms] (pass) a chain of neighbours is pushed in turn [0.15ms] (pass) snapping rounds to whole cells [0.04ms] (pass) reach follows grants through tags and keeps the relay [0.21ms] src/canvas/sessions/live-inventory.test.ts: (pass) inventory remembers a remote session and refuses a cross-host attach [0.81ms] src/canvas/sessions/details-live.test.ts: (pass) a refused host facts action stops its recurring timer [0.90ms] (pass) a detected operating system supplies the live popover mark [10.38ms] src/canvas/sessions/live.test.ts: (pass) an enrolled host opens by UUID and splits keep that authority [0.68ms] (pass) unknown and ambiguous labels never open an embedded shell [4.06ms] (pass) removed hosts disappear from inventory and cannot route a new shell [0.23ms] src/canvas/sessions/gone-review.test.ts: (pass) selecting a known gone session keeps its final exited state [0.33ms] (pass) a known retired status survives repeated selection and generic ended answers [0.14ms] src/canvas/sessions/open-refusal.test.ts: (pass) memory refusal retains the reason and current counters [1.33ms] (pass) legacy refusals still work and malformed counters never reach the message [0.43ms] (pass) product copy names the host and counters and never renders untrusted server text [0.79ms] (pass) oversized refusal JSON is ignored before parsing [0.18ms] src/canvas/model/document.test.ts: (pass) a document holds references and layout, never content [0.59ms] (pass) a document survives JSON and rebuilds the same columns [2.29ms] (pass) a target that no longer exists is dropped, and an emptied column with it [0.20ms] (pass) parseDocument rejects anything that is not a document of this format [0.38ms] (pass) remote affinity survives reload and invalid UUIDs cannot become local references [0.16ms] (pass) a version 1 document from before D212 loads, with its split pair and a full-size window [0.25ms] (pass) a grouped view saves its spans and bands and loads back to the same grid (D212) [0.25ms] (pass) a plain view is saved without spans or bands, exactly as before D212 [0.08ms] src/canvas/addhost/real.test.ts: (pass) parsing the server's data > a discovery row keeps only known fields and valid ids [1.61ms] (pass) parsing the server's data > the server key needs its public key and fingerprint [0.08ms] (pass) parsing the server's data > an install command needs a lifetime [0.05ms] (pass) a server that lacks an endpoint > serving the web app (200, HTML) for an unknown path is 'not available' [1.48ms] (pass) a server that lacks an endpoint > 404 discovery is an empty list; 500 discovery is an error to show [0.19ms] (pass) a server that lacks an endpoint > private sign-in stays local until a target-bound socket start [0.74ms] (pass) a server that lacks an endpoint > a wrong target consumes the reference without sending private input [0.16ms] (pass) a server that lacks an endpoint > a local reference cannot change SSH address while keeping the target id [0.18ms] (pass) a server that lacks an endpoint > closing before open discards queued sign-in even if a late open fires [0.12ms] (pass) a server that lacks an endpoint > pre-open commands stay bounded and events after close cannot revive a run [0.91ms] (pass) a server that lacks an endpoint > trust waits for the exact acknowledgement, and ignores another target [0.46ms] src/canvas/addhost/authority.on-demand.test.ts: (pass) CA wrapping matches the contract's HKDF domain and separates generations [7.09ms] src/canvas/addhost/model.test.ts: (pass) stagesOf > a host with no event is waiting everywhere [0.25ms] (pass) stagesOf > check before sign-in is detecting how to sign in [3.75ms] (pass) stagesOf > the sign-in report finishes detect and starts the system check [0.16ms] (pass) stagesOf > install, facts and connect map to install, enrol and first session [0.12ms] (pass) stagesOf > an auth failure before sign-in fails detect and says it in plain words, not the server's [0.16ms] (pass) stagesOf > an unsupported host fails the system check, after sign-in [0.05ms] (pass) stagesOf > an install failure fails the install stage and keeps the earlier ones done [0.04ms] (pass) stagesOf > a new attempt starts over and forgets the old sign-in [0.06ms] (pass) authLabel > names the method and a trusted network provider only [0.11ms] (pass) guideFor > installation failures never claim that incomplete cleanup succeeded [0.13ms] (pass) guideFor > each failure kind names its fix [0.09ms] (pass) guideFor > mesh-policy words say possible, not certain [0.03ms] (pass) parseTarget > reads user, host and port [0.20ms] (pass) parseTarget > refuses what cannot name a host [0.04ms] (pass) parseSshConfig > reads aliases with HostName, User and Port, skipping wildcards and Match [0.85ms] (pass) parseSshConfig > recognises config text [0.15ms] (pass) parseSshConfig > a hostname that is an option is dropped [0.04ms] (pass) plain words > an unknown or missing failure gets the generic sentence, never the server's text [0.07ms] (pass) plain words > no headline carries an arrow, an id or an API noun [0.13ms] (pass) only a completed canonical host identity becomes terminal authority [0.08ms] (pass) parseTarget > accepts user@host, host, user@host:port, IPv4 and bracketed IPv6 with an optional port [0.05ms] (pass) parseTarget > rejects partial and malformed tokens, so they wait or show the hint [0.04ms] (pass) matchListed > a name that is exactly one host's id or address names that host [0.54ms] (pass) matchListed > a name that is also the start of another host's name is named but still prefixed [0.02ms] (pass) matchListed > a partial name that starts several hosts names none and waits [0.02ms] (pass) matchListed > a new name that starts no host is neither named nor waiting [0.02ms] (pass) install diagnostics name the failed step and public host error [0.06ms] (pass) missing payload tells the operator the architecture and expected server path [0.03ms] (pass) an already added host says so and offers opening its existing terminal [1.50ms] src/canvas/addhost/wizard.test.ts: (pass) a saved-key prompt completing after close never starts an SSH attempt [1.63ms] (pass) fresh CA requires setup before any SSH attempt and preserves root consent [0.30ms] (pass) ready CA begins the requested installation mode without another prompt [0.14ms] (pass) closing during CA confirmation never starts an SSH attempt [0.28ms] (pass) a typed root login requires explicit consent before any installation [0.12ms] 147 pass 0 fail 10911 expect() calls Ran 147 tests across 20 files. [689.00ms] $ bun run build.ts built chunk-st9cmtfv.js, chunk-nha0rj7v.js, chunk-pymxpd8s.js, chunk-y6z565xe.js, chunk-vb5y9ewj.js, chunk-9yqtg4bm.js, chunk-5gvm30xx.js, chunk-a895a34j.js, chunk-y9z35mse.js, chunk-ry4q4gha.js, chunk-zgc7dqhe.js, chunk-13r8dgba.js, chunk-0g3v75e7.js, main.js, chunk-kdcxvw7m.js, chunk-wn0fy536.js, chunk-7gv2rj8n.js, chunk-b8wpddz4.js, chunk-1ygheb8n.js, chunk-jtk5ts7a.js, chunk-jkfrj4re.js, chunk-6xbv2xrg.js, chunk-33g8nawh.js, chunk-axbkkqp1.js, chunk-zg1ybte1.js, chunk-snndd2q8.js, chunk-7dsvc5jw.js, chunk-xyz5rvjn.js, chunk-6z3x4mch.js, chunk-4hym5et9.js, chunk-hcr19wwy.js, chunk-58dghazm.js, chunk-kqp8f7hm.js, chunk-yp1wavpf.js, chunk-6dtmdhhh.js, chunk-kwmx0ymg.js, chunk-b0dk85k4.js, chunk-fextp724.js, chunk-28rbcdd5.js, chunk-61xwpgvs.js, chunk-ryy15zqq.js, chunk-tvszvkt4.js, chunk-hdbnccvd.js, chunk-181kwkef.js, chunk-gw7a8g3g.js, chunk-pz06rmmw.js, backdrop.worker.js, faulty-terminal.worker.js, chunk-b0f0x50n.js, chunk-f2r0hhqc.js, chunk-8hdt2fh0.js, chunk-dfvrk7st.js, chunk-9xd3g65e.js onDemand chunk-ryy15zqq.js: identity=552 gzip=406 brotli=307 bytes onDemand chunk-13r8dgba.js: identity=4563 gzip=1607 brotli=1433 bytes onDemand chunk-tvszvkt4.js: identity=47781 gzip=15015 brotli=13342 bytes critical chunk-28rbcdd5.js: identity=39 gzip=39 brotli=39 bytes onDemand chunk-pz06rmmw.js: identity=2316 gzip=1033 brotli=865 bytes onDemand chunk-yp1wavpf.js: identity=5359 gzip=2581 brotli=2296 bytes onDemand chunk-zgc7dqhe.js: identity=191 gzip=171 brotli=135 bytes onDemand chunk-6dtmdhhh.js: identity=4640 gzip=1933 brotli=1707 bytes critical chunk-8hdt2fh0.js: identity=199 gzip=160 brotli=128 bytes onDemand chunk-kqp8f7hm.js: identity=11529 gzip=4652 brotli=4251 bytes onDemand chunk-hcr19wwy.js: identity=1170 gzip=708 brotli=590 bytes critical chunk-1ygheb8n.js: identity=590 gzip=326 brotli=304 bytes onDemand chunk-fextp724.js: identity=10496 gzip=4087 brotli=3734 bytes onDemand chunk-kwmx0ymg.js: identity=7662 gzip=3397 brotli=2962 bytes deferred chunk-4hym5et9.js: identity=93915 gzip=31914 brotli=28177 bytes onDemand chunk-gw7a8g3g.js: identity=31920 gzip=12275 brotli=11050 bytes onDemand chunk-9yqtg4bm.js: identity=2188 gzip=1048 brotli=878 bytes critical faulty-terminal.worker.js: identity=1086 gzip=558 brotli=486 bytes critical backdrop.worker.js: identity=243 gzip=211 brotli=158 bytes onDemand chunk-6z3x4mch.js: identity=1616 gzip=864 brotli=739 bytes onDemand chunk-xyz5rvjn.js: identity=4575 gzip=2013 brotli=1779 bytes onDemand chunk-0g3v75e7.js: identity=2108 gzip=1037 brotli=870 bytes critical chunk-6xbv2xrg.js: identity=1104 gzip=666 brotli=605 bytes critical chunk-hdbnccvd.js: identity=162 gzip=150 brotli=146 bytes critical chunk-st9cmtfv.js: identity=21235 gzip=6854 brotli=6128 bytes onDemand chunk-snndd2q8.js: identity=6198 gzip=2791 brotli=2521 bytes critical chunk-jtk5ts7a.js: identity=2519 gzip=1008 brotli=878 bytes critical chunk-a895a34j.js: identity=88 gzip=88 brotli=74 bytes critical chunk-axbkkqp1.js: identity=90 gzip=90 brotli=78 bytes critical chunk-kdcxvw7m.js: identity=8377 gzip=3575 brotli=3197 bytes critical chunk-jkfrj4re.js: identity=386 gzip=237 brotli=196 bytes critical chunk-b8wpddz4.js: identity=17525 gzip=6115 brotli=5438 bytes critical chunk-f2r0hhqc.js: identity=128 gzip=109 brotli=111 bytes critical chunk-dfvrk7st.js: identity=41779 gzip=14276 brotli=12799 bytes onDemand chunk-b0dk85k4.js: identity=13351 gzip=5013 brotli=4487 bytes critical chunk-9xd3g65e.js: identity=39 gzip=39 brotli=39 bytes onDemand chunk-33g8nawh.js: identity=1026 gzip=624 brotli=499 bytes onDemand chunk-ry4q4gha.js: identity=2420 gzip=1198 brotli=1078 bytes deferred chunk-y6z565xe.js: identity=42608 gzip=16267 brotli=14309 bytes onDemand chunk-181kwkef.js: identity=6773 gzip=3175 brotli=2888 bytes critical chunk-b0f0x50n.js: identity=9810 gzip=4015 brotli=3454 bytes onDemand chunk-58dghazm.js: identity=540 gzip=353 brotli=314 bytes critical chunk-wn0fy536.js: identity=5443 gzip=2604 brotli=2379 bytes critical chunk-7gv2rj8n.js: identity=12516 gzip=5003 brotli=4452 bytes critical chunk-zg1ybte1.js: identity=703957 gzip=203942 brotli=165278 bytes critical chunk-5gvm30xx.js: identity=707 gzip=368 brotli=311 bytes critical chunk-nha0rj7v.js: identity=2943 gzip=1315 brotli=1134 bytes onDemand chunk-vb5y9ewj.js: identity=3891 gzip=1737 brotli=1521 bytes critical main.js: identity=109195 gzip=39819 brotli=34577 bytes critical chunk-61xwpgvs.js: identity=49 gzip=49 brotli=49 bytes onDemand chunk-pymxpd8s.js: identity=5745 gzip=2167 brotli=1922 bytes onDemand chunk-7dsvc5jw.js: identity=2824 gzip=1385 brotli=1193 bytes onDemand chunk-y9z35mse.js: identity=228 gzip=179 brotli=165 bytes JavaScript transfer, critical: identity=940209 gzip=291616/307200 brotli=242438/256000 bytes JavaScript transfer, deferred: identity=136523 gzip=48181/51200 brotli=42486/45056 bytes JavaScript transfer, onDemand: identity=181662 gzip=71449/20480 brotli=63526/18432 bytes JavaScript transfer, onDemand largest chunk chunk-tvszvkt4.js: gzip=15015/20480 brotli=13342/18432 bytes (class total gzip=71449 brotli=63526, 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 ``` playwright-scoped.log (verbatim summary) ```text 81 failed 38 skipped 423 passed (2.5h) ``` Cleanup complete: all three job-owned detached checkouts, scratch Cargo target and relative runtime target deleted. Worktree clean; no root result.md.
Author
Owner

Orchestrator: merged dev-backmerge (8d0fc8ba) and the current production line (release-prod-2 93b00f5a, UI fixes) into dev → 50a89572. Quick checks on the merged dev: bun run check pass, bun test src 150 pass / 0 fail, production build + transfer budget exit 0, cargo check --workspace pass. Full gate as recorded by the job on 8d0fc8ba (browser: 423 passed / 81 failed / 38 skipped; persistent failures reproduce on the production parent, the rest pass alone).

Orchestrator: merged dev-backmerge (8d0fc8ba) and the current production line (release-prod-2 93b00f5a, UI fixes) into dev → 50a89572. Quick checks on the merged dev: bun run check pass, bun test src 150 pass / 0 fail, production build + transfer budget exit 0, cargo check --workspace pass. Full gate as recorded by the job on 8d0fc8ba (browser: 423 passed / 81 failed / 38 skipped; persistent failures reproduce on the production parent, the rest pass alone).
Author
Owner

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Back-merge completed: dev-backmerge 8d0fc8ba merged into dev as 50a89572 (ancestor of origin/dev), checks recorded. Reopen if anything is still missing.

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Back-merge completed: dev-backmerge 8d0fc8ba merged into dev as 50a89572 (ancestor of origin/dev), checks recorded. Reopen if anything is still missing.
kayg closed this issue 2026-10-28 17:52:56 +00:00
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#163
No description provided.