S1 auth: independent audit of discoverable sign-in and setup token #29

Closed
opened 2026-10-06 15:42:31 +00:00 by kayg · 86 comments
Owner

Part of #19 and #21. Independent audit of the discoverable sign-in and setup-token work (server 6fa27a3..7948ff0, client 1b4c907..639ac27).

Job: review-auth-ux (Codex GPT 6.1 Sol Medium). Findings accumulate in /tmp/review-auth-ux-findings.md and the verdict is posted on #19.

The audit also answers A3 / DECISIONS 108: does a server-wide constant PRF input (one passkey prompt) lose any protection compared with the per-user v2 input? If it does not, a follow-up implements the single prompt.

Part of #19 and #21. Independent audit of the discoverable sign-in and setup-token work (server 6fa27a3..7948ff0, client 1b4c907..639ac27). **Job:** review-auth-ux (Codex GPT 6.1 Sol Medium). Findings accumulate in /tmp/review-auth-ux-findings.md and the verdict is posted on #19. The audit also answers **A3 / DECISIONS 108**: does a server-wide constant PRF input (one passkey prompt) lose any protection compared with the per-user v2 input? If it does not, a follow-up implements the single prompt.
Author
Owner

Audit finished (review-auth-ux): rework. The findings file is copied to the job's state directory (review-auth-ux/findings.md); the full posts are on #19 and #21.

  1. P1: a failed PRF unwrap followed by a logout answered 429 leaves the session valid (200), so a reload opens the terminal.
  2. P2: an unauthenticated identified login with a known UUID discloses the credential list and reveals whether the account exists.
  3. P2: a ceremony started in browser A can be finished in browser B, which then gets the session.
    Each finding has a failing test.

Gates are green. Measured: challenge p99 3 µs, finish p99 622 µs, RSS 12.8 → 14.1 MB at 1,024 pending ceremonies (the 1,025th is rejected).

Audit finished (review-auth-ux): **rework**. The findings file is copied to the job's state directory (`review-auth-ux/findings.md`); the full posts are on #19 and #21. 1. **P1:** a failed PRF unwrap followed by a logout answered 429 leaves the session valid (200), so a reload opens the terminal. 2. **P2:** an unauthenticated identified login with a known UUID discloses the credential list and reveals whether the account exists. 3. **P2:** a ceremony started in browser A can be finished in browser B, which then gets the session. Each finding has a failing test. Gates are green. Measured: challenge p99 3 µs, finish p99 622 µs, RSS 12.8 → 14.1 MB at 1,024 pending ceremonies (the 1,025th is rejected).
Author
Owner

Starting auth/server fix round: t-server base 6e5d9563f3; t-web base 7a5e5db. Read contracts, review findings and issue/parent history. Reproduce before fixing, separate commits per finding; no push or deploy. DECISIONS.md ends at 86 and docs/PROCESS.md is absent; following owner D108 approval and supplied process requirements from the issue/task.

Starting auth/server fix round: t-server base 6e5d9563f349f7e399d0b4e4618a20a2cfae3333; t-web base 7a5e5db. Read contracts, review findings and issue/parent history. Reproduce before fixing, separate commits per finding; no push or deploy. DECISIONS.md ends at 86 and docs/PROCESS.md is absent; following owner D108 approval and supplied process requirements from the issue/task.
Author
Owner

Reproduced P2 at 6e5d956: audit_no_public_credential_listing fails with known UUID 200 instead of 401. Fix restricts identified login to matching authenticated owner; discoverable response remains empty allowCredentials. Reproduced P1 in scripts/browser-auth/check-unlock.mjs against production t-web UI and real Rust SQLite router: corrupt wrap + injected logout 429 leaves /auth/session 200. Contract proposal: login-finish issues a 5-minute restricted unlock cookie; unlock-session and wraps are its only reads, unlock-finish activates after local unwrap, session/WS/actions deny it until then. Abandoned/expired unlocks never acquire authority; server deletes expired pending rows on auth path. Logout bypasses both admission layers with exact Origin still required. No envelope/AAD changes.

Reproduced P2 at 6e5d956: audit_no_public_credential_listing fails with known UUID 200 instead of 401. Fix restricts identified login to matching authenticated owner; discoverable response remains empty allowCredentials. Reproduced P1 in scripts/browser-auth/check-unlock.mjs against production t-web UI and real Rust SQLite router: corrupt wrap + injected logout 429 leaves /auth/session 200. Contract proposal: login-finish issues a 5-minute restricted unlock cookie; unlock-session and wraps are its only reads, unlock-finish activates after local unwrap, session/WS/actions deny it until then. Abandoned/expired unlocks never acquire authority; server deletes expired pending rows on auth path. Logout bypasses both admission layers with exact Origin still required. No envelope/AAD changes.
Author
Owner

Ceremony binding proposal: HTTP starts set a random Secure/HttpOnly/SameSite=Strict __Host-infraternal-ceremony cookie, retain only its hash in pending state, and require it at finish. Cover registration, discoverable/identified login, additional passkey and recovery replacement starts. Reuse the starting browser cookie to permit parallel ceremonies; reject missing/different binding before proof validation. Library-only tests remain unbound because their caller is the trusted adapter.

Ceremony binding proposal: HTTP starts set a random Secure/HttpOnly/SameSite=Strict __Host-infraternal-ceremony cookie, retain only its hash in pending state, and require it at finish. Cover registration, discoverable/identified login, additional passkey and recovery replacement starts. Reuse the starting browser cookie to permit parallel ceremonies; reject missing/different binding before proof validation. Library-only tests remain unbound because their caller is the trusted adapter.
Author
Owner

Completed credential disclosure fix at t-server commit a6 (exact SHA in next step): unauthenticated known/unknown UUIDs now both 401 with identical JSON; empty-ID discovery still empty allowCredentials. Updated prior admission regression to use discoverable login. Full fast: fmt/clippy/test/cargo-deny/static builds PASS; protocol 7 pass, 0 fail, 34390 assertions. Static sizes x86 14685888, aarch64 12289152 bytes.

Completed credential disclosure fix at t-server commit a6 (exact SHA in next step): unauthenticated known/unknown UUIDs now both 401 with identical JSON; empty-ID discovery still empty allowCredentials. Updated prior admission regression to use discoverable login. Full fast: fmt/clippy/test/cargo-deny/static builds PASS; protocol 7 pass, 0 fail, 34390 assertions. Static sizes x86 14685888, aarch64 12289152 bytes.
Author
Owner

Correction: exact completed credential-disclosure commit is 50be353. The placeholder in the preceding comment was a reporting error. Next logical step is migration 0007 adding an unlocked flag, default 1 for existing sessions; pending logins explicitly use 0. Browser red evidence remains failed unwrap + 429 -> live session.

Correction: exact completed credential-disclosure commit is 50be353. The placeholder in the preceding comment was a reporting error. Next logical step is migration 0007 adding an unlocked flag, default 1 for existing sessions; pending logins explicitly use 0. Browser red evidence remains failed unwrap + 429 -> live session.
Author
Owner

Completed schema step 9425282 (t-server): migration 0007 preserves existing sessions and adds explicit pending-unlock state. Full fast gate all five Rust rows PASS; protocol 7 pass/0 fail/34390 assertions. Client pending-unlock integration currently passes TypeScript/build and onboarding 4/4; production failed-unwrap probe is next once server module tests pass.

Completed schema step 9425282 (t-server): migration 0007 preserves existing sessions and adds explicit pending-unlock state. Full fast gate all five Rust rows PASS; protocol 7 pass/0 fail/34390 assertions. Client pending-unlock integration currently passes TypeScript/build and onboarding 4/4; production failed-unwrap probe is next once server module tests pass.
Author
Owner

Client step committed 898 (exact SHA follows tool commit output on subsequent evidence): pending unlock uses unlock-session then unlock-finish only after native AES-GCM success; failed revocation is surfaced. Existing onboarding remains 4/4, fast all Rust rows + 7 protocol tests pass. Paired real Rust/production-browser corruption+logout429 test now PASS: session 401 and reload stays at sign-in. Native browser baseline had invalid legacy name browser owner after account-label validation; updated fixture to valid username plus display name.

Client step committed 898 (exact SHA follows tool commit output on subsequent evidence): pending unlock uses unlock-session then unlock-finish only after native AES-GCM success; failed revocation is surfaced. Existing onboarding remains 4/4, fast all Rust rows + 7 protocol tests pass. Paired real Rust/production-browser corruption+logout429 test now PASS: session 401 and reload stays at sign-in. Native browser baseline had invalid legacy name browser owner after account-label validation; updated fixture to valid username plus display name.
Author
Owner

Exact client step SHA: 8e66b9c3ee (supersedes abbreviated placeholder in prior comment). Native browser gate 4 isolated scenarios now passes. Pending-unlock expiration regression is running against real SQLite.

Exact client step SHA: 8e66b9c3ee48061ffa0c5b48dfcf0beb6c963e68 (supersedes abbreviated placeholder in prior comment). Native browser gate 4 isolated scenarios now passes. Pending-unlock expiration regression is running against real SQLite.
Author
Owner

Completed pending-unlock server module at b87e368. Paired production Chromium regression: corrupted AES-GCM nonce + logout429 -> /auth/session 401, reload sign-in. Pending expiry test denies session/fresh tap, cannot slide expiry via wraps, deletes row at deadline; authenticated logout still succeeds after 120 public requests. Native browser 4/4. Full fast all five Rust rows PASS; protocol 7 pass/0 fail/34390 assertions. Static x86 14692672 bytes. Client step 8e66b9c.

Completed pending-unlock server module at b87e368. Paired production Chromium regression: corrupted AES-GCM nonce + logout429 -> /auth/session 401, reload sign-in. Pending expiry test denies session/fresh tap, cannot slide expiry via wraps, deletes row at deadline; authenticated logout still succeeds after 120 public requests. Native browser 4/4. Full fast all five Rust rows PASS; protocol 7 pass/0 fail/34390 assertions. Static x86 14692672 bytes. Client step 8e66b9c.
Author
Owner

Browser-binding red reproduction: audit_ceremony_browser_binding returned 200 with no binding cookie. Added binding module for all HTTP ceremony starts/finishes, hashed random HttpOnly/Secure/SameSite=Strict cookie; foreign clients get 401 before consuming state. Current module gate: clippy passes, 30 auth/runtime tests pass (1 scale test ignored). Same-browser completion and non-draining foreign attempts are now checked; real browser pairing rerun follows.

Browser-binding red reproduction: audit_ceremony_browser_binding returned 200 with no binding cookie. Added binding module for all HTTP ceremony starts/finishes, hashed random HttpOnly/Secure/SameSite=Strict cookie; foreign clients get 401 before consuming state. Current module gate: clippy passes, 30 auth/runtime tests pass (1 scale test ignored). Same-browser completion and non-draining foreign attempts are now checked; real browser pairing rerun follows.
Author
Owner

Completed browser binding at 7c0dfc6. Foreign cookie-free finish now 401; original browser can still finish the same proof, 200. Cookie flags Secure/HttpOnly/SameSite=Strict/Path=/ and 300s checked. Slice gate: fmt/clippy pass, 30 real-verifier/SQLite tests pass (scale ignored), real production browser normal and failed-unwrap flows pass. Full final cross-lane gates will follow all fixes.

Completed browser binding at 7c0dfc6. Foreign cookie-free finish now 401; original browser can still finish the same proof, 200. Cookie flags Secure/HttpOnly/SameSite=Strict/Path=/ and 300s checked. Slice gate: fmt/clippy pass, 30 real-verifier/SQLite tests pass (scale ignored), real production browser normal and failed-unwrap flows pass. Full final cross-lane gates will follow all fixes.
Author
Owner

Final native auth verification: 4 isolated Chromium 149.0.7827.55 scenarios pass (resident UV/PRF; unsupported PRF; nonresident; missing UV). Production tracer + real Rust router/SQLite/WebCrypto passes normal unlock and corrupted envelope + injected logout 429; the latter leaves ordinary session denied and reload signed out. Browser binding and public known/unknown UUID privacy regressions pass. Full fast gates pass in both trees. No Safari/physical-iPhone claim; production screenshots are retained under t-web/apps/tracer/test-results. Final heads/evidence documentation pending.

Final native auth verification: 4 isolated Chromium 149.0.7827.55 scenarios pass (resident UV/PRF; unsupported PRF; nonresident; missing UV). Production tracer + real Rust router/SQLite/WebCrypto passes normal unlock and corrupted envelope + injected logout 429; the latter leaves ordinary session denied and reload signed out. Browser binding and public known/unknown UUID privacy regressions pass. Full fast gates pass in both trees. No Safari/physical-iPhone claim; production screenshots are retained under t-web/apps/tracer/test-results. Final heads/evidence documentation pending.
Author
Owner

Release measurement after this job stopped building; 8 i9-9900K x86_64 KVM vCPUs. SQLite memory, local server paths only; no disk/network/phone claim. Auth includes browser binding and restricted unlock transaction. Discovery remains below 1ms and signed finish below 10ms; writer lookup below 1ms at 16×32=512 retained writers. Verbatim output:

    Finished `release` profile [optimized] target(s) in 0.18s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=2.12 3.36 2.83 1/656 2196823
challenge mode=identified pending=0..200 n=200 p50_us=81 p99_us=190 rss_before_kib=13028 rss_after_kib=13276
challenge mode=identified pending=824..1024 n=200 p50_us=96 p99_us=221 rss_before_kib=14040 rss_after_kib=14484
challenge mode=discoverable pending=0..200 n=200 p50_us=4 p99_us=19 rss_before_kib=14484 rss_after_kib=14484
challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=22 rss_before_kib=14484 rss_after_kib=14484
pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations)
signed discoverable finish pending=1024 n=200 p50_us=434 p99_us=800 (browser binding + pending unlock transaction + SQLite memory + real ES256 verifier)
test auth::tests::discoverable_latency_at_pending_capacity ... ok

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

Release measurement after this job stopped building; 8 i9-9900K x86_64 KVM vCPUs. SQLite memory, local server paths only; no disk/network/phone claim. Auth includes browser binding and restricted unlock transaction. Discovery remains below 1ms and signed finish below 10ms; writer lookup below 1ms at 16×32=512 retained writers. Verbatim output: ```text Finished `release` profile [optimized] target(s) in 0.18s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=2.12 3.36 2.83 1/656 2196823 challenge mode=identified pending=0..200 n=200 p50_us=81 p99_us=190 rss_before_kib=13028 rss_after_kib=13276 challenge mode=identified pending=824..1024 n=200 p50_us=96 p99_us=221 rss_before_kib=14040 rss_after_kib=14484 challenge mode=discoverable pending=0..200 n=200 p50_us=4 p99_us=19 rss_before_kib=14484 rss_after_kib=14484 challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=22 rss_before_kib=14484 rss_after_kib=14484 pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations) signed discoverable finish pending=1024 n=200 p50_us=434 p99_us=800 (browser binding + pending unlock transaction + SQLite memory + real ES256 verifier) test auth::tests::discoverable_latency_at_pending_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 44 filtered out; finished in 0.27s ```
Author
Owner

Clean production-build browser rerun after this job stopped building: 4/4 pass in 46.0s. 500-key probe p99=16.40ms (<20ms); time to resume=77.00ms (<300ms). Native v3/v1/v2 prompt counts 1/2/2 and corrupted unwrap/logout-429 denial also pass. Production screenshots: t-web/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png; terminal-first-run-passkey-29742-esume-and-the-latency-probe/signin-dark.png and tracer-terminal.png. Screenshots are supplied for independent review, not self-approved. Evidence/self-review document server commit f1b996c; full fast finish run pending. #28 remains blocked on production host-daemon/PTY deduplication and the longer-drop writer contract; #29/#30 implementation and native evidence pass.

Clean production-build browser rerun after this job stopped building: 4/4 pass in 46.0s. 500-key probe p99=16.40ms (<20ms); time to resume=77.00ms (<300ms). Native v3/v1/v2 prompt counts 1/2/2 and corrupted unwrap/logout-429 denial also pass. Production screenshots: t-web/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png; terminal-first-run-passkey-29742-esume-and-the-latency-probe/signin-dark.png and tracer-terminal.png. Screenshots are supplied for independent review, not self-approved. Evidence/self-review document server commit f1b996c; full fast finish run pending. #28 remains blocked on production host-daemon/PTY deduplication and the longer-drop writer contract; #29/#30 implementation and native evidence pass.
Author
Owner

Implementation and requested native auth evidence complete for this issue; #28 integration blockers remain recorded separately.

Both lanes final fast exit 0; server head f1b996c11c, client head faa31544c6. Native auth 4/4; production paired v3/v1/v2 prompt counts 1/2/2; corrupt unwrap + logout 429 denies session and reload stays signed out. Onboarding/terminal Playwright 4/4; 500-key p99 16.40ms, resume 77ms. Auth 1024-pending p99 challenge 22us/finish 800us, Login inline 136×1024=139264 bytes excluding heap/hash tables; full-user writer lookup (512) p99 504us. Evidence/self-review: docs/verification/fix-round.md. Complete unedited gate output is posted on #28 in ordered parts for each lane. Nothing pushed/deployed; issues remain open.

Both gates' Rust summary, verbatim:

| fmt                       | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | PASS         |

Both gates' protocol summary, verbatim:

 7 pass
 0 fail
 34390 expect() calls

Server tests, verbatim:

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

All three ignored release measurement tests were run separately and passed. Final live-socket release rerun (16 simultaneous × 200 = 3200) p50 1123us/p99 2190us, load 1.92/2.42/2.56; local WebSocket control + SQLite only, no PTY claim.

Implementation and requested native auth evidence complete for this issue; #28 integration blockers remain recorded separately. Both lanes final fast exit 0; server head f1b996c11cf4b25dcb08ba2e7f68ab671b88dbb2, client head faa31544c6a26f2aec743e526fb78c1499eaee28. Native auth 4/4; production paired v3/v1/v2 prompt counts 1/2/2; corrupt unwrap + logout 429 denies session and reload stays signed out. Onboarding/terminal Playwright 4/4; 500-key p99 16.40ms, resume 77ms. Auth 1024-pending p99 challenge 22us/finish 800us, Login inline 136×1024=139264 bytes excluding heap/hash tables; full-user writer lookup (512) p99 504us. Evidence/self-review: docs/verification/fix-round.md. Complete unedited gate output is posted on #28 in ordered parts for each lane. Nothing pushed/deployed; issues remain open. Both gates' Rust summary, verbatim: ```text | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | ``` Both gates' protocol summary, verbatim: ```text 7 pass 0 fail 34390 expect() calls ``` Server tests, verbatim: ```text test result: ok. 42 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 31.76s ``` All three ignored release measurement tests were run separately and passed. Final live-socket release rerun (16 simultaneous × 200 = 3200) p50 1123us/p99 2190us, load 1.92/2.42/2.56; local WebSocket control + SQLite only, no PTY claim.
Author
Owner

Cleanup verified: both worktrees are clean at server f1b996c11c and client faa31544c6. Removed both temporary target symlinks and this job’s 18GB/4.7GB scratch build targets. Production screenshots remain in t-web/apps/tracer/test-results; complete gate output and release measurements are on the issues. No running auth fixture remains; no push, deployment or issue closure. #28 acceptance remains blocked on the previously recorded production-daemon/PTY and longer-drop writer contract boundaries.

Cleanup verified: both worktrees are clean at server f1b996c11cf4b25dcb08ba2e7f68ab671b88dbb2 and client faa31544c6a26f2aec743e526fb78c1499eaee28. Removed both temporary target symlinks and this job’s 18GB/4.7GB scratch build targets. Production screenshots remain in t-web/apps/tracer/test-results; complete gate output and release measurements are on the issues. No running auth fixture remains; no push, deployment or issue closure. #28 acceptance remains blocked on the previously recorded production-daemon/PTY and longer-drop writer contract boundaries.
Author
Owner

Starting focused defensive audit review-auth3: read-only t-server 6e5d956..f1b996c11cf4b25dcb08ba2e7f68ab671b88dbb2 and t-web 7a5e5db..faa31544c6a26f2aec743e526fb78c1499eaee28. Prior findings and issue/parent history read; experiments isolated under HOME/.cache/codex-scratch/review-auth3, removed after evidence preservation. No push/deploy/commits.

Starting focused defensive audit review-auth3: read-only t-server 6e5d956..f1b996c11cf4b25dcb08ba2e7f68ab671b88dbb2 and t-web 7a5e5db..faa31544c6a26f2aec743e526fb78c1499eaee28. Prior findings and issue/parent history read; experiments isolated under HOME/.cache/codex-scratch/review-auth3, removed after evidence preservation. No push/deploy/commits.
Author
Owner

review-auth3 F1 P1 reproduced: production tab A successfully unwraps, pauses before completion fetch; tab B replaces shared cookie, fails corrupted-nonce unwrap + logout429; release A. Expected B remains pending/signed out; actual B session 401 -> 200 and B reload opens terminal. Chromium149/native PRF/GCM + real Rust router/SQLite. Failing test HOME/.cache/codex-scratch/review-auth3/two-tabs.mjs, output two-tabs.log. auth.ts:168 completion {} and sessions.rs:57-66 activate whichever cookie is current, without transaction identity. Single-tab author regression passes. Completion must bind to its own pending login.

review-auth3 F1 P1 reproduced: production tab A successfully unwraps, pauses before completion fetch; tab B replaces shared cookie, fails corrupted-nonce unwrap + logout429; release A. Expected B remains pending/signed out; actual B session 401 -> 200 and B reload opens terminal. Chromium149/native PRF/GCM + real Rust router/SQLite. Failing test HOME/.cache/codex-scratch/review-auth3/two-tabs.mjs, output two-tabs.log. auth.ts:168 completion {} and sessions.rs:57-66 activate whichever cookie is current, without transaction identity. Single-tab author regression passes. Completion must bind to its own pending login.
Author
Owner

review-auth3 F2 P1: real WS terminal.open with delayed Unix backend Result; logout commits; socket still open at1511ms, then successful Result reaches revoked browser and terminal row commits. Failing review3_busy_revocation_must_interrupt_and_deny_late_result in audit_cases.rs; audit-tests.log. websocket.rs:236-247 blocks select revocation/expiry while awaiting handler; open_terminal:847-866 persists/responds after unbounded await without recheck. F3 P2: logout after upgrade/server Hello, before client Hello -> Welcome/resume capability still issued; failing review3_revoked_handshake_must_not_welcome. Main-loop checks start too late. Subsequent ordinary terminal frames do recheck authority; no broader handshake access claim.

review-auth3 F2 P1: real WS terminal.open with delayed Unix backend Result; logout commits; socket still open at1511ms, then successful Result reaches revoked browser and terminal row commits. Failing review3_busy_revocation_must_interrupt_and_deny_late_result in audit_cases.rs; audit-tests.log. websocket.rs:236-247 blocks select revocation/expiry while awaiting handler; open_terminal:847-866 persists/responds after unbounded await without recheck. F3 P2: logout after upgrade/server Hello, before client Hello -> Welcome/resume capability still issued; failing review3_revoked_handshake_must_not_welcome. Main-loop checks start too late. Subsequent ordinary terminal frames do recheck authority; no broader handshake access claim.
Author
Owner

review-auth3 expanded evidence: busy logout/recovery/expiry all fail (late success + row after revoked/expired authority; >1500ms open). Expiry probe changes authoritative row after dispatch, not a simulated 30-day clock. Seven independent probes:2 pass/5 fail. Known/unknown unauthenticated timing n1000 each interleaved: p50/p99 known122/215us, unknown121/223us; identical401/body/no-cookie. Foreign jar/replay denied. Native v3/v1/v2 prompt counts1/2/2; exactly1 submitted login proof without PRF for each. Two-tab P1 reproduced twice; screenshots retained. Correct exact completion lines: client auth.ts171; server http.rs220-223, sessions.rs56-64.

review-auth3 expanded evidence: busy logout/recovery/expiry all fail (late success + row after revoked/expired authority; >1500ms open). Expiry probe changes authoritative row after dispatch, not a simulated 30-day clock. Seven independent probes:2 pass/5 fail. Known/unknown unauthenticated timing n1000 each interleaved: p50/p99 known122/215us, unknown121/223us; identical401/body/no-cookie. Foreign jar/replay denied. Native v3/v1/v2 prompt counts1/2/2; exactly1 submitted login proof without PRF for each. Two-tab P1 reproduced twice; screenshots retained. Correct exact completion lines: client auth.ts171; server http.rs220-223, sessions.rs56-64.
Author
Owner

review-auth3 (focused audit of the fix round; server 6e5d956..f1b996c, client 7a5e5db..faa3154): rework. The run was cut short by the tooling's content filter, but the findings file is complete. A copy is in the job state directory: review-auth3/findings.md.

  • F1 (P1): one tab can activate another tab's failed unwrap. unlock-finish sends {} and flips whatever pending cookie is current, so a completion from tab A activates tab B's failed login (401 → 200, and a reload opens the terminal). The fix binds completion to the specific pending login transaction.
  • F2 (P1): busy WebSocket handlers keep authority after a committed logout, recovery or expiry. A late backend Result(ok) is still sent and a terminal_sessions row is committed. The fix interrupts pending awaits on revocation and rechecks authority after every await.
  • F3 (P2): a client Hello sent after logout still gets a Welcome with a fresh resume capability. The fix checks revocation for the whole socket lifetime, including the handshake.
  • Passed: identified-discovery timing (122 vs 121 µs p50, identical 401 responses), cookie-jar binding, replay and reuse after success, D108 prompt counts (v3=1, v1=2, v2=2, verified by traffic: the PRF output is never sent), AAD unchanged, the recovery path, idle revocation and expiry.

Owner question for the morning: the server cannot verify that the client actually unwrapped (an empty unlock-finish activates the login). Binding to the transaction fixes the cross-tab race. Enforcing "unwrap happened" needs a proof of DEK possession (for example an HMAC verifier derived from the DEK). The passkey already authenticates the user, so this is a consistency guard rather than an authentication boundary. Decide whether to add it.

review-auth3 (focused audit of the fix round; server 6e5d956..f1b996c, client 7a5e5db..faa3154): **rework**. The run was cut short by the tooling's content filter, but the findings file is complete. A copy is in the job state directory: `review-auth3/findings.md`. - **F1 (P1):** one tab can activate another tab's failed unwrap. unlock-finish sends `{}` and flips whatever pending cookie is current, so a completion from tab A activates tab B's failed login (401 → 200, and a reload opens the terminal). The fix binds completion to the specific pending login transaction. - **F2 (P1):** busy WebSocket handlers keep authority after a committed logout, recovery or expiry. A late backend Result(ok) is still sent and a terminal_sessions row is committed. The fix interrupts pending awaits on revocation and rechecks authority after every await. - **F3 (P2):** a client Hello sent after logout still gets a Welcome with a fresh resume capability. The fix checks revocation for the whole socket lifetime, including the handshake. - **Passed:** identified-discovery timing (122 vs 121 µs p50, identical 401 responses), cookie-jar binding, replay and reuse after success, D108 prompt counts (v3=1, v1=2, v2=2, verified by traffic: the PRF output is never sent), AAD unchanged, the recovery path, idle revocation and expiry. **Owner question for the morning:** the server cannot verify that the client actually unwrapped (an empty unlock-finish activates the login). Binding to the transaction fixes the cross-tab race. Enforcing "unwrap happened" needs a proof of DEK possession (for example an HMAC verifier derived from the DEK). The passkey already authenticates the user, so this is a consistency guard rather than an authentication boundary. Decide whether to add it.
Author
Owner

Starting focused F1–F3 fix: t-server base f1b996c11c; t-web-auth base faa31544c6. Read issue #29 and parent #19/#21 plus #28 history and reviewer evidence. Test-first regressions, transaction-specific completion (no DEK proof per owner task), interruptible frame/handshake authority and bounded backend waits. No push/deploy; t-web untouched. docs/PROCESS.md absent; supplied process contract applies. Proposal: additive pending_transaction field on login-finish/unlock-finish; completion matches both cookie and exact live pending transaction, single use. Document client-only unwrap boundary in keywrap contract.

Starting focused F1–F3 fix: t-server base f1b996c11cf4b25dcb08ba2e7f68ab671b88dbb2; t-web-auth base faa31544c6a26f2aec743e526fb78c1499eaee28. Read issue #29 and parent #19/#21 plus #28 history and reviewer evidence. Test-first regressions, transaction-specific completion (no DEK proof per owner task), interruptible frame/handshake authority and bounded backend waits. No push/deploy; t-web untouched. docs/PROCESS.md absent; supplied process contract applies. Proposal: additive pending_transaction field on login-finish/unlock-finish; completion matches both cookie and exact live pending transaction, single use. Document client-only unwrap boundary in keywrap contract.
Author
Owner

F1 reproduced from unchanged heads: ported scripts/browser-auth/review3-two-tabs.mjs against native Chromium production t-web-auth dist and real reviewer Rust fixture exits 1: A completion activated B failed-unwrap cookie. Screenshot writes outside worktree removed. Rust review3 regressions compiling in HOME scratch; known defects temporarily ignored in default gate and explicitly run for red evidence. Cleanup extension: failed-login logout carries the same transaction id, denying mismatched cleanup without deleting another tab session/cookie. No DEK-possession proof added.

F1 reproduced from unchanged heads: ported scripts/browser-auth/review3-two-tabs.mjs against native Chromium production t-web-auth dist and real reviewer Rust fixture exits 1: A completion activated B failed-unwrap cookie. Screenshot writes outside worktree removed. Rust review3 regressions compiling in HOME scratch; known defects temporarily ignored in default gate and explicitly run for red evidence. Cleanup extension: failed-login logout carries the same transaction id, denying mismatched cleanup without deleting another tab session/cookie. No DEK-possession proof added.
Author
Owner

Server red probes on f1b996c: 0 passed / 5 failed. Busy logout/recovery/expiry remained open 1502/1503/1501 ms, sent late success and committed 1 terminal row each. Post-logout Hello minted Welcome; empty completion granted session and add-start (200). Ported auth/review3_tests.rs retains real SQLite/WebSocket/Unix/verifier tests. Logs HOME/.cache/codex-scratch/fix-auth3/red.log and two-tabs-red.log. Regression gate running; fixes will activate each known-defect test.

Server red probes on f1b996c: 0 passed / 5 failed. Busy logout/recovery/expiry remained open 1502/1503/1501 ms, sent late success and committed 1 terminal row each. Post-logout Hello minted Welcome; empty completion granted session and add-start (200). Ported auth/review3_tests.rs retains real SQLite/WebSocket/Unix/verifier tests. Logs HOME/.cache/codex-scratch/fix-auth3/red.log and two-tabs-red.log. Regression gate running; fixes will activate each known-defect test.
Author
Owner

Regression step committed 04f7366: six red defects retained (including transaction-bound completion/cleanup), native two-tab probe ported. Slice fmt/clippy pass; server default suite 44 passed, 9 ignored (six known defects plus three release measurements). Clippy findings in raw reviewer code corrected before commit. F1 implementation uses a domain-separated SHA256 id of the opaque session capability, returned once at login-finish and consumed through unlocked=0 -> 1; no schema/migration, extra pending heap state or DEK verifier is needed.

Regression step committed 04f7366: six red defects retained (including transaction-bound completion/cleanup), native two-tab probe ported. Slice fmt/clippy pass; server default suite 44 passed, 9 ignored (six known defects plus three release measurements). Clippy findings in raw reviewer code corrected before commit. F1 implementation uses a domain-separated SHA256 id of the opaque session capability, returned once at login-finish and consumed through unlocked=0 -> 1; no schema/migration, extra pending heap state or DEK verifier is needed.
Author
Owner

F1 server completed at commit shown below: transaction-specific completion and failed-login cleanup, no schema or DEK proof. Full server suite 46 passed / 7 ignored; fmt/clippy pass; native auth 4/4. Production Chromium149 two-tab regression now B session before=401, after=401, reload sign-in; replay/mismatch/cleanup regression passes. Client edits confined to src/auth.ts and auth sections of test/mock-server.ts. Concurrent-build Playwright: 3/4 pass, terminal p99 29.2ms exceeds 20ms; clean no-build rerun required, threshold unchanged.

F1 server completed at commit shown below: transaction-specific completion and failed-login cleanup, no schema or DEK proof. Full server suite 46 passed / 7 ignored; fmt/clippy pass; native auth 4/4. Production Chromium149 two-tab regression now B session before=401, after=401, reload sign-in; replay/mismatch/cleanup regression passes. Client edits confined to src/auth.ts and auth sections of test/mock-server.ts. Concurrent-build Playwright: 3/4 pass, terminal p99 29.2ms exceeds 20ms; clean no-build rerun required, threshold unchanged.
Author
Owner

Exact F1 server SHA: 33fb6a5936. Next F2: race every busy frame/output await against committed revocation and stored expiry, with 25ms authority checks only while an operation is pending (idle sockets remain event/deadline driven), 5s backend deadline, post-await checks and session predicates on SQLite mutations. A stored expiry edit has no notification, so bounded busy-only checks cover the reviewer transition without changing idle CPU policy.

Exact F1 server SHA: 33fb6a59364bc2f4b4241c8adfaae1268065e530. Next F2: race every busy frame/output await against committed revocation and stored expiry, with 25ms authority checks only while an operation is pending (idle sockets remain event/deadline driven), 5s backend deadline, post-await checks and session predicates on SQLite mutations. A stored expiry edit has no notification, so bounded busy-only checks cover the reviewer transition without changing idle CPU policy.
Author
Owner

F2 committed c56c96fc6e. Focused 8 passed/1 F3 ignored; fmt/clippy pass. Busy logout/recovery close 1ms; direct stored-expiry transition 27ms; no late success or row. New real Unix no-reply probe returns failure at 5004ms, ignores late success, and services next Ping. Socket transport is dropped before metadata cleanup; authority/storage and close waits are bounded25ms. F3 expanded test-first probes (Resume, waiting pre-Hello, edited expiry) are running before handshake changes.

F2 committed c56c96fc6e2f24def4b3afb5dd94dd94fe57e695. Focused 8 passed/1 F3 ignored; fmt/clippy pass. Busy logout/recovery close 1ms; direct stored-expiry transition 27ms; no late success or row. New real Unix no-reply probe returns failure at 5004ms, ignores late success, and services next Ping. Socket transport is dropped before metadata cleanup; authority/storage and close waits are bounded25ms. F3 expanded test-first probes (Resume, waiting pre-Hello, edited expiry) are running before handshake changes.
Author
Owner

F3 expanded regressions committed 772a585a5b; fmt/clippy pass. On F2 head all four F3 probes fail: revoked Hello and Resume mint Welcome, expired pre-Hello row mints Welcome, and waiting pre-Hello socket stays open beyond100ms. Tests are real WebSockets/SQLite and runnable explicitly; fix will activate all four. Client fast setup initially lacked nix in that worktree shell PATH; rerunning via installed absolute nix path, no repo change required.

F3 expanded regressions committed 772a585a5b571d4b3a5fe40f86ffde4d149e7bbd; fmt/clippy pass. On F2 head all four F3 probes fail: revoked Hello and Resume mint Welcome, expired pre-Hello row mints Welcome, and waiting pre-Hello socket stays open beyond100ms. Tests are real WebSockets/SQLite and runnable explicitly; fix will activate all four. Client fast setup initially lacked nix in that worktree shell PATH; rerunning via installed absolute nix path, no repo change required.
Author
Owner

F3 committed 848b5f249be7cebf8927362766ed8593187ab149. Correction to commit gate body: inspected full server summary after commit and found 53 pass/1 fail, not 54 pass; expired_handshake_releases_user_permits failed under concurrent client/release builds. All twelve focused probes pass, fmt/clippy pass. Investigating admission failure and rerunning before acceptance; no finished/green claim. Near-expiry reviewer probe also caught an intermediate sliding handshake read; corrected to non-sliding reads before this gate.

F3 committed 848b5f249be7cebf8927362766ed8593187ab149. Correction to commit gate body: inspected full server summary after commit and found 53 pass/1 fail, not 54 pass; expired_handshake_releases_user_permits failed under concurrent client/release builds. All twelve focused probes pass, fmt/clippy pass. Investigating admission failure and rerunning before acceptance; no finished/green claim. Near-expiry reviewer probe also caught an intermediate sliding handshake read; corrected to non-sliding reads before this gate.
Author
Owner

Admission failure reproduced in isolation (before correction). Corrected F3 to use one absolute 5s deadline covering server Hello/authority reads and client Hello/Resume, rather than starting another 5s after server Hello. Retained capacity regression now passes in5.85s. Also stage precise Welcome rollback metadata before SQL mutation/commit awaits so cancellation cannot lose it. Client full fast passes all five Rust rows plus protocol7/0/34390. Final server gate/release build rerunning; benchmark now includes pending-transaction-id generation in finish timing.

Admission failure reproduced in isolation (before correction). Corrected F3 to use one absolute 5s deadline covering server Hello/authority reads and client Hello/Resume, rather than starting another 5s after server Hello. Retained capacity regression now passes in5.85s. Also stage precise Welcome rollback metadata before SQL mutation/commit awaits so cancellation cannot lose it. Client full fast passes all five Rust rows plus protocol7/0/34390. Final server gate/release build rerunning; benchmark now includes pending-transaction-id generation in finish timing.
Author
Owner

F3 final atomic commit is 52650269c0 (amended local848b5f2 with absolute deadline/rollback corrections; nothing pushed). Latest server54 passed/0 failed/3 scale ignored; fmt/clippy and static builds pass individually. Added benchmark-only628ab1a0ad0a7c131f4067c5725890c707727901 to include id generation in finish timing. Native4/4; production paired v3/v1/v2 prompts1/2/2, corruption/logout429 and two-tab401->401 all pass. Revoked Hello no Welcome; Resume315us and pre-Hello327us closure. Final complete fast rerun underway after fixing benchmark function lint; scales/browser latency run after compilation stops.

F3 final atomic commit is 52650269c08abb058e904afeb2e0ea3b87d2722c (amended local848b5f2 with absolute deadline/rollback corrections; nothing pushed). Latest server54 passed/0 failed/3 scale ignored; fmt/clippy and static builds pass individually. Added benchmark-only628ab1a0ad0a7c131f4067c5725890c707727901 to include id generation in finish timing. Native4/4; production paired v3/v1/v2 prompts1/2/2, corruption/logout429 and two-tab401->401 all pass. Revoked Hello no Welcome; Resume315us and pre-Hello327us closure. Final complete fast rerun underway after fixing benchmark function lint; scales/browser latency run after compilation stops.
Author
Owner

Quiet release performance gate failed at628ab1a: 16 sockets x200=3200, p50=4345us/p99=11956us (5ms budget), load2.59/4.94/7.56, 8 i9-9900K KVM vCPUs. Complete fast gates are green in both trees; functional probes/native/pairing pass. Cause: duplicate pre/post watchdog SQLite queries in addition to frame entry lookup. Performance correction reuses the expiry from the authoritative entry read, keeps generation/deadline checks on completion and direct authority reads/SQL predicates at backend/persistence boundaries. No budget changed; rerun functional regressions and quiet scale before acceptance.

Quiet release performance gate failed at628ab1a: 16 sockets x200=3200, p50=4345us/p99=11956us (5ms budget), load2.59/4.94/7.56, 8 i9-9900K KVM vCPUs. Complete fast gates are green in both trees; functional probes/native/pairing pass. Cause: duplicate pre/post watchdog SQLite queries in addition to frame entry lookup. Performance correction reuses the expiry from the authoritative entry read, keeps generation/deadline checks on completion and direct authority reads/SQL predicates at backend/persistence boundaries. No budget changed; rerun functional regressions and quiet scale before acceptance.
Author
Owner

Performance correction completed at27f214110c0ae898eb7efe074e026a68000fdd5d; fmt/clippy and12 focused probes pass. Quiet release measurements on8 i9-9900K x86_64 KVM vCPUs; SQLite memory/loopback control, no real PTY, phone or pinned perf-VM claim. The watchdog adds no idle polling. Historical #29 socket baseline1123/2190us is not a controlled A/B; current1253/2475us remains below5ms and buys sub100ms busy revocation with no late row/success. Full current fast follows clean browser run.

socket-scale-optimized output, verbatim:

   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server)
    Finished `release` profile [optimized] target(s) in 1m 09s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=1253us p99=2475us arch=x86_64 load=2.48 2.94 5.91 3/729 2677557
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ok

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

auth-scale output, verbatim:

    Finished `release` profile [optimized] target(s) in 0.41s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=1.64 2.68 5.69 1/704 2678030
challenge mode=identified pending=0..200 n=200 p50_us=64 p99_us=137 rss_before_kib=13128 rss_after_kib=13380
challenge mode=identified pending=824..1024 n=200 p50_us=89 p99_us=197 rss_before_kib=14140 rss_after_kib=14584
challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=19 rss_before_kib=14584 rss_after_kib=14584
challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=12 rss_before_kib=14584 rss_after_kib=14584
pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations)
signed discoverable finish pending=1024 n=200 p50_us=297 p99_us=641 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier)
test auth::tests::discoverable_latency_at_pending_capacity ... ok

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

writer-scale output, verbatim:

    Finished `release` profile [optimized] target(s) in 0.13s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
writer authority: connections=16 writers=512 n=3200 p50_us=169 p99_us=416 SQLite=memory arch=x86_64 load=1.51 2.63 5.66 1/714 2678100
test websocket::writer_tests::writer_admission_at_user_capacity ... ok

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

Performance correction completed at27f214110c0ae898eb7efe074e026a68000fdd5d; fmt/clippy and12 focused probes pass. Quiet release measurements on8 i9-9900K x86_64 KVM vCPUs; SQLite memory/loopback control, no real PTY, phone or pinned perf-VM claim. The watchdog adds no idle polling. Historical #29 socket baseline1123/2190us is not a controlled A/B; current1253/2475us remains below5ms and buys sub100ms busy revocation with no late row/success. Full current fast follows clean browser run. socket-scale-optimized output, verbatim: ```text Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `release` profile [optimized] target(s) in 1m 09s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=1253us p99=2475us arch=x86_64 load=2.48 2.94 5.91 3/729 2677557 test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.47s ``` auth-scale output, verbatim: ```text Finished `release` profile [optimized] target(s) in 0.41s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=1.64 2.68 5.69 1/704 2678030 challenge mode=identified pending=0..200 n=200 p50_us=64 p99_us=137 rss_before_kib=13128 rss_after_kib=13380 challenge mode=identified pending=824..1024 n=200 p50_us=89 p99_us=197 rss_before_kib=14140 rss_after_kib=14584 challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=19 rss_before_kib=14584 rss_after_kib=14584 challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=12 rss_before_kib=14584 rss_after_kib=14584 pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations) signed discoverable finish pending=1024 n=200 p50_us=297 p99_us=641 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier) test auth::tests::discoverable_latency_at_pending_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.21s ``` writer-scale output, verbatim: ```text Finished `release` profile [optimized] target(s) in 0.13s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test writer authority: connections=16 writers=512 n=3200 p50_us=169 p99_us=416 SQLite=memory arch=x86_64 load=1.51 2.63 5.66 1/714 2678100 test websocket::writer_tests::writer_admission_at_user_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.73s ```
Author
Owner

Client F1 completed58040dfd599cd25ed6a44abf1f8bb9084e9837c6: 2 auth files only,11 insertions/4 deletions. Client fast all five Rust rows + protocol7/0/34390, TS check/build and clean production Playwright4/4(44.9s) pass. 500-key p99=16.60ms, resume79.50ms; setup/signin first paint p99=366.9/90.9ms (n30 each). Production screenshots retained under t-web-auth/apps/tracer/test-results for independent review. Final optimized server fast/native rerun underway; no push/deploy or changes in t-web.

Client F1 completed58040dfd599cd25ed6a44abf1f8bb9084e9837c6: 2 auth files only,11 insertions/4 deletions. Client fast all five Rust rows + protocol7/0/34390, TS check/build and clean production Playwright4/4(44.9s) pass. 500-key p99=16.60ms, resume79.50ms; setup/signin first paint p99=366.9/90.9ms (n30 each). Production screenshots retained under t-web-auth/apps/tracer/test-results for independent review. Final optimized server fast/native rerun underway; no push/deploy or changes in t-web.
Author
Owner

Final t-web-auth fast gate at58040dfd599cd25ed6a44abf1f8bb9084e9837c6; exit0. Verbatim output part1/2 (concatenate blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast; invoked via installed absolute nix path because this worktree shell omitted it from PATH.


==> fmt

==> clippy
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Checking log v0.4.34
    Checking futures-sink v0.3.34
    Checking tracing-core v0.1.36
    Checking tokio v1.53.2
    Checking slab v0.4.12
    Checking futures-channel v0.3.34
    Checking flume v0.11.1
    Checking vte v0.15.0
    Checking futures-util v0.3.34
    Checking tracing v0.1.44
    Checking webauthn-attestation-ca v0.5.5
    Checking axum-core v0.5.6
    Checking alacritty_terminal v0.25.1
    Checking vt100 v0.16.2
    Checking webauthn-rs-core v0.5.5
    Checking infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim)
    Checking infraternal-fuzz v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/fuzz)
    Checking webauthn-rs v0.5.5
    Checking futures-executor v0.3.34
    Checking tokio-stream v0.1.19
    Checking hyper v1.11.1
    Checking tower v0.5.3
    Checking sqlx-core v0.8.6
    Checking hyper-util v0.1.21
    Checking axum v0.8.9
    Checking sqlx-sqlite v0.8.6
    Checking sqlx v0.8.6
    Checking infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server)
    Checking infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.38s

==> test
   Compiling futures-sink v0.3.34
   Compiling tracing-core v0.1.36
   Compiling slab v0.4.12
   Compiling tokio v1.53.2
   Compiling vte v0.15.0
   Compiling flume v0.11.1
   Compiling futures-channel v0.3.34
   Compiling futures-util v0.3.34
   Compiling tracing v0.1.44
   Compiling alacritty_terminal v0.25.1
   Compiling vt100 v0.16.2
   Compiling webauthn-attestation-ca v0.5.5
   Compiling axum-core v0.5.6
   Compiling webauthn-rs-core v0.5.5
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim)
   Compiling webauthn-rs v0.5.5
   Compiling futures-executor v0.3.34
   Compiling sqlx-core v0.8.6
   Compiling tokio-stream v0.1.19
   Compiling hyper v1.11.1
   Compiling tower v0.5.3
   Compiling hyper-util v0.1.21
   Compiling axum v0.8.9
   Compiling sqlx-sqlite v0.8.6
   Compiling sqlx-macros-core v0.8.6
   Compiling sqlx-macros v0.8.6
   Compiling sqlx v0.8.6
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 14.70s
     Running unittests src/main.rs (target/debug/deps/infraternal-35f142d7f784daf3)

running 0 tests

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

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

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

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

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

running 0 tests

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

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

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

running 0 tests

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

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

running 7 tests
test stream_tests::split_mux_header_preserves_trailing_close ... 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::all_short_frame_splits_match_direct_decoding ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok

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

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

running 12 tests
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok
test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok
test auth::tests::review_old_words_race_rotation ... ok
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test auth::tests::setup_expiry_single_announcement_and_parallel_redemption ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok

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

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

running 12 tests
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test frame::checks::tests::golden_and_fragmented ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok

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

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

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

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

   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_plugin_api

running 0 tests

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

   Doc-tests infraternal_plugin_ssh

running 0 tests

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

   Doc-tests infraternal_protocol

running 0 tests

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

   Doc-tests infraternal_server

running 0 tests

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

   Doc-tests infraternal_shim

running 0 tests

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


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

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:88:1
   │  
88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index
   │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ getrandom v0.2.17
     └── rand_core v0.6.4
         ├── bip39 v2.2.2
         │   └── infraternal-server v0.1.0
         │       └── infraternal v0.1.0
         ├── crypto-common v0.1.7
         │   ├── aead v0.5.2
         │   │   └── aes-gcm v0.10.3
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   ├── cipher v0.4.4
         │   │   ├── aes v0.8.4
         │   │   │   └── aes-gcm v0.10.3 (*)
         │   │   ├── aes-gcm v0.10.3 (*)
         │   │   └── ctr v0.9.2
         │   │       └── aes-gcm v0.10.3 (*)
         │   ├── digest v0.10.7
         │   │   ├── blake2 v0.10.6
         │   │   │   └── argon2 v0.5.3
         │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   ├── hmac v0.12.1
         │   │   │   └── hkdf v0.12.4
         │   │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   │   └── sha2 v0.10.9
         │   │       ├── infraternal-server v0.1.0 (*)
         │   │       ├── sqlx-core v0.8.6
         │   │       │   ├── sqlx v0.8.6
         │   │       │   │   ├── infraternal v0.1.0 (*)
         │   │       │   │   └── infraternal-server v0.1.0 (*)
         │   │       │   ├── sqlx-macros v0.8.6
         │   │       │   │   └── sqlx v0.8.6 (*)
         │   │       │   ├── sqlx-macros-core v0.8.6
         │   │       │   │   └── sqlx-macros v0.8.6 (*)
         │   │       │   └── sqlx-sqlite v0.8.6
         │   │       │       ├── sqlx v0.8.6 (*)
         │   │       │       └── sqlx-macros-core v0.8.6 (*)
         │   │       └── sqlx-macros-core v0.8.6 (*)
         │   └── universal-hash v0.5.1
         │       └── polyval v0.6.2
         │           └── ghash v0.5.1
         │               └── aes-gcm v0.10.3 (*)
         ├── password-hash v0.5.0
         │   └── argon2 v0.5.3 (*)
         ├── rand v0.8.8
         │   └── bip39 v2.2.2 (*)
         └── rand_chacha v0.3.1
             └── rand v0.8.8 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── infraternal-server v0.1.0
         │   │   └── infraternal v0.1.0
         │   └── webauthn-rs-core v0.5.5
         │       └── webauthn-rs v0.5.5
         │           └── infraternal-server v0.1.0 (*)
         └── rand_chacha v0.9.0
             ├── rand v0.9.5 (*)
             └── webauthn-rs-core v0.5.5 (*)
   ├ getrandom v0.4.3
     ├── jobserver v0.1.35
     │   └── cc v1.6.0
     │       ├── (build) libfuzzer-sys v0.4.13
     │       │   └── infraternal-fuzz v0.1.0
     │       ├── (build) libsqlite3-sys v0.30.1
     │       │   └── sqlx-sqlite v0.8.6
     │       │       ├── sqlx v0.8.6
     │       │       │   ├── infraternal v0.1.0
     │       │       │   └── infraternal-server v0.1.0
     │       │       │       └── infraternal v0.1.0 (*)
     │       │       └── sqlx-macros-core v0.8.6
     │       │           └── sqlx-macros v0.8.6
     │       │               └── sqlx v0.8.6 (*)
     │       ├── openssl-src v300.6.1+3.6.3
     │       │   └── (build) openssl-sys v0.9.117
     │       │       ├── openssl v0.10.81
     │       │       │   ├── 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 (*)
     │       │       ├── webauthn-attestation-ca v0.5.5 (*)
     │       │       └── webauthn-rs-core v0.5.5 (*)
     │       └── (build) openssl-sys v0.9.117 (*)
     └── uuid v1.27.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/t-web-auth/Cargo.lock:93:1
   │  
93 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
94 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ hashbrown v0.15.5
     ├── hashlink v0.10.0
     │   └── sqlx-core v0.8.6
     │       ├── sqlx v0.8.6
     │       │   ├── infraternal v0.1.0
     │       │   └── infraternal-server v0.1.0
     │       │       └── infraternal v0.1.0 (*)
     │       ├── sqlx-macros v0.8.6
     │       │   └── sqlx v0.8.6 (*)
     │       ├── sqlx-macros-core v0.8.6
     │       │   └── sqlx-macros v0.8.6 (*)
     │       └── sqlx-sqlite v0.8.6
     │           ├── sqlx v0.8.6 (*)
     │           └── sqlx-macros-core v0.8.6 (*)
     └── sqlx-core v0.8.6 (*)
   ├ hashbrown v0.17.1
     └── indexmap v2.14.2
         └── sqlx-core v0.8.6
             ├── sqlx v0.8.6
             │   ├── infraternal v0.1.0
             │   └── infraternal-server v0.1.0
             │       └── infraternal v0.1.0 (*)
             ├── sqlx-macros v0.8.6
             │   └── sqlx v0.8.6 (*)
             ├── sqlx-macros-core v0.8.6
             │   └── sqlx-macros v0.8.6 (*)
             └── sqlx-sqlite v0.8.6
                 ├── sqlx v0.8.6 (*)
                 └── sqlx-macros-core v0.8.6 (*)

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

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:227:1
    │  
227 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
228 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ syn v2.0.119
      ├── asn1-rs-derive v0.5.1
      │   └── asn1-rs v0.6.2
      │       ├── der-parser v9.0.0
      │       │   ├── webauthn-rs-core v0.5.5
      │       │   │   └── webauthn-rs v0.5.5
      │       │   │       └── infraternal-server v0.1.0
      │       │   │           └── infraternal v0.1.0
      │       │   └── x509-parser v0.16.0
      │       │       └── webauthn-rs-core v0.5.5 (*)
      │       ├── oid-registry v0.7.1
      │       │   └── x509-parser v0.16.0 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── asn1-rs-impl v0.2.0
      │   └── asn1-rs v0.6.2 (*)
      ├── openssl-macros v0.1.1
      │   └── openssl v0.10.81
      │       ├── 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 v0.1.0 (*)
      │       └── infraternal-server v0.1.0 (*)
      ├── sqlx-macros-core v0.8.6
      │   └── sqlx-macros v0.8.6 (*)
      ├── synstructure v0.13.2
      │   └── asn1-rs-derive v0.5.1 (*)
      ├── thiserror-impl v1.0.69
      │   └── thiserror v1.0.69
      │       ├── asn1-rs v0.6.2 (*)
      │       ├── webauthn-rs-core v0.5.5 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── tracing-attributes v0.1.31
      │   └── tracing v0.1.44
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── axum-core v0.5.6
      │       │   └── axum v0.8.9 (*)
      │       ├── 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 (*)
      │       ├── 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-fuzz v0.1.0
              │   └── serde_cbor_2 v0.13.0
              │       ├── (dev) 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 (*)
                      │   └── 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-fuzz 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
      │   │   │   │           └── infraternal v0.1.0 (*)
      │   │   │   └── x509-parser v0.16.0
      │   │   │       └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── oid-registry v0.7.1
      │   │   │   └── x509-parser v0.16.0 (*)
      │   │   └── x509-parser v0.16.0 (*)
      │   ├── der-parser v9.0.0 (*)
      │   ├── icu_collections v2.3.0
      │   │   ├── icu_normalizer v2.3.0
      │   │   │   └── idna_adapter v1.2.2
      │   │   │       └── idna v1.1.0
      │   │   │           └── url v2.5.8
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   └── infraternal-server v0.1.0 (*)
      │   │   │               │   ├── sqlx-macros v0.8.6
      │   │   │               │   │   └── sqlx v0.8.6 (*)
      │   │   │               │   ├── sqlx-macros-core v0.8.6
      │   │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │   │   │               │   └── sqlx-sqlite v0.8.6
      │   │   │               │       ├── sqlx v0.8.6 (*)
      │   │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-sqlite v0.8.6 (*)
      │   │   │               ├── webauthn-rs v0.5.5 (*)
      │   │   │               ├── webauthn-rs-core v0.5.5 (*)
      │   │   │               └── webauthn-rs-proto v0.5.5
      │   │   │                   └── webauthn-rs-core v0.5.5 (*)
      │   │   └── icu_properties v2.3.0
      │   │       └── idna_adapter v1.2.2 (*)
      │   ├── icu_locale_core v2.3.0
      │   │   ├── icu_properties v2.3.0 (*)
      │   │   └── icu_provider v2.3.1
      │   │       ├── icu_normalizer v2.3.0 (*)
      │   │       └── icu_properties v2.3.0 (*)
      │   ├── icu_properties v2.3.0 (*)
      │   ├── icu_provider v2.3.1 (*)
      │   ├── tinystr v0.8.4
      │   │   └── icu_locale_core v2.3.0 (*)
      │   └── zerotrie v0.2.5
      │       ├── icu_properties v2.3.0 (*)
      │       └── icu_provider v2.3.1 (*)
      ├── serde_derive v1.0.229
      │   ├── serde v1.0.229
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── base64urlsafedata v0.5.5
      │   │   │   ├── webauthn-attestation-ca v0.5.5
      │   │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2
      │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── 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-server v0.1.0 (*)
      │   │   ├── serde_cbor_2 v0.13.0
      │   │   │   ├── (dev) infraternal-server v0.1.0 (*)
      │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── serde_urlencoded v0.7.1
      │   │   │   ├── axum v0.8.9
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   └── sqlx-sqlite v0.8.6 (*)
Final t-web-auth fast gate at58040dfd599cd25ed6a44abf1f8bb9084e9837c6; exit0. Verbatim output part1/2 (concatenate blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast; invoked via installed absolute nix path because this worktree shell omitted it from PATH. ```text ==> fmt ==> clippy Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Checking log v0.4.34 Checking futures-sink v0.3.34 Checking tracing-core v0.1.36 Checking tokio v1.53.2 Checking slab v0.4.12 Checking futures-channel v0.3.34 Checking flume v0.11.1 Checking vte v0.15.0 Checking futures-util v0.3.34 Checking tracing v0.1.44 Checking webauthn-attestation-ca v0.5.5 Checking axum-core v0.5.6 Checking alacritty_terminal v0.25.1 Checking vt100 v0.16.2 Checking webauthn-rs-core v0.5.5 Checking infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim) Checking infraternal-fuzz v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/fuzz) Checking webauthn-rs v0.5.5 Checking futures-executor v0.3.34 Checking tokio-stream v0.1.19 Checking hyper v1.11.1 Checking tower v0.5.3 Checking sqlx-core v0.8.6 Checking hyper-util v0.1.21 Checking axum v0.8.9 Checking sqlx-sqlite v0.8.6 Checking sqlx v0.8.6 Checking infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server) Checking infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.38s ==> test Compiling futures-sink v0.3.34 Compiling tracing-core v0.1.36 Compiling slab v0.4.12 Compiling tokio v1.53.2 Compiling vte v0.15.0 Compiling flume v0.11.1 Compiling futures-channel v0.3.34 Compiling futures-util v0.3.34 Compiling tracing v0.1.44 Compiling alacritty_terminal v0.25.1 Compiling vt100 v0.16.2 Compiling webauthn-attestation-ca v0.5.5 Compiling axum-core v0.5.6 Compiling webauthn-rs-core v0.5.5 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim) Compiling webauthn-rs v0.5.5 Compiling futures-executor v0.3.34 Compiling sqlx-core v0.8.6 Compiling tokio-stream v0.1.19 Compiling hyper v1.11.1 Compiling tower v0.5.3 Compiling hyper-util v0.1.21 Compiling axum v0.8.9 Compiling sqlx-sqlite v0.8.6 Compiling sqlx-macros-core v0.8.6 Compiling sqlx-macros v0.8.6 Compiling sqlx v0.8.6 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 14.70s Running unittests src/main.rs (target/debug/deps/infraternal-35f142d7f784daf3) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-127934b20fa33652) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test user_scope_survives_parent_unit_stop ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-c198a78833f77637) running 7 tests test stream_tests::split_mux_header_preserves_trailing_close ... 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::all_short_frame_splits_match_direct_decoding ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/debug/deps/infraternal_server-7548ec02aea5dda3) running 12 tests test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok test auth::tests::review_old_words_race_rotation ... ok test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test auth::tests::setup_expiry_single_announcement_and_parallel_redemption ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.85s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-ed89d744f989a5c2) running 12 tests test frame::checks::golden::every_frozen_message ... ok test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test frame::checks::tests::golden_and_fragmented ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.20s Running tests/detach.rs (target/debug/deps/detach-61348d2d934a9ab8) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.68s 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_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:24:1 │ 24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── alacritty_terminal v0.25.1 │ └── infraternal-shim v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:88:1 │ 88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── openssl v0.10.81 │ │ │ ├── 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 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.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/t-web-auth/Cargo.lock:93:1 │ 93 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 94 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:183:1 │ 183 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 184 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── openssl v0.10.81 │ │ │ ├── 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 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:185:1 │ 185 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 186 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:187:1 │ 187 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 188 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:189:1 │ 189 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 190 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:227:1 │ 227 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 228 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── 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 v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── 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 (*) │ ├── 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-fuzz v0.1.0 │ └── serde_cbor_2 v0.13.0 │ ├── (dev) 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 (*) │ └── 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-fuzz 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 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── 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-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── (dev) infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── serde_urlencoded v0.7.1 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── sqlx-sqlite v0.8.6 (*) ```
Author
Owner

Final t-web-auth fast gate at58040dfd599cd25ed6a44abf1f8bb9084e9837c6; exit0. Verbatim output part2/2 (concatenate blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast; invoked via installed absolute nix path because this worktree shell omitted it from PATH.

      │   │   ├── sqlx-core v0.8.6 (*)
      │   │   ├── sqlx-macros-core v0.8.6 (*)
      │   │   ├── sqlx-sqlite v0.8.6 (*)
      │   │   ├── tinytemplate v1.2.1
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── url v2.5.8 (*)
      │   │   ├── vte v0.15.0
      │   │   │   ├── alacritty_terminal v0.25.1 (*)
      │   │   │   ├── infraternal-shim v0.1.0 (*)
      │   │   │   └── vt100 v0.16.2
      │   │   │       ├── (dev) infraternal v0.1.0 (*)
      │   │   │       └── (dev) infraternal-shim v0.1.0 (*)
      │   │   ├── webauthn-attestation-ca v0.5.5 (*)
      │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   └── url v2.5.8 (*)
      ├── synstructure v0.14.0
      │   ├── yoke-derive v0.8.4
      │   │   └── yoke v0.8.3
      │   │       ├── icu_collections v2.3.0 (*)
      │   │       ├── icu_provider v2.3.1 (*)
      │   │       ├── zerotrie v0.2.5 (*)
      │   │       └── zerovec v0.11.8
      │   │           ├── icu_collections v2.3.0 (*)
      │   │           ├── icu_locale_core v2.3.0 (*)
      │   │           ├── icu_normalizer v2.3.0 (*)
      │   │           ├── icu_properties v2.3.0 (*)
      │   │           ├── icu_provider v2.3.1 (*)
      │   │           ├── potential_utf v0.1.6
      │   │           │   └── icu_collections v2.3.0 (*)
      │   │           └── tinystr v0.8.4 (*)
      │   └── zerofrom-derive v0.1.8
      │       └── zerofrom v0.1.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── yoke v0.8.3 (*)
      │           ├── zerotrie v0.2.5 (*)
      │           └── zerovec v0.11.8 (*)
      ├── thiserror-impl v2.0.21
      │   └── thiserror v2.0.21
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       └── sqlx-sqlite v0.8.6 (*)
      ├── tokio-macros v2.7.2
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9 (*)
      │       ├── hyper v1.11.1
      │       │   ├── axum v0.8.9 (*)
      │       │   └── hyper-util v0.1.21
      │       │       └── axum v0.8.9 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── sqlx-core v0.8.6 (*)
      │       └── tower v0.5.3
      │           ├── axum v0.8.9 (*)
      │           └── (dev) infraternal-server v0.1.0 (*)
      ├── wasm-bindgen-macro-support v0.2.129
      │   └── wasm-bindgen-macro v0.2.129
      │       └── wasm-bindgen v0.2.129
      │           ├── js-sys v0.3.106
      │           │   └── web-sys v0.3.106
      │           │       └── plotters v0.3.7
      │           │           └── criterion v0.7.0 (*)
      │           ├── plotters v0.3.7 (*)
      │           └── web-sys v0.3.106 (*)
      ├── yoke-derive v0.8.4 (*)
      ├── zerofrom-derive v0.1.8 (*)
      └── zerovec-derive v0.11.6
          └── zerovec v0.11.8 (*)

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:278:1
    │  
278 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
279 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.59.0
      └── alacritty_terminal v0.25.1
          └── infraternal-shim v0.1.0
              ├── infraternal v0.1.0
              └── infraternal-fuzz v0.1.0
    ├ 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-fuzz v0.1.0
      │               └── infraternal v0.1.0
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   ├── rustix v1.1.5
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── polling v3.11.0
      │   │   │   └── alacritty_terminal v0.25.1 (*)
      │   │   └── rustix-openpty v0.2.0
      │   │       └── alacritty_terminal v0.25.1 (*)
      │   ├── rustix-openpty v0.2.0 (*)
      │   └── signal-hook-registry v1.4.8
      │       └── signal-hook v0.3.18
      │           └── alacritty_terminal v0.25.1 (*)
      ├── home v0.5.12
      │   └── alacritty_terminal v0.25.1 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0
      │       │       └── infraternal v0.1.0 (*)
      │       ├── hyper v1.11.1
      │       │   ├── axum v0.8.9 (*)
      │       │   └── hyper-util v0.1.21
      │       │       └── axum v0.8.9 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6
      │       │   ├── sqlx v0.8.6
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── infraternal-server v0.1.0 (*)
      │       │   ├── sqlx-macros v0.8.6
      │       │   │   └── sqlx v0.8.6 (*)
      │       │   ├── sqlx-macros-core v0.8.6
      │       │   │   └── sqlx-macros v0.8.6 (*)
      │       │   └── sqlx-sqlite v0.8.6
      │       │       ├── sqlx v0.8.6 (*)
      │       │       └── sqlx-macros-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── sqlx-core v0.8.6 (*)
      │       └── tower v0.5.3
      │           ├── axum v0.8.9 (*)
      │           └── (dev) infraternal-server v0.1.0 (*)
      ├── miow v0.6.1
      │   └── alacritty_terminal v0.25.1 (*)
      ├── polling v3.11.0 (*)
      ├── rustix v1.1.5 (*)
      ├── socket2 v0.6.5
      │   └── 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 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
   Compiling cfg-if v1.0.5
   Compiling memchr v2.8.3
   Compiling libc v0.2.190
   Compiling serde_core v1.0.229
   Compiling zerofrom v0.1.8
   Compiling stable_deref_trait v1.2.1
   Compiling pin-project-lite v0.2.17
   Compiling smallvec v1.16.2
   Compiling itoa v1.0.18
   Compiling futures-core v0.3.34
   Compiling bytes v1.12.1
   Compiling yoke v0.8.3
   Compiling log v0.4.34
   Compiling writeable v0.6.4
   Compiling litemap v0.8.3
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling utf8_iter v1.0.4
   Compiling num-traits v0.2.19
   Compiling futures-sink v0.3.34
   Compiling once_cell v1.21.4
   Compiling icu_normalizer_data v2.3.0
   Compiling icu_properties_data v2.3.0
   Compiling tracing-core v0.1.36
   Compiling zerocopy v0.8.60
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling icu_collections v2.3.0
   Compiling typenum v1.20.1
   Compiling icu_locale_core v2.3.0
   Compiling scopeguard v1.2.0
   Compiling percent-encoding v2.3.2
   Compiling lock_api v0.4.14
   Compiling tracing v0.1.44
   Compiling form_urlencoded v1.2.2
   Compiling generic-array v0.14.7
   Compiling socket2 v0.6.5
   Compiling mio v1.2.4
   Compiling openssl-sys v0.9.117
   Compiling minimal-lexical v0.2.1
   Compiling icu_provider v2.3.1
   Compiling tokio v1.53.2
   Compiling subtle v2.6.1
   Compiling block-buffer v0.10.4
   Compiling icu_normalizer v2.3.0
   Compiling icu_properties v2.3.0
   Compiling serde v1.0.229
   Compiling bitflags v2.13.2
   Compiling crypto-common v0.1.7
   Compiling nom v7.1.3
   Compiling parking_lot_core v0.9.12
   Compiling time-core v0.1.9
   Compiling num-conv v0.2.2
   Compiling deranged v0.5.8
   Compiling futures-task v0.3.34
   Compiling powerfmt v0.2.1
   Compiling futures-io v0.3.34
   Compiling slab v0.4.12
   Compiling thiserror v1.0.69
   Compiling parking_lot v0.12.5
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling futures-util v0.3.34
   Compiling url v2.5.8
   Compiling time v0.3.55
   Compiling rusticata-macros v4.1.0
   Compiling digest v0.10.7
   Compiling getrandom v0.2.17
   Compiling ppv-lite86 v0.2.21
   Compiling http v1.5.0
   Compiling equivalent v1.0.2
   Compiling arrayvec v0.7.8
   Compiling zmij v1.0.23
   Compiling rand_core v0.6.4
   Compiling getrandom v0.3.4
   Compiling num-integer v0.1.47
   Compiling futures-channel v0.3.34
   Compiling base64 v0.22.1
   Compiling allocator-api2 v0.2.21
   Compiling foldhash v0.1.5
   Compiling http-body v1.1.0
   Compiling cpufeatures v0.2.17
   Compiling base64 v0.21.7
   Compiling foreign-types-shared v0.1.1
   Compiling hashbrown v0.15.5
   Compiling foreign-types v0.3.2
   Compiling num-bigint v0.4.8
   Compiling base64urlsafedata v0.5.5
   Compiling crossbeam-utils v0.8.23
   Compiling serde_json v1.0.151
   Compiling rand_core v0.9.5
   Compiling asn1-rs v0.6.2
   Compiling getrandom v0.4.3
   Compiling crc-catalog v2.5.0
   Compiling parking v2.2.1
   Compiling ryu v1.0.23
   Compiling linux-raw-sys v0.12.1
   Compiling hashbrown v0.17.1
   Compiling tower-service v0.3.3
   Compiling serde_urlencoded v0.7.1
   Compiling rustix v1.1.5
   Compiling event-listener v5.4.2
   Compiling crc v3.4.0
   Compiling crossbeam-queue v0.3.14
   Compiling indexmap v2.14.2
   Compiling thiserror v2.0.21
   Compiling uuid v1.27.0
   Compiling der-parser v9.0.0
   Compiling oid-registry v0.7.1
   Compiling tokio-stream v0.1.19
   Compiling hashlink v0.10.0
   Compiling rand_chacha v0.9.0
   Compiling httparse v1.10.1
   Compiling sha2 v0.10.9
   Compiling half v2.7.1
   Compiling futures-intrusive v0.5.0
   Compiling either v1.18.0
   Compiling libsqlite3-sys v0.30.1
   Compiling spin v0.9.9
   Compiling errno v0.3.14
   Compiling data-encoding v2.11.1
   Compiling tower-layer v0.3.3
   Compiling lazy_static v1.5.1
   Compiling atomic-waker v1.1.2
   Compiling utf8parse v0.2.2
   Compiling sync_wrapper v1.0.2
   Compiling httpdate v1.0.3
   Compiling anstyle-parse v1.0.0
   Compiling sqlx-core v0.8.6
   Compiling x509-parser v0.16.0
   Compiling hyper v1.11.1
   Compiling signal-hook-registry v1.4.8
   Compiling flume v0.11.1
   Compiling serde_cbor_2 v0.13.0
   Compiling rand v0.9.5
   Compiling webauthn-rs-proto v0.5.5
   Compiling futures-executor v0.3.34
   Compiling http-body-util v0.1.5
   Compiling rand_chacha v0.3.1
   Compiling hex-conservative v0.2.3
   Compiling atoi v2.0.0
   Compiling aho-corasick v1.1.5
   Compiling regex-syntax v0.8.11
   Compiling hex v0.4.3
   Compiling base64ct v1.8.3
   Compiling colorchoice v1.0.5
   Compiling anstyle v1.0.14
   Compiling anstyle-query v1.1.5
   Compiling is_terminal_polyfill v1.70.2
   Compiling mime v0.3.17
   Compiling tinyvec v1.13.3
   Compiling cursor-icon v1.2.0
   Compiling vte v0.15.0
   Compiling axum-core v0.5.6
   Compiling anstream v1.0.0
   Compiling unicode-normalization v0.1.25
   Compiling password-hash v0.5.0
   Compiling sqlx-sqlite v0.8.6
   Compiling bitcoin_hashes v0.14.101
   Compiling regex-automata v0.4.18
   Compiling rand v0.8.8
   Compiling polling v3.11.0
   Compiling rustix-openpty v0.2.0
   Compiling hyper-util v0.1.21
   Compiling memoffset v0.9.1
   Compiling signal-hook v0.3.18
   Compiling tower v0.5.3
   Compiling blake2 v0.10.6
   Compiling serde_path_to_error v0.1.20
   Compiling clap_lex v1.1.1
   Compiling matchit v0.8.4
   Compiling home v0.5.12
   Compiling strsim v0.11.1
   Compiling unicode-width v0.2.2
   Compiling axum v0.8.9
   Compiling clap_builder v4.6.7
   Compiling sqlx v0.8.6
   Compiling argon2 v0.5.3
   Compiling bip39 v2.2.2
   Compiling nix v0.30.1
   Compiling alacritty_terminal v0.25.1
   Compiling clap v4.6.7
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim)
   Compiling openssl v0.10.81
   Compiling webauthn-attestation-ca v0.5.5
   Compiling webauthn-rs-core v0.5.5
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 3m 32s
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: 9612768 bytes
    Blocking waiting for file lock on package cache
   Compiling libc v0.2.190
   Compiling cfg-if v1.0.5
   Compiling serde_core v1.0.229
   Compiling memchr v2.8.3
   Compiling zerofrom v0.1.8
   Compiling stable_deref_trait v1.2.1
   Compiling smallvec v1.16.2
   Compiling pin-project-lite v0.2.17
   Compiling futures-core v0.3.34
   Compiling itoa v1.0.18
   Compiling litemap v0.8.3
   Compiling yoke v0.8.3
   Compiling writeable v0.6.4
   Compiling bytes v1.12.1
   Compiling log v0.4.34
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling utf8_iter v1.0.4
   Compiling num-traits v0.2.19
   Compiling futures-sink v0.3.34
   Compiling once_cell v1.21.4
   Compiling tracing-core v0.1.36
   Compiling zerocopy v0.8.60
   Compiling icu_properties_data v2.3.0
   Compiling icu_normalizer_data v2.3.0
   Compiling typenum v1.20.1
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling icu_locale_core v2.3.0
   Compiling icu_collections v2.3.0
   Compiling scopeguard v1.2.0
   Compiling percent-encoding v2.3.2
   Compiling lock_api v0.4.14
   Compiling form_urlencoded v1.2.2
   Compiling tracing v0.1.44
   Compiling socket2 v0.6.5
   Compiling mio v1.2.4
   Compiling openssl-sys v0.9.117
   Compiling generic-array v0.14.7
   Compiling minimal-lexical v0.2.1
   Compiling tokio v1.53.2
   Compiling subtle v2.6.1
   Compiling icu_provider v2.3.1
   Compiling nom v7.1.3
   Compiling serde v1.0.229
   Compiling bitflags v2.13.2
   Compiling icu_normalizer v2.3.0
   Compiling icu_properties v2.3.0
   Compiling crypto-common v0.1.7
   Compiling block-buffer v0.10.4
   Compiling parking_lot_core v0.9.12
   Compiling deranged v0.5.8
   Compiling futures-io v0.3.34
   Compiling powerfmt v0.2.1
   Compiling time-core v0.1.9
   Compiling futures-task v0.3.34
   Compiling num-conv v0.2.2
   Compiling slab v0.4.12
   Compiling parking_lot v0.12.5
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling rusticata-macros v4.1.0
   Compiling url v2.5.8
   Compiling futures-util v0.3.34
   Compiling thiserror v1.0.69
   Compiling time v0.3.55
   Compiling digest v0.10.7
   Compiling getrandom v0.2.17
   Compiling http v1.5.0
   Compiling equivalent v1.0.2
   Compiling arrayvec v0.7.8
   Compiling ppv-lite86 v0.2.21
   Compiling zmij v1.0.23
   Compiling rand_core v0.6.4
   Compiling getrandom v0.3.4
   Compiling http-body v1.1.0
   Compiling num-integer v0.1.47
   Compiling futures-channel v0.3.34
   Compiling base64 v0.21.7
   Compiling base64 v0.22.1
   Compiling foreign-types-shared v0.1.1
   Compiling allocator-api2 v0.2.21
   Compiling foldhash v0.1.5
   Compiling base64urlsafedata v0.5.5
   Compiling foreign-types v0.3.2
   Compiling num-bigint v0.4.8
   Compiling crossbeam-utils v0.8.23
   Compiling rand_core v0.9.5
   Compiling serde_json v1.0.151
   Compiling hashbrown v0.15.5
   Compiling asn1-rs v0.6.2
   Compiling getrandom v0.4.3
   Compiling cpufeatures v0.2.17
   Compiling tower-service v0.3.3
   Compiling crc-catalog v2.5.0
   Compiling linux-raw-sys v0.12.1
   Compiling parking v2.2.1
   Compiling ryu v1.0.23
   Compiling hashbrown v0.17.1
   Compiling rustix v1.1.5
   Compiling serde_urlencoded v0.7.1
   Compiling event-listener v5.4.2
   Compiling indexmap v2.14.2
   Compiling hashlink v0.10.0
   Compiling oid-registry v0.7.1
   Compiling der-parser v9.0.0
   Compiling crc v3.4.0
   Compiling thiserror v2.0.21
   Compiling sha2 v0.10.9
   Compiling uuid v1.27.0
   Compiling crossbeam-queue v0.3.14
   Compiling tokio-stream v0.1.19
   Compiling rand_chacha v0.9.0
   Compiling httparse v1.10.1
   Compiling half v2.7.1
   Compiling futures-intrusive v0.5.0
   Compiling either v1.18.0
   Compiling libsqlite3-sys v0.30.1
   Compiling spin v0.9.9
   Compiling errno v0.3.14
   Compiling lazy_static v1.5.1
   Compiling httpdate v1.0.3
   Compiling utf8parse v0.2.2
   Compiling tower-layer v0.3.3
   Compiling sync_wrapper v1.0.2
   Compiling atomic-waker v1.1.2
   Compiling data-encoding v2.11.1
   Compiling anstyle-parse v1.0.0
   Compiling hyper v1.11.1
   Compiling flume v0.11.1
   Compiling sqlx-core v0.8.6
   Compiling signal-hook-registry v1.4.8
   Compiling serde_cbor_2 v0.13.0
   Compiling rand v0.9.5
   Compiling x509-parser v0.16.0
   Compiling webauthn-rs-proto v0.5.5
   Compiling futures-executor v0.3.34
   Compiling http-body-util v0.1.5
   Compiling rand_chacha v0.3.1
   Compiling hex-conservative v0.2.3
   Compiling atoi v2.0.0
   Compiling aho-corasick v1.1.5
   Compiling cursor-icon v1.2.0
   Compiling colorchoice v1.0.5
   Compiling anstyle v1.0.14
   Compiling hex v0.4.3
   Compiling regex-syntax v0.8.11
   Compiling is_terminal_polyfill v1.70.2
   Compiling anstyle-query v1.1.5
   Compiling tinyvec v1.13.3
   Compiling mime v0.3.17
   Compiling base64ct v1.8.3
   Compiling unicode-normalization v0.1.25
   Compiling password-hash v0.5.0
   Compiling sqlx-sqlite v0.8.6
   Compiling axum-core v0.5.6
   Compiling anstream v1.0.0
   Compiling vte v0.15.0
   Compiling regex-automata v0.4.18
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling rustix-openpty v0.2.0
   Compiling polling v3.11.0
   Compiling hyper-util v0.1.21
   Compiling signal-hook v0.3.18
   Compiling memoffset v0.9.1
   Compiling tower v0.5.3
   Compiling blake2 v0.10.6
   Compiling serde_path_to_error v0.1.20
   Compiling home v0.5.12
   Compiling unicode-width v0.2.2
   Compiling clap_lex v1.1.1
   Compiling matchit v0.8.4
   Compiling strsim v0.11.1
   Compiling argon2 v0.5.3
   Compiling nix v0.30.1
   Compiling axum v0.8.9
   Compiling clap_builder v4.6.7
   Compiling sqlx v0.8.6
   Compiling bip39 v2.2.2
   Compiling alacritty_terminal v0.25.1
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim)
   Compiling clap v4.6.7
   Compiling openssl v0.10.81
   Compiling webauthn-attestation-ca v0.5.5
   Compiling webauthn-rs-core v0.5.5
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 2m 29s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 8053768 bytes
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

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

==> TypeScript protocol compiler

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

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

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

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.16s]
Final t-web-auth fast gate at58040dfd599cd25ed6a44abf1f8bb9084e9837c6; exit0. Verbatim output part2/2 (concatenate blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast; invoked via installed absolute nix path because this worktree shell omitted it from PATH. ```text │ │ ├── sqlx-core v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ ├── tinytemplate v1.2.1 │ │ │ └── criterion v0.7.0 (*) │ │ ├── url v2.5.8 (*) │ │ ├── vte v0.15.0 │ │ │ ├── alacritty_terminal v0.25.1 (*) │ │ │ ├── infraternal-shim v0.1.0 (*) │ │ │ └── vt100 v0.16.2 │ │ │ ├── (dev) infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-shim v0.1.0 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ └── hyper-util v0.1.21 │ │ └── axum v0.8.9 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ └── tower v0.5.3 │ ├── axum v0.8.9 (*) │ └── (dev) infraternal-server v0.1.0 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:230:1 │ 230 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 231 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:232:1 │ 232 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 233 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-sqlite v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:234:1 │ 234 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 235 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-sqlite v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-web-auth/Cargo.lock:278:1 │ 278 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 279 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ 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-fuzz v0.1.0 │ └── infraternal v0.1.0 ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ └── signal-hook v0.3.18 │ └── alacritty_terminal v0.25.1 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ └── hyper-util v0.1.21 │ │ └── axum v0.8.9 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── sqlx-macros v0.8.6 │ │ │ └── sqlx v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 │ │ │ └── sqlx-macros v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ └── tower v0.5.3 │ ├── axum v0.8.9 (*) │ └── (dev) infraternal-server v0.1.0 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── polling v3.11.0 (*) ├── rustix v1.1.5 (*) ├── socket2 v0.6.5 │ └── 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 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Compiling cfg-if v1.0.5 Compiling memchr v2.8.3 Compiling libc v0.2.190 Compiling serde_core v1.0.229 Compiling zerofrom v0.1.8 Compiling stable_deref_trait v1.2.1 Compiling pin-project-lite v0.2.17 Compiling smallvec v1.16.2 Compiling itoa v1.0.18 Compiling futures-core v0.3.34 Compiling bytes v1.12.1 Compiling yoke v0.8.3 Compiling log v0.4.34 Compiling writeable v0.6.4 Compiling litemap v0.8.3 Compiling zerovec v0.11.8 Compiling zerotrie v0.2.5 Compiling utf8_iter v1.0.4 Compiling num-traits v0.2.19 Compiling futures-sink v0.3.34 Compiling once_cell v1.21.4 Compiling icu_normalizer_data v2.3.0 Compiling icu_properties_data v2.3.0 Compiling tracing-core v0.1.36 Compiling zerocopy v0.8.60 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling icu_collections v2.3.0 Compiling typenum v1.20.1 Compiling icu_locale_core v2.3.0 Compiling scopeguard v1.2.0 Compiling percent-encoding v2.3.2 Compiling lock_api v0.4.14 Compiling tracing v0.1.44 Compiling form_urlencoded v1.2.2 Compiling generic-array v0.14.7 Compiling socket2 v0.6.5 Compiling mio v1.2.4 Compiling openssl-sys v0.9.117 Compiling minimal-lexical v0.2.1 Compiling icu_provider v2.3.1 Compiling tokio v1.53.2 Compiling subtle v2.6.1 Compiling block-buffer v0.10.4 Compiling icu_normalizer v2.3.0 Compiling icu_properties v2.3.0 Compiling serde v1.0.229 Compiling bitflags v2.13.2 Compiling crypto-common v0.1.7 Compiling nom v7.1.3 Compiling parking_lot_core v0.9.12 Compiling time-core v0.1.9 Compiling num-conv v0.2.2 Compiling deranged v0.5.8 Compiling futures-task v0.3.34 Compiling powerfmt v0.2.1 Compiling futures-io v0.3.34 Compiling slab v0.4.12 Compiling thiserror v1.0.69 Compiling parking_lot v0.12.5 Compiling idna_adapter v1.2.2 Compiling idna v1.1.0 Compiling futures-util v0.3.34 Compiling url v2.5.8 Compiling time v0.3.55 Compiling rusticata-macros v4.1.0 Compiling digest v0.10.7 Compiling getrandom v0.2.17 Compiling ppv-lite86 v0.2.21 Compiling http v1.5.0 Compiling equivalent v1.0.2 Compiling arrayvec v0.7.8 Compiling zmij v1.0.23 Compiling rand_core v0.6.4 Compiling getrandom v0.3.4 Compiling num-integer v0.1.47 Compiling futures-channel v0.3.34 Compiling base64 v0.22.1 Compiling allocator-api2 v0.2.21 Compiling foldhash v0.1.5 Compiling http-body v1.1.0 Compiling cpufeatures v0.2.17 Compiling base64 v0.21.7 Compiling foreign-types-shared v0.1.1 Compiling hashbrown v0.15.5 Compiling foreign-types v0.3.2 Compiling num-bigint v0.4.8 Compiling base64urlsafedata v0.5.5 Compiling crossbeam-utils v0.8.23 Compiling serde_json v1.0.151 Compiling rand_core v0.9.5 Compiling asn1-rs v0.6.2 Compiling getrandom v0.4.3 Compiling crc-catalog v2.5.0 Compiling parking v2.2.1 Compiling ryu v1.0.23 Compiling linux-raw-sys v0.12.1 Compiling hashbrown v0.17.1 Compiling tower-service v0.3.3 Compiling serde_urlencoded v0.7.1 Compiling rustix v1.1.5 Compiling event-listener v5.4.2 Compiling crc v3.4.0 Compiling crossbeam-queue v0.3.14 Compiling indexmap v2.14.2 Compiling thiserror v2.0.21 Compiling uuid v1.27.0 Compiling der-parser v9.0.0 Compiling oid-registry v0.7.1 Compiling tokio-stream v0.1.19 Compiling hashlink v0.10.0 Compiling rand_chacha v0.9.0 Compiling httparse v1.10.1 Compiling sha2 v0.10.9 Compiling half v2.7.1 Compiling futures-intrusive v0.5.0 Compiling either v1.18.0 Compiling libsqlite3-sys v0.30.1 Compiling spin v0.9.9 Compiling errno v0.3.14 Compiling data-encoding v2.11.1 Compiling tower-layer v0.3.3 Compiling lazy_static v1.5.1 Compiling atomic-waker v1.1.2 Compiling utf8parse v0.2.2 Compiling sync_wrapper v1.0.2 Compiling httpdate v1.0.3 Compiling anstyle-parse v1.0.0 Compiling sqlx-core v0.8.6 Compiling x509-parser v0.16.0 Compiling hyper v1.11.1 Compiling signal-hook-registry v1.4.8 Compiling flume v0.11.1 Compiling serde_cbor_2 v0.13.0 Compiling rand v0.9.5 Compiling webauthn-rs-proto v0.5.5 Compiling futures-executor v0.3.34 Compiling http-body-util v0.1.5 Compiling rand_chacha v0.3.1 Compiling hex-conservative v0.2.3 Compiling atoi v2.0.0 Compiling aho-corasick v1.1.5 Compiling regex-syntax v0.8.11 Compiling hex v0.4.3 Compiling base64ct v1.8.3 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling anstyle-query v1.1.5 Compiling is_terminal_polyfill v1.70.2 Compiling mime v0.3.17 Compiling tinyvec v1.13.3 Compiling cursor-icon v1.2.0 Compiling vte v0.15.0 Compiling axum-core v0.5.6 Compiling anstream v1.0.0 Compiling unicode-normalization v0.1.25 Compiling password-hash v0.5.0 Compiling sqlx-sqlite v0.8.6 Compiling bitcoin_hashes v0.14.101 Compiling regex-automata v0.4.18 Compiling rand v0.8.8 Compiling polling v3.11.0 Compiling rustix-openpty v0.2.0 Compiling hyper-util v0.1.21 Compiling memoffset v0.9.1 Compiling signal-hook v0.3.18 Compiling tower v0.5.3 Compiling blake2 v0.10.6 Compiling serde_path_to_error v0.1.20 Compiling clap_lex v1.1.1 Compiling matchit v0.8.4 Compiling home v0.5.12 Compiling strsim v0.11.1 Compiling unicode-width v0.2.2 Compiling axum v0.8.9 Compiling clap_builder v4.6.7 Compiling sqlx v0.8.6 Compiling argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling nix v0.30.1 Compiling alacritty_terminal v0.25.1 Compiling clap v4.6.7 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim) Compiling openssl v0.10.81 Compiling webauthn-attestation-ca v0.5.5 Compiling webauthn-rs-core v0.5.5 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal) Finished `release` profile [optimized] target(s) in 3m 32s 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: 9612768 bytes Blocking waiting for file lock on package cache Compiling libc v0.2.190 Compiling cfg-if v1.0.5 Compiling serde_core v1.0.229 Compiling memchr v2.8.3 Compiling zerofrom v0.1.8 Compiling stable_deref_trait v1.2.1 Compiling smallvec v1.16.2 Compiling pin-project-lite v0.2.17 Compiling futures-core v0.3.34 Compiling itoa v1.0.18 Compiling litemap v0.8.3 Compiling yoke v0.8.3 Compiling writeable v0.6.4 Compiling bytes v1.12.1 Compiling log v0.4.34 Compiling zerovec v0.11.8 Compiling zerotrie v0.2.5 Compiling utf8_iter v1.0.4 Compiling num-traits v0.2.19 Compiling futures-sink v0.3.34 Compiling once_cell v1.21.4 Compiling tracing-core v0.1.36 Compiling zerocopy v0.8.60 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling typenum v1.20.1 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling icu_locale_core v2.3.0 Compiling icu_collections v2.3.0 Compiling scopeguard v1.2.0 Compiling percent-encoding v2.3.2 Compiling lock_api v0.4.14 Compiling form_urlencoded v1.2.2 Compiling tracing v0.1.44 Compiling socket2 v0.6.5 Compiling mio v1.2.4 Compiling openssl-sys v0.9.117 Compiling generic-array v0.14.7 Compiling minimal-lexical v0.2.1 Compiling tokio v1.53.2 Compiling subtle v2.6.1 Compiling icu_provider v2.3.1 Compiling nom v7.1.3 Compiling serde v1.0.229 Compiling bitflags v2.13.2 Compiling icu_normalizer v2.3.0 Compiling icu_properties v2.3.0 Compiling crypto-common v0.1.7 Compiling block-buffer v0.10.4 Compiling parking_lot_core v0.9.12 Compiling deranged v0.5.8 Compiling futures-io v0.3.34 Compiling powerfmt v0.2.1 Compiling time-core v0.1.9 Compiling futures-task v0.3.34 Compiling num-conv v0.2.2 Compiling slab v0.4.12 Compiling parking_lot v0.12.5 Compiling idna_adapter v1.2.2 Compiling idna v1.1.0 Compiling rusticata-macros v4.1.0 Compiling url v2.5.8 Compiling futures-util v0.3.34 Compiling thiserror v1.0.69 Compiling time v0.3.55 Compiling digest v0.10.7 Compiling getrandom v0.2.17 Compiling http v1.5.0 Compiling equivalent v1.0.2 Compiling arrayvec v0.7.8 Compiling ppv-lite86 v0.2.21 Compiling zmij v1.0.23 Compiling rand_core v0.6.4 Compiling getrandom v0.3.4 Compiling http-body v1.1.0 Compiling num-integer v0.1.47 Compiling futures-channel v0.3.34 Compiling base64 v0.21.7 Compiling base64 v0.22.1 Compiling foreign-types-shared v0.1.1 Compiling allocator-api2 v0.2.21 Compiling foldhash v0.1.5 Compiling base64urlsafedata v0.5.5 Compiling foreign-types v0.3.2 Compiling num-bigint v0.4.8 Compiling crossbeam-utils v0.8.23 Compiling rand_core v0.9.5 Compiling serde_json v1.0.151 Compiling hashbrown v0.15.5 Compiling asn1-rs v0.6.2 Compiling getrandom v0.4.3 Compiling cpufeatures v0.2.17 Compiling tower-service v0.3.3 Compiling crc-catalog v2.5.0 Compiling linux-raw-sys v0.12.1 Compiling parking v2.2.1 Compiling ryu v1.0.23 Compiling hashbrown v0.17.1 Compiling rustix v1.1.5 Compiling serde_urlencoded v0.7.1 Compiling event-listener v5.4.2 Compiling indexmap v2.14.2 Compiling hashlink v0.10.0 Compiling oid-registry v0.7.1 Compiling der-parser v9.0.0 Compiling crc v3.4.0 Compiling thiserror v2.0.21 Compiling sha2 v0.10.9 Compiling uuid v1.27.0 Compiling crossbeam-queue v0.3.14 Compiling tokio-stream v0.1.19 Compiling rand_chacha v0.9.0 Compiling httparse v1.10.1 Compiling half v2.7.1 Compiling futures-intrusive v0.5.0 Compiling either v1.18.0 Compiling libsqlite3-sys v0.30.1 Compiling spin v0.9.9 Compiling errno v0.3.14 Compiling lazy_static v1.5.1 Compiling httpdate v1.0.3 Compiling utf8parse v0.2.2 Compiling tower-layer v0.3.3 Compiling sync_wrapper v1.0.2 Compiling atomic-waker v1.1.2 Compiling data-encoding v2.11.1 Compiling anstyle-parse v1.0.0 Compiling hyper v1.11.1 Compiling flume v0.11.1 Compiling sqlx-core v0.8.6 Compiling signal-hook-registry v1.4.8 Compiling serde_cbor_2 v0.13.0 Compiling rand v0.9.5 Compiling x509-parser v0.16.0 Compiling webauthn-rs-proto v0.5.5 Compiling futures-executor v0.3.34 Compiling http-body-util v0.1.5 Compiling rand_chacha v0.3.1 Compiling hex-conservative v0.2.3 Compiling atoi v2.0.0 Compiling aho-corasick v1.1.5 Compiling cursor-icon v1.2.0 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling hex v0.4.3 Compiling regex-syntax v0.8.11 Compiling is_terminal_polyfill v1.70.2 Compiling anstyle-query v1.1.5 Compiling tinyvec v1.13.3 Compiling mime v0.3.17 Compiling base64ct v1.8.3 Compiling unicode-normalization v0.1.25 Compiling password-hash v0.5.0 Compiling sqlx-sqlite v0.8.6 Compiling axum-core v0.5.6 Compiling anstream v1.0.0 Compiling vte v0.15.0 Compiling regex-automata v0.4.18 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling rustix-openpty v0.2.0 Compiling polling v3.11.0 Compiling hyper-util v0.1.21 Compiling signal-hook v0.3.18 Compiling memoffset v0.9.1 Compiling tower v0.5.3 Compiling blake2 v0.10.6 Compiling serde_path_to_error v0.1.20 Compiling home v0.5.12 Compiling unicode-width v0.2.2 Compiling clap_lex v1.1.1 Compiling matchit v0.8.4 Compiling strsim v0.11.1 Compiling argon2 v0.5.3 Compiling nix v0.30.1 Compiling axum v0.8.9 Compiling clap_builder v4.6.7 Compiling sqlx v0.8.6 Compiling bip39 v2.2.2 Compiling alacritty_terminal v0.25.1 Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-shim) Compiling clap v4.6.7 Compiling openssl v0.10.81 Compiling webauthn-attestation-ca v0.5.5 Compiling webauthn-rs-core v0.5.5 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-web-auth/crates/infraternal) Finished `release` profile [optimized] target(s) in 2m 29s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 8053768 bytes server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> TypeScript protocol compiler ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [6.01ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.25ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.67ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.21ms] (pass) split mux header preserves trailing Close [0.22ms] 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 [2139.11ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [8.13ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.16s] ```
Author
Owner

Diagnosed remaining gate401: new schema probe failed at5.86s, showing cancellation dropped the sole in-memory SQLite connection and all tables, not retained socket admission. SQLx0.8.6 Pool::acquire explicitly documents this cancellation behavior and recommends test_before_acquire(false) for a one-connection memory DB with no acquire/connect hooks (https://docs.rs/sqlx/0.8.6/sqlx/struct.Pool.html#method.acquire). Applying that option only to auth test fixture; real auth/verifier/SQLite queries remain, production disk-pool settings unchanged. Retain schema assertion so this cannot masquerade as cookie/admission failure. Full suite rerunning; scales will be remeasured with fixture policy disclosed.

Diagnosed remaining gate401: new schema probe failed at5.86s, showing cancellation dropped the sole in-memory SQLite connection and all tables, not retained socket admission. SQLx0.8.6 Pool::acquire explicitly documents this cancellation behavior and recommends test_before_acquire(false) for a one-connection memory DB with no acquire/connect hooks (https://docs.rs/sqlx/0.8.6/sqlx/struct.Pool.html#method.acquire). Applying that option only to auth test fixture; real auth/verifier/SQLite queries remain, production disk-pool settings unchanged. Retain schema assertion so this cannot masquerade as cookie/admission failure. Full suite rerunning; scales will be remeasured with fixture policy disclosed.
Author
Owner

Test-fixture correction committed54ab29d3b91ba4adaf62d5627196f0d5e6699693; full fast now exits0 with all five Rust rows PASS, server54/0/3 ignored, protocol7/0/34390. Final fixture socket measurement under host load8.07/6.20/5.42 (15 runnable on8 CPUs) got p50=1123us/p99=7911us and failed5ms; no compilation from this job was active. Prior optimized identical production code with checkout ping enabled measured1253/2475us atload2.48/2.94/5.91. Recording the failed loaded attempt; wait for quieter host and rerun without changing budget. Recovery-word test screenshots removed; secret-free production sign-in/terminal screenshots retained.

Test-fixture correction committed54ab29d3b91ba4adaf62d5627196f0d5e6699693; full fast now exits0 with all five Rust rows PASS, server54/0/3 ignored, protocol7/0/34390. Final fixture socket measurement under host load8.07/6.20/5.42 (15 runnable on8 CPUs) got p50=1123us/p99=7911us and failed5ms; no compilation from this job was active. Prior optimized identical production code with checkout ping enabled measured1253/2475us atload2.48/2.94/5.91. Recording the failed loaded attempt; wait for quieter host and rerun without changing budget. Recovery-word test screenshots removed; secret-free production sign-in/terminal screenshots retained.
Author
Owner

Final server fast gate at e4809d49cb; exit 0. Part 1/2, verbatim. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Docs-only commit follows the green source gate.


==> fmt

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

==> test
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 10.19s
     Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c)

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

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

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

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

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

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

running 0 tests

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

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

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

running 0 tests

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

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

running 7 tests
test stream_tests::split_mux_header_preserves_trailing_close ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test stream_tests::all_short_frame_splits_match_direct_decoding ... 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 result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

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

running 57 tests
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... 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::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_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok
test auth::tests::review3_tests::review3_busy_expiry ... ok
test auth::tests::review3_tests::review3_busy_logout ... ok
test auth::tests::review3_tests::review3_busy_recovery ... ok
test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok
test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok
test auth::tests::review3_tests::review3_waiting_handshake_loses_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok
test embedded::regressions::reattach_must_restore_output_credit ... ok
test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok
test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok
test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok
test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok
test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok
test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok
test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok
test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok
test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c)

running 12 tests
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test frame::checks::golden::every_frozen_message ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok

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

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

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

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

   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_plugin_api

running 0 tests

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

   Doc-tests infraternal_plugin_ssh

running 0 tests

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

   Doc-tests infraternal_protocol

running 0 tests

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

   Doc-tests infraternal_server

running 0 tests

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

   Doc-tests infraternal_shim

running 0 tests

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


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

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

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

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:239:1
    │  
239 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
240 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ syn v2.0.119
      ├── asn1-rs-derive v0.5.1
      │   └── asn1-rs v0.6.2
      │       ├── der-parser v9.0.0
      │       │   ├── webauthn-rs-core v0.5.5
      │       │   │   └── webauthn-rs v0.5.5
      │       │   │       └── infraternal-server v0.1.0
      │       │   │           └── infraternal v0.1.0
      │       │   └── x509-parser v0.16.0
      │       │       └── webauthn-rs-core v0.5.5 (*)
      │       ├── oid-registry v0.7.1
      │       │   └── x509-parser v0.16.0 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── asn1-rs-impl v0.2.0
      │   └── asn1-rs v0.6.2 (*)
      ├── openssl-macros v0.1.1
      │   └── openssl v0.10.81
      │       ├── axum-server v0.8.0
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5
      │       │   └── webauthn-rs-core v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      ├── sqlx-macros v0.8.6
      │   └── sqlx v0.8.6
      │       ├── infraternal v0.1.0 (*)
      │       └── infraternal-server v0.1.0 (*)
      ├── sqlx-macros-core v0.8.6
      │   └── sqlx-macros v0.8.6 (*)
      ├── synstructure v0.13.2
      │   └── asn1-rs-derive v0.5.1 (*)
      ├── thiserror-impl v1.0.69
      │   └── thiserror v1.0.69
      │       ├── asn1-rs v0.6.2 (*)
      │       ├── webauthn-rs-core v0.5.5 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── tracing-attributes v0.1.31
      │   └── tracing v0.1.44
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── axum-core v0.5.6
      │       │   └── axum v0.8.9 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6
      │       │   ├── sqlx v0.8.6 (*)
      │       │   ├── sqlx-macros v0.8.6 (*)
      │       │   ├── sqlx-macros-core v0.8.6 (*)
      │       │   └── sqlx-sqlite v0.8.6
      │       │       ├── sqlx v0.8.6 (*)
      │       │       └── sqlx-macros-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tracing-subscriber v0.3.23
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5 (*)
      │       ├── webauthn-rs v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      └── zerocopy-derive v0.8.60
          └── zerocopy v0.8.60
              ├── half v2.7.1
              │   ├── ciborium-ll v0.2.2
              │   │   └── ciborium v0.2.2
              │   │       └── criterion v0.7.0
              │   │           └── (dev) infraternal-protocol v0.1.0
              │   │               ├── infraternal-fuzz v0.1.0
              │   │               └── infraternal-server v0.1.0 (*)
              │   └── serde_cbor_2 v0.13.0
              │       ├── (dev) 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-fuzz v0.1.0
      │       │       └── infraternal-server v0.1.0
      │       │           └── infraternal v0.1.0
      │       └── infraternal v0.1.0 (*)
      ├── displaydoc v0.2.7
      │   ├── asn1-rs v0.6.2
      │   │   ├── der-parser v9.0.0
      │   │   │   ├── webauthn-rs-core v0.5.5
      │   │   │   │   └── webauthn-rs v0.5.5
      │   │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   │   └── x509-parser v0.16.0
      │   │   │       └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── oid-registry v0.7.1
      │   │   │   └── x509-parser v0.16.0 (*)
      │   │   └── x509-parser v0.16.0 (*)
      │   ├── der-parser v9.0.0 (*)
      │   ├── icu_collections v2.3.0
      │   │   ├── icu_normalizer v2.3.0
      │   │   │   └── idna_adapter v1.2.2
      │   │   │       └── idna v1.1.0
      │   │   │           └── url v2.5.8
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   └── infraternal-server v0.1.0 (*)
      │   │   │               │   ├── sqlx-macros v0.8.6
      │   │   │               │   │   └── sqlx v0.8.6 (*)
      │   │   │               │   ├── sqlx-macros-core v0.8.6
      │   │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │   │   │               │   └── sqlx-sqlite v0.8.6
      │   │   │               │       ├── sqlx v0.8.6 (*)
      │   │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-sqlite v0.8.6 (*)
      │   │   │               ├── webauthn-rs v0.5.5 (*)
      │   │   │               ├── webauthn-rs-core v0.5.5 (*)
      │   │   │               └── webauthn-rs-proto v0.5.5
      │   │   │                   └── webauthn-rs-core v0.5.5 (*)
      │   │   └── icu_properties v2.3.0
      │   │       └── idna_adapter v1.2.2 (*)
      │   ├── icu_locale_core v2.3.0
      │   │   ├── icu_properties v2.3.0 (*)
      │   │   └── icu_provider v2.3.1
      │   │       ├── icu_normalizer v2.3.0 (*)
      │   │       └── icu_properties v2.3.0 (*)
      │   ├── icu_properties v2.3.0 (*)
      │   ├── icu_provider v2.3.1 (*)
      │   ├── tinystr v0.8.4
      │   │   └── icu_locale_core v2.3.0 (*)
      │   └── zerotrie v0.2.5
      │       ├── icu_properties v2.3.0 (*)
      │       └── icu_provider v2.3.1 (*)
      ├── futures-macro v0.3.34
      │   └── futures-util v0.3.34
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── futures-executor v0.3.34
      │       │   └── sqlx-sqlite v0.8.6 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── js-sys v0.3.106
      │       │   └── web-sys v0.3.106
      │       │       └── plotters v0.3.7
      │       │           └── criterion v0.7.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       └── tower-http v0.6.11
      │           └── infraternal-server v0.1.0 (*)
      ├── serde_derive v1.0.229
      │   ├── serde v1.0.229
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
Final server fast gate at e4809d49cbd6aea76bc0393732d2e38cb0d76a19; exit 0. Part 1/2, verbatim. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Docs-only commit follows the green source gate. ```text ==> fmt ==> clippy Checking infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.29s ==> test Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `test` profile [unoptimized + debuginfo] target(s) in 10.19s Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c) running 2 tests test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-8e53c92b1f367f87) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test user_scope_survives_parent_unit_stop ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-c198a78833f77637) running 7 tests test stream_tests::split_mux_header_preserves_trailing_close ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test stream_tests::all_short_frame_splits_match_direct_decoding ... 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 result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/debug/deps/infraternal_server-495795ebba6d6acb) running 57 tests test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... 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::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_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok test auth::tests::review3_tests::review3_busy_expiry ... ok test auth::tests::review3_tests::review3_busy_logout ... ok test auth::tests::review3_tests::review3_busy_recovery ... ok test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok test auth::tests::review3_tests::review3_waiting_handshake_loses_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok test embedded::regressions::reattach_must_restore_output_credit ... ok test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test result: ok. 54 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 66.32s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c) running 12 tests test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test frame::checks::tests::golden_and_fragmented ... ok test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test frame::checks::golden::every_frozen_message ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.23s Running tests/detach.rs (target/debug/deps/detach-9f5d4ed474ba6700) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s 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_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:26:1 │ 26 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 27 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── alacritty_terminal v0.25.1 │ └── infraternal-shim v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:93:1 │ 93 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 94 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 95 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-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/t-server/Cargo.lock:99:1 │ 99 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 100 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 ├── h2 v0.4.19 │ └── hyper v1.11.1 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ └── hyper-util v0.1.21 │ ├── axum v0.8.9 (*) │ └── axum-server v0.8.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:193:1 │ 193 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 194 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:195:1 │ 195 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 196 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:197:1 │ 197 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 198 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:199:1 │ 199 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 200 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:239:1 │ 239 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 240 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ ├── sqlx-macros v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tracing-subscriber v0.3.23 │ │ └── infraternal-server v0.1.0 (*) │ ├── webauthn-attestation-ca v0.5.5 (*) │ ├── webauthn-rs v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) └── zerocopy-derive v0.8.60 └── zerocopy v0.8.60 ├── half v2.7.1 │ ├── ciborium-ll v0.2.2 │ │ └── ciborium v0.2.2 │ │ └── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 (*) │ └── serde_cbor_2 v0.13.0 │ ├── (dev) 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-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── displaydoc v0.2.7 │ ├── asn1-rs v0.6.2 │ │ ├── der-parser v9.0.0 │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── futures-macro v0.3.34 │ └── futures-util v0.3.34 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 │ └── infraternal-server v0.1.0 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) ```
Author
Owner

Final server fast gate at e4809d49cb; exit 0. Part 2/2, verbatim. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Docs-only commit follows the green source gate.

      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── base64urlsafedata v0.5.5
      │   │   │   ├── webauthn-attestation-ca v0.5.5
      │   │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2
      │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── axum-server v0.8.0
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   ├── itertools v0.13.0
      │   │   │   │   ├── criterion v0.7.0 (*)
      │   │   │   │   └── criterion-plot v0.6.0
      │   │   │   │       └── criterion v0.7.0 (*)
      │   │   │   ├── rayon v1.12.0
      │   │   │   │   └── criterion v0.7.0 (*)
      │   │   │   ├── sqlx-core v0.8.6 (*)
      │   │   │   └── sqlx-macros-core v0.8.6 (*)
      │   │   ├── infraternal-server v0.1.0 (*)
      │   │   ├── serde_cbor_2 v0.13.0
      │   │   │   ├── (dev) 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 (*)
      │   │   ├── vte v0.15.0
      │   │   │   ├── alacritty_terminal v0.25.1 (*)
      │   │   │   ├── infraternal-shim v0.1.0 (*)
      │   │   │   └── vt100 v0.16.2
      │   │   │       ├── (dev) infraternal v0.1.0 (*)
      │   │   │       └── (dev) infraternal-shim v0.1.0 (*)
      │   │   ├── webauthn-attestation-ca v0.5.5 (*)
      │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   └── url v2.5.8 (*)
      ├── synstructure v0.14.0
      │   ├── yoke-derive v0.8.4
      │   │   └── yoke v0.8.3
      │   │       ├── icu_collections v2.3.0 (*)
      │   │       ├── icu_provider v2.3.1 (*)
      │   │       ├── zerotrie v0.2.5 (*)
      │   │       └── zerovec v0.11.8
      │   │           ├── icu_collections v2.3.0 (*)
      │   │           ├── icu_locale_core v2.3.0 (*)
      │   │           ├── icu_normalizer v2.3.0 (*)
      │   │           ├── icu_properties v2.3.0 (*)
      │   │           ├── icu_provider v2.3.1 (*)
      │   │           ├── potential_utf v0.1.6
      │   │           │   └── icu_collections v2.3.0 (*)
      │   │           └── tinystr v0.8.4 (*)
      │   └── zerofrom-derive v0.1.8
      │       └── zerofrom v0.1.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── yoke v0.8.3 (*)
      │           ├── zerotrie v0.2.5 (*)
      │           └── zerovec v0.11.8 (*)
      ├── thiserror-impl v2.0.21
      │   └── thiserror v2.0.21
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       └── tungstenite v0.29.0
      │           └── tokio-tungstenite v0.29.0 (*)
      ├── tokio-macros v2.7.2
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9 (*)
      │       ├── axum-server v0.8.0 (*)
      │       ├── fs-err v3.3.2
      │       │   └── axum-server v0.8.0 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── hyper v1.11.1 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── sqlx-core v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0 (*)
      │       ├── tokio-util v0.7.19
      │       │   ├── h2 v0.4.19 (*)
      │       │   └── tower-http v0.6.11 (*)
      │       ├── tower v0.5.3 (*)
      │       └── tower-http v0.6.11 (*)
      ├── wasm-bindgen-macro-support v0.2.129
      │   └── wasm-bindgen-macro v0.2.129
      │       └── wasm-bindgen v0.2.129
      │           ├── js-sys v0.3.106 (*)
      │           ├── plotters v0.3.7 (*)
      │           └── web-sys v0.3.106 (*)
      ├── yoke-derive v0.8.4 (*)
      ├── zerofrom-derive v0.1.8 (*)
      └── zerovec-derive v0.11.6
          └── zerovec v0.11.8 (*)

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:300:1
    │  
300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.59.0
      └── alacritty_terminal v0.25.1
          └── infraternal-shim v0.1.0
              ├── infraternal v0.1.0
              └── infraternal-fuzz v0.1.0
    ├ 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-fuzz v0.1.0
      │               │       └── infraternal-server v0.1.0
      │               │           └── infraternal v0.1.0
      │               └── infraternal v0.1.0 (*)
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   ├── rustix v1.1.5
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── polling v3.11.0
      │   │   │   └── alacritty_terminal v0.25.1 (*)
      │   │   └── rustix-openpty v0.2.0
      │   │       └── alacritty_terminal v0.25.1 (*)
      │   ├── rustix-openpty v0.2.0 (*)
      │   └── signal-hook-registry v1.4.8
      │       ├── signal-hook v0.3.18
      │       │   └── alacritty_terminal v0.25.1 (*)
      │       └── tokio v1.53.2
      │           ├── axum v0.8.9
      │           │   └── 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 (*)
      │           ├── hyper v1.11.1 (*)
      │           ├── hyper-util v0.1.21 (*)
      │           ├── infraternal v0.1.0 (*)
      │           ├── infraternal-server v0.1.0 (*)
      │           ├── sqlx-core v0.8.6
      │           │   ├── sqlx v0.8.6
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── infraternal-server v0.1.0 (*)
      │           │   ├── sqlx-macros v0.8.6
      │           │   │   └── sqlx v0.8.6 (*)
      │           │   ├── sqlx-macros-core v0.8.6
      │           │   │   └── sqlx-macros v0.8.6 (*)
      │           │   └── sqlx-sqlite v0.8.6
      │           │       ├── sqlx v0.8.6 (*)
      │           │       └── sqlx-macros-core v0.8.6 (*)
      │           ├── sqlx-macros-core v0.8.6 (*)
      │           ├── tokio-openssl v0.6.5
      │           │   └── axum-server v0.8.0 (*)
      │           ├── tokio-stream v0.1.19
      │           │   └── sqlx-core v0.8.6 (*)
      │           ├── tokio-tungstenite v0.29.0
      │           │   ├── 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 (*)
      ├── home v0.5.12
      │   └── alacritty_terminal v0.25.1 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2 (*)
      ├── miow v0.6.1
      │   └── alacritty_terminal v0.25.1 (*)
      ├── nu-ansi-term v0.50.3
      │   └── tracing-subscriber v0.3.23
      │       └── infraternal-server v0.1.0 (*)
      ├── polling v3.11.0 (*)
      ├── rustix v1.1.5 (*)
      ├── socket2 v0.6.5
      │   └── 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 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 13.32s
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: 14799616 bytes
    Finished `release` profile [optimized] target(s) in 0.27s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 12394720 bytes
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

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

==> TypeScript protocol compiler

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

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

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

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [1.98s]
Final server fast gate at e4809d49cbd6aea76bc0393732d2e38cb0d76a19; exit 0. Part 2/2, verbatim. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Docs-only commit follows the green source gate. ```text │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.0 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── itertools v0.13.0 │ │ │ │ ├── criterion v0.7.0 (*) │ │ │ │ └── criterion-plot v0.6.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── rayon v1.12.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── sqlx-core v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── (dev) 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 (*) │ │ ├── vte v0.15.0 │ │ │ ├── alacritty_terminal v0.25.1 (*) │ │ │ ├── infraternal-shim v0.1.0 (*) │ │ │ └── vt100 v0.16.2 │ │ │ ├── (dev) infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-shim v0.1.0 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ └── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── axum-server v0.8.0 (*) │ ├── fs-err v3.3.2 │ │ └── axum-server v0.8.0 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 (*) │ ├── tower v0.5.3 (*) │ └── tower-http v0.6.11 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:242:1 │ 242 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 243 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:244:1 │ 244 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 245 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:246:1 │ 246 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 247 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:300:1 │ 300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ 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-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ ├── signal-hook v0.3.18 │ │ └── alacritty_terminal v0.25.1 (*) │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ └── 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 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── sqlx-macros v0.8.6 │ │ │ └── sqlx v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 │ │ │ └── sqlx-macros v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── 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 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── nu-ansi-term v0.50.3 │ └── tracing-subscriber v0.3.23 │ └── infraternal-server v0.1.0 (*) ├── polling v3.11.0 (*) ├── rustix v1.1.5 (*) ├── socket2 v0.6.5 │ └── 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 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Blocking waiting for file lock on build directory Finished `release` profile [optimized] target(s) in 13.32s 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: 14799616 bytes Finished `release` profile [optimized] target(s) in 0.27s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 12394720 bytes server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> TypeScript protocol compiler ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [7.20ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.17ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.62ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.84ms] (pass) split mux header preserves trailing Close [0.23ms] 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 [1939.00ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [6.18ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [1.98s] ```
Author
Owner

Final verification: server e4809d49cb, client 58040dfd59. Auth/server checklist B1/S1/S2/N1 completed; evidence in docs/verification/focused-auth3.md. Native and Playwright outputs, final scale repetitions and retained loaded attempts follow verbatim. No thresholds changed. Production code is unchanged between scale attempts; only in-memory test checkout-ping policy changed to prevent cancellation dropping the database. No concurrent compilation; load/runnable counts are in the measurements.

native-browser.log:

    Blocking waiting for file lock on build directory
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.03s
bun install v1.4.2 (744846f84)

Checked 5 installs across 7 packages (no changes) [1.00ms]
Bundled 11 modules in 7ms

  entropy.js  38.28 KB  (entry point)

supported: server rejected native browser assertion without UV
supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected
unsupported-prf: abort before finish; owner not created
nonresident: browser refused registration; owner not created
no-uv: browser refused registration; owner not created
auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55)

client-browser-final.log:

[WebServer] $ bun run build.ts
[WebServer] built main.js, chunk-sxzajhbf.js, chunk-bvv9xq2t.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4173

Running 4 tests using 1 worker

(node:2678281) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ONBOARDING_SCREENSHOTS /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-desktop.png
  ✓  1 test/onboarding.spec.ts:9:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (13.7s)
S1 probe result (500 keys)
Painted echoes: 500 / 500
p50: 15.30 ms
p95: 15.90 ms
p99: 16.60 ms
keydown → onData: p50 0.00 ms, p99 0.10 ms
onData → encode: p50 0.00 ms, p99 0.20 ms
encode → ws.send: p50 0.10 ms, p99 0.20 ms
ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms
decode → term.write: p50 0.00 ms, p99 0.10 ms
term.write → callback: p50 14.40 ms, p99 15.70 ms
callback → paint rAF: p50 0.00 ms, p99 0.10 ms
ws.send → ws.onmessage: p50 0.70 ms, p99 1.10 ms (includes the double and both local socket legs)
Time to resume: 79.50 ms
S1 per-hop attribution (500 keys)
Clock alignment: -20574.799 ms offset; best HTTP RTT 2.700 ms (cross-process one-way splits assume a symmetric local path).
Trace coverage: 500 browser keys, 2004 double marks.
keydown → onData: p50 0.00 ms, p99 0.10 ms (500 keys)
onData → encode: p50 0.00 ms, p99 0.20 ms (500 keys)
encode → ws.send: p50 0.10 ms, p99 0.20 ms (500 keys)
ws.send → double receive: p50 0.49 ms, p99 0.67 ms (500 keys)
double receive → decode: p50 0.04 ms, p99 0.12 ms (500 keys)
double decode → echo encode: p50 0.05 ms, p99 0.13 ms (500 keys)
double echo encode → send: p50 0.00 ms, p99 0.02 ms (500 keys)
double echo send → ws.onmessage: p50 0.11 ms, p99 0.36 ms (500 keys)
ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms (500 keys)
decode → term.write: p50 0.00 ms, p99 0.10 ms (500 keys)
term.write → write callback: p50 14.40 ms, p99 15.70 ms (500 keys)
write callback → paint rAF: p50 0.00 ms, p99 0.10 ms (500 keys)
S1 screenshots: /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-terminal.png, /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-probe.png
  ✓  2 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (15.7s)
[WebServer] test-double setup denied: owner=false token-match=false username-valid=true display-name-valid=true
  ✓  3 test/terminal.spec.ts:261:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (2.5s)
Access render upper bound (setup, n=30, local production build): p50 142.59999999403954 ms, p99 466.30000001192093 ms
Access first-contentful-paint (setup, n=30, local production build): p50 65.70000000298023 ms, p99 366.90000000596046 ms
Access render upper bound (signin, n=30, local production build): p50 127 ms, p99 154.5 ms
Access first-contentful-paint (signin, n=30, local production build): p50 68.70000000298023 ms, p99 90.90000000596046 ms
  ✓  4 test/terminal.spec.ts:294:1 › access screens render within the local first-paint budget (11.1s)

  4 passed (44.9s)

socket-scale-repeat.log:


running 1 test
socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=1160us p99=2130us arch=x86_64 load=7.26 6.50 5.75 5/790 2771469
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ok

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

auth-scale-repeat.log:


running 1 test
auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=7.40 6.54 5.77 4/756 2771682
challenge mode=identified pending=0..200 n=200 p50_us=67 p99_us=159 rss_before_kib=12992 rss_after_kib=13240
challenge mode=identified pending=824..1024 n=200 p50_us=52 p99_us=147 rss_before_kib=14004 rss_after_kib=14448
challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=20 rss_before_kib=14452 rss_after_kib=14452
challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=21 rss_before_kib=14452 rss_after_kib=14452
pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations)
signed discoverable finish pending=1024 n=200 p50_us=490 p99_us=4149 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier)
test auth::tests::discoverable_latency_at_pending_capacity ... ok

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

writer-scale-repeat.log:


running 1 test
writer authority: connections=16 writers=512 n=3200 p50_us=177 p99_us=388 SQLite=memory arch=x86_64 load=7.40 6.54 5.77 3/738 2771695
test websocket::writer_tests::writer_admission_at_user_capacity ... ok

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

socket-scale-final.log:

    Finished `release` profile [optimized] target(s) in 0.48s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=1123us p99=7911us arch=x86_64 load=8.07 6.20 5.42 15/800 2725017

thread 'auth::tests::socket_tests::socket_authority_latency_at_user_capacity' (2725014) panicked at crates/infraternal-server/src/auth/socket_tests.rs:104:5:
authority/control overhead exceeds local 5ms budget
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... FAILED

failures:

failures:
    auth::tests::socket_tests::socket_authority_latency_at_user_capacity

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.67s

error: test failed, to rerun pass `-p infraternal-server --lib`

auth-scale-final.log:

    Finished `release` profile [optimized] target(s) in 0.38s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=10.24 7.16 5.79 12/921 2742875
challenge mode=identified pending=0..200 n=200 p50_us=41 p99_us=2598 rss_before_kib=13092 rss_after_kib=13412
challenge mode=identified pending=824..1024 n=200 p50_us=34 p99_us=98 rss_before_kib=14180 rss_after_kib=14624
challenge mode=discoverable pending=0..200 n=200 p50_us=3 p99_us=21 rss_before_kib=14624 rss_after_kib=14624
challenge mode=discoverable pending=824..1024 n=200 p50_us=5 p99_us=7 rss_before_kib=14624 rss_after_kib=14624
pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations)
signed discoverable finish pending=1024 n=200 p50_us=247 p99_us=393 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier)
test auth::tests::discoverable_latency_at_pending_capacity ... ok

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

Final verification: server e4809d49cbd6aea76bc0393732d2e38cb0d76a19, client 58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Auth/server checklist B1/S1/S2/N1 completed; evidence in docs/verification/focused-auth3.md. Native and Playwright outputs, final scale repetitions and retained loaded attempts follow verbatim. No thresholds changed. Production code is unchanged between scale attempts; only in-memory test checkout-ping policy changed to prevent cancellation dropping the database. No concurrent compilation; load/runnable counts are in the measurements. native-browser.log: ```text Blocking waiting for file lock on build directory Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.03s bun install v1.4.2 (744846f84) Checked 5 installs across 7 packages (no changes) [1.00ms] Bundled 11 modules in 7ms entropy.js 38.28 KB (entry point) supported: server rejected native browser assertion without UV supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected unsupported-prf: abort before finish; owner not created nonresident: browser refused registration; owner not created no-uv: browser refused registration; owner not created auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55) ``` client-browser-final.log: ```text [WebServer] $ bun run build.ts [WebServer] built main.js, chunk-sxzajhbf.js, chunk-bvv9xq2t.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4173 Running 4 tests using 1 worker (node:2678281) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ONBOARDING_SCREENSHOTS /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-desktop.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-desktop.png ✓ 1 test/onboarding.spec.ts:9:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (13.7s) S1 probe result (500 keys) Painted echoes: 500 / 500 p50: 15.30 ms p95: 15.90 ms p99: 16.60 ms keydown → onData: p50 0.00 ms, p99 0.10 ms onData → encode: p50 0.00 ms, p99 0.20 ms encode → ws.send: p50 0.10 ms, p99 0.20 ms ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms decode → term.write: p50 0.00 ms, p99 0.10 ms term.write → callback: p50 14.40 ms, p99 15.70 ms callback → paint rAF: p50 0.00 ms, p99 0.10 ms ws.send → ws.onmessage: p50 0.70 ms, p99 1.10 ms (includes the double and both local socket legs) Time to resume: 79.50 ms S1 per-hop attribution (500 keys) Clock alignment: -20574.799 ms offset; best HTTP RTT 2.700 ms (cross-process one-way splits assume a symmetric local path). Trace coverage: 500 browser keys, 2004 double marks. keydown → onData: p50 0.00 ms, p99 0.10 ms (500 keys) onData → encode: p50 0.00 ms, p99 0.20 ms (500 keys) encode → ws.send: p50 0.10 ms, p99 0.20 ms (500 keys) ws.send → double receive: p50 0.49 ms, p99 0.67 ms (500 keys) double receive → decode: p50 0.04 ms, p99 0.12 ms (500 keys) double decode → echo encode: p50 0.05 ms, p99 0.13 ms (500 keys) double echo encode → send: p50 0.00 ms, p99 0.02 ms (500 keys) double echo send → ws.onmessage: p50 0.11 ms, p99 0.36 ms (500 keys) ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms (500 keys) decode → term.write: p50 0.00 ms, p99 0.10 ms (500 keys) term.write → write callback: p50 14.40 ms, p99 15.70 ms (500 keys) write callback → paint rAF: p50 0.00 ms, p99 0.10 ms (500 keys) S1 screenshots: /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-terminal.png, /home/kayg/Developer/infraternal/.worktrees/t-web-auth/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-probe.png ✓ 2 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (15.7s) [WebServer] test-double setup denied: owner=false token-match=false username-valid=true display-name-valid=true ✓ 3 test/terminal.spec.ts:261:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (2.5s) Access render upper bound (setup, n=30, local production build): p50 142.59999999403954 ms, p99 466.30000001192093 ms Access first-contentful-paint (setup, n=30, local production build): p50 65.70000000298023 ms, p99 366.90000000596046 ms Access render upper bound (signin, n=30, local production build): p50 127 ms, p99 154.5 ms Access first-contentful-paint (signin, n=30, local production build): p50 68.70000000298023 ms, p99 90.90000000596046 ms ✓ 4 test/terminal.spec.ts:294:1 › access screens render within the local first-paint budget (11.1s) 4 passed (44.9s) ``` socket-scale-repeat.log: ```text running 1 test socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=1160us p99=2130us arch=x86_64 load=7.26 6.50 5.75 5/790 2771469 test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.42s ``` auth-scale-repeat.log: ```text running 1 test auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=7.40 6.54 5.77 4/756 2771682 challenge mode=identified pending=0..200 n=200 p50_us=67 p99_us=159 rss_before_kib=12992 rss_after_kib=13240 challenge mode=identified pending=824..1024 n=200 p50_us=52 p99_us=147 rss_before_kib=14004 rss_after_kib=14448 challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=20 rss_before_kib=14452 rss_after_kib=14452 challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=21 rss_before_kib=14452 rss_after_kib=14452 pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations) signed discoverable finish pending=1024 n=200 p50_us=490 p99_us=4149 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier) test auth::tests::discoverable_latency_at_pending_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.30s ``` writer-scale-repeat.log: ```text running 1 test writer authority: connections=16 writers=512 n=3200 p50_us=177 p99_us=388 SQLite=memory arch=x86_64 load=7.40 6.54 5.77 3/738 2771695 test websocket::writer_tests::writer_admission_at_user_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.74s ``` socket-scale-final.log: ```text Finished `release` profile [optimized] target(s) in 0.48s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=1123us p99=7911us arch=x86_64 load=8.07 6.20 5.42 15/800 2725017 thread 'auth::tests::socket_tests::socket_authority_latency_at_user_capacity' (2725014) panicked at crates/infraternal-server/src/auth/socket_tests.rs:104:5: authority/control overhead exceeds local 5ms budget note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... FAILED failures: failures: auth::tests::socket_tests::socket_authority_latency_at_user_capacity test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.67s error: test failed, to rerun pass `-p infraternal-server --lib` ``` auth-scale-final.log: ```text Finished `release` profile [optimized] target(s) in 0.38s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=10.24 7.16 5.79 12/921 2742875 challenge mode=identified pending=0..200 n=200 p50_us=41 p99_us=2598 rss_before_kib=13092 rss_after_kib=13412 challenge mode=identified pending=824..1024 n=200 p50_us=34 p99_us=98 rss_before_kib=14180 rss_after_kib=14624 challenge mode=discoverable pending=0..200 n=200 p50_us=3 p99_us=21 rss_before_kib=14624 rss_after_kib=14624 challenge mode=discoverable pending=824..1024 n=200 p50_us=5 p99_us=7 rss_before_kib=14624 rss_after_kib=14624 pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations) signed discoverable finish pending=1024 n=200 p50_us=247 p99_us=393 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier) test auth::tests::discoverable_latency_at_pending_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.23s ```
Author
Owner

Finished F1–F3. Server head e4809d49cb; client head 58040dfd59. Test-first probes, per-finding fixes, performance correction, fixture correction and docs are separate commits. Both fast gates exit 0; full verbatim output is in the ordered comments above (client previously posted), along with native 4/4, Playwright 4/4 and release-scale output. Final socket p50/p99 1160/2130us at 16×200; busy revocation below 100ms with no late success/row. Checklist and evidence: docs/verification/focused-auth3.md. Exact matching page-memory id, no DEK proof, as directed. Loaded failures retained; no budget weakened. Safe production screenshots remain in client test-results for independent review. No push/deploy, no t-web edits, no issue closed. Own scratch targets removed on completion.

Fast gate summary, verbatim (both worktrees):

| Rust gate                 | Result       |
|---------------------------|--------------|
| fmt                       | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | PASS         |
Finished F1–F3. Server head e4809d49cbd6aea76bc0393732d2e38cb0d76a19; client head 58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Test-first probes, per-finding fixes, performance correction, fixture correction and docs are separate commits. Both fast gates exit 0; full verbatim output is in the ordered comments above (client previously posted), along with native 4/4, Playwright 4/4 and release-scale output. Final socket p50/p99 1160/2130us at 16×200; busy revocation below 100ms with no late success/row. Checklist and evidence: docs/verification/focused-auth3.md. Exact matching page-memory id, no DEK proof, as directed. Loaded failures retained; no budget weakened. Safe production screenshots remain in client test-results for independent review. No push/deploy, no t-web edits, no issue closed. Own scratch targets removed on completion. Fast gate summary, verbatim (both worktrees): ```text | Rust gate | Result | |---------------------------|--------------| | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | ```
Author
Owner

Starting read-only review-auth4: server t-server base f1b996c11c, head e4809d49cb; client t-web-auth base faa31544c6, head 58040dfd59. Reviewing original reviewer tests, cross-tab transaction variants, delayed/no-reply busy authority, handshake revocation, native/Playwright/1024 scale and fast gates. Disposable checkouts and logs under HOME/.cache/codex-scratch/review-auth4; no source changes/commits/push/deploy.

Starting read-only review-auth4: server t-server base f1b996c11cf4b25dcb08ba2e7f68ab671b88dbb2, head e4809d49cbd6aea76bc0393732d2e38cb0d76a19; client t-web-auth base faa31544c6a26f2aec743e526fb78c1499eaee28, head 58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Reviewing original reviewer tests, cross-tab transaction variants, delayed/no-reply busy authority, handshake revocation, native/Playwright/1024 scale and fast gates. Disposable checkouts and logs under HOME/.cache/codex-scratch/review-auth4; no source changes/commits/push/deploy.
Author
Owner

review-auth4 completed original unmodified audit_cases.rs at server e4809d4: 7 passed, 0 failed. Real SQLite/verifier/WebSocket/Unix backend. Empty completion returns 400; session/add-start remain401. Busy logout/recovery/expiry produce no late success and zero terminal rows; revoked Hello no Welcome. Original log summary (verbatim):

test auth::tests::original_review3::review3_busy_expiry ... busy expiry -> still open at 27ms=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::original_review3::review3_busy_logout ... busy logout -> still open at 1ms=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::original_review3::review3_busy_recovery ... busy recovery -> still open at 6ms=false; success Result after revocation=false; terminal rows committed=0
idle expiry close observed at 2000ms (2-second deadline with second-resolution clock)
idle recovery commit close observed at 682us
test auth::tests::original_review3::review3_revoked_handshake_must_not_welcome ... logout committed before client Hello -> Welcome issued=false
test auth::tests::original_review3::review3_unwrap_cannot_be_skipped ... no unwrap -> unlock-finish=400 Bad Request, session=401 Unauthorized, fresh add-start=401 Unauthorized
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 74 filtered out; finished in 17.86s
review-auth4 completed original unmodified audit_cases.rs at server e4809d4: 7 passed, 0 failed. Real SQLite/verifier/WebSocket/Unix backend. Empty completion returns 400; session/add-start remain401. Busy logout/recovery/expiry produce no late success and zero terminal rows; revoked Hello no Welcome. Original log summary (verbatim): ```text test auth::tests::original_review3::review3_busy_expiry ... busy expiry -> still open at 27ms=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::original_review3::review3_busy_logout ... busy logout -> still open at 1ms=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::original_review3::review3_busy_recovery ... busy recovery -> still open at 6ms=false; success Result after revocation=false; terminal rows committed=0 idle expiry close observed at 2000ms (2-second deadline with second-resolution clock) idle recovery commit close observed at 682us test auth::tests::original_review3::review3_revoked_handshake_must_not_welcome ... logout committed before client Hello -> Welcome issued=false test auth::tests::original_review3::review3_unwrap_cannot_be_skipped ... no unwrap -> unlock-finish=400 Bad Request, session=401 Unauthorized, fresh add-start=401 Unauthorized test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 74 filtered out; finished in 17.86s ```
Author
Owner

review-auth4 matrix at e4809d4: 12/12 busy variants PASS (logout/recovery/expiry ×100/1500/10000ms/never), no late success or row. Transaction order/stale/consumed-id/reload/expiry variants PASS. Long-open check fails: live valid backend reply delayed10s gets failure at5s and zero rows (review4_legitimate_10000, websocket.rs:42/1045). This matches the new documented5s policy; it does not satisfy the requested longer legitimate-open check. No real slow-host claim. Matrix summary, verbatim:

test auth::tests::review4::review4_busy_expiry_100 ... busy expiry backend_delay=Some(100) -> close 27133us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_expiry_10000 ... busy expiry backend_delay=Some(10000) -> close 34322us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_expiry_1500 ... busy expiry backend_delay=Some(1500) -> close 28005us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_expiry_never ... busy expiry backend_delay=None -> close 26031us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_100 ... busy logout backend_delay=Some(100) -> close 807us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_10000 ... busy logout backend_delay=Some(10000) -> close 645us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_1500 ... busy logout backend_delay=Some(1500) -> close 4602us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_never ... busy logout backend_delay=None -> close 795us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_100 ... busy recovery backend_delay=Some(100) -> close 1563us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_10000 ... busy recovery backend_delay=Some(10000) -> close 731us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_1500 ... busy recovery backend_delay=Some(1500) -> close 1159us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_never ... busy recovery backend_delay=None -> close 1401us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_legitimate_100 ... legitimate backend_delay=100ms: success=true, reply=103ms, committed rows=1
test auth::tests::review4::review4_legitimate_10000 ... legitimate backend_delay=10000ms: success=false, reply=5002ms, committed rows=0
test auth::tests::review4::review4_legitimate_1500 ... legitimate backend_delay=1500ms: success=true, reply=1502ms, committed rows=1
test auth::tests::review4::review4_legitimate_4500 ... legitimate backend_delay=4500ms: success=true, reply=4506ms, committed rows=1
test auth::tests::review4::review4_transaction_variants ... transaction order reverse=false: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending
transaction order reverse=true: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending
pending expiry: matching completion denied, restricted reload denied, row cleaned
test result: FAILED. 16 passed; 1 failed; 0 ignored; 0 measured; 64 filtered out; finished in 81.29s
review-auth4 matrix at e4809d4: 12/12 busy variants PASS (logout/recovery/expiry ×100/1500/10000ms/never), no late success or row. Transaction order/stale/consumed-id/reload/expiry variants PASS. Long-open check fails: live valid backend reply delayed10s gets failure at5s and zero rows (review4_legitimate_10000, websocket.rs:42/1045). This matches the new documented5s policy; it does not satisfy the requested longer legitimate-open check. No real slow-host claim. Matrix summary, verbatim: ```text test auth::tests::review4::review4_busy_expiry_100 ... busy expiry backend_delay=Some(100) -> close 27133us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_expiry_10000 ... busy expiry backend_delay=Some(10000) -> close 34322us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_expiry_1500 ... busy expiry backend_delay=Some(1500) -> close 28005us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_expiry_never ... busy expiry backend_delay=None -> close 26031us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_100 ... busy logout backend_delay=Some(100) -> close 807us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_10000 ... busy logout backend_delay=Some(10000) -> close 645us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_1500 ... busy logout backend_delay=Some(1500) -> close 4602us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_never ... busy logout backend_delay=None -> close 795us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_100 ... busy recovery backend_delay=Some(100) -> close 1563us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_10000 ... busy recovery backend_delay=Some(10000) -> close 731us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_1500 ... busy recovery backend_delay=Some(1500) -> close 1159us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_never ... busy recovery backend_delay=None -> close 1401us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_legitimate_100 ... legitimate backend_delay=100ms: success=true, reply=103ms, committed rows=1 test auth::tests::review4::review4_legitimate_10000 ... legitimate backend_delay=10000ms: success=false, reply=5002ms, committed rows=0 test auth::tests::review4::review4_legitimate_1500 ... legitimate backend_delay=1500ms: success=true, reply=1502ms, committed rows=1 test auth::tests::review4::review4_legitimate_4500 ... legitimate backend_delay=4500ms: success=true, reply=4506ms, committed rows=1 test auth::tests::review4::review4_transaction_variants ... transaction order reverse=false: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending transaction order reverse=true: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending pending expiry: matching completion denied, restricted reload denied, row cleaned test result: FAILED. 16 passed; 1 failed; 0 ignored; 0 measured; 64 filtered out; finished in 81.29s ```
Author
Owner

review-auth4 R1 P1: delayed successful completion response still crosses tabs. A native unwrap + real matching completion accepted; hold response. B already at sign-in -> new cookie, failed unwrap/logout429, session401. Release A reply -> Set-Cookie restores A active cookie; B session200/reload terminal. In-memory cookie comparison restoredA=true; direct original B cookie remains401 (no B-row activation). Reproduced twice, production Chromium149/real router+SQLite. Failing response-race.mjs, response-race-confirm.log. auth/http.rs:239 -> session_response line120 reissues request cookie. Binding request id alone cannot prevent stale response cookie replacement. Remove unnecessary completion cookie writes and review cleanup/identity response ordering.

review-auth4 R1 P1: delayed successful completion response still crosses tabs. A native unwrap + real matching completion accepted; hold response. B already at sign-in -> new cookie, failed unwrap/logout429, session401. Release A reply -> Set-Cookie restores A active cookie; B session200/reload terminal. In-memory cookie comparison restoredA=true; direct original B cookie remains401 (no B-row activation). Reproduced twice, production Chromium149/real router+SQLite. Failing response-race.mjs, response-race-confirm.log. auth/http.rs:239 -> session_response line120 reissues request cookie. Binding request id alone cannot prevent stale response cookie replacement. Remove unnecessary completion cookie writes and review cleanup/identity response ordering.
Author
Owner

review-auth4 R1 additional evidence: completion-response-only control removes Set-Cookie, keeping B401->401/reload signed out (response-race-control.log); unmodified response reproduces401->200 twice. A stale successful pending-logout response also clears B active cookie: browser200->401, original B cookie still200, reload sign-in (cleanup-direct.mjs/log; http.rs:292-295). Cleanup probe uses native signed login plus exact matching test completion per accepted owner consistency boundary; no claim B locally unwrapped. Request-id checks/SQL rows work, but response cookie mutations still affect another tab. All stale cookie-writing responses need review, not only unlock-finish.

review-auth4 R1 additional evidence: completion-response-only control removes Set-Cookie, keeping B401->401/reload signed out (response-race-control.log); unmodified response reproduces401->200 twice. A stale successful pending-logout response also clears B active cookie: browser200->401, original B cookie still200, reload sign-in (cleanup-direct.mjs/log; http.rs:292-295). Cleanup probe uses native signed login plus exact matching test completion per accepted owner consistency boundary; no claim B locally unwrapped. Request-id checks/SQL rows work, but response cookie mutations still affect another tab. All stale cookie-writing responses need review, not only unlock-finish.
Author
Owner

review-auth4 reproducible failing test response-race.mjs (scratch will be deleted; issue is the durable record). Copy into scripts/browser-auth/ of a disposable e4809d4 archive, build browser_auth and production58040df dist. Run bun scripts/browser-auth/response-race.mjs ../client/apps/tracer/dist with TRACER_BROWSER_AUTH_BIN selecting the e4809d4 fixture. Capabilities only in private IPC/browser memory.

/** Production tracer passkey UI against the real Rust auth router over private IPC [23,24,40].
 * The supplied dist directory is read-only. Capabilities/recovery words remain in pipe/browser
 * memory; no network trace, arbitrary screenshot, body logging or secret argv is produced.
 * TRACER_BROWSER_AUTH_BIN selects a prebuilt fixture binary, keeping temporary Rust targets
 * outside the source worktree when a job supplies its own scratch target directory.
 */
import { chromium } from 'playwright';
import { spawn } from 'node:child_process';
import { createInterface } from 'node:readline';
import { readFile } from 'node:fs/promises';
import { resolve, extname, sep } from 'node:path';

const root = resolve(import.meta.dirname, '../..');
if (!process.argv[2]) throw new Error('provide the production tracer dist directory');
const dist = resolve(process.argv[2]);
const browser = await chromium.launch({ headless: true });
// An optional loopback reverse-proxy fixture receives its setup capability only
// through private stdin. The default fixture keeps both capability and API in IPC.
const transport = process.env.TRACER_AUTH_URL ? new URL(process.env.TRACER_AUTH_URL) : undefined;
if (transport && (transport.protocol !== 'http:' || transport.hostname !== '127.0.0.1'
    || transport.pathname !== '/' || transport.username || transport.password || transport.search || transport.hash)) {
  throw new Error('HTTP auth fixture must be an uncredentialed loopback origin');
}
const binary = process.env.TRACER_BROWSER_AUTH_BIN ?? resolve(root, 'target/debug/examples/browser_auth');
const child = transport ? undefined : spawn(binary, [], {
  stdio: ['pipe', 'pipe', 'inherit'],
});
const lines = createInterface({ input: child ? child.stdout : process.stdin })[Symbol.asyncIterator]();
const initial = JSON.parse((await lines.next()).value);
let breakUnwrap = false;
let sawLogout = false;
let holdCompletion = false;
let acceptedCookie;
let pendingCookie;
let releaseCompletion;
let markCompletion;
const completionSeen = new Promise(resolve => { markCompletion = resolve; });
const context = await browser.newContext();
const check = (condition, message) => { if (!condition) throw new Error(message); };
try {
  const page = await context.newPage();
  const cdp = await context.newCDPSession(page);
  await cdp.send('WebAuthn.enable');
  const firstAdded = await cdp.send('WebAuthn.addVirtualAuthenticator', { options: {
    protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal',
    hasResidentKey: true, hasUserVerification: true, isUserVerified: true,
    automaticPresenceSimulation: true, hasPrf: true,
  } });
  const firstAuthenticator = firstAdded.authenticatorId;
  await context.route('https://auth.example.test/**', async (route) => {
    const request = route.request();
    if (request.method() === 'GET') {
      const pathname = new URL(request.url()).pathname;
      const path = resolve(dist, pathname === '/' ? 'index.html' : pathname.slice(1));
      if (!path.startsWith(dist + sep)) throw new Error('asset path escaped dist');
      const types = { '.html': 'text/html', '.js': 'text/javascript', '.css': 'text/css',
        '.woff2': 'font/woff2', '.wasm': 'application/wasm' };
      await route.fulfill({ contentType: types[extname(path)] ?? 'application/octet-stream', body: await readFile(path) });
      return;
    }
    const path = new URL(request.url()).pathname;
    if (breakUnwrap && path === '/auth/logout') {
      sawLogout = true;
      await route.fulfill({ status: 429, json: { error: 'too many requests' } });
      return;
    }
    let response;
    if (transport) {
      const result = await fetch(new URL(path, transport), { method: 'POST',
        headers: request.headers(), body: request.postData() });
      let body;
      try { body = await result.json(); } catch { throw new Error('unreadable auth fixture response'); }
      response = { status: result.status, headers: [...result.headers], body };
    } else {
      child.stdin.write(JSON.stringify({ path, headers: request.headers(), body: request.postDataJSON() }) + '\n');
      response = JSON.parse((await lines.next()).value);
    }
    if (holdCompletion && path === '/auth/unlock-finish' && response.status === 200) {
      acceptedCookie = Object.fromEntries(response.headers)['set-cookie'].match(/__Host-infraternal=([^;]+)/)[1];
      markCompletion();
      await new Promise(resolve => { releaseCompletion = resolve; });
    }
    if (breakUnwrap && path === '/auth/wraps' && response.status === 200) {
      for (const entry of response.body) if (entry.kind === 'passkey') entry.wrap.nonce = 'AAAAAAAAAAAAAAAA';
    }
    await route.fulfill({ status: response.status, headers: Object.fromEntries(response.headers),
      body: JSON.stringify(response.body) });
  });
  // This fixture verifies auth only. Close terminal sockets locally rather than dialing a host.
  await context.routeWebSocket('**/v1/ws*', (socket) => socket.close({ code: 1000, reason: 'auth-only fixture' }));
  await page.goto('https://auth.example.test/');
  await page.locator('#setup-card').waitFor();
  check(await page.locator('#login-passkey').count() === 0, 'unconfigured server showed login');
  await page.locator('#setup-token').fill(initial.setup_token);
  await page.getByRole('button', { name: 'Continue' }).click();
  await page.locator('#setup-username').fill('production_integration');
  await page.locator('#setup-display-name').fill('Production integration');
  await page.getByRole('button', { name: 'Continue' }).click();
  await page.getByRole('button', { name: 'Create passkey' }).click();
  await page.getByRole('heading', { name: 'Save your recovery key' }).waitFor();
  check(await page.locator('#recovery-words li').count() === 24, 'recovery display shape');
  await page.locator('.auth-check').click();
  await page.getByRole('button', { name: 'Open infraternal' }).click();
  await page.locator('#terminal-host').waitFor();
  const enrolledSession = await page.evaluate(async () => (await fetch('/auth/session', {
    method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
  })).json());
  check(enrolledSession.username === 'production_integration'
    && enrolledSession.display_name === 'Production integration', 'session labels absent after enrollment');
  await context.clearCookies();
  await page.evaluate(() => localStorage.clear());
  await page.reload();
  await page.locator('#login-passkey').waitFor();
  check(await page.locator('#setup-card, #account-id, #device-name').count() === 0, 'configured server showed setup or identity fields');
  await page.getByRole('button', { name: 'Continue with passkey' }).click();
  await page.locator('#terminal-host').waitFor();
  const status = await page.evaluate(async () => {
    const post = async (action) => (await fetch('/auth/' + action, {
      method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
    })).json();
    return { status: await post('status'), session: await post('session') };
  });
  check(status.status.setup_required === false && typeof status.session.user_id === 'string', 'authenticated resident session absent');
  await context.clearCookies();
  await page.reload();
  await page.locator('#login-passkey').waitFor();
  const second = await context.newPage();
  await second.setViewportSize({width:390,height:844});
  await second.goto('https://auth.example.test/');
  await second.locator('#login-passkey').waitFor();
  holdCompletion = true;
  await page.getByRole('button', { name: 'Continue with passkey' }).click();
  await completionSeen;
  // B was already at sign-in; A completion is accepted but its response is held.
  const cdp2 = await context.newCDPSession(second);
  await cdp2.send('WebAuthn.enable');
  const added = await cdp2.send('WebAuthn.addVirtualAuthenticator', { options: {
    protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal',
    hasResidentKey: true, hasUserVerification: true, isUserVerified: true,
    automaticPresenceSimulation: true, hasPrf: true,
  } });
  // Virtual authenticator belongs to its target: transfer only public-key credential
  // test state privately in memory so B can sign with the same resident credential.
  const authenticators = await cdp.send('WebAuthn.getCredentials', { authenticatorId: firstAuthenticator });
  for (const credential of authenticators.credentials) {
    await cdp2.send('WebAuthn.addCredential', { authenticatorId: added.authenticatorId, credential });
  }
  breakUnwrap = true;
  await second.getByRole('button', { name: 'Continue with passkey' }).click();
  await second.waitForFunction(() => document.querySelector('#auth-error')?.textContent?.trim());
  check(sawLogout, 'B did not fail unwrap/attempt denied logout');
  const before = await second.evaluate(async () => (await fetch('/auth/session', {
    method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
  })).status);
  check(before === 401, 'B failure was not initially pending');
  pendingCookie = (await context.cookies()).find(c => c.name === '__Host-infraternal').value;
  await second.screenshot({path:resolve(root,'../response-race-before.png')});
  holdCompletion = false;
  releaseCompletion();
  await page.locator('#terminal-host').waitFor();
  const after = await second.evaluate(async () => (await fetch('/auth/session', {
    method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
  })).status);
  const restoredA = (await context.cookies()).find(c => c.name === '__Host-infraternal')?.value === acceptedCookie;
  child.stdin.write(JSON.stringify({ path:'/auth/session', headers:{origin:'https://auth.example.test',cookie:'__Host-infraternal='+pendingCookie}, body:{} })+'\n');
  const originalBStatus = JSON.parse((await lines.next()).value).status;
  console.log(`cookie boundary: restoredA=${restoredA}, original B cookie session=${originalBStatus}`);
  check(restoredA && originalBStatus === 401, 'race did not restore A while B row remained pending');
  await second.reload();
  await second.locator('#terminal-host').waitFor();
  await second.screenshot({path:resolve(root,'../response-race-after.png')});
  console.log(`two tabs: A server completion accepted, response delayed, B corrupt unwrap/logout429 -> B session before A completion=${before}, after=${after}, B reload opened terminal; Chromium ${browser.version()}`);
  check(after === 401, 'delayed A completion response replaced B pending cookie with A active cookie');
} finally {
  await context.close();
  child?.stdin.end();
  child?.kill();
  await browser.close();
}

review-auth4 reproducible failing test response-race.mjs (scratch will be deleted; issue is the durable record). Copy into scripts/browser-auth/ of a disposable e4809d4 archive, build browser_auth and production58040df dist. Run bun scripts/browser-auth/response-race.mjs ../client/apps/tracer/dist with TRACER_BROWSER_AUTH_BIN selecting the e4809d4 fixture. Capabilities only in private IPC/browser memory. ```javascript /** Production tracer passkey UI against the real Rust auth router over private IPC [23,24,40]. * The supplied dist directory is read-only. Capabilities/recovery words remain in pipe/browser * memory; no network trace, arbitrary screenshot, body logging or secret argv is produced. * TRACER_BROWSER_AUTH_BIN selects a prebuilt fixture binary, keeping temporary Rust targets * outside the source worktree when a job supplies its own scratch target directory. */ import { chromium } from 'playwright'; import { spawn } from 'node:child_process'; import { createInterface } from 'node:readline'; import { readFile } from 'node:fs/promises'; import { resolve, extname, sep } from 'node:path'; const root = resolve(import.meta.dirname, '../..'); if (!process.argv[2]) throw new Error('provide the production tracer dist directory'); const dist = resolve(process.argv[2]); const browser = await chromium.launch({ headless: true }); // An optional loopback reverse-proxy fixture receives its setup capability only // through private stdin. The default fixture keeps both capability and API in IPC. const transport = process.env.TRACER_AUTH_URL ? new URL(process.env.TRACER_AUTH_URL) : undefined; if (transport && (transport.protocol !== 'http:' || transport.hostname !== '127.0.0.1' || transport.pathname !== '/' || transport.username || transport.password || transport.search || transport.hash)) { throw new Error('HTTP auth fixture must be an uncredentialed loopback origin'); } const binary = process.env.TRACER_BROWSER_AUTH_BIN ?? resolve(root, 'target/debug/examples/browser_auth'); const child = transport ? undefined : spawn(binary, [], { stdio: ['pipe', 'pipe', 'inherit'], }); const lines = createInterface({ input: child ? child.stdout : process.stdin })[Symbol.asyncIterator](); const initial = JSON.parse((await lines.next()).value); let breakUnwrap = false; let sawLogout = false; let holdCompletion = false; let acceptedCookie; let pendingCookie; let releaseCompletion; let markCompletion; const completionSeen = new Promise(resolve => { markCompletion = resolve; }); const context = await browser.newContext(); const check = (condition, message) => { if (!condition) throw new Error(message); }; try { const page = await context.newPage(); const cdp = await context.newCDPSession(page); await cdp.send('WebAuthn.enable'); const firstAdded = await cdp.send('WebAuthn.addVirtualAuthenticator', { options: { protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal', hasResidentKey: true, hasUserVerification: true, isUserVerified: true, automaticPresenceSimulation: true, hasPrf: true, } }); const firstAuthenticator = firstAdded.authenticatorId; await context.route('https://auth.example.test/**', async (route) => { const request = route.request(); if (request.method() === 'GET') { const pathname = new URL(request.url()).pathname; const path = resolve(dist, pathname === '/' ? 'index.html' : pathname.slice(1)); if (!path.startsWith(dist + sep)) throw new Error('asset path escaped dist'); const types = { '.html': 'text/html', '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'font/woff2', '.wasm': 'application/wasm' }; await route.fulfill({ contentType: types[extname(path)] ?? 'application/octet-stream', body: await readFile(path) }); return; } const path = new URL(request.url()).pathname; if (breakUnwrap && path === '/auth/logout') { sawLogout = true; await route.fulfill({ status: 429, json: { error: 'too many requests' } }); return; } let response; if (transport) { const result = await fetch(new URL(path, transport), { method: 'POST', headers: request.headers(), body: request.postData() }); let body; try { body = await result.json(); } catch { throw new Error('unreadable auth fixture response'); } response = { status: result.status, headers: [...result.headers], body }; } else { child.stdin.write(JSON.stringify({ path, headers: request.headers(), body: request.postDataJSON() }) + '\n'); response = JSON.parse((await lines.next()).value); } if (holdCompletion && path === '/auth/unlock-finish' && response.status === 200) { acceptedCookie = Object.fromEntries(response.headers)['set-cookie'].match(/__Host-infraternal=([^;]+)/)[1]; markCompletion(); await new Promise(resolve => { releaseCompletion = resolve; }); } if (breakUnwrap && path === '/auth/wraps' && response.status === 200) { for (const entry of response.body) if (entry.kind === 'passkey') entry.wrap.nonce = 'AAAAAAAAAAAAAAAA'; } await route.fulfill({ status: response.status, headers: Object.fromEntries(response.headers), body: JSON.stringify(response.body) }); }); // This fixture verifies auth only. Close terminal sockets locally rather than dialing a host. await context.routeWebSocket('**/v1/ws*', (socket) => socket.close({ code: 1000, reason: 'auth-only fixture' })); await page.goto('https://auth.example.test/'); await page.locator('#setup-card').waitFor(); check(await page.locator('#login-passkey').count() === 0, 'unconfigured server showed login'); await page.locator('#setup-token').fill(initial.setup_token); await page.getByRole('button', { name: 'Continue' }).click(); await page.locator('#setup-username').fill('production_integration'); await page.locator('#setup-display-name').fill('Production integration'); await page.getByRole('button', { name: 'Continue' }).click(); await page.getByRole('button', { name: 'Create passkey' }).click(); await page.getByRole('heading', { name: 'Save your recovery key' }).waitFor(); check(await page.locator('#recovery-words li').count() === 24, 'recovery display shape'); await page.locator('.auth-check').click(); await page.getByRole('button', { name: 'Open infraternal' }).click(); await page.locator('#terminal-host').waitFor(); const enrolledSession = await page.evaluate(async () => (await fetch('/auth/session', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).json()); check(enrolledSession.username === 'production_integration' && enrolledSession.display_name === 'Production integration', 'session labels absent after enrollment'); await context.clearCookies(); await page.evaluate(() => localStorage.clear()); await page.reload(); await page.locator('#login-passkey').waitFor(); check(await page.locator('#setup-card, #account-id, #device-name').count() === 0, 'configured server showed setup or identity fields'); await page.getByRole('button', { name: 'Continue with passkey' }).click(); await page.locator('#terminal-host').waitFor(); const status = await page.evaluate(async () => { const post = async (action) => (await fetch('/auth/' + action, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).json(); return { status: await post('status'), session: await post('session') }; }); check(status.status.setup_required === false && typeof status.session.user_id === 'string', 'authenticated resident session absent'); await context.clearCookies(); await page.reload(); await page.locator('#login-passkey').waitFor(); const second = await context.newPage(); await second.setViewportSize({width:390,height:844}); await second.goto('https://auth.example.test/'); await second.locator('#login-passkey').waitFor(); holdCompletion = true; await page.getByRole('button', { name: 'Continue with passkey' }).click(); await completionSeen; // B was already at sign-in; A completion is accepted but its response is held. const cdp2 = await context.newCDPSession(second); await cdp2.send('WebAuthn.enable'); const added = await cdp2.send('WebAuthn.addVirtualAuthenticator', { options: { protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal', hasResidentKey: true, hasUserVerification: true, isUserVerified: true, automaticPresenceSimulation: true, hasPrf: true, } }); // Virtual authenticator belongs to its target: transfer only public-key credential // test state privately in memory so B can sign with the same resident credential. const authenticators = await cdp.send('WebAuthn.getCredentials', { authenticatorId: firstAuthenticator }); for (const credential of authenticators.credentials) { await cdp2.send('WebAuthn.addCredential', { authenticatorId: added.authenticatorId, credential }); } breakUnwrap = true; await second.getByRole('button', { name: 'Continue with passkey' }).click(); await second.waitForFunction(() => document.querySelector('#auth-error')?.textContent?.trim()); check(sawLogout, 'B did not fail unwrap/attempt denied logout'); const before = await second.evaluate(async () => (await fetch('/auth/session', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).status); check(before === 401, 'B failure was not initially pending'); pendingCookie = (await context.cookies()).find(c => c.name === '__Host-infraternal').value; await second.screenshot({path:resolve(root,'../response-race-before.png')}); holdCompletion = false; releaseCompletion(); await page.locator('#terminal-host').waitFor(); const after = await second.evaluate(async () => (await fetch('/auth/session', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).status); const restoredA = (await context.cookies()).find(c => c.name === '__Host-infraternal')?.value === acceptedCookie; child.stdin.write(JSON.stringify({ path:'/auth/session', headers:{origin:'https://auth.example.test',cookie:'__Host-infraternal='+pendingCookie}, body:{} })+'\n'); const originalBStatus = JSON.parse((await lines.next()).value).status; console.log(`cookie boundary: restoredA=${restoredA}, original B cookie session=${originalBStatus}`); check(restoredA && originalBStatus === 401, 'race did not restore A while B row remained pending'); await second.reload(); await second.locator('#terminal-host').waitFor(); await second.screenshot({path:resolve(root,'../response-race-after.png')}); console.log(`two tabs: A server completion accepted, response delayed, B corrupt unwrap/logout429 -> B session before A completion=${before}, after=${after}, B reload opened terminal; Chromium ${browser.version()}`); check(after === 401, 'delayed A completion response replaced B pending cookie with A active cookie'); } finally { await context.close(); child?.stdin.end(); child?.kill(); await browser.close(); } ```
Author
Owner

review-auth4 reproducible failing test cleanup-direct.mjs (scratch will be deleted; issue is the durable record). Copy into scripts/browser-auth/ of a disposable e4809d4 archive, build browser_auth and production58040df dist. Run bun scripts/browser-auth/cleanup-direct.mjs ../client/apps/tracer/dist with TRACER_BROWSER_AUTH_BIN selecting the e4809d4 fixture. Capabilities only in private IPC/browser memory.

/** Production tracer passkey UI against the real Rust auth router over private IPC [23,24,40].
 * The supplied dist directory is read-only. Capabilities/recovery words remain in pipe/browser
 * memory; no network trace, arbitrary screenshot, body logging or secret argv is produced.
 * TRACER_BROWSER_AUTH_BIN selects a prebuilt fixture binary, keeping temporary Rust targets
 * outside the source worktree when a job supplies its own scratch target directory.
 */
import { chromium } from 'playwright';
import { spawn } from 'node:child_process';
import { createInterface } from 'node:readline';
import { readFile } from 'node:fs/promises';
import { resolve, extname, sep } from 'node:path';

const root = resolve(import.meta.dirname, '../..');
if (!process.argv[2]) throw new Error('provide the production tracer dist directory');
const dist = resolve(process.argv[2]);
const browser = await chromium.launch({ headless: true });
// An optional loopback reverse-proxy fixture receives its setup capability only
// through private stdin. The default fixture keeps both capability and API in IPC.
const transport = process.env.TRACER_AUTH_URL ? new URL(process.env.TRACER_AUTH_URL) : undefined;
if (transport && (transport.protocol !== 'http:' || transport.hostname !== '127.0.0.1'
    || transport.pathname !== '/' || transport.username || transport.password || transport.search || transport.hash)) {
  throw new Error('HTTP auth fixture must be an uncredentialed loopback origin');
}
const binary = process.env.TRACER_BROWSER_AUTH_BIN ?? resolve(root, 'target/debug/examples/browser_auth');
const child = transport ? undefined : spawn(binary, [], {
  stdio: ['pipe', 'pipe', 'inherit'],
});
const lines = createInterface({ input: child ? child.stdout : process.stdin })[Symbol.asyncIterator]();
const initial = JSON.parse((await lines.next()).value);
let breakUnwrap = false;
let sawLogout = false;
let holdCompletion = false;
let acceptedCookie;
let pendingCookie;
let second;
let secondTransaction;
let releaseCompletion;
let markCompletion;
const completionSeen = new Promise(resolve => { markCompletion = resolve; });
const context = await browser.newContext();
const check = (condition, message) => { if (!condition) throw new Error(message); };
try {
  const page = await context.newPage();
  const cdp = await context.newCDPSession(page);
  await cdp.send('WebAuthn.enable');
  const firstAdded = await cdp.send('WebAuthn.addVirtualAuthenticator', { options: {
    protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal',
    hasResidentKey: true, hasUserVerification: true, isUserVerified: true,
    automaticPresenceSimulation: true, hasPrf: true,
  } });
  const firstAuthenticator = firstAdded.authenticatorId;
  await context.route('https://auth.example.test/**', async (route) => {
    const request = route.request();
    if (request.method() === 'GET') {
      const pathname = new URL(request.url()).pathname;
      const path = resolve(dist, pathname === '/' ? 'index.html' : pathname.slice(1));
      if (!path.startsWith(dist + sep)) throw new Error('asset path escaped dist');
      const types = { '.html': 'text/html', '.js': 'text/javascript', '.css': 'text/css',
        '.woff2': 'font/woff2', '.wasm': 'application/wasm' };
      await route.fulfill({ contentType: types[extname(path)] ?? 'application/octet-stream', body: await readFile(path) });
      return;
    }
    const path = new URL(request.url()).pathname;
    if (breakUnwrap && path === '/auth/logout' && request.frame().page() === second) {
      sawLogout = true;
      await route.fulfill({ status: 429, json: { error: 'too many requests' } });
      return;
    }
    let response;
    if (transport) {
      const result = await fetch(new URL(path, transport), { method: 'POST',
        headers: request.headers(), body: request.postData() });
      let body;
      try { body = await result.json(); } catch { throw new Error('unreadable auth fixture response'); }
      response = { status: result.status, headers: [...result.headers], body };
    } else {
      child.stdin.write(JSON.stringify({ path, headers: request.headers(), body: request.postDataJSON() }) + '\n');
      response = JSON.parse((await lines.next()).value);
    }
    if (path === '/auth/login-finish' && request.frame().page() === second && response.status === 200) secondTransaction = response.body.pending_transaction;
    if (holdCompletion && path === '/auth/logout' && request.frame().page() === page && response.status === 200) {
      markCompletion();
      await new Promise(resolve => { releaseCompletion = resolve; });
    }
    if (breakUnwrap && path === '/auth/wraps' && response.status === 200) {
      for (const entry of response.body) if (entry.kind === 'passkey') entry.wrap.nonce = 'AAAAAAAAAAAAAAAA';
    }
    await route.fulfill({ status: response.status, headers: Object.fromEntries(response.headers),
      body: JSON.stringify(response.body) });
  });
  // This fixture verifies auth only. Close terminal sockets locally rather than dialing a host.
  await context.routeWebSocket('**/v1/ws*', (socket) => socket.close({ code: 1000, reason: 'auth-only fixture' }));
  await page.goto('https://auth.example.test/');
  await page.locator('#setup-card').waitFor();
  check(await page.locator('#login-passkey').count() === 0, 'unconfigured server showed login');
  await page.locator('#setup-token').fill(initial.setup_token);
  await page.getByRole('button', { name: 'Continue' }).click();
  await page.locator('#setup-username').fill('production_integration');
  await page.locator('#setup-display-name').fill('Production integration');
  await page.getByRole('button', { name: 'Continue' }).click();
  await page.getByRole('button', { name: 'Create passkey' }).click();
  await page.getByRole('heading', { name: 'Save your recovery key' }).waitFor();
  check(await page.locator('#recovery-words li').count() === 24, 'recovery display shape');
  await page.locator('.auth-check').click();
  await page.getByRole('button', { name: 'Open infraternal' }).click();
  await page.locator('#terminal-host').waitFor();
  const enrolledSession = await page.evaluate(async () => (await fetch('/auth/session', {
    method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
  })).json());
  check(enrolledSession.username === 'production_integration'
    && enrolledSession.display_name === 'Production integration', 'session labels absent after enrollment');
  await context.clearCookies();
  await page.evaluate(() => localStorage.clear());
  await page.reload();
  await page.locator('#login-passkey').waitFor();
  check(await page.locator('#setup-card, #account-id, #device-name').count() === 0, 'configured server showed setup or identity fields');
  await page.getByRole('button', { name: 'Continue with passkey' }).click();
  await page.locator('#terminal-host').waitFor();
  const status = await page.evaluate(async () => {
    const post = async (action) => (await fetch('/auth/' + action, {
      method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
    })).json();
    return { status: await post('status'), session: await post('session') };
  });
  check(status.status.setup_required === false && typeof status.session.user_id === 'string', 'authenticated resident session absent');
  await context.clearCookies();
  await page.reload();
  await page.locator('#login-passkey').waitFor();
  second = await context.newPage();
  await second.setViewportSize({width:390,height:844});
  await second.goto('https://auth.example.test/');
  await second.locator('#login-passkey').waitFor();
  holdCompletion = true;
  breakUnwrap = true;
  await page.getByRole('button', { name: 'Continue with passkey' }).click();
  await completionSeen;
  // B was already at sign-in; A completion is accepted but its response is held.
  const cdp2 = await context.newCDPSession(second);
  await cdp2.send('WebAuthn.enable');
  const added = await cdp2.send('WebAuthn.addVirtualAuthenticator', { options: {
    protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal',
    hasResidentKey: true, hasUserVerification: true, isUserVerified: true,
    automaticPresenceSimulation: true, hasPrf: true,
  } });
  // Virtual authenticator belongs to its target: transfer only public-key credential
  // test state privately in memory so B can sign with the same resident credential.
  const authenticators = await cdp.send('WebAuthn.getCredentials', { authenticatorId: firstAuthenticator });
  for (const credential of authenticators.credentials) {
    await cdp2.send('WebAuthn.addCredential', { authenticatorId: added.authenticatorId, credential });
  }
  breakUnwrap = true;
  await second.getByRole('button', { name: 'Continue with passkey' }).click();
  await second.waitForFunction(() => document.querySelector('#auth-error')?.textContent?.trim());
  check(sawLogout, 'B did not fail unwrap/attempt denied logout');
  // Exact matching completion is a client consistency signal per owner boundary.
  // This test does not claim B locally unwrapped; it isolates stale cleanup cookie writes.
  const activation = await second.evaluate(async id => (await fetch('/auth/unlock-finish', {
    method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({pending_transaction:id}),
  })).status, secondTransaction);
  check(activation === 200, 'B matching completion failed');
  const before = await second.evaluate(async () => (await fetch('/auth/session', {
    method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
  })).status);
  check(before === 200, 'B matching completion did not activate its cookie');
  pendingCookie = (await context.cookies()).find(c => c.name === '__Host-infraternal').value;
  await second.screenshot({path:resolve(root,'../cleanup-direct-before.png')});
  holdCompletion = false;
  releaseCompletion();
  await page.waitForFunction(() => document.querySelector('#auth-error')?.textContent?.trim());
  const after = await second.evaluate(async () => (await fetch('/auth/session', {
    method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}',
  })).status);
  child.stdin.write(JSON.stringify({path:'/auth/session',headers:{origin:'https://auth.example.test',cookie:'__Host-infraternal='+pendingCookie},body:{}})+'\n');
  const originalBStatus=JSON.parse((await lines.next()).value).status;
  console.log(`cookie boundary: browser session=${after}, original B cookie session=${originalBStatus}`);
  check(originalBStatus===200, 'B server authority changed');
  await second.reload();
  await second.locator('#login-passkey').waitFor();
  await second.screenshot({path:resolve(root,'../cleanup-direct-after.png')});
  console.log(`two tabs: A failed unwrap cleanup accepted, response delayed, B matching completion -> B session before A completion=${before}, after=${after}, B reload showed sign-in; Chromium ${browser.version()}`);
  check(after === 200, 'delayed A cleanup response cleared B active cookie');
} finally {
  await context.close();
  child?.stdin.end();
  child?.kill();
  await browser.close();
}

review-auth4 reproducible failing test cleanup-direct.mjs (scratch will be deleted; issue is the durable record). Copy into scripts/browser-auth/ of a disposable e4809d4 archive, build browser_auth and production58040df dist. Run bun scripts/browser-auth/cleanup-direct.mjs ../client/apps/tracer/dist with TRACER_BROWSER_AUTH_BIN selecting the e4809d4 fixture. Capabilities only in private IPC/browser memory. ```javascript /** Production tracer passkey UI against the real Rust auth router over private IPC [23,24,40]. * The supplied dist directory is read-only. Capabilities/recovery words remain in pipe/browser * memory; no network trace, arbitrary screenshot, body logging or secret argv is produced. * TRACER_BROWSER_AUTH_BIN selects a prebuilt fixture binary, keeping temporary Rust targets * outside the source worktree when a job supplies its own scratch target directory. */ import { chromium } from 'playwright'; import { spawn } from 'node:child_process'; import { createInterface } from 'node:readline'; import { readFile } from 'node:fs/promises'; import { resolve, extname, sep } from 'node:path'; const root = resolve(import.meta.dirname, '../..'); if (!process.argv[2]) throw new Error('provide the production tracer dist directory'); const dist = resolve(process.argv[2]); const browser = await chromium.launch({ headless: true }); // An optional loopback reverse-proxy fixture receives its setup capability only // through private stdin. The default fixture keeps both capability and API in IPC. const transport = process.env.TRACER_AUTH_URL ? new URL(process.env.TRACER_AUTH_URL) : undefined; if (transport && (transport.protocol !== 'http:' || transport.hostname !== '127.0.0.1' || transport.pathname !== '/' || transport.username || transport.password || transport.search || transport.hash)) { throw new Error('HTTP auth fixture must be an uncredentialed loopback origin'); } const binary = process.env.TRACER_BROWSER_AUTH_BIN ?? resolve(root, 'target/debug/examples/browser_auth'); const child = transport ? undefined : spawn(binary, [], { stdio: ['pipe', 'pipe', 'inherit'], }); const lines = createInterface({ input: child ? child.stdout : process.stdin })[Symbol.asyncIterator](); const initial = JSON.parse((await lines.next()).value); let breakUnwrap = false; let sawLogout = false; let holdCompletion = false; let acceptedCookie; let pendingCookie; let second; let secondTransaction; let releaseCompletion; let markCompletion; const completionSeen = new Promise(resolve => { markCompletion = resolve; }); const context = await browser.newContext(); const check = (condition, message) => { if (!condition) throw new Error(message); }; try { const page = await context.newPage(); const cdp = await context.newCDPSession(page); await cdp.send('WebAuthn.enable'); const firstAdded = await cdp.send('WebAuthn.addVirtualAuthenticator', { options: { protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal', hasResidentKey: true, hasUserVerification: true, isUserVerified: true, automaticPresenceSimulation: true, hasPrf: true, } }); const firstAuthenticator = firstAdded.authenticatorId; await context.route('https://auth.example.test/**', async (route) => { const request = route.request(); if (request.method() === 'GET') { const pathname = new URL(request.url()).pathname; const path = resolve(dist, pathname === '/' ? 'index.html' : pathname.slice(1)); if (!path.startsWith(dist + sep)) throw new Error('asset path escaped dist'); const types = { '.html': 'text/html', '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'font/woff2', '.wasm': 'application/wasm' }; await route.fulfill({ contentType: types[extname(path)] ?? 'application/octet-stream', body: await readFile(path) }); return; } const path = new URL(request.url()).pathname; if (breakUnwrap && path === '/auth/logout' && request.frame().page() === second) { sawLogout = true; await route.fulfill({ status: 429, json: { error: 'too many requests' } }); return; } let response; if (transport) { const result = await fetch(new URL(path, transport), { method: 'POST', headers: request.headers(), body: request.postData() }); let body; try { body = await result.json(); } catch { throw new Error('unreadable auth fixture response'); } response = { status: result.status, headers: [...result.headers], body }; } else { child.stdin.write(JSON.stringify({ path, headers: request.headers(), body: request.postDataJSON() }) + '\n'); response = JSON.parse((await lines.next()).value); } if (path === '/auth/login-finish' && request.frame().page() === second && response.status === 200) secondTransaction = response.body.pending_transaction; if (holdCompletion && path === '/auth/logout' && request.frame().page() === page && response.status === 200) { markCompletion(); await new Promise(resolve => { releaseCompletion = resolve; }); } if (breakUnwrap && path === '/auth/wraps' && response.status === 200) { for (const entry of response.body) if (entry.kind === 'passkey') entry.wrap.nonce = 'AAAAAAAAAAAAAAAA'; } await route.fulfill({ status: response.status, headers: Object.fromEntries(response.headers), body: JSON.stringify(response.body) }); }); // This fixture verifies auth only. Close terminal sockets locally rather than dialing a host. await context.routeWebSocket('**/v1/ws*', (socket) => socket.close({ code: 1000, reason: 'auth-only fixture' })); await page.goto('https://auth.example.test/'); await page.locator('#setup-card').waitFor(); check(await page.locator('#login-passkey').count() === 0, 'unconfigured server showed login'); await page.locator('#setup-token').fill(initial.setup_token); await page.getByRole('button', { name: 'Continue' }).click(); await page.locator('#setup-username').fill('production_integration'); await page.locator('#setup-display-name').fill('Production integration'); await page.getByRole('button', { name: 'Continue' }).click(); await page.getByRole('button', { name: 'Create passkey' }).click(); await page.getByRole('heading', { name: 'Save your recovery key' }).waitFor(); check(await page.locator('#recovery-words li').count() === 24, 'recovery display shape'); await page.locator('.auth-check').click(); await page.getByRole('button', { name: 'Open infraternal' }).click(); await page.locator('#terminal-host').waitFor(); const enrolledSession = await page.evaluate(async () => (await fetch('/auth/session', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).json()); check(enrolledSession.username === 'production_integration' && enrolledSession.display_name === 'Production integration', 'session labels absent after enrollment'); await context.clearCookies(); await page.evaluate(() => localStorage.clear()); await page.reload(); await page.locator('#login-passkey').waitFor(); check(await page.locator('#setup-card, #account-id, #device-name').count() === 0, 'configured server showed setup or identity fields'); await page.getByRole('button', { name: 'Continue with passkey' }).click(); await page.locator('#terminal-host').waitFor(); const status = await page.evaluate(async () => { const post = async (action) => (await fetch('/auth/' + action, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).json(); return { status: await post('status'), session: await post('session') }; }); check(status.status.setup_required === false && typeof status.session.user_id === 'string', 'authenticated resident session absent'); await context.clearCookies(); await page.reload(); await page.locator('#login-passkey').waitFor(); second = await context.newPage(); await second.setViewportSize({width:390,height:844}); await second.goto('https://auth.example.test/'); await second.locator('#login-passkey').waitFor(); holdCompletion = true; breakUnwrap = true; await page.getByRole('button', { name: 'Continue with passkey' }).click(); await completionSeen; // B was already at sign-in; A completion is accepted but its response is held. const cdp2 = await context.newCDPSession(second); await cdp2.send('WebAuthn.enable'); const added = await cdp2.send('WebAuthn.addVirtualAuthenticator', { options: { protocol: 'ctap2', ctap2Version: 'ctap2_1', transport: 'internal', hasResidentKey: true, hasUserVerification: true, isUserVerified: true, automaticPresenceSimulation: true, hasPrf: true, } }); // Virtual authenticator belongs to its target: transfer only public-key credential // test state privately in memory so B can sign with the same resident credential. const authenticators = await cdp.send('WebAuthn.getCredentials', { authenticatorId: firstAuthenticator }); for (const credential of authenticators.credentials) { await cdp2.send('WebAuthn.addCredential', { authenticatorId: added.authenticatorId, credential }); } breakUnwrap = true; await second.getByRole('button', { name: 'Continue with passkey' }).click(); await second.waitForFunction(() => document.querySelector('#auth-error')?.textContent?.trim()); check(sawLogout, 'B did not fail unwrap/attempt denied logout'); // Exact matching completion is a client consistency signal per owner boundary. // This test does not claim B locally unwrapped; it isolates stale cleanup cookie writes. const activation = await second.evaluate(async id => (await fetch('/auth/unlock-finish', { method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({pending_transaction:id}), })).status, secondTransaction); check(activation === 200, 'B matching completion failed'); const before = await second.evaluate(async () => (await fetch('/auth/session', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).status); check(before === 200, 'B matching completion did not activate its cookie'); pendingCookie = (await context.cookies()).find(c => c.name === '__Host-infraternal').value; await second.screenshot({path:resolve(root,'../cleanup-direct-before.png')}); holdCompletion = false; releaseCompletion(); await page.waitForFunction(() => document.querySelector('#auth-error')?.textContent?.trim()); const after = await second.evaluate(async () => (await fetch('/auth/session', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: '{}', })).status); child.stdin.write(JSON.stringify({path:'/auth/session',headers:{origin:'https://auth.example.test',cookie:'__Host-infraternal='+pendingCookie},body:{}})+'\n'); const originalBStatus=JSON.parse((await lines.next()).value).status; console.log(`cookie boundary: browser session=${after}, original B cookie session=${originalBStatus}`); check(originalBStatus===200, 'B server authority changed'); await second.reload(); await second.locator('#login-passkey').waitFor(); await second.screenshot({path:resolve(root,'../cleanup-direct-after.png')}); console.log(`two tabs: A failed unwrap cleanup accepted, response delayed, B matching completion -> B session before A completion=${before}, after=${after}, B reload showed sign-in; Chromium ${browser.version()}`); check(after === 200, 'delayed A cleanup response cleared B active cookie'); } finally { await context.close(); child?.stdin.end(); child?.kill(); await browser.close(); } ```
Author
Owner

review-auth4 Rust variants (scratch removed at completion). Copy review4.rs beside auth/tests.rs in disposable e4809d4; append #[path="review4.rs"] mod review4; to tests.rs. Run cargo test -p infraternal-server review4_ -- --nocapture. 12 busy cases and transaction variants pass; 10s live-open expectation fails against documented5s cap.

//! Independent delay matrix and transaction variants; all auth capabilities stay in memory.
use super::*;
async fn review3_socket() -> (Fixture, SocketAddr, tokio::task::JoinHandle<()>, UnixStream) {
    let f = fixture().await;
    let (socket, peer) = UnixStream::pair().unwrap();
    let state = crate::websocket::WebSocketState::new(f.auth.clone(),f.auth.pool.clone(),EmbeddedAgent::from_test_socket(socket));
    let listener = TcpListener::bind("127.0.0.1:0").await.unwrap();
    let addr=listener.local_addr().unwrap();
    let server=tokio::spawn(async move { axum::serve(listener,crate::websocket::router(state)).await.unwrap(); });
    (f,addr,server,peer)
}

async fn busy_variant(mode: &str, delay_ms: Option<u64>) {
    let _guard=SERIAL.lock().await;
    let (f,addr,server,mut peer)=review3_socket().await;
    let mut receive=BytesMut::new();
    let _=read_leg_b_frame(&mut peer,&mut receive).await.unwrap();
    leg_b_send(&mut peer,0,&Frame::Hello{version:1,caps:0,client_info:"delayed backend"}).await;
    let cookie=format!("__Host-infraternal={}",f.session);
    let (mut socket,_)=connect_async(test_ws_request(addr,&cookie)).await.unwrap();
    assert_server_hello(&mut socket).await;
    client_ws_send(&mut socket,0,&Frame::Hello{version:1,caps:0,client_info:"busy revocation"}).await;
    read_welcome(&mut socket).await;
    client_ws_send(&mut socket,0,&Frame::Call{call_id:77,action_id:"terminal.open",input_json:br#"{"cols":80,"rows":24,"px_w":0,"px_h":0}"#}).await;
    let wire=read_leg_b_frame(&mut peer,&mut receive).await.unwrap();
    let call_id=match decode_muxed_frame(&wire).unwrap().frame {Frame::Call{call_id,..}=>call_id,_=>panic!("expected backend call")};
    match mode {
        "logout" => f.auth.logout(&f.session).await.unwrap(),
        "recovery" => {
            let request=f.auth.recovery_start(&f.user,f.words.clone(),NOW).await.unwrap();
            let replacement=f.auth.recovery_ready(&request,NOW+DAY).await.unwrap();
            finish_replacement(&f,&replacement,&Software::new(),NOW+DAY).await;
        }
        "expiry" => {
            // Inject the authoritative expiry transition after dispatch began. No
            // clock mock is used; late result handling sees the actual expired row.
            let now=crate::websocket::now_seconds().unwrap();
            sqlx::query("UPDATE sessions SET expires=? WHERE token_hash=?").bind(now-1).bind(hash(&f.session)).execute(&f.auth.pool).await.unwrap();
        }
        _ => unreachable!(),
    }
    let start=Instant::now();
    let next=tokio::time::timeout(Duration::from_millis(100),socket.next()).await;
    let close_elapsed=start.elapsed();
    let still_open=next.is_err();
    if let Some(delay) = delay_ms {
        tokio::time::sleep(Duration::from_millis(delay).saturating_sub(start.elapsed())).await;
        leg_b_send(&mut peer,0,&Frame::Result{call_id,ok:true,json:br#"{"session_id":"42424242424242424242424242424242"}"#}).await;
    }
    tokio::time::sleep(Duration::from_millis(75)).await;
    let late=tokio::time::timeout(Duration::from_millis(1500),socket.next()).await;
    let accepted=matches!(late,Ok(Some(Ok(Message::Binary(ref wire)))) if matches!(decode_muxed_frame(wire).unwrap().frame,Frame::Result{ok:true,..}));
    let rows:i64=sqlx::query_scalar("SELECT count(*) FROM terminal_sessions WHERE user_id=?").bind(&f.user).fetch_one(&f.auth.pool).await.unwrap();
    println!("busy {mode} backend_delay={delay_ms:?} -> close {}us={still_open}; success Result after revocation={accepted}; terminal rows committed={rows}",close_elapsed.as_micros());
    server.abort();
    assert!(close_elapsed < Duration::from_millis(100) && !still_open && !accepted && rows==0,"revocation failed to interrupt busy handler or prevent post-revocation result/mutation");
}

#[tokio::test]
async fn review4_busy_logout_100() { busy_variant("logout", Some(100)).await; }

#[tokio::test]
async fn review4_busy_logout_1500() { busy_variant("logout", Some(1500)).await; }

#[tokio::test]
async fn review4_busy_logout_10000() { busy_variant("logout", Some(10000)).await; }

#[tokio::test]
async fn review4_busy_logout_never() { busy_variant("logout", None).await; }

#[tokio::test]
async fn review4_busy_recovery_100() { busy_variant("recovery", Some(100)).await; }

#[tokio::test]
async fn review4_busy_recovery_1500() { busy_variant("recovery", Some(1500)).await; }

#[tokio::test]
async fn review4_busy_recovery_10000() { busy_variant("recovery", Some(10000)).await; }

#[tokio::test]
async fn review4_busy_recovery_never() { busy_variant("recovery", None).await; }

#[tokio::test]
async fn review4_busy_expiry_100() { busy_variant("expiry", Some(100)).await; }

#[tokio::test]
async fn review4_busy_expiry_1500() { busy_variant("expiry", Some(1500)).await; }

#[tokio::test]
async fn review4_busy_expiry_10000() { busy_variant("expiry", Some(10000)).await; }

#[tokio::test]
async fn review4_busy_expiry_never() { busy_variant("expiry", None).await; }

#[tokio::test]
async fn review4_transaction_variants() {
 let _guard=SERIAL.lock().await;
 for reverse in [false,true] {
  let mut f=fixture().await; let app=router(f.auth.clone()); let mut pairs=Vec::new();
  for _ in 0..2 {
   let (_,headers,start)=http_post_json(&app,"login-start",json!({})).await;
   let binding=headers[axum::http::header::SET_COOKIE].to_str().unwrap().split(';').next().unwrap();
   let mut proof=f.software.login(&start,ORIGIN,true); proof["response"]["userHandle"]=json!(B64.encode(Uuid::parse_str(&f.user).unwrap().as_bytes()));
   let (status,headers,body)=http_post_json_with_cookie(&app,"login-finish",json!({"ceremony":start["ceremony"],"proof":proof,"device":"variants"}),binding).await;
   assert_eq!(status,axum::http::StatusCode::OK);
   let cookie=headers[axum::http::header::SET_COOKIE].to_str().unwrap().split(';').next().unwrap().to_owned();
   pairs.push((cookie,body["pending_transaction"].clone()));
  }
  let order=if reverse {[1,0]} else {[0,1]};
  for (step,index) in order.into_iter().enumerate() {
   let (cookie,id)=&pairs[index]; let (other,other_id)=&pairs[1-index];
   for bad in [other_id.clone(),json!("stale-transaction")] {
    for action in ["unlock-finish","logout"] {
     let (status,headers,_)=http_post_json_with_cookie(&app,action,json!({"pending_transaction":bad}),cookie).await;
     assert_eq!(status,axum::http::StatusCode::UNAUTHORIZED);assert!(!headers.contains_key(axum::http::header::SET_COOKIE));
    }
   }
   // A reload loses the page id and can read restricted identity, but cannot activate.
   assert_eq!(http_post_json_with_cookie(&app,"session",json!({}),cookie).await.0,axum::http::StatusCode::UNAUTHORIZED);
   assert_eq!(http_post_json_with_cookie(&app,"unlock-session",json!({}),cookie).await.0,axum::http::StatusCode::OK);
   assert_eq!(http_post_json_with_cookie(&app,"unlock-finish",json!({}),cookie).await.0,axum::http::StatusCode::BAD_REQUEST);
   assert_eq!(http_post_json_with_cookie(&app,"unlock-finish",json!({"pending_transaction":id}),cookie).await.0,axum::http::StatusCode::OK);
   assert_eq!(http_post_json_with_cookie(&app,"session",json!({}),other).await.0,if step==0 {axum::http::StatusCode::UNAUTHORIZED} else {axum::http::StatusCode::OK});
   assert_eq!(http_post_json_with_cookie(&app,"unlock-finish",json!({"pending_transaction":id}),cookie).await.0,axum::http::StatusCode::UNAUTHORIZED);
  }
  println!("transaction order reverse={reverse}: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending");
 }
 // Authoritative pending deadline expires; matching id cannot revive it.
 let mut f=fixture().await;let app=router(f.auth.clone());
 let start=f.auth.login_start(&f.user,NOW).await.unwrap();let proof=f.software.login(&start,ORIGIN,true);
 let token=f.auth.pending_login_finish(str_field(&start,"ceremony"),proof,"expiry",NOW).await.unwrap();
 let cookie=format!("__Host-infraternal={token}");let id=super::super::sessions::pending_transaction(&token);
 let now=crate::websocket::now_seconds().unwrap();
 sqlx::query("UPDATE sessions SET expires=? WHERE token_hash=?").bind(now-1).bind(hash(&token)).execute(&f.auth.pool).await.unwrap();
 for action in ["unlock-finish","session","unlock-session"] {
  let body=if action=="unlock-finish" {json!({"pending_transaction":id})} else {json!({})};
  assert_eq!(http_post_json_with_cookie(&app,action,body,&cookie).await.0,axum::http::StatusCode::UNAUTHORIZED);
 }
 println!("pending expiry: matching completion denied, restricted reload denied, row cleaned");
}

async fn legitimate_open(delay_ms:u64) {
 let _guard=SERIAL.lock().await;let (f,addr,server,mut peer)=review3_socket().await;let mut receive=BytesMut::new();
 read_leg_b_frame(&mut peer,&mut receive).await.unwrap();
 leg_b_send(&mut peer,0,&Frame::Hello{version:1,caps:0,client_info:"legitimate delayed backend"}).await;
 let cookie=format!("__Host-infraternal={}",f.session);
 let (mut socket,_)=connect_async(test_ws_request(addr,&cookie)).await.unwrap();assert_server_hello(&mut socket).await;
 client_ws_send(&mut socket,0,&Frame::Hello{version:1,caps:0,client_info:"legitimate open"}).await;read_welcome(&mut socket).await;
 let start=Instant::now();
 client_ws_send(&mut socket,0,&Frame::Call{call_id:81,action_id:"terminal.open",input_json:br#"{"cols":80,"rows":24,"px_w":0,"px_h":0}"#}).await;
 let wire=read_leg_b_frame(&mut peer,&mut receive).await.unwrap();
 let call_id=match decode_muxed_frame(&wire).unwrap().frame {Frame::Call{call_id,..}=>call_id,_=>panic!("backend call")};
 let backend=tokio::spawn(async move {
  tokio::time::sleep(Duration::from_millis(delay_ms)).await;
  leg_b_send(&mut peer,0,&Frame::Result{call_id,ok:true,json:br#"{"session_id":"42424242424242424242424242424242"}"#}).await;
  peer
 });
 let result=tokio::time::timeout(Duration::from_secs(11),read_client_frame(&mut socket)).await.unwrap();
 let success=matches!(decode_muxed_frame(&result).unwrap().frame,Frame::Result{call_id:81,ok:true,..});
 let elapsed=start.elapsed();let _peer=backend.await.unwrap();tokio::time::sleep(Duration::from_millis(75)).await;
 let rows:i64=sqlx::query_scalar("SELECT count(*) FROM terminal_sessions WHERE user_id=?").bind(&f.user).fetch_one(&f.auth.pool).await.unwrap();
 println!("legitimate backend_delay={delay_ms}ms: success={success}, reply={}ms, committed rows={rows}",elapsed.as_millis());
 server.abort();assert!(success && rows==1,"live legitimate open rejected at {elapsed:?} for {delay_ms}ms backend delay");
}
#[tokio::test] async fn review4_legitimate_100() { legitimate_open(100).await; }
#[tokio::test] async fn review4_legitimate_1500() { legitimate_open(1500).await; }
#[tokio::test] async fn review4_legitimate_4500() { legitimate_open(4500).await; }
#[tokio::test] async fn review4_legitimate_10000() { legitimate_open(10000).await; }

review-auth4 Rust variants (scratch removed at completion). Copy review4.rs beside auth/tests.rs in disposable e4809d4; append #[path="review4.rs"] mod review4; to tests.rs. Run cargo test -p infraternal-server review4_ -- --nocapture. 12 busy cases and transaction variants pass; 10s live-open expectation fails against documented5s cap. ```rust //! Independent delay matrix and transaction variants; all auth capabilities stay in memory. use super::*; async fn review3_socket() -> (Fixture, SocketAddr, tokio::task::JoinHandle<()>, UnixStream) { let f = fixture().await; let (socket, peer) = UnixStream::pair().unwrap(); let state = crate::websocket::WebSocketState::new(f.auth.clone(),f.auth.pool.clone(),EmbeddedAgent::from_test_socket(socket)); let listener = TcpListener::bind("127.0.0.1:0").await.unwrap(); let addr=listener.local_addr().unwrap(); let server=tokio::spawn(async move { axum::serve(listener,crate::websocket::router(state)).await.unwrap(); }); (f,addr,server,peer) } async fn busy_variant(mode: &str, delay_ms: Option<u64>) { let _guard=SERIAL.lock().await; let (f,addr,server,mut peer)=review3_socket().await; let mut receive=BytesMut::new(); let _=read_leg_b_frame(&mut peer,&mut receive).await.unwrap(); leg_b_send(&mut peer,0,&Frame::Hello{version:1,caps:0,client_info:"delayed backend"}).await; let cookie=format!("__Host-infraternal={}",f.session); let (mut socket,_)=connect_async(test_ws_request(addr,&cookie)).await.unwrap(); assert_server_hello(&mut socket).await; client_ws_send(&mut socket,0,&Frame::Hello{version:1,caps:0,client_info:"busy revocation"}).await; read_welcome(&mut socket).await; client_ws_send(&mut socket,0,&Frame::Call{call_id:77,action_id:"terminal.open",input_json:br#"{"cols":80,"rows":24,"px_w":0,"px_h":0}"#}).await; let wire=read_leg_b_frame(&mut peer,&mut receive).await.unwrap(); let call_id=match decode_muxed_frame(&wire).unwrap().frame {Frame::Call{call_id,..}=>call_id,_=>panic!("expected backend call")}; match mode { "logout" => f.auth.logout(&f.session).await.unwrap(), "recovery" => { let request=f.auth.recovery_start(&f.user,f.words.clone(),NOW).await.unwrap(); let replacement=f.auth.recovery_ready(&request,NOW+DAY).await.unwrap(); finish_replacement(&f,&replacement,&Software::new(),NOW+DAY).await; } "expiry" => { // Inject the authoritative expiry transition after dispatch began. No // clock mock is used; late result handling sees the actual expired row. let now=crate::websocket::now_seconds().unwrap(); sqlx::query("UPDATE sessions SET expires=? WHERE token_hash=?").bind(now-1).bind(hash(&f.session)).execute(&f.auth.pool).await.unwrap(); } _ => unreachable!(), } let start=Instant::now(); let next=tokio::time::timeout(Duration::from_millis(100),socket.next()).await; let close_elapsed=start.elapsed(); let still_open=next.is_err(); if let Some(delay) = delay_ms { tokio::time::sleep(Duration::from_millis(delay).saturating_sub(start.elapsed())).await; leg_b_send(&mut peer,0,&Frame::Result{call_id,ok:true,json:br#"{"session_id":"42424242424242424242424242424242"}"#}).await; } tokio::time::sleep(Duration::from_millis(75)).await; let late=tokio::time::timeout(Duration::from_millis(1500),socket.next()).await; let accepted=matches!(late,Ok(Some(Ok(Message::Binary(ref wire)))) if matches!(decode_muxed_frame(wire).unwrap().frame,Frame::Result{ok:true,..})); let rows:i64=sqlx::query_scalar("SELECT count(*) FROM terminal_sessions WHERE user_id=?").bind(&f.user).fetch_one(&f.auth.pool).await.unwrap(); println!("busy {mode} backend_delay={delay_ms:?} -> close {}us={still_open}; success Result after revocation={accepted}; terminal rows committed={rows}",close_elapsed.as_micros()); server.abort(); assert!(close_elapsed < Duration::from_millis(100) && !still_open && !accepted && rows==0,"revocation failed to interrupt busy handler or prevent post-revocation result/mutation"); } #[tokio::test] async fn review4_busy_logout_100() { busy_variant("logout", Some(100)).await; } #[tokio::test] async fn review4_busy_logout_1500() { busy_variant("logout", Some(1500)).await; } #[tokio::test] async fn review4_busy_logout_10000() { busy_variant("logout", Some(10000)).await; } #[tokio::test] async fn review4_busy_logout_never() { busy_variant("logout", None).await; } #[tokio::test] async fn review4_busy_recovery_100() { busy_variant("recovery", Some(100)).await; } #[tokio::test] async fn review4_busy_recovery_1500() { busy_variant("recovery", Some(1500)).await; } #[tokio::test] async fn review4_busy_recovery_10000() { busy_variant("recovery", Some(10000)).await; } #[tokio::test] async fn review4_busy_recovery_never() { busy_variant("recovery", None).await; } #[tokio::test] async fn review4_busy_expiry_100() { busy_variant("expiry", Some(100)).await; } #[tokio::test] async fn review4_busy_expiry_1500() { busy_variant("expiry", Some(1500)).await; } #[tokio::test] async fn review4_busy_expiry_10000() { busy_variant("expiry", Some(10000)).await; } #[tokio::test] async fn review4_busy_expiry_never() { busy_variant("expiry", None).await; } #[tokio::test] async fn review4_transaction_variants() { let _guard=SERIAL.lock().await; for reverse in [false,true] { let mut f=fixture().await; let app=router(f.auth.clone()); let mut pairs=Vec::new(); for _ in 0..2 { let (_,headers,start)=http_post_json(&app,"login-start",json!({})).await; let binding=headers[axum::http::header::SET_COOKIE].to_str().unwrap().split(';').next().unwrap(); let mut proof=f.software.login(&start,ORIGIN,true); proof["response"]["userHandle"]=json!(B64.encode(Uuid::parse_str(&f.user).unwrap().as_bytes())); let (status,headers,body)=http_post_json_with_cookie(&app,"login-finish",json!({"ceremony":start["ceremony"],"proof":proof,"device":"variants"}),binding).await; assert_eq!(status,axum::http::StatusCode::OK); let cookie=headers[axum::http::header::SET_COOKIE].to_str().unwrap().split(';').next().unwrap().to_owned(); pairs.push((cookie,body["pending_transaction"].clone())); } let order=if reverse {[1,0]} else {[0,1]}; for (step,index) in order.into_iter().enumerate() { let (cookie,id)=&pairs[index]; let (other,other_id)=&pairs[1-index]; for bad in [other_id.clone(),json!("stale-transaction")] { for action in ["unlock-finish","logout"] { let (status,headers,_)=http_post_json_with_cookie(&app,action,json!({"pending_transaction":bad}),cookie).await; assert_eq!(status,axum::http::StatusCode::UNAUTHORIZED);assert!(!headers.contains_key(axum::http::header::SET_COOKIE)); } } // A reload loses the page id and can read restricted identity, but cannot activate. assert_eq!(http_post_json_with_cookie(&app,"session",json!({}),cookie).await.0,axum::http::StatusCode::UNAUTHORIZED); assert_eq!(http_post_json_with_cookie(&app,"unlock-session",json!({}),cookie).await.0,axum::http::StatusCode::OK); assert_eq!(http_post_json_with_cookie(&app,"unlock-finish",json!({}),cookie).await.0,axum::http::StatusCode::BAD_REQUEST); assert_eq!(http_post_json_with_cookie(&app,"unlock-finish",json!({"pending_transaction":id}),cookie).await.0,axum::http::StatusCode::OK); assert_eq!(http_post_json_with_cookie(&app,"session",json!({}),other).await.0,if step==0 {axum::http::StatusCode::UNAUTHORIZED} else {axum::http::StatusCode::OK}); assert_eq!(http_post_json_with_cookie(&app,"unlock-finish",json!({"pending_transaction":id}),cookie).await.0,axum::http::StatusCode::UNAUTHORIZED); } println!("transaction order reverse={reverse}: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending"); } // Authoritative pending deadline expires; matching id cannot revive it. let mut f=fixture().await;let app=router(f.auth.clone()); let start=f.auth.login_start(&f.user,NOW).await.unwrap();let proof=f.software.login(&start,ORIGIN,true); let token=f.auth.pending_login_finish(str_field(&start,"ceremony"),proof,"expiry",NOW).await.unwrap(); let cookie=format!("__Host-infraternal={token}");let id=super::super::sessions::pending_transaction(&token); let now=crate::websocket::now_seconds().unwrap(); sqlx::query("UPDATE sessions SET expires=? WHERE token_hash=?").bind(now-1).bind(hash(&token)).execute(&f.auth.pool).await.unwrap(); for action in ["unlock-finish","session","unlock-session"] { let body=if action=="unlock-finish" {json!({"pending_transaction":id})} else {json!({})}; assert_eq!(http_post_json_with_cookie(&app,action,body,&cookie).await.0,axum::http::StatusCode::UNAUTHORIZED); } println!("pending expiry: matching completion denied, restricted reload denied, row cleaned"); } async fn legitimate_open(delay_ms:u64) { let _guard=SERIAL.lock().await;let (f,addr,server,mut peer)=review3_socket().await;let mut receive=BytesMut::new(); read_leg_b_frame(&mut peer,&mut receive).await.unwrap(); leg_b_send(&mut peer,0,&Frame::Hello{version:1,caps:0,client_info:"legitimate delayed backend"}).await; let cookie=format!("__Host-infraternal={}",f.session); let (mut socket,_)=connect_async(test_ws_request(addr,&cookie)).await.unwrap();assert_server_hello(&mut socket).await; client_ws_send(&mut socket,0,&Frame::Hello{version:1,caps:0,client_info:"legitimate open"}).await;read_welcome(&mut socket).await; let start=Instant::now(); client_ws_send(&mut socket,0,&Frame::Call{call_id:81,action_id:"terminal.open",input_json:br#"{"cols":80,"rows":24,"px_w":0,"px_h":0}"#}).await; let wire=read_leg_b_frame(&mut peer,&mut receive).await.unwrap(); let call_id=match decode_muxed_frame(&wire).unwrap().frame {Frame::Call{call_id,..}=>call_id,_=>panic!("backend call")}; let backend=tokio::spawn(async move { tokio::time::sleep(Duration::from_millis(delay_ms)).await; leg_b_send(&mut peer,0,&Frame::Result{call_id,ok:true,json:br#"{"session_id":"42424242424242424242424242424242"}"#}).await; peer }); let result=tokio::time::timeout(Duration::from_secs(11),read_client_frame(&mut socket)).await.unwrap(); let success=matches!(decode_muxed_frame(&result).unwrap().frame,Frame::Result{call_id:81,ok:true,..}); let elapsed=start.elapsed();let _peer=backend.await.unwrap();tokio::time::sleep(Duration::from_millis(75)).await; let rows:i64=sqlx::query_scalar("SELECT count(*) FROM terminal_sessions WHERE user_id=?").bind(&f.user).fetch_one(&f.auth.pool).await.unwrap(); println!("legitimate backend_delay={delay_ms}ms: success={success}, reply={}ms, committed rows={rows}",elapsed.as_millis()); server.abort();assert!(success && rows==1,"live legitimate open rejected at {elapsed:?} for {delay_ms}ms backend delay"); } #[tokio::test] async fn review4_legitimate_100() { legitimate_open(100).await; } #[tokio::test] async fn review4_legitimate_1500() { legitimate_open(1500).await; } #[tokio::test] async fn review4_legitimate_4500() { legitimate_open(4500).await; } #[tokio::test] async fn review4_legitimate_10000() { legitimate_open(10000).await; } ```
Author
Owner

review-auth4 server pristine archive fast gate at e4809d49cb, exit0. Full output verbatim, part1/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only.


==> fmt

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

==> test
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
   Compiling bitflags v2.13.2
   Compiling aho-corasick v1.1.5
   Compiling regex-syntax v0.8.11
   Compiling crossbeam-utils v0.8.23
   Compiling either v1.18.0
   Compiling openssl-sys v0.9.117
   Compiling linux-raw-sys v0.12.1
   Compiling crossbeam-queue v0.3.14
   Compiling nix v0.30.1
   Compiling libsqlite3-sys v0.30.1
   Compiling cursor-icon v1.2.0
   Compiling rustix v1.1.5
   Compiling vte v0.15.0
   Compiling sqlx-core v0.8.6
   Compiling utf8parse v0.2.2
   Compiling unicode-width v0.2.2
   Compiling openssl v0.10.81
   Compiling anstyle-parse v1.0.0
   Compiling signal-hook v0.3.18
   Compiling regex-automata v0.4.18
   Compiling home v0.5.12
   Compiling anstyle v1.0.14
   Compiling is_terminal_polyfill v1.70.2
   Compiling colorchoice v1.0.5
   Compiling anstyle-query v1.1.5
   Compiling anstream v1.0.0
   Compiling clap_lex v1.1.1
   Compiling strsim v0.11.1
   Compiling tower-http v0.6.11
   Compiling clap_builder v4.6.7
   Compiling sqlx-sqlite v0.8.6
   Compiling crossbeam-epoch v0.9.21
   Compiling vt100 v0.16.2
   Compiling rustix-openpty v0.2.0
   Compiling polling v3.11.0
   Compiling webauthn-attestation-ca v0.5.5
   Compiling alacritty_terminal v0.25.1
   Compiling webauthn-rs-core v0.5.5
   Compiling tokio-openssl v0.6.5
   Compiling matchers v0.2.0
   Compiling axum-server v0.8.0
   Compiling tracing-subscriber v0.3.23
   Compiling sqlx-macros-core v0.8.6
   Compiling clap v4.6.7
   Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-shim)
   Compiling webauthn-rs v0.5.5
   Compiling crossbeam-deque v0.8.8
   Compiling sqlx-macros v0.8.6
   Compiling plotters-backend v0.3.7
   Compiling ciborium-io v0.2.2
   Compiling rayon-core v1.13.0
   Compiling ciborium-ll v0.2.2
   Compiling plotters-svg v0.3.7
   Compiling itertools v0.13.0
   Compiling same-file v1.0.6
   Compiling cast v0.3.0
   Compiling rayon v1.12.0
   Compiling walkdir v2.5.0
   Compiling ciborium v0.2.2
   Compiling plotters v0.3.7
   Compiling sqlx v0.8.6
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-server)
   Compiling regex v1.13.1
   Compiling tinytemplate v1.2.1
   Compiling anes v0.1.6
   Compiling oorandom v11.1.5
   Compiling infraternal-agent v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-agent)
   Compiling infraternal-plugin-api v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-plugin-api)
   Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/plugins/ssh)
   Compiling criterion-plot v0.6.0
   Compiling criterion v0.7.0
   Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-protocol)
   Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 36s
     Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c)

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

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

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

running 7 tests
test double_fork_survives_parent_death ... ok
test disallowed_signal_only_disconnects_peer ... ok
test replacement_connection_and_malformed_limit ... ok
active
test real_shell_reconnect_resize_and_retained_exit ... 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. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.51s

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

running 0 tests

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

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

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

running 0 tests

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

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

running 7 tests
test stream_tests::all_short_frame_splits_match_direct_decoding ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test stream_tests::split_mux_header_preserves_trailing_close ... 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 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 (target/debug/deps/infraternal_server-495795ebba6d6acb)

running 57 tests
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::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::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_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok
test auth::tests::review3_tests::review3_busy_expiry ... ok
test auth::tests::review3_tests::review3_busy_logout ... ok
test auth::tests::review3_tests::review3_busy_recovery ... ok
test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok
test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok
test auth::tests::review3_tests::review3_waiting_handshake_loses_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok
test embedded::regressions::reattach_must_restore_output_credit ... ok
test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok
test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok
test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok
test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok
test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok
test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok
test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok
test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok
test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c)

running 12 tests
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test ring::checks::tests::wrap_and_exact_offsets ... ok
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test frame::checks::golden::every_frozen_message ... ok
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test frame::checks::tests::golden_and_fragmented ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok

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

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

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

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

   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_plugin_api

running 0 tests

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

   Doc-tests infraternal_plugin_ssh

running 0 tests

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

   Doc-tests infraternal_protocol

running 0 tests

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

   Doc-tests infraternal_server

running 0 tests

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

   Doc-tests infraternal_shim

running 0 tests

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


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

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:93:1
   │  
93 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
94 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
95 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index
   │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ getrandom v0.2.17
     └── rand_core v0.6.4
         ├── bip39 v2.2.2
         │   └── infraternal-server v0.1.0
         │       └── infraternal v0.1.0
         ├── crypto-common v0.1.7
         │   ├── aead v0.5.2
         │   │   └── aes-gcm v0.10.3
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   ├── cipher v0.4.4
         │   │   ├── aes v0.8.4
         │   │   │   └── aes-gcm v0.10.3 (*)
         │   │   ├── aes-gcm v0.10.3 (*)
         │   │   └── ctr v0.9.2
         │   │       └── aes-gcm v0.10.3 (*)
         │   ├── digest v0.10.7
         │   │   ├── blake2 v0.10.6
         │   │   │   └── argon2 v0.5.3
         │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   ├── hmac v0.12.1
         │   │   │   └── hkdf v0.12.4
         │   │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   │   ├── sha1 v0.10.7
         │   │   │   ├── axum v0.8.9
         │   │   │   │   └── infraternal-server v0.1.0 (*)
         │   │   │   └── tungstenite v0.29.0
         │   │   │       └── tokio-tungstenite v0.29.0
         │   │   │           ├── axum v0.8.9 (*)
         │   │   │           └── (dev) infraternal-server v0.1.0 (*)
         │   │   └── sha2 v0.10.9
         │   │       ├── infraternal-server v0.1.0 (*)
         │   │       ├── sqlx-core v0.8.6
         │   │       │   ├── sqlx v0.8.6
         │   │       │   │   ├── infraternal v0.1.0 (*)
         │   │       │   │   └── infraternal-server v0.1.0 (*)
review-auth4 server pristine archive fast gate at e4809d49cbd6aea76bc0393732d2e38cb0d76a19, exit0. Full output verbatim, part1/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only. ```text ==> fmt ==> clippy Compiling proc-macro2 v1.0.107 Compiling unicode-ident v1.0.26 Compiling quote v1.0.47 Compiling libc v0.2.190 Checking cfg-if v1.0.5 Compiling serde_core v1.0.229 Compiling serde v1.0.229 Compiling autocfg v1.5.1 Checking memchr v2.8.3 Compiling version_check v0.9.5 Checking itoa v1.0.18 Compiling find-msvc-tools v0.1.14 Compiling shlex v2.0.1 Checking log v0.4.34 Compiling generic-array v0.14.7 Checking smallvec v1.16.2 Checking pin-project-lite v0.2.17 Checking typenum v1.20.1 Compiling parking_lot_core v0.9.12 Compiling pkg-config v0.3.34 Compiling syn v3.0.6 Compiling syn v2.0.119 Compiling vcpkg v0.2.15 Compiling jobserver v0.1.35 Compiling icu_normalizer_data v2.3.0 Compiling cc v1.6.0 Checking bytes v1.12.1 Compiling zerocopy v0.8.60 Compiling icu_properties_data v2.3.0 Checking getrandom v0.2.17 Checking errno v0.3.14 Checking signal-hook-registry v1.4.8 Checking rand_core v0.6.4 Checking futures-core v0.3.34 Checking stable_deref_trait v1.2.1 Compiling num-traits v0.2.19 Checking subtle v2.6.1 Checking crypto-common v0.1.7 Checking once_cell v1.21.4 Compiling zmij v1.0.23 Checking aho-corasick v1.1.5 Checking bitflags v2.13.2 Checking tracing-core v0.1.36 Checking scopeguard v1.2.0 Checking regex-syntax v0.8.11 Checking lock_api v0.4.14 Checking socket2 v0.6.5 Checking mio v1.2.4 Checking futures-sink v0.3.34 Compiling crossbeam-utils v0.8.23 Checking arrayvec v0.7.8 Checking parking_lot v0.12.5 Compiling openssl-src v300.6.1+3.6.3 Checking block-buffer v0.10.4 Checking base64 v0.22.1 Checking cpufeatures v0.2.17 Checking writeable v0.6.4 Checking slab v0.4.12 Checking litemap v0.8.3 Compiling thiserror v2.0.21 Checking digest v0.10.7 Compiling openssl-sys v0.9.117 Checking utf8_iter v1.0.4 Compiling serde_json v1.0.151 Checking http v1.5.0 Compiling memoffset v0.9.1 Checking equivalent v1.0.2 Compiling cfg_aliases v0.2.2 Checking percent-encoding v2.3.2 Checking regex-automata v0.4.18 Compiling nix v0.30.1 Compiling getrandom v0.3.4 Compiling rustix v1.1.5 Compiling synstructure v0.14.0 Checking form_urlencoded v1.2.2 Checking futures-io v0.3.34 Compiling heck v0.5.0 Checking futures-task v0.3.34 Checking linux-raw-sys v0.12.1 Checking hashbrown v0.17.1 Compiling tracing-attributes v0.1.31 Compiling zerocopy-derive v0.8.60 Checking indexmap v2.14.2 Compiling serde_derive v1.0.229 Compiling zerofrom-derive v0.1.8 Compiling yoke-derive v0.8.4 Compiling displaydoc v0.2.7 Compiling zerovec-derive v0.11.6 Checking zerofrom v0.1.8 Compiling tokio-macros v2.7.2 Checking yoke v0.8.3 Checking tracing v0.1.44 Checking zerotrie v0.2.5 Compiling thiserror-impl v2.0.21 Compiling futures-macro v0.3.34 Checking tokio v1.53.2 Compiling libsqlite3-sys v0.30.1 Compiling httparse v1.10.1 Checking zerovec v0.11.8 Checking futures-util v0.3.34 Checking tinystr v0.8.4 Checking potential_utf v0.1.6 Checking icu_locale_core v2.3.0 Checking icu_collections v2.3.0 Checking either v1.18.0 Compiling num-conv v0.2.2 Compiling time-core v0.1.9 Checking cursor-icon v1.2.0 Checking minimal-lexical v0.2.1 Checking icu_provider v2.3.1 Compiling thiserror v1.0.69 Checking icu_properties v2.3.0 Checking icu_normalizer v2.3.0 Checking ppv-lite86 v0.2.21 Checking half v2.7.1 Compiling signal-hook v0.3.18 Checking nom v7.1.3 Checking vte v0.15.0 Compiling time-macros v0.2.32 Checking idna_adapter v1.2.2 Checking idna v1.1.0 Checking rand_core v0.9.5 Compiling thiserror-impl v1.0.69 Checking http-body v1.1.0 Compiling synstructure v0.13.2 Checking unicode-width v0.2.2 Compiling openssl v0.10.81 Compiling foldhash v0.1.5 Compiling allocator-api2 v0.2.21 Checking deranged v0.5.8 Checking foreign-types-shared v0.1.1 Checking powerfmt v0.2.1 Checking foreign-types v0.3.2 Compiling asn1-rs-derive v0.5.1 Compiling hashbrown v0.15.5 Checking rusticata-macros v4.1.0 Checking rand_chacha v0.9.0 Checking url v2.5.8 Checking tokio-util v0.7.19 Checking time v0.3.55 Checking polling v3.11.0 Checking rustix-openpty v0.2.0 Compiling openssl-macros v0.1.1 Compiling asn1-rs-impl v0.2.0 Checking futures-channel v0.3.34 Compiling getrandom v0.4.3 Checking tower-service v0.3.3 Checking home v0.5.12 Compiling parking v2.2.1 Checking data-encoding v2.11.1 Compiling crc-catalog v2.5.0 Compiling crc v3.4.0 Compiling event-listener v5.4.2 Compiling sha2 v0.10.9 Checking alacritty_terminal v0.25.1 Checking asn1-rs v0.6.2 Compiling crossbeam-queue v0.3.14 Checking rand v0.9.5 Compiling futures-intrusive v0.5.0 Compiling hashlink v0.10.0 Compiling spin v0.9.9 Checking num-integer v0.1.47 Checking fnv v1.0.7 Checking infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-protocol) Checking atomic-waker v1.1.2 Compiling ryu v1.0.23 Checking utf8parse v0.2.2 Checking base64 v0.21.7 Checking httpdate v1.0.3 Checking lazy_static v1.5.1 Compiling pastey v0.1.1 Compiling oid-registry v0.7.1 Compiling atoi v2.0.0 Compiling serde_urlencoded v0.7.1 Checking anstyle-parse v1.0.0 Checking h2 v0.4.19 Checking num-bigint v0.4.8 Compiling tokio-stream v0.1.19 Checking base64urlsafedata v0.5.5 Compiling flume v0.11.1 Compiling futures-executor v0.3.34 Compiling sqlx-core v0.8.6 Checking anstyle v1.0.14 Checking mime v0.3.17 Checking anstyle-query v1.1.5 Compiling rustversion v1.0.23 Compiling webauthn-attestation-ca v0.5.5 Checking colorchoice v1.0.5 Checking is_terminal_polyfill v1.70.2 Compiling unicase v2.10.0 Checking tower-layer v0.3.3 Checking anstream v1.0.0 Checking der-parser v9.0.0 Compiling mime_guess v2.0.5 Checking uuid v1.27.0 Checking infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-shim) Checking http-body-util v0.1.5 Checking sha1 v0.10.7 Compiling fs-err v3.3.2 Checking strsim v0.11.1 Compiling dotenvy v0.15.7 Checking sync_wrapper v1.0.2 Checking clap_lex v1.1.1 Compiling tokio-openssl v0.6.5 Compiling crossbeam-epoch v0.9.21 Compiling hex v0.4.3 Compiling webauthn-rs-core v0.5.5 Checking clap_builder v4.6.7 Checking tungstenite v0.29.0 Checking hyper v1.11.1 Checking x509-parser v0.16.0 Checking hyper-util v0.1.21 Checking webauthn-rs-proto v0.5.5 Checking rand_chacha v0.3.1 Checking serde_cbor_2 v0.13.0 Compiling clap_derive v4.6.7 Checking hex-conservative v0.2.3 Checking base64ct v1.8.3 Compiling crossbeam-deque v0.8.8 Checking tinyvec v1.13.3 Checking password-hash v0.5.0 Checking bitcoin_hashes v0.14.101 Checking rand v0.8.8 Checking unicode-normalization v0.1.25 Checking arc-swap v1.9.2 Checking tokio-tungstenite v0.29.0 Checking tower v0.5.3 Checking axum-core v0.5.6 Checking sharded-slab v0.1.7 Checking tracing-serde v0.2.0 Checking matchers v0.2.0 Checking blake2 v0.10.6 Checking tracing-log v0.2.0 Checking serde_path_to_error v0.1.20 Checking thread_local v1.1.10 Checking http-range-header v0.4.2 Compiling rayon-core v1.13.0 Checking matchit v0.8.4 Checking nu-ansi-term v0.50.3 Checking tower-http v0.6.11 Checking argon2 v0.5.3 Checking tracing-subscriber v0.3.23 Checking bip39 v2.2.2 Checking vt100 v0.16.2 Checking inout v0.1.4 Checking plotters-backend v0.3.7 Checking clap v4.6.7 Checking ciborium-io v0.2.2 Checking cipher v0.4.4 Checking ciborium-ll v0.2.2 Checking plotters-svg v0.3.7 Checking itertools v0.13.0 Compiling libfuzzer-sys v0.4.13 Checking universal-hash v0.5.1 Checking same-file v1.0.6 Checking axum v0.8.9 Checking cast v0.3.0 Checking opaque-debug v0.3.1 Checking rayon v1.12.0 Compiling sqlx-sqlite v0.8.6 Checking polyval v0.6.2 Checking walkdir v2.5.0 Checking criterion-plot v0.6.0 Checking plotters v0.3.7 Checking ciborium v0.2.2 Checking tinytemplate v1.2.1 Checking regex v1.13.1 Checking arbitrary v1.4.2 Checking oorandom v11.1.5 Checking anes v0.1.6 Checking ghash v0.5.1 Checking ctr v0.9.2 Checking aes v0.8.4 Compiling sqlx-macros-core v0.8.6 Checking criterion v0.7.0 Checking hmac v0.12.1 Checking aead v0.5.2 Checking aes-gcm v0.10.3 Checking hkdf v0.12.4 Checking infraternal-plugin-api v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-plugin-api) Checking infraternal-plugin-ssh v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/plugins/ssh) Checking infraternal-agent v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-agent) Compiling sqlx-macros v0.8.6 Checking sqlx v0.8.6 Checking infraternal-fuzz v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/fuzz) Checking axum-server v0.8.0 Checking webauthn-rs v0.5.5 Checking infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-server) Checking infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 25s ==> test Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on build directory Compiling bitflags v2.13.2 Compiling aho-corasick v1.1.5 Compiling regex-syntax v0.8.11 Compiling crossbeam-utils v0.8.23 Compiling either v1.18.0 Compiling openssl-sys v0.9.117 Compiling linux-raw-sys v0.12.1 Compiling crossbeam-queue v0.3.14 Compiling nix v0.30.1 Compiling libsqlite3-sys v0.30.1 Compiling cursor-icon v1.2.0 Compiling rustix v1.1.5 Compiling vte v0.15.0 Compiling sqlx-core v0.8.6 Compiling utf8parse v0.2.2 Compiling unicode-width v0.2.2 Compiling openssl v0.10.81 Compiling anstyle-parse v1.0.0 Compiling signal-hook v0.3.18 Compiling regex-automata v0.4.18 Compiling home v0.5.12 Compiling anstyle v1.0.14 Compiling is_terminal_polyfill v1.70.2 Compiling colorchoice v1.0.5 Compiling anstyle-query v1.1.5 Compiling anstream v1.0.0 Compiling clap_lex v1.1.1 Compiling strsim v0.11.1 Compiling tower-http v0.6.11 Compiling clap_builder v4.6.7 Compiling sqlx-sqlite v0.8.6 Compiling crossbeam-epoch v0.9.21 Compiling vt100 v0.16.2 Compiling rustix-openpty v0.2.0 Compiling polling v3.11.0 Compiling webauthn-attestation-ca v0.5.5 Compiling alacritty_terminal v0.25.1 Compiling webauthn-rs-core v0.5.5 Compiling tokio-openssl v0.6.5 Compiling matchers v0.2.0 Compiling axum-server v0.8.0 Compiling tracing-subscriber v0.3.23 Compiling sqlx-macros-core v0.8.6 Compiling clap v4.6.7 Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-shim) Compiling webauthn-rs v0.5.5 Compiling crossbeam-deque v0.8.8 Compiling sqlx-macros v0.8.6 Compiling plotters-backend v0.3.7 Compiling ciborium-io v0.2.2 Compiling rayon-core v1.13.0 Compiling ciborium-ll v0.2.2 Compiling plotters-svg v0.3.7 Compiling itertools v0.13.0 Compiling same-file v1.0.6 Compiling cast v0.3.0 Compiling rayon v1.12.0 Compiling walkdir v2.5.0 Compiling ciborium v0.2.2 Compiling plotters v0.3.7 Compiling sqlx v0.8.6 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-server) Compiling regex v1.13.1 Compiling tinytemplate v1.2.1 Compiling anes v0.1.6 Compiling oorandom v11.1.5 Compiling infraternal-agent v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-agent) Compiling infraternal-plugin-api v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-plugin-api) Compiling infraternal-plugin-ssh v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/plugins/ssh) Compiling criterion-plot v0.6.0 Compiling criterion v0.7.0 Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-protocol) Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 36s Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c) running 2 tests test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-8e53c92b1f367f87) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test real_shell_reconnect_resize_and_retained_exit ... 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. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.51s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-c198a78833f77637) running 7 tests test stream_tests::all_short_frame_splits_match_direct_decoding ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test stream_tests::split_mux_header_preserves_trailing_close ... 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 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 (target/debug/deps/infraternal_server-495795ebba6d6acb) running 57 tests test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::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::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_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok test auth::tests::review3_tests::review3_busy_expiry ... ok test auth::tests::review3_tests::review3_busy_logout ... ok test auth::tests::review3_tests::review3_busy_recovery ... ok test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok test auth::tests::review3_tests::review3_waiting_handshake_loses_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok test embedded::regressions::reattach_must_restore_output_credit ... ok test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test result: ok. 54 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 75.29s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c) running 12 tests test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test ring::checks::tests::wrap_and_exact_offsets ... ok test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test frame::checks::golden::every_frozen_message ... ok test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test frame::checks::tests::golden_and_fragmented ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.58s Running tests/detach.rs (target/debug/deps/detach-9f5d4ed474ba6700) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.96s 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_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:26:1 │ 26 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 27 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── alacritty_terminal v0.25.1 │ └── infraternal-shim v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:93:1 │ 93 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 94 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 95 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) ```
Author
Owner

review-auth4 server pristine archive fast gate at e4809d49cb, exit0. Full output verbatim, part2/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only.

         │   │       │   ├── sqlx-macros v0.8.6
         │   │       │   │   └── sqlx v0.8.6 (*)
         │   │       │   ├── sqlx-macros-core v0.8.6
         │   │       │   │   └── sqlx-macros v0.8.6 (*)
         │   │       │   └── sqlx-sqlite v0.8.6
         │   │       │       ├── sqlx v0.8.6 (*)
         │   │       │       └── sqlx-macros-core v0.8.6 (*)
         │   │       └── sqlx-macros-core v0.8.6 (*)
         │   └── universal-hash v0.5.1
         │       └── polyval v0.6.2
         │           └── ghash v0.5.1
         │               └── aes-gcm v0.10.3 (*)
         ├── password-hash v0.5.0
         │   └── argon2 v0.5.3 (*)
         ├── rand v0.8.8
         │   └── bip39 v2.2.2 (*)
         └── rand_chacha v0.3.1
             └── rand v0.8.8 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── infraternal-server v0.1.0
         │   │   └── infraternal v0.1.0
         │   ├── tungstenite v0.29.0
         │   │   └── tokio-tungstenite v0.29.0
         │   │       ├── axum v0.8.9
         │   │       │   └── infraternal-server v0.1.0 (*)
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   └── webauthn-rs-core v0.5.5
         │       └── webauthn-rs v0.5.5
         │           └── infraternal-server v0.1.0 (*)
         └── rand_chacha v0.9.0
             ├── rand v0.9.5 (*)
             └── webauthn-rs-core v0.5.5 (*)
   ├ getrandom v0.4.3
     ├── jobserver v0.1.35
     │   └── cc v1.6.0
     │       ├── (build) libfuzzer-sys v0.4.13
     │       │   └── infraternal-fuzz v0.1.0
     │       ├── (build) libsqlite3-sys v0.30.1
     │       │   └── sqlx-sqlite v0.8.6
     │       │       ├── sqlx v0.8.6
     │       │       │   ├── infraternal v0.1.0
     │       │       │   └── infraternal-server v0.1.0
     │       │       │       └── infraternal v0.1.0 (*)
     │       │       └── sqlx-macros-core v0.8.6
     │       │           └── sqlx-macros v0.8.6
     │       │               └── sqlx v0.8.6 (*)
     │       ├── openssl-src v300.6.1+3.6.3
     │       │   └── (build) openssl-sys v0.9.117
     │       │       ├── axum-server v0.8.0
     │       │       │   └── infraternal-server v0.1.0 (*)
     │       │       ├── openssl v0.10.81
     │       │       │   ├── axum-server v0.8.0 (*)
     │       │       │   ├── infraternal-server v0.1.0 (*)
     │       │       │   ├── tokio-openssl v0.6.5
     │       │       │   │   └── axum-server v0.8.0 (*)
     │       │       │   ├── webauthn-attestation-ca v0.5.5
     │       │       │   │   └── webauthn-rs-core v0.5.5
     │       │       │   │       └── webauthn-rs v0.5.5
     │       │       │   │           └── infraternal-server v0.1.0 (*)
     │       │       │   └── webauthn-rs-core v0.5.5 (*)
     │       │       ├── tokio-openssl v0.6.5 (*)
     │       │       ├── webauthn-attestation-ca v0.5.5 (*)
     │       │       └── webauthn-rs-core v0.5.5 (*)
     │       └── (build) openssl-sys v0.9.117 (*)
     └── uuid v1.27.0
         ├── infraternal-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/.cache/codex-scratch/review-auth4/server/Cargo.lock:99:1
    │  
 99 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
100 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index
    │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ hashbrown v0.15.5
      ├── hashlink v0.10.0
      │   └── sqlx-core v0.8.6
      │       ├── sqlx v0.8.6
      │       │   ├── infraternal v0.1.0
      │       │   └── infraternal-server v0.1.0
      │       │       └── infraternal v0.1.0 (*)
      │       ├── sqlx-macros v0.8.6
      │       │   └── sqlx v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6
      │       │   └── sqlx-macros v0.8.6 (*)
      │       └── sqlx-sqlite v0.8.6
      │           ├── sqlx v0.8.6 (*)
      │           └── sqlx-macros-core v0.8.6 (*)
      └── sqlx-core v0.8.6 (*)
    ├ hashbrown v0.17.1
      └── indexmap v2.14.2
          ├── h2 v0.4.19
          │   └── hyper v1.11.1
          │       ├── axum v0.8.9
          │       │   └── infraternal-server v0.1.0
          │       │       └── infraternal v0.1.0
          │       ├── axum-server v0.8.0
          │       │   └── infraternal-server v0.1.0 (*)
          │       └── hyper-util v0.1.21
          │           ├── axum v0.8.9 (*)
          │           └── axum-server v0.8.0 (*)
          └── sqlx-core v0.8.6
              ├── sqlx v0.8.6
              │   ├── infraternal v0.1.0 (*)
              │   └── infraternal-server v0.1.0 (*)
              ├── sqlx-macros v0.8.6
              │   └── sqlx v0.8.6 (*)
              ├── sqlx-macros-core v0.8.6
              │   └── sqlx-macros v0.8.6 (*)
              └── sqlx-sqlite v0.8.6
                  ├── sqlx v0.8.6 (*)
                  └── sqlx-macros-core v0.8.6 (*)

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

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:239:1
    │  
239 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
240 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ syn v2.0.119
      ├── asn1-rs-derive v0.5.1
      │   └── asn1-rs v0.6.2
      │       ├── der-parser v9.0.0
      │       │   ├── webauthn-rs-core v0.5.5
      │       │   │   └── webauthn-rs v0.5.5
      │       │   │       └── infraternal-server v0.1.0
      │       │   │           └── infraternal v0.1.0
      │       │   └── x509-parser v0.16.0
      │       │       └── webauthn-rs-core v0.5.5 (*)
      │       ├── oid-registry v0.7.1
      │       │   └── x509-parser v0.16.0 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── asn1-rs-impl v0.2.0
      │   └── asn1-rs v0.6.2 (*)
      ├── openssl-macros v0.1.1
      │   └── openssl v0.10.81
      │       ├── axum-server v0.8.0
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5
      │       │   └── webauthn-rs-core v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      ├── sqlx-macros v0.8.6
      │   └── sqlx v0.8.6
      │       ├── infraternal v0.1.0 (*)
      │       └── infraternal-server v0.1.0 (*)
      ├── sqlx-macros-core v0.8.6
      │   └── sqlx-macros v0.8.6 (*)
      ├── synstructure v0.13.2
      │   └── asn1-rs-derive v0.5.1 (*)
      ├── thiserror-impl v1.0.69
      │   └── thiserror v1.0.69
      │       ├── asn1-rs v0.6.2 (*)
      │       ├── webauthn-rs-core v0.5.5 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── tracing-attributes v0.1.31
      │   └── tracing v0.1.44
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── axum-core v0.5.6
      │       │   └── axum v0.8.9 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6
      │       │   ├── sqlx v0.8.6 (*)
      │       │   ├── sqlx-macros v0.8.6 (*)
      │       │   ├── sqlx-macros-core v0.8.6 (*)
      │       │   └── sqlx-sqlite v0.8.6
      │       │       ├── sqlx v0.8.6 (*)
      │       │       └── sqlx-macros-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tracing-subscriber v0.3.23
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── webauthn-attestation-ca v0.5.5 (*)
      │       ├── webauthn-rs v0.5.5 (*)
      │       └── webauthn-rs-core v0.5.5 (*)
      └── zerocopy-derive v0.8.60
          └── zerocopy v0.8.60
              ├── half v2.7.1
              │   ├── ciborium-ll v0.2.2
              │   │   └── ciborium v0.2.2
              │   │       └── criterion v0.7.0
              │   │           └── (dev) infraternal-protocol v0.1.0
              │   │               ├── infraternal-fuzz v0.1.0
              │   │               └── infraternal-server v0.1.0 (*)
              │   └── serde_cbor_2 v0.13.0
              │       ├── (dev) 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-fuzz v0.1.0
      │       │       └── infraternal-server v0.1.0
      │       │           └── infraternal v0.1.0
      │       └── infraternal v0.1.0 (*)
      ├── displaydoc v0.2.7
      │   ├── asn1-rs v0.6.2
      │   │   ├── der-parser v9.0.0
      │   │   │   ├── webauthn-rs-core v0.5.5
      │   │   │   │   └── webauthn-rs v0.5.5
      │   │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   │   └── x509-parser v0.16.0
      │   │   │       └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── oid-registry v0.7.1
      │   │   │   └── x509-parser v0.16.0 (*)
      │   │   └── x509-parser v0.16.0 (*)
      │   ├── der-parser v9.0.0 (*)
      │   ├── icu_collections v2.3.0
      │   │   ├── icu_normalizer v2.3.0
      │   │   │   └── idna_adapter v1.2.2
      │   │   │       └── idna v1.1.0
      │   │   │           └── url v2.5.8
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   └── infraternal-server v0.1.0 (*)
      │   │   │               │   ├── sqlx-macros v0.8.6
      │   │   │               │   │   └── sqlx v0.8.6 (*)
      │   │   │               │   ├── sqlx-macros-core v0.8.6
      │   │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │   │   │               │   └── sqlx-sqlite v0.8.6
      │   │   │               │       ├── sqlx v0.8.6 (*)
      │   │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-sqlite v0.8.6 (*)
      │   │   │               ├── webauthn-rs v0.5.5 (*)
      │   │   │               ├── webauthn-rs-core v0.5.5 (*)
      │   │   │               └── webauthn-rs-proto v0.5.5
      │   │   │                   └── webauthn-rs-core v0.5.5 (*)
      │   │   └── icu_properties v2.3.0
      │   │       └── idna_adapter v1.2.2 (*)
      │   ├── icu_locale_core v2.3.0
      │   │   ├── icu_properties v2.3.0 (*)
      │   │   └── icu_provider v2.3.1
      │   │       ├── icu_normalizer v2.3.0 (*)
      │   │       └── icu_properties v2.3.0 (*)
      │   ├── icu_properties v2.3.0 (*)
      │   ├── icu_provider v2.3.1 (*)
      │   ├── tinystr v0.8.4
      │   │   └── icu_locale_core v2.3.0 (*)
      │   └── zerotrie v0.2.5
      │       ├── icu_properties v2.3.0 (*)
      │       └── icu_provider v2.3.1 (*)
      ├── futures-macro v0.3.34
      │   └── futures-util v0.3.34
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── futures-executor v0.3.34
      │       │   └── sqlx-sqlite v0.8.6 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── js-sys v0.3.106
      │       │   └── web-sys v0.3.106
      │       │       └── plotters v0.3.7
      │       │           └── criterion v0.7.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       ├── tower v0.5.3
      │       │   ├── axum v0.8.9 (*)
      │       │   └── (dev) infraternal-server v0.1.0 (*)
      │       └── tower-http v0.6.11
      │           └── infraternal-server v0.1.0 (*)
      ├── serde_derive v1.0.229
      │   ├── serde v1.0.229
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── base64urlsafedata v0.5.5
      │   │   │   ├── webauthn-attestation-ca v0.5.5
      │   │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2
      │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── axum-server v0.8.0
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   ├── itertools v0.13.0
      │   │   │   │   ├── criterion v0.7.0 (*)
      │   │   │   │   └── criterion-plot v0.6.0
      │   │   │   │       └── criterion v0.7.0 (*)
      │   │   │   ├── rayon v1.12.0
      │   │   │   │   └── criterion v0.7.0 (*)
      │   │   │   ├── sqlx-core v0.8.6 (*)
      │   │   │   └── sqlx-macros-core v0.8.6 (*)
      │   │   ├── infraternal-server v0.1.0 (*)
      │   │   ├── serde_cbor_2 v0.13.0
      │   │   │   ├── (dev) 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 (*)
      │   │   ├── vte v0.15.0
      │   │   │   ├── alacritty_terminal v0.25.1 (*)
      │   │   │   ├── infraternal-shim v0.1.0 (*)
      │   │   │   └── vt100 v0.16.2
      │   │   │       ├── (dev) infraternal v0.1.0 (*)
      │   │   │       └── (dev) infraternal-shim v0.1.0 (*)
      │   │   ├── webauthn-attestation-ca v0.5.5 (*)
      │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   └── url v2.5.8 (*)
      ├── synstructure v0.14.0
      │   ├── yoke-derive v0.8.4
      │   │   └── yoke v0.8.3
      │   │       ├── icu_collections v2.3.0 (*)
      │   │       ├── icu_provider v2.3.1 (*)
      │   │       ├── zerotrie v0.2.5 (*)
      │   │       └── zerovec v0.11.8
      │   │           ├── icu_collections v2.3.0 (*)
      │   │           ├── icu_locale_core v2.3.0 (*)
      │   │           ├── icu_normalizer v2.3.0 (*)
      │   │           ├── icu_properties v2.3.0 (*)
      │   │           ├── icu_provider v2.3.1 (*)
      │   │           ├── potential_utf v0.1.6
      │   │           │   └── icu_collections v2.3.0 (*)
      │   │           └── tinystr v0.8.4 (*)
      │   └── zerofrom-derive v0.1.8
      │       └── zerofrom v0.1.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── yoke v0.8.3 (*)
      │           ├── zerotrie v0.2.5 (*)
      │           └── zerovec v0.11.8 (*)
      ├── thiserror-impl v2.0.21
      │   └── thiserror v2.0.21
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-sqlite v0.8.6 (*)
      │       └── tungstenite v0.29.0
      │           └── tokio-tungstenite v0.29.0 (*)
      ├── tokio-macros v2.7.2
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9 (*)
      │       ├── axum-server v0.8.0 (*)
      │       ├── fs-err v3.3.2
      │       │   └── axum-server v0.8.0 (*)
      │       ├── h2 v0.4.19
      │       │   └── hyper v1.11.1
      │       │       ├── axum v0.8.9 (*)
      │       │       ├── axum-server v0.8.0 (*)
      │       │       └── hyper-util v0.1.21
      │       │           ├── axum v0.8.9 (*)
      │       │           └── axum-server v0.8.0 (*)
      │       ├── hyper v1.11.1 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-openssl v0.6.5
      │       │   └── axum-server v0.8.0 (*)
      │       ├── tokio-stream v0.1.19
review-auth4 server pristine archive fast gate at e4809d49cbd6aea76bc0393732d2e38cb0d76a19, exit0. Full output verbatim, part2/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only. ```text │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-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/.cache/codex-scratch/review-auth4/server/Cargo.lock:99:1 │ 99 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 100 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 ├── h2 v0.4.19 │ └── hyper v1.11.1 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ └── hyper-util v0.1.21 │ ├── axum v0.8.9 (*) │ └── axum-server v0.8.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:193:1 │ 193 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 194 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:195:1 │ 195 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 196 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:197:1 │ 197 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 198 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:199:1 │ 199 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 200 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:239:1 │ 239 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 240 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ ├── sqlx-macros v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tracing-subscriber v0.3.23 │ │ └── infraternal-server v0.1.0 (*) │ ├── webauthn-attestation-ca v0.5.5 (*) │ ├── webauthn-rs v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) └── zerocopy-derive v0.8.60 └── zerocopy v0.8.60 ├── half v2.7.1 │ ├── ciborium-ll v0.2.2 │ │ └── ciborium v0.2.2 │ │ └── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 (*) │ └── serde_cbor_2 v0.13.0 │ ├── (dev) 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-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── displaydoc v0.2.7 │ ├── asn1-rs v0.6.2 │ │ ├── der-parser v9.0.0 │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── futures-macro v0.3.34 │ └── futures-util v0.3.34 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 │ └── infraternal-server v0.1.0 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.0 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── itertools v0.13.0 │ │ │ │ ├── criterion v0.7.0 (*) │ │ │ │ └── criterion-plot v0.6.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── rayon v1.12.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── sqlx-core v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── (dev) 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 (*) │ │ ├── vte v0.15.0 │ │ │ ├── alacritty_terminal v0.25.1 (*) │ │ │ ├── infraternal-shim v0.1.0 (*) │ │ │ └── vt100 v0.16.2 │ │ │ ├── (dev) infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-shim v0.1.0 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ └── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── axum-server v0.8.0 (*) │ ├── fs-err v3.3.2 │ │ └── axum-server v0.8.0 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 ```
Author
Owner

review-auth4 server pristine archive fast gate at e4809d49cb, exit0. Full output verbatim, part3/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only.

      │       │   └── sqlx-core v0.8.6 (*)
      │       ├── tokio-tungstenite v0.29.0 (*)
      │       ├── tokio-util v0.7.19
      │       │   ├── h2 v0.4.19 (*)
      │       │   └── tower-http v0.6.11 (*)
      │       ├── tower v0.5.3 (*)
      │       └── tower-http v0.6.11 (*)
      ├── wasm-bindgen-macro-support v0.2.129
      │   └── wasm-bindgen-macro v0.2.129
      │       └── wasm-bindgen v0.2.129
      │           ├── js-sys v0.3.106 (*)
      │           ├── plotters v0.3.7 (*)
      │           └── web-sys v0.3.106 (*)
      ├── yoke-derive v0.8.4 (*)
      ├── zerofrom-derive v0.1.8 (*)
      └── zerovec-derive v0.11.6
          └── zerovec v0.11.8 (*)

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:300:1
    │  
300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.59.0
      └── alacritty_terminal v0.25.1
          └── infraternal-shim v0.1.0
              ├── infraternal v0.1.0
              └── infraternal-fuzz v0.1.0
    ├ 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-fuzz v0.1.0
      │               │       └── infraternal-server v0.1.0
      │               │           └── infraternal v0.1.0
      │               └── infraternal v0.1.0 (*)
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   ├── rustix v1.1.5
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── polling v3.11.0
      │   │   │   └── alacritty_terminal v0.25.1 (*)
      │   │   └── rustix-openpty v0.2.0
      │   │       └── alacritty_terminal v0.25.1 (*)
      │   ├── rustix-openpty v0.2.0 (*)
      │   └── signal-hook-registry v1.4.8
      │       ├── signal-hook v0.3.18
      │       │   └── alacritty_terminal v0.25.1 (*)
      │       └── tokio v1.53.2
      │           ├── axum v0.8.9
      │           │   └── 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 (*)
      │           ├── hyper v1.11.1 (*)
      │           ├── hyper-util v0.1.21 (*)
      │           ├── infraternal v0.1.0 (*)
      │           ├── infraternal-server v0.1.0 (*)
      │           ├── sqlx-core v0.8.6
      │           │   ├── sqlx v0.8.6
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── infraternal-server v0.1.0 (*)
      │           │   ├── sqlx-macros v0.8.6
      │           │   │   └── sqlx v0.8.6 (*)
      │           │   ├── sqlx-macros-core v0.8.6
      │           │   │   └── sqlx-macros v0.8.6 (*)
      │           │   └── sqlx-sqlite v0.8.6
      │           │       ├── sqlx v0.8.6 (*)
      │           │       └── sqlx-macros-core v0.8.6 (*)
      │           ├── sqlx-macros-core v0.8.6 (*)
      │           ├── tokio-openssl v0.6.5
      │           │   └── axum-server v0.8.0 (*)
      │           ├── tokio-stream v0.1.19
      │           │   └── sqlx-core v0.8.6 (*)
      │           ├── tokio-tungstenite v0.29.0
      │           │   ├── 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 (*)
      ├── home v0.5.12
      │   └── alacritty_terminal v0.25.1 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2 (*)
      ├── miow v0.6.1
      │   └── alacritty_terminal v0.25.1 (*)
      ├── nu-ansi-term v0.50.3
      │   └── tracing-subscriber v0.3.23
      │       └── infraternal-server v0.1.0 (*)
      ├── polling v3.11.0 (*)
      ├── rustix v1.1.5 (*)
      ├── socket2 v0.6.5
      │   └── 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 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Blocking waiting for file lock on build directory
   Compiling cfg-if v1.0.5
   Compiling libc v0.2.190
   Compiling serde_core v1.0.229
   Compiling pin-project-lite v0.2.17
   Compiling memchr v2.8.3
   Compiling serde v1.0.229
   Compiling bytes v1.12.1
   Compiling log v0.4.34
   Compiling itoa v1.0.18
   Compiling futures-core v0.3.34
   Compiling smallvec v1.16.2
   Compiling zerofrom v0.1.8
   Compiling stable_deref_trait v1.2.1
   Compiling once_cell v1.21.4
   Compiling futures-sink v0.3.34
   Compiling yoke v0.8.3
   Compiling zerocopy v0.8.60
   Compiling generic-array v0.14.7
   Compiling tracing-core v0.1.36
   Compiling typenum v1.20.1
   Compiling zerovec v0.11.8
   Compiling writeable v0.6.4
   Compiling slab v0.4.12
   Compiling tracing v0.1.44
   Compiling litemap v0.8.3
   Compiling num-traits v0.2.19
   Compiling zerotrie v0.2.5
   Compiling utf8_iter v1.0.4
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling subtle v2.6.1
   Compiling icu_collections v2.3.0
   Compiling icu_locale_core v2.3.0
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling openssl-sys v0.9.117
   Compiling errno v0.3.14
   Compiling mio v1.2.4
   Compiling socket2 v0.6.5
   Compiling signal-hook-registry v1.4.8
   Compiling tokio v1.53.2
   Compiling http v1.5.0
   Compiling bitflags v2.13.2
   Compiling icu_provider v2.3.1
   Compiling icu_properties_data v2.3.0
   Compiling icu_normalizer_data v2.3.0
   Compiling equivalent v1.0.2
   Compiling percent-encoding v2.3.2
   Compiling digest v0.10.7
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling getrandom v0.3.4
   Compiling icu_properties v2.3.0
   Compiling icu_normalizer v2.3.0
   Compiling form_urlencoded v1.2.2
   Compiling futures-task v0.3.34
   Compiling hashbrown v0.17.1
   Compiling futures-io v0.3.34
   Compiling cpufeatures v0.2.17
   Compiling futures-util v0.3.34
   Compiling parking_lot_core v0.9.12
   Compiling minimal-lexical v0.2.1
   Compiling thiserror v1.0.69
   Compiling httparse v1.10.1
   Compiling nom v7.1.3
   Compiling indexmap v2.14.2
   Compiling ppv-lite86 v0.2.21
   Compiling rand_core v0.9.5
   Compiling idna_adapter v1.2.2
   Compiling http-body v1.1.0
   Compiling idna v1.1.0
   Compiling thiserror v2.0.21
   Compiling zmij v1.0.23
   Compiling time-core v0.1.9
   Compiling num-conv v0.2.2
   Compiling deranged v0.5.8
   Compiling foreign-types-shared v0.1.1
   Compiling powerfmt v0.2.1
   Compiling serde_json v1.0.151
   Compiling foreign-types v0.3.2
   Compiling url v2.5.8
   Compiling rusticata-macros v4.1.0
   Compiling rand_chacha v0.9.0
   Compiling parking_lot v0.12.5
   Compiling time v0.3.55
   Compiling getrandom v0.2.17
   Compiling futures-channel v0.3.34
   Compiling base64 v0.22.1
   Compiling tokio-util v0.7.19
   Compiling data-encoding v2.11.1
   Compiling tower-service v0.3.3
   Compiling arrayvec v0.7.8
   Compiling getrandom v0.4.3
   Compiling rand_core v0.6.4
   Compiling rand v0.9.5
   Compiling num-integer v0.1.47
   Compiling crossbeam-utils v0.8.23
   Compiling aho-corasick v1.1.5
   Compiling foldhash v0.1.5
   Compiling atomic-waker v1.1.2
   Compiling lazy_static v1.5.1
   Compiling httpdate v1.0.3
   Compiling base64 v0.21.7
   Compiling allocator-api2 v0.2.21
   Compiling fnv v1.0.7
   Compiling regex-syntax v0.8.11
   Compiling rustix v1.1.5
   Compiling hashbrown v0.15.5
   Compiling asn1-rs v0.6.2
   Compiling h2 v0.4.19
   Compiling base64urlsafedata v0.5.5
   Compiling oid-registry v0.7.1
   Compiling num-bigint v0.4.8
   Compiling either v1.18.0
   Compiling regex-automata v0.4.18
   Compiling parking v2.2.1
   Compiling linux-raw-sys v0.12.1
   Compiling mime v0.3.17
   Compiling ryu v1.0.23
   Compiling crc-catalog v2.5.0
   Compiling tower-layer v0.3.3
   Compiling crc v3.4.0
   Compiling serde_urlencoded v0.7.1
   Compiling der-parser v9.0.0
   Compiling event-listener v5.4.2
   Compiling memoffset v0.9.1
   Compiling uuid v1.27.0
   Compiling crossbeam-queue v0.3.14
   Compiling hashlink v0.10.0
   Compiling tokio-stream v0.1.19
   Compiling futures-intrusive v0.5.0
   Compiling http-body-util v0.1.5
   Compiling half v2.7.1
   Compiling sha2 v0.10.9
   Compiling sha1 v0.10.7
   Compiling libsqlite3-sys v0.30.1
   Compiling spin v0.9.9
   Compiling utf8parse v0.2.2
   Compiling signal-hook v0.3.18
   Compiling sync_wrapper v1.0.2
   Compiling anstyle-parse v1.0.0
   Compiling fs-err v3.3.2
   Compiling flume v0.11.1
   Compiling sqlx-core v0.8.6
   Compiling tungstenite v0.29.0
   Compiling serde_cbor_2 v0.13.0
   Compiling hyper v1.11.1
   Compiling x509-parser v0.16.0
   Compiling hyper-util v0.1.21
   Compiling nix v0.30.1
   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 futures-executor v0.3.34
   Compiling atoi v2.0.0
   Compiling cursor-icon v1.2.0
   Compiling is_terminal_polyfill v1.70.2
   Compiling tinyvec v1.13.3
   Compiling unicase v2.10.0
   Compiling colorchoice v1.0.5
   Compiling anstyle v1.0.14
   Compiling anstyle-query v1.1.5
   Compiling base64ct v1.8.3
   Compiling hex v0.4.3
   Compiling unicode-normalization v0.1.25
   Compiling anstream v1.0.0
   Compiling password-hash v0.5.0
   Compiling vte v0.15.0
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling arc-swap v1.9.2
   Compiling rustix-openpty v0.2.0
   Compiling polling v3.11.0
   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 blake2 v0.10.6
   Compiling tracing-serde v0.2.0
   Compiling serde_path_to_error v0.1.20
   Compiling tracing-log v0.2.0
   Compiling thread_local v1.1.10
   Compiling strsim v0.11.1
   Compiling http-range-header v0.4.2
   Compiling home v0.5.12
   Compiling clap_lex v1.1.1
   Compiling matchit v0.8.4
   Compiling unicode-width v0.2.2
   Compiling nu-ansi-term v0.50.3
   Compiling clap_builder v4.6.7
   Compiling alacritty_terminal v0.25.1
   Compiling tower-http v0.6.11
   Compiling axum v0.8.9
   Compiling tracing-subscriber v0.3.23
   Compiling argon2 v0.5.3
   Compiling bip39 v2.2.2
   Compiling clap_derive v4.6.7
   Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-protocol)
   Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-shim)
   Compiling clap v4.6.7
   Compiling sqlx-sqlite v0.8.6
   Compiling openssl v0.10.81
   Compiling webauthn-attestation-ca v0.5.5
   Compiling webauthn-rs-core v0.5.5
   Compiling tokio-openssl v0.6.5
   Compiling sqlx v0.8.6
   Compiling axum-server v0.8.0
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 5m 59s
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: 14799616 bytes
   Compiling cfg-if v1.0.5
   Compiling libc v0.2.190
   Compiling serde_core v1.0.229
   Compiling pin-project-lite v0.2.17
   Compiling memchr v2.8.3
   Compiling serde v1.0.229
   Compiling bytes v1.12.1
   Compiling log v0.4.34
   Compiling itoa v1.0.18
   Compiling futures-core v0.3.34
   Compiling smallvec v1.16.2
   Compiling zerofrom v0.1.8
   Compiling stable_deref_trait v1.2.1
   Compiling once_cell v1.21.4
   Compiling yoke v0.8.3
   Compiling futures-sink v0.3.34
   Compiling zerocopy v0.8.60
   Compiling generic-array v0.14.7
   Compiling typenum v1.20.1
   Compiling tracing-core v0.1.36
   Compiling zerovec v0.11.8
   Compiling tracing v0.1.44
   Compiling slab v0.4.12
   Compiling writeable v0.6.4
   Compiling litemap v0.8.3
   Compiling num-traits v0.2.19
   Compiling zerotrie v0.2.5
   Compiling subtle v2.6.1
   Compiling utf8_iter v1.0.4
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling icu_locale_core v2.3.0
   Compiling icu_collections v2.3.0
   Compiling errno v0.3.14
   Compiling socket2 v0.6.5
   Compiling signal-hook-registry v1.4.8
   Compiling mio v1.2.4
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling openssl-sys v0.9.117
   Compiling tokio v1.53.2
   Compiling http v1.5.0
   Compiling icu_properties_data v2.3.0
   Compiling icu_normalizer_data v2.3.0
   Compiling bitflags v2.13.2
   Compiling icu_provider v2.3.1
   Compiling equivalent v1.0.2
   Compiling percent-encoding v2.3.2
   Compiling digest v0.10.7
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling icu_properties v2.3.0
   Compiling getrandom v0.3.4
   Compiling icu_normalizer v2.3.0
   Compiling form_urlencoded v1.2.2
   Compiling hashbrown v0.17.1
   Compiling futures-task v0.3.34
   Compiling futures-io v0.3.34
   Compiling futures-util v0.3.34
   Compiling cpufeatures v0.2.17
   Compiling parking_lot_core v0.9.12
   Compiling minimal-lexical v0.2.1
   Compiling httparse v1.10.1
   Compiling thiserror v1.0.69
   Compiling nom v7.1.3
   Compiling indexmap v2.14.2
   Compiling rand_core v0.9.5
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling http-body v1.1.0
   Compiling zmij v1.0.23
   Compiling thiserror v2.0.21
   Compiling deranged v0.5.8
   Compiling foreign-types-shared v0.1.1
   Compiling powerfmt v0.2.1
   Compiling time-core v0.1.9
   Compiling ppv-lite86 v0.2.21
   Compiling num-conv v0.2.2
   Compiling serde_json v1.0.151
   Compiling url v2.5.8
   Compiling rand_chacha v0.9.0
   Compiling time v0.3.55
   Compiling rusticata-macros v4.1.0
   Compiling foreign-types v0.3.2
   Compiling parking_lot v0.12.5
   Compiling getrandom v0.2.17
   Compiling futures-channel v0.3.34
   Compiling arrayvec v0.7.8
   Compiling base64 v0.22.1
   Compiling data-encoding v2.11.1
   Compiling tower-service v0.3.3
   Compiling getrandom v0.4.3
   Compiling rand_core v0.6.4
   Compiling rand v0.9.5
   Compiling tokio-util v0.7.19
   Compiling num-integer v0.1.47
   Compiling crossbeam-utils v0.8.23
   Compiling aho-corasick v1.1.5
   Compiling base64 v0.21.7
   Compiling asn1-rs v0.6.2
   Compiling allocator-api2 v0.2.21
   Compiling atomic-waker v1.1.2
   Compiling regex-syntax v0.8.11
   Compiling httpdate v1.0.3
   Compiling foldhash v0.1.5
   Compiling fnv v1.0.7
   Compiling lazy_static v1.5.1
   Compiling h2 v0.4.19
   Compiling hashbrown v0.15.5
   Compiling oid-registry v0.7.1
   Compiling base64urlsafedata v0.5.5
   Compiling rustix v1.1.5
   Compiling num-bigint v0.4.8
   Compiling either v1.18.0
   Compiling regex-automata v0.4.18
   Compiling tower-layer v0.3.3
   Compiling crc-catalog v2.5.0
   Compiling ryu v1.0.23
   Compiling mime v0.3.17
   Compiling parking v2.2.1
   Compiling linux-raw-sys v0.12.1
   Compiling event-listener v5.4.2
   Compiling serde_urlencoded v0.7.1
   Compiling der-parser v9.0.0
   Compiling crc v3.4.0
   Compiling memoffset v0.9.1
   Compiling uuid v1.27.0
   Compiling crossbeam-queue v0.3.14
   Compiling hashlink v0.10.0
   Compiling tokio-stream v0.1.19
   Compiling futures-intrusive v0.5.0
   Compiling half v2.7.1
   Compiling http-body-util v0.1.5
   Compiling sha2 v0.10.9
   Compiling sha1 v0.10.7
   Compiling libsqlite3-sys v0.30.1
   Compiling spin v0.9.9
   Compiling utf8parse v0.2.2
   Compiling sync_wrapper v1.0.2
   Compiling signal-hook v0.3.18
   Compiling flume v0.11.1
   Compiling anstyle-parse v1.0.0
   Compiling fs-err v3.3.2
   Compiling tungstenite v0.29.0
   Compiling sqlx-core v0.8.6
   Compiling hyper v1.11.1
   Compiling hyper-util v0.1.21
   Compiling serde_cbor_2 v0.13.0
   Compiling x509-parser v0.16.0
   Compiling nix v0.30.1
   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 futures-executor v0.3.34
   Compiling atoi v2.0.0
   Compiling is_terminal_polyfill v1.70.2
   Compiling colorchoice v1.0.5
   Compiling anstyle v1.0.14
   Compiling hex v0.4.3
   Compiling base64ct v1.8.3
   Compiling cursor-icon v1.2.0
   Compiling tinyvec v1.13.3
   Compiling anstyle-query v1.1.5
   Compiling unicase v2.10.0
   Compiling anstream v1.0.0
   Compiling password-hash v0.5.0
   Compiling vte v0.15.0
   Compiling unicode-normalization v0.1.25
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling arc-swap v1.9.2
   Compiling rustix-openpty v0.2.0
   Compiling polling v3.11.0
   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 blake2 v0.10.6
   Compiling tracing-serde v0.2.0
   Compiling serde_path_to_error v0.1.20
   Compiling tracing-log v0.2.0
   Compiling thread_local v1.1.10
   Compiling home v0.5.12
   Compiling unicode-width v0.2.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 http-range-header v0.4.2
   Compiling clap_builder v4.6.7
   Compiling tracing-subscriber v0.3.23
review-auth4 server pristine archive fast gate at e4809d49cbd6aea76bc0393732d2e38cb0d76a19, exit0. Full output verbatim, part3/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only. ```text │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 (*) │ ├── tower v0.5.3 (*) │ └── tower-http v0.6.11 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:242:1 │ 242 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 243 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:244:1 │ 244 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 245 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:246:1 │ 246 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 247 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/server/Cargo.lock:300:1 │ 300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ 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-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ ├── signal-hook v0.3.18 │ │ └── alacritty_terminal v0.25.1 (*) │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ └── 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 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── sqlx-macros v0.8.6 │ │ │ └── sqlx v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 │ │ │ └── sqlx-macros v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── 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 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── nu-ansi-term v0.50.3 │ └── tracing-subscriber v0.3.23 │ └── infraternal-server v0.1.0 (*) ├── polling v3.11.0 (*) ├── rustix v1.1.5 (*) ├── socket2 v0.6.5 │ └── 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 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Blocking waiting for file lock on build directory Compiling cfg-if v1.0.5 Compiling libc v0.2.190 Compiling serde_core v1.0.229 Compiling pin-project-lite v0.2.17 Compiling memchr v2.8.3 Compiling serde v1.0.229 Compiling bytes v1.12.1 Compiling log v0.4.34 Compiling itoa v1.0.18 Compiling futures-core v0.3.34 Compiling smallvec v1.16.2 Compiling zerofrom v0.1.8 Compiling stable_deref_trait v1.2.1 Compiling once_cell v1.21.4 Compiling futures-sink v0.3.34 Compiling yoke v0.8.3 Compiling zerocopy v0.8.60 Compiling generic-array v0.14.7 Compiling tracing-core v0.1.36 Compiling typenum v1.20.1 Compiling zerovec v0.11.8 Compiling writeable v0.6.4 Compiling slab v0.4.12 Compiling tracing v0.1.44 Compiling litemap v0.8.3 Compiling num-traits v0.2.19 Compiling zerotrie v0.2.5 Compiling utf8_iter v1.0.4 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling subtle v2.6.1 Compiling icu_collections v2.3.0 Compiling icu_locale_core v2.3.0 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling openssl-sys v0.9.117 Compiling errno v0.3.14 Compiling mio v1.2.4 Compiling socket2 v0.6.5 Compiling signal-hook-registry v1.4.8 Compiling tokio v1.53.2 Compiling http v1.5.0 Compiling bitflags v2.13.2 Compiling icu_provider v2.3.1 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling equivalent v1.0.2 Compiling percent-encoding v2.3.2 Compiling digest v0.10.7 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling getrandom v0.3.4 Compiling icu_properties v2.3.0 Compiling icu_normalizer v2.3.0 Compiling form_urlencoded v1.2.2 Compiling futures-task v0.3.34 Compiling hashbrown v0.17.1 Compiling futures-io v0.3.34 Compiling cpufeatures v0.2.17 Compiling futures-util v0.3.34 Compiling parking_lot_core v0.9.12 Compiling minimal-lexical v0.2.1 Compiling thiserror v1.0.69 Compiling httparse v1.10.1 Compiling nom v7.1.3 Compiling indexmap v2.14.2 Compiling ppv-lite86 v0.2.21 Compiling rand_core v0.9.5 Compiling idna_adapter v1.2.2 Compiling http-body v1.1.0 Compiling idna v1.1.0 Compiling thiserror v2.0.21 Compiling zmij v1.0.23 Compiling time-core v0.1.9 Compiling num-conv v0.2.2 Compiling deranged v0.5.8 Compiling foreign-types-shared v0.1.1 Compiling powerfmt v0.2.1 Compiling serde_json v1.0.151 Compiling foreign-types v0.3.2 Compiling url v2.5.8 Compiling rusticata-macros v4.1.0 Compiling rand_chacha v0.9.0 Compiling parking_lot v0.12.5 Compiling time v0.3.55 Compiling getrandom v0.2.17 Compiling futures-channel v0.3.34 Compiling base64 v0.22.1 Compiling tokio-util v0.7.19 Compiling data-encoding v2.11.1 Compiling tower-service v0.3.3 Compiling arrayvec v0.7.8 Compiling getrandom v0.4.3 Compiling rand_core v0.6.4 Compiling rand v0.9.5 Compiling num-integer v0.1.47 Compiling crossbeam-utils v0.8.23 Compiling aho-corasick v1.1.5 Compiling foldhash v0.1.5 Compiling atomic-waker v1.1.2 Compiling lazy_static v1.5.1 Compiling httpdate v1.0.3 Compiling base64 v0.21.7 Compiling allocator-api2 v0.2.21 Compiling fnv v1.0.7 Compiling regex-syntax v0.8.11 Compiling rustix v1.1.5 Compiling hashbrown v0.15.5 Compiling asn1-rs v0.6.2 Compiling h2 v0.4.19 Compiling base64urlsafedata v0.5.5 Compiling oid-registry v0.7.1 Compiling num-bigint v0.4.8 Compiling either v1.18.0 Compiling regex-automata v0.4.18 Compiling parking v2.2.1 Compiling linux-raw-sys v0.12.1 Compiling mime v0.3.17 Compiling ryu v1.0.23 Compiling crc-catalog v2.5.0 Compiling tower-layer v0.3.3 Compiling crc v3.4.0 Compiling serde_urlencoded v0.7.1 Compiling der-parser v9.0.0 Compiling event-listener v5.4.2 Compiling memoffset v0.9.1 Compiling uuid v1.27.0 Compiling crossbeam-queue v0.3.14 Compiling hashlink v0.10.0 Compiling tokio-stream v0.1.19 Compiling futures-intrusive v0.5.0 Compiling http-body-util v0.1.5 Compiling half v2.7.1 Compiling sha2 v0.10.9 Compiling sha1 v0.10.7 Compiling libsqlite3-sys v0.30.1 Compiling spin v0.9.9 Compiling utf8parse v0.2.2 Compiling signal-hook v0.3.18 Compiling sync_wrapper v1.0.2 Compiling anstyle-parse v1.0.0 Compiling fs-err v3.3.2 Compiling flume v0.11.1 Compiling sqlx-core v0.8.6 Compiling tungstenite v0.29.0 Compiling serde_cbor_2 v0.13.0 Compiling hyper v1.11.1 Compiling x509-parser v0.16.0 Compiling hyper-util v0.1.21 Compiling nix v0.30.1 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 futures-executor v0.3.34 Compiling atoi v2.0.0 Compiling cursor-icon v1.2.0 Compiling is_terminal_polyfill v1.70.2 Compiling tinyvec v1.13.3 Compiling unicase v2.10.0 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling anstyle-query v1.1.5 Compiling base64ct v1.8.3 Compiling hex v0.4.3 Compiling unicode-normalization v0.1.25 Compiling anstream v1.0.0 Compiling password-hash v0.5.0 Compiling vte v0.15.0 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling arc-swap v1.9.2 Compiling rustix-openpty v0.2.0 Compiling polling v3.11.0 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 blake2 v0.10.6 Compiling tracing-serde v0.2.0 Compiling serde_path_to_error v0.1.20 Compiling tracing-log v0.2.0 Compiling thread_local v1.1.10 Compiling strsim v0.11.1 Compiling http-range-header v0.4.2 Compiling home v0.5.12 Compiling clap_lex v1.1.1 Compiling matchit v0.8.4 Compiling unicode-width v0.2.2 Compiling nu-ansi-term v0.50.3 Compiling clap_builder v4.6.7 Compiling alacritty_terminal v0.25.1 Compiling tower-http v0.6.11 Compiling axum v0.8.9 Compiling tracing-subscriber v0.3.23 Compiling argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling clap_derive v4.6.7 Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-protocol) Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-shim) Compiling clap v4.6.7 Compiling sqlx-sqlite v0.8.6 Compiling openssl v0.10.81 Compiling webauthn-attestation-ca v0.5.5 Compiling webauthn-rs-core v0.5.5 Compiling tokio-openssl v0.6.5 Compiling sqlx v0.8.6 Compiling axum-server v0.8.0 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal) Finished `release` profile [optimized] target(s) in 5m 59s 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: 14799616 bytes Compiling cfg-if v1.0.5 Compiling libc v0.2.190 Compiling serde_core v1.0.229 Compiling pin-project-lite v0.2.17 Compiling memchr v2.8.3 Compiling serde v1.0.229 Compiling bytes v1.12.1 Compiling log v0.4.34 Compiling itoa v1.0.18 Compiling futures-core v0.3.34 Compiling smallvec v1.16.2 Compiling zerofrom v0.1.8 Compiling stable_deref_trait v1.2.1 Compiling once_cell v1.21.4 Compiling yoke v0.8.3 Compiling futures-sink v0.3.34 Compiling zerocopy v0.8.60 Compiling generic-array v0.14.7 Compiling typenum v1.20.1 Compiling tracing-core v0.1.36 Compiling zerovec v0.11.8 Compiling tracing v0.1.44 Compiling slab v0.4.12 Compiling writeable v0.6.4 Compiling litemap v0.8.3 Compiling num-traits v0.2.19 Compiling zerotrie v0.2.5 Compiling subtle v2.6.1 Compiling utf8_iter v1.0.4 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling icu_locale_core v2.3.0 Compiling icu_collections v2.3.0 Compiling errno v0.3.14 Compiling socket2 v0.6.5 Compiling signal-hook-registry v1.4.8 Compiling mio v1.2.4 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling openssl-sys v0.9.117 Compiling tokio v1.53.2 Compiling http v1.5.0 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling bitflags v2.13.2 Compiling icu_provider v2.3.1 Compiling equivalent v1.0.2 Compiling percent-encoding v2.3.2 Compiling digest v0.10.7 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling icu_properties v2.3.0 Compiling getrandom v0.3.4 Compiling icu_normalizer v2.3.0 Compiling form_urlencoded v1.2.2 Compiling hashbrown v0.17.1 Compiling futures-task v0.3.34 Compiling futures-io v0.3.34 Compiling futures-util v0.3.34 Compiling cpufeatures v0.2.17 Compiling parking_lot_core v0.9.12 Compiling minimal-lexical v0.2.1 Compiling httparse v1.10.1 Compiling thiserror v1.0.69 Compiling nom v7.1.3 Compiling indexmap v2.14.2 Compiling rand_core v0.9.5 Compiling idna_adapter v1.2.2 Compiling idna v1.1.0 Compiling http-body v1.1.0 Compiling zmij v1.0.23 Compiling thiserror v2.0.21 Compiling deranged v0.5.8 Compiling foreign-types-shared v0.1.1 Compiling powerfmt v0.2.1 Compiling time-core v0.1.9 Compiling ppv-lite86 v0.2.21 Compiling num-conv v0.2.2 Compiling serde_json v1.0.151 Compiling url v2.5.8 Compiling rand_chacha v0.9.0 Compiling time v0.3.55 Compiling rusticata-macros v4.1.0 Compiling foreign-types v0.3.2 Compiling parking_lot v0.12.5 Compiling getrandom v0.2.17 Compiling futures-channel v0.3.34 Compiling arrayvec v0.7.8 Compiling base64 v0.22.1 Compiling data-encoding v2.11.1 Compiling tower-service v0.3.3 Compiling getrandom v0.4.3 Compiling rand_core v0.6.4 Compiling rand v0.9.5 Compiling tokio-util v0.7.19 Compiling num-integer v0.1.47 Compiling crossbeam-utils v0.8.23 Compiling aho-corasick v1.1.5 Compiling base64 v0.21.7 Compiling asn1-rs v0.6.2 Compiling allocator-api2 v0.2.21 Compiling atomic-waker v1.1.2 Compiling regex-syntax v0.8.11 Compiling httpdate v1.0.3 Compiling foldhash v0.1.5 Compiling fnv v1.0.7 Compiling lazy_static v1.5.1 Compiling h2 v0.4.19 Compiling hashbrown v0.15.5 Compiling oid-registry v0.7.1 Compiling base64urlsafedata v0.5.5 Compiling rustix v1.1.5 Compiling num-bigint v0.4.8 Compiling either v1.18.0 Compiling regex-automata v0.4.18 Compiling tower-layer v0.3.3 Compiling crc-catalog v2.5.0 Compiling ryu v1.0.23 Compiling mime v0.3.17 Compiling parking v2.2.1 Compiling linux-raw-sys v0.12.1 Compiling event-listener v5.4.2 Compiling serde_urlencoded v0.7.1 Compiling der-parser v9.0.0 Compiling crc v3.4.0 Compiling memoffset v0.9.1 Compiling uuid v1.27.0 Compiling crossbeam-queue v0.3.14 Compiling hashlink v0.10.0 Compiling tokio-stream v0.1.19 Compiling futures-intrusive v0.5.0 Compiling half v2.7.1 Compiling http-body-util v0.1.5 Compiling sha2 v0.10.9 Compiling sha1 v0.10.7 Compiling libsqlite3-sys v0.30.1 Compiling spin v0.9.9 Compiling utf8parse v0.2.2 Compiling sync_wrapper v1.0.2 Compiling signal-hook v0.3.18 Compiling flume v0.11.1 Compiling anstyle-parse v1.0.0 Compiling fs-err v3.3.2 Compiling tungstenite v0.29.0 Compiling sqlx-core v0.8.6 Compiling hyper v1.11.1 Compiling hyper-util v0.1.21 Compiling serde_cbor_2 v0.13.0 Compiling x509-parser v0.16.0 Compiling nix v0.30.1 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 futures-executor v0.3.34 Compiling atoi v2.0.0 Compiling is_terminal_polyfill v1.70.2 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling hex v0.4.3 Compiling base64ct v1.8.3 Compiling cursor-icon v1.2.0 Compiling tinyvec v1.13.3 Compiling anstyle-query v1.1.5 Compiling unicase v2.10.0 Compiling anstream v1.0.0 Compiling password-hash v0.5.0 Compiling vte v0.15.0 Compiling unicode-normalization v0.1.25 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling arc-swap v1.9.2 Compiling rustix-openpty v0.2.0 Compiling polling v3.11.0 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 blake2 v0.10.6 Compiling tracing-serde v0.2.0 Compiling serde_path_to_error v0.1.20 Compiling tracing-log v0.2.0 Compiling thread_local v1.1.10 Compiling home v0.5.12 Compiling unicode-width v0.2.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 http-range-header v0.4.2 Compiling clap_builder v4.6.7 Compiling tracing-subscriber v0.3.23 ```
Author
Owner

review-auth4 server pristine archive fast gate at e4809d49cb, exit0. Full output verbatim, part4/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only.

   Compiling axum v0.8.9
   Compiling tower-http v0.6.11
   Compiling alacritty_terminal v0.25.1
   Compiling argon2 v0.5.3
   Compiling bip39 v2.2.2
   Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-protocol)
   Compiling clap v4.6.7
   Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-shim)
   Compiling openssl v0.10.81
   Compiling webauthn-attestation-ca v0.5.5
   Compiling webauthn-rs-core v0.5.5
   Compiling tokio-openssl v0.6.5
   Compiling sqlx-sqlite v0.8.6
   Compiling axum-server v0.8.0
   Compiling sqlx v0.8.6
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 3m 17s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 12394720 bytes
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

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

==> TypeScript protocol compiler

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

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

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

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [1.82s]
review-auth4 server pristine archive fast gate at e4809d49cbd6aea76bc0393732d2e38cb0d76a19, exit0. Full output verbatim, part4/4; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only. ```text Compiling axum v0.8.9 Compiling tower-http v0.6.11 Compiling alacritty_terminal v0.25.1 Compiling argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-protocol) Compiling clap v4.6.7 Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-shim) Compiling openssl v0.10.81 Compiling webauthn-attestation-ca v0.5.5 Compiling webauthn-rs-core v0.5.5 Compiling tokio-openssl v0.6.5 Compiling sqlx-sqlite v0.8.6 Compiling axum-server v0.8.0 Compiling sqlx v0.8.6 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/server/crates/infraternal) Finished `release` profile [optimized] target(s) in 3m 17s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 12394720 bytes server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> TypeScript protocol compiler ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [6.90ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.13ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.78ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.16ms] (pass) split mux header preserves trailing Close [0.13ms] 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 [1801.13ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [6.57ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [1.82s] ```
Author
Owner

review-auth4 client pristine archive fast gate at 58040dfd59, exit0. Full output verbatim, part1/3; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only.


==> fmt

==> clippy
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Checking log v0.4.34
    Checking futures-sink v0.3.34
    Checking tracing-core v0.1.36
    Checking tokio v1.53.2
    Checking slab v0.4.12
    Checking futures-channel v0.3.34
    Checking flume v0.11.1
    Checking vte v0.15.0
    Checking futures-util v0.3.34
    Checking tracing v0.1.44
    Checking webauthn-attestation-ca v0.5.5
    Checking axum-core v0.5.6
    Checking alacritty_terminal v0.25.1
    Checking vt100 v0.16.2
    Checking webauthn-rs-core v0.5.5
    Checking infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim)
    Checking infraternal-fuzz v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/fuzz)
    Checking webauthn-rs v0.5.5
    Checking futures-executor v0.3.34
    Checking tokio-stream v0.1.19
    Checking hyper v1.11.1
    Checking tower v0.5.3
    Checking sqlx-core v0.8.6
    Checking hyper-util v0.1.21
    Checking axum v0.8.9
    Checking sqlx-sqlite v0.8.6
    Checking sqlx v0.8.6
    Checking infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server)
    Checking infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.86s

==> test
   Compiling log v0.4.34
   Compiling futures-sink v0.3.34
   Compiling tracing-core v0.1.36
   Compiling slab v0.4.12
   Compiling tokio v1.53.2
   Compiling criterion v0.7.0
   Compiling flume v0.11.1
   Compiling futures-channel v0.3.34
   Compiling vte v0.15.0
   Compiling futures-util v0.3.34
   Compiling tracing v0.1.44
   Compiling webauthn-attestation-ca v0.5.5
   Compiling axum-core v0.5.6
   Compiling alacritty_terminal v0.25.1
   Compiling vt100 v0.16.2
   Compiling webauthn-rs-core v0.5.5
   Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim)
   Compiling webauthn-rs v0.5.5
   Compiling futures-executor v0.3.34
   Compiling sqlx-core v0.8.6
   Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-protocol)
   Compiling tokio-stream v0.1.19
   Compiling hyper v1.11.1
   Compiling tower v0.5.3
   Compiling sqlx-sqlite v0.8.6
   Compiling hyper-util v0.1.21
   Compiling axum v0.8.9
   Compiling sqlx-macros-core v0.8.6
   Compiling sqlx-macros v0.8.6
   Compiling sqlx v0.8.6
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 35.96s
     Running unittests src/main.rs (target/debug/deps/infraternal-35f142d7f784daf3)

running 0 tests

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

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

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

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

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

running 0 tests

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

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

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

running 0 tests

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

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

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::golden_vectors_encode_and_decode_every_contract_frame ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok
test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok
test 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.01s

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

running 12 tests
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok
test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::review_old_words_race_rotation ... ok
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test auth::tests::setup_expiry_single_announcement_and_parallel_redemption ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok

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

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

running 12 tests
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok

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

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

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

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

   Doc-tests infraternal_agent

running 0 tests

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

   Doc-tests infraternal_plugin_api

running 0 tests

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

   Doc-tests infraternal_plugin_ssh

running 0 tests

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

   Doc-tests infraternal_protocol

running 0 tests

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

   Doc-tests infraternal_server

running 0 tests

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

   Doc-tests infraternal_shim

running 0 tests

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


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

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:88:1
   │  
88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index
   │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ getrandom v0.2.17
     └── rand_core v0.6.4
         ├── bip39 v2.2.2
         │   └── infraternal-server v0.1.0
         │       └── infraternal v0.1.0
         ├── crypto-common v0.1.7
         │   ├── aead v0.5.2
         │   │   └── aes-gcm v0.10.3
         │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   ├── cipher v0.4.4
         │   │   ├── aes v0.8.4
         │   │   │   └── aes-gcm v0.10.3 (*)
         │   │   ├── aes-gcm v0.10.3 (*)
         │   │   └── ctr v0.9.2
         │   │       └── aes-gcm v0.10.3 (*)
         │   ├── digest v0.10.7
         │   │   ├── blake2 v0.10.6
         │   │   │   └── argon2 v0.5.3
         │   │   │       └── infraternal-server v0.1.0 (*)
         │   │   ├── hmac v0.12.1
         │   │   │   └── hkdf v0.12.4
         │   │   │       └── (dev) infraternal-server v0.1.0 (*)
         │   │   └── sha2 v0.10.9
         │   │       ├── infraternal-server v0.1.0 (*)
         │   │       ├── sqlx-core v0.8.6
         │   │       │   ├── sqlx v0.8.6
         │   │       │   │   ├── infraternal v0.1.0 (*)
         │   │       │   │   └── infraternal-server v0.1.0 (*)
         │   │       │   ├── sqlx-macros v0.8.6
         │   │       │   │   └── sqlx v0.8.6 (*)
         │   │       │   ├── sqlx-macros-core v0.8.6
         │   │       │   │   └── sqlx-macros v0.8.6 (*)
         │   │       │   └── sqlx-sqlite v0.8.6
         │   │       │       ├── sqlx v0.8.6 (*)
         │   │       │       └── sqlx-macros-core v0.8.6 (*)
         │   │       └── sqlx-macros-core v0.8.6 (*)
         │   └── universal-hash v0.5.1
         │       └── polyval v0.6.2
         │           └── ghash v0.5.1
         │               └── aes-gcm v0.10.3 (*)
         ├── password-hash v0.5.0
         │   └── argon2 v0.5.3 (*)
         ├── rand v0.8.8
         │   └── bip39 v2.2.2 (*)
         └── rand_chacha v0.3.1
             └── rand v0.8.8 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── infraternal-server v0.1.0
         │   │   └── infraternal v0.1.0
         │   └── webauthn-rs-core v0.5.5
         │       └── webauthn-rs v0.5.5
         │           └── infraternal-server v0.1.0 (*)
         └── rand_chacha v0.9.0
             ├── rand v0.9.5 (*)
             └── webauthn-rs-core v0.5.5 (*)
   ├ getrandom v0.4.3
     ├── jobserver v0.1.35
     │   └── cc v1.6.0
     │       ├── (build) libfuzzer-sys v0.4.13
     │       │   └── infraternal-fuzz v0.1.0
     │       ├── (build) libsqlite3-sys v0.30.1
     │       │   └── sqlx-sqlite v0.8.6
     │       │       ├── sqlx v0.8.6
     │       │       │   ├── infraternal v0.1.0
     │       │       │   └── infraternal-server v0.1.0
     │       │       │       └── infraternal v0.1.0 (*)
     │       │       └── sqlx-macros-core v0.8.6
     │       │           └── sqlx-macros v0.8.6
     │       │               └── sqlx v0.8.6 (*)
     │       ├── openssl-src v300.6.1+3.6.3
     │       │   └── (build) openssl-sys v0.9.117
     │       │       ├── openssl v0.10.81
     │       │       │   ├── 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 (*)
     │       │       ├── webauthn-attestation-ca v0.5.5 (*)
     │       │       └── webauthn-rs-core v0.5.5 (*)
     │       └── (build) openssl-sys v0.9.117 (*)
     └── uuid v1.27.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/.cache/codex-scratch/review-auth4/client/Cargo.lock:93:1
   │  
93 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
94 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ hashbrown v0.15.5
     ├── hashlink v0.10.0
     │   └── sqlx-core v0.8.6
     │       ├── sqlx v0.8.6
     │       │   ├── infraternal v0.1.0
     │       │   └── infraternal-server v0.1.0
     │       │       └── infraternal v0.1.0 (*)
     │       ├── sqlx-macros v0.8.6
     │       │   └── sqlx v0.8.6 (*)
     │       ├── sqlx-macros-core v0.8.6
     │       │   └── sqlx-macros v0.8.6 (*)
     │       └── sqlx-sqlite v0.8.6
     │           ├── sqlx v0.8.6 (*)
     │           └── sqlx-macros-core v0.8.6 (*)
     └── sqlx-core v0.8.6 (*)
   ├ hashbrown v0.17.1
     └── indexmap v2.14.2
         └── sqlx-core v0.8.6
             ├── sqlx v0.8.6
             │   ├── infraternal v0.1.0
             │   └── infraternal-server v0.1.0
             │       └── infraternal v0.1.0 (*)
             ├── sqlx-macros v0.8.6
             │   └── sqlx v0.8.6 (*)
             ├── sqlx-macros-core v0.8.6
             │   └── sqlx-macros v0.8.6 (*)
             └── sqlx-sqlite v0.8.6
                 ├── sqlx v0.8.6 (*)
                 └── sqlx-macros-core v0.8.6 (*)

warning[duplicate]: found 2 duplicate entries for crate 'r-efi'
    ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:183:1
    │  
183 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index
184 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ r-efi v5.3.0
      └── getrandom v0.3.4
          └── rand_core v0.9.5
              ├── rand v0.9.5
              │   ├── infraternal-server v0.1.0
              │   │   └── infraternal v0.1.0
              │   └── webauthn-rs-core v0.5.5
              │       └── webauthn-rs v0.5.5
              │           └── infraternal-server v0.1.0 (*)
              └── rand_chacha v0.9.0
                  ├── rand v0.9.5 (*)
                  └── webauthn-rs-core v0.5.5 (*)
    ├ r-efi v6.0.0
      └── getrandom v0.4.3
          ├── jobserver v0.1.35
          │   └── cc v1.6.0
          │       ├── (build) libfuzzer-sys v0.4.13
          │       │   └── infraternal-fuzz v0.1.0
          │       ├── (build) libsqlite3-sys v0.30.1
          │       │   └── sqlx-sqlite v0.8.6
          │       │       ├── sqlx v0.8.6
          │       │       │   ├── infraternal v0.1.0
          │       │       │   └── infraternal-server v0.1.0
          │       │       │       └── infraternal v0.1.0 (*)
          │       │       └── sqlx-macros-core v0.8.6
          │       │           └── sqlx-macros v0.8.6
          │       │               └── sqlx v0.8.6 (*)
          │       ├── openssl-src v300.6.1+3.6.3
          │       │   └── (build) openssl-sys v0.9.117
          │       │       ├── openssl v0.10.81
          │       │       │   ├── 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 (*)
          │       │       ├── webauthn-attestation-ca v0.5.5 (*)
          │       │       └── webauthn-rs-core v0.5.5 (*)
          │       └── (build) openssl-sys v0.9.117 (*)
          └── uuid v1.27.0
              ├── infraternal-server v0.1.0 (*)
              ├── webauthn-attestation-ca v0.5.5 (*)
              ├── webauthn-rs v0.5.5 (*)
              └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:185:1
    │  
185 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index
186 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand v0.8.8
      └── bip39 v2.2.2
          └── infraternal-server v0.1.0
              └── infraternal v0.1.0
    ├ rand v0.9.5
      ├── infraternal-server v0.1.0
      │   └── infraternal v0.1.0
      └── webauthn-rs-core v0.5.5
          └── webauthn-rs v0.5.5
              └── infraternal-server v0.1.0 (*)

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

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

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:227:1
    │  
227 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
228 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ syn v2.0.119
      ├── asn1-rs-derive v0.5.1
      │   └── asn1-rs v0.6.2
      │       ├── der-parser v9.0.0
      │       │   ├── webauthn-rs-core v0.5.5
      │       │   │   └── webauthn-rs v0.5.5
      │       │   │       └── infraternal-server v0.1.0
      │       │   │           └── infraternal v0.1.0
      │       │   └── x509-parser v0.16.0
      │       │       └── webauthn-rs-core v0.5.5 (*)
      │       ├── oid-registry v0.7.1
      │       │   └── x509-parser v0.16.0 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── asn1-rs-impl v0.2.0
      │   └── asn1-rs v0.6.2 (*)
      ├── openssl-macros v0.1.1
      │   └── openssl v0.10.81
      │       ├── 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 v0.1.0 (*)
      │       └── infraternal-server v0.1.0 (*)
      ├── sqlx-macros-core v0.8.6
      │   └── sqlx-macros v0.8.6 (*)
      ├── synstructure v0.13.2
      │   └── asn1-rs-derive v0.5.1 (*)
      ├── thiserror-impl v1.0.69
      │   └── thiserror v1.0.69
      │       ├── asn1-rs v0.6.2 (*)
      │       ├── webauthn-rs-core v0.5.5 (*)
      │       └── x509-parser v0.16.0 (*)
      ├── tracing-attributes v0.1.31
      │   └── tracing v0.1.44
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0 (*)
      │       ├── axum-core v0.5.6
      │       │   └── axum v0.8.9 (*)
      │       ├── 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 (*)
      │       ├── 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-fuzz v0.1.0
              │   └── serde_cbor_2 v0.13.0
              │       ├── (dev) 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 (*)
                      │   └── 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
review-auth4 client pristine archive fast gate at 58040dfd599cd25ed6a44abf1f8bb9084e9837c6, exit0. Full output verbatim, part1/3; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only. ```text ==> fmt ==> clippy Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Checking log v0.4.34 Checking futures-sink v0.3.34 Checking tracing-core v0.1.36 Checking tokio v1.53.2 Checking slab v0.4.12 Checking futures-channel v0.3.34 Checking flume v0.11.1 Checking vte v0.15.0 Checking futures-util v0.3.34 Checking tracing v0.1.44 Checking webauthn-attestation-ca v0.5.5 Checking axum-core v0.5.6 Checking alacritty_terminal v0.25.1 Checking vt100 v0.16.2 Checking webauthn-rs-core v0.5.5 Checking infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim) Checking infraternal-fuzz v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/fuzz) Checking webauthn-rs v0.5.5 Checking futures-executor v0.3.34 Checking tokio-stream v0.1.19 Checking hyper v1.11.1 Checking tower v0.5.3 Checking sqlx-core v0.8.6 Checking hyper-util v0.1.21 Checking axum v0.8.9 Checking sqlx-sqlite v0.8.6 Checking sqlx v0.8.6 Checking infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server) Checking infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.86s ==> test Compiling log v0.4.34 Compiling futures-sink v0.3.34 Compiling tracing-core v0.1.36 Compiling slab v0.4.12 Compiling tokio v1.53.2 Compiling criterion v0.7.0 Compiling flume v0.11.1 Compiling futures-channel v0.3.34 Compiling vte v0.15.0 Compiling futures-util v0.3.34 Compiling tracing v0.1.44 Compiling webauthn-attestation-ca v0.5.5 Compiling axum-core v0.5.6 Compiling alacritty_terminal v0.25.1 Compiling vt100 v0.16.2 Compiling webauthn-rs-core v0.5.5 Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim) Compiling webauthn-rs v0.5.5 Compiling futures-executor v0.3.34 Compiling sqlx-core v0.8.6 Compiling infraternal-protocol v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-protocol) Compiling tokio-stream v0.1.19 Compiling hyper v1.11.1 Compiling tower v0.5.3 Compiling sqlx-sqlite v0.8.6 Compiling hyper-util v0.1.21 Compiling axum v0.8.9 Compiling sqlx-macros-core v0.8.6 Compiling sqlx-macros v0.8.6 Compiling sqlx v0.8.6 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 35.96s Running unittests src/main.rs (target/debug/deps/infraternal-35f142d7f784daf3) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-127934b20fa33652) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test user_scope_survives_parent_unit_stop ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.46s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-c198a78833f77637) 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::golden_vectors_encode_and_decode_every_contract_frame ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok test 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.01s Running unittests src/lib.rs (target/debug/deps/infraternal_server-7548ec02aea5dda3) running 12 tests test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review_invalid_device_polling_exhausts_browser_budget ... ok test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::review_old_words_race_rotation ... ok test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test auth::tests::setup_expiry_single_announcement_and_parallel_redemption ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.59s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-ed89d744f989a5c2) running 12 tests test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test frame::checks::golden::every_frozen_message ... ok test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test frame::checks::tests::golden_and_fragmented ... ok test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.24s Running tests/detach.rs (target/debug/deps/detach-61348d2d934a9ab8) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.43s Doc-tests infraternal_agent running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:24:1 │ 24 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 25 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── alacritty_terminal v0.25.1 │ └── infraternal-shim v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:88:1 │ 88 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 89 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 90 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── openssl v0.10.81 │ │ │ ├── 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 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.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/.cache/codex-scratch/review-auth4/client/Cargo.lock:93:1 │ 93 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 94 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:183:1 │ 183 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 184 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── openssl v0.10.81 │ │ │ ├── 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 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:185:1 │ 185 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 186 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:187:1 │ 187 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 188 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:189:1 │ 189 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 190 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:227:1 │ 227 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 228 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── 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 v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── 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 (*) │ ├── 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-fuzz v0.1.0 │ └── serde_cbor_2 v0.13.0 │ ├── (dev) 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 (*) │ └── 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 ```
Author
Owner

review-auth4 client pristine archive fast gate at 58040dfd59, exit0. Full output verbatim, part2/3; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only.

      │       │   └── (dev) infraternal-protocol v0.1.0
      │       │       └── infraternal-fuzz 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
      │   │   │   │           └── infraternal v0.1.0 (*)
      │   │   │   └── x509-parser v0.16.0
      │   │   │       └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── oid-registry v0.7.1
      │   │   │   └── x509-parser v0.16.0 (*)
      │   │   └── x509-parser v0.16.0 (*)
      │   ├── der-parser v9.0.0 (*)
      │   ├── icu_collections v2.3.0
      │   │   ├── icu_normalizer v2.3.0
      │   │   │   └── idna_adapter v1.2.2
      │   │   │       └── idna v1.1.0
      │   │   │           └── url v2.5.8
      │   │   │               ├── infraternal-server v0.1.0 (*)
      │   │   │               ├── sqlx-core v0.8.6
      │   │   │               │   ├── sqlx v0.8.6
      │   │   │               │   │   ├── infraternal v0.1.0 (*)
      │   │   │               │   │   └── infraternal-server v0.1.0 (*)
      │   │   │               │   ├── sqlx-macros v0.8.6
      │   │   │               │   │   └── sqlx v0.8.6 (*)
      │   │   │               │   ├── sqlx-macros-core v0.8.6
      │   │   │               │   │   └── sqlx-macros v0.8.6 (*)
      │   │   │               │   └── sqlx-sqlite v0.8.6
      │   │   │               │       ├── sqlx v0.8.6 (*)
      │   │   │               │       └── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-macros-core v0.8.6 (*)
      │   │   │               ├── sqlx-sqlite v0.8.6 (*)
      │   │   │               ├── webauthn-rs v0.5.5 (*)
      │   │   │               ├── webauthn-rs-core v0.5.5 (*)
      │   │   │               └── webauthn-rs-proto v0.5.5
      │   │   │                   └── webauthn-rs-core v0.5.5 (*)
      │   │   └── icu_properties v2.3.0
      │   │       └── idna_adapter v1.2.2 (*)
      │   ├── icu_locale_core v2.3.0
      │   │   ├── icu_properties v2.3.0 (*)
      │   │   └── icu_provider v2.3.1
      │   │       ├── icu_normalizer v2.3.0 (*)
      │   │       └── icu_properties v2.3.0 (*)
      │   ├── icu_properties v2.3.0 (*)
      │   ├── icu_provider v2.3.1 (*)
      │   ├── tinystr v0.8.4
      │   │   └── icu_locale_core v2.3.0 (*)
      │   └── zerotrie v0.2.5
      │       ├── icu_properties v2.3.0 (*)
      │       └── icu_provider v2.3.1 (*)
      ├── serde_derive v1.0.229
      │   ├── serde v1.0.229
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── base64urlsafedata v0.5.5
      │   │   │   ├── webauthn-attestation-ca v0.5.5
      │   │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   │   ├── bip39 v2.2.2
      │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   ├── ciborium v0.2.2
      │   │   │   └── criterion v0.7.0 (*)
      │   │   ├── criterion v0.7.0 (*)
      │   │   ├── either v1.18.0
      │   │   │   ├── 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-server v0.1.0 (*)
      │   │   ├── serde_cbor_2 v0.13.0
      │   │   │   ├── (dev) infraternal-server v0.1.0 (*)
      │   │   │   └── webauthn-rs-core v0.5.5 (*)
      │   │   ├── serde_urlencoded v0.7.1
      │   │   │   ├── axum v0.8.9
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   └── 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 (*)
      │   │   ├── url v2.5.8 (*)
      │   │   ├── vte v0.15.0
      │   │   │   ├── alacritty_terminal v0.25.1 (*)
      │   │   │   ├── infraternal-shim v0.1.0 (*)
      │   │   │   └── vt100 v0.16.2
      │   │   │       ├── (dev) infraternal v0.1.0 (*)
      │   │   │       └── (dev) infraternal-shim v0.1.0 (*)
      │   │   ├── webauthn-attestation-ca v0.5.5 (*)
      │   │   ├── webauthn-rs v0.5.5 (*)
      │   │   ├── webauthn-rs-core v0.5.5 (*)
      │   │   └── webauthn-rs-proto v0.5.5 (*)
      │   └── url v2.5.8 (*)
      ├── synstructure v0.14.0
      │   ├── yoke-derive v0.8.4
      │   │   └── yoke v0.8.3
      │   │       ├── icu_collections v2.3.0 (*)
      │   │       ├── icu_provider v2.3.1 (*)
      │   │       ├── zerotrie v0.2.5 (*)
      │   │       └── zerovec v0.11.8
      │   │           ├── icu_collections v2.3.0 (*)
      │   │           ├── icu_locale_core v2.3.0 (*)
      │   │           ├── icu_normalizer v2.3.0 (*)
      │   │           ├── icu_properties v2.3.0 (*)
      │   │           ├── icu_provider v2.3.1 (*)
      │   │           ├── potential_utf v0.1.6
      │   │           │   └── icu_collections v2.3.0 (*)
      │   │           └── tinystr v0.8.4 (*)
      │   └── zerofrom-derive v0.1.8
      │       └── zerofrom v0.1.8
      │           ├── icu_collections v2.3.0 (*)
      │           ├── icu_provider v2.3.1 (*)
      │           ├── yoke v0.8.3 (*)
      │           ├── zerotrie v0.2.5 (*)
      │           └── zerovec v0.11.8 (*)
      ├── thiserror-impl v2.0.21
      │   └── thiserror v2.0.21
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       └── sqlx-sqlite v0.8.6 (*)
      ├── tokio-macros v2.7.2
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9 (*)
      │       ├── hyper v1.11.1
      │       │   ├── axum v0.8.9 (*)
      │       │   └── hyper-util v0.1.21
      │       │       └── axum v0.8.9 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── sqlx-core v0.8.6 (*)
      │       └── tower v0.5.3
      │           ├── axum v0.8.9 (*)
      │           └── (dev) infraternal-server v0.1.0 (*)
      ├── wasm-bindgen-macro-support v0.2.129
      │   └── wasm-bindgen-macro v0.2.129
      │       └── wasm-bindgen v0.2.129
      │           ├── js-sys v0.3.106
      │           │   └── web-sys v0.3.106
      │           │       └── plotters v0.3.7
      │           │           └── criterion v0.7.0 (*)
      │           ├── plotters v0.3.7 (*)
      │           └── web-sys v0.3.106 (*)
      ├── yoke-derive v0.8.4 (*)
      ├── zerofrom-derive v0.1.8 (*)
      └── zerovec-derive v0.11.6
          └── zerovec v0.11.8 (*)

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

warning[duplicate]: found 2 duplicate entries for crate 'thiserror'
    ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:232:1
    │  
232 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index
233 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index
    │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror v1.0.69
      ├── asn1-rs v0.6.2
      │   ├── der-parser v9.0.0
      │   │   ├── webauthn-rs-core v0.5.5
      │   │   │   └── webauthn-rs v0.5.5
      │   │   │       └── infraternal-server v0.1.0
      │   │   │           └── infraternal v0.1.0
      │   │   └── x509-parser v0.16.0
      │   │       └── webauthn-rs-core v0.5.5 (*)
      │   ├── oid-registry v0.7.1
      │   │   └── x509-parser v0.16.0 (*)
      │   └── x509-parser v0.16.0 (*)
      ├── webauthn-rs-core v0.5.5 (*)
      └── x509-parser v0.16.0 (*)
    ├ thiserror v2.0.21
      ├── infraternal-server v0.1.0
      │   └── infraternal v0.1.0
      ├── sqlx-core v0.8.6
      │   ├── sqlx v0.8.6
      │   │   ├── infraternal v0.1.0 (*)
      │   │   └── infraternal-server v0.1.0 (*)
      │   ├── sqlx-macros v0.8.6
      │   │   └── sqlx v0.8.6 (*)
      │   ├── sqlx-macros-core v0.8.6
      │   │   └── sqlx-macros v0.8.6 (*)
      │   └── sqlx-sqlite v0.8.6
      │       ├── sqlx v0.8.6 (*)
      │       └── sqlx-macros-core v0.8.6 (*)
      └── sqlx-sqlite v0.8.6 (*)

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

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:278:1
    │  
278 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
279 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.59.0
      └── alacritty_terminal v0.25.1
          └── infraternal-shim v0.1.0
              ├── infraternal v0.1.0
              └── infraternal-fuzz v0.1.0
    ├ 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-fuzz v0.1.0
      │               └── infraternal v0.1.0
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   ├── rustix v1.1.5
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── polling v3.11.0
      │   │   │   └── alacritty_terminal v0.25.1 (*)
      │   │   └── rustix-openpty v0.2.0
      │   │       └── alacritty_terminal v0.25.1 (*)
      │   ├── rustix-openpty v0.2.0 (*)
      │   └── signal-hook-registry v1.4.8
      │       └── signal-hook v0.3.18
      │           └── alacritty_terminal v0.25.1 (*)
      ├── home v0.5.12
      │   └── alacritty_terminal v0.25.1 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2
      │       ├── axum v0.8.9
      │       │   └── infraternal-server v0.1.0
      │       │       └── infraternal v0.1.0 (*)
      │       ├── hyper v1.11.1
      │       │   ├── axum v0.8.9 (*)
      │       │   └── hyper-util v0.1.21
      │       │       └── axum v0.8.9 (*)
      │       ├── hyper-util v0.1.21 (*)
      │       ├── infraternal v0.1.0 (*)
      │       ├── infraternal-server v0.1.0 (*)
      │       ├── sqlx-core v0.8.6
      │       │   ├── sqlx v0.8.6
      │       │   │   ├── infraternal v0.1.0 (*)
      │       │   │   └── infraternal-server v0.1.0 (*)
      │       │   ├── sqlx-macros v0.8.6
      │       │   │   └── sqlx v0.8.6 (*)
      │       │   ├── sqlx-macros-core v0.8.6
      │       │   │   └── sqlx-macros v0.8.6 (*)
      │       │   └── sqlx-sqlite v0.8.6
      │       │       ├── sqlx v0.8.6 (*)
      │       │       └── sqlx-macros-core v0.8.6 (*)
      │       ├── sqlx-macros-core v0.8.6 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── sqlx-core v0.8.6 (*)
      │       └── tower v0.5.3
      │           ├── axum v0.8.9 (*)
      │           └── (dev) infraternal-server v0.1.0 (*)
      ├── miow v0.6.1
      │   └── alacritty_terminal v0.25.1 (*)
      ├── polling v3.11.0 (*)
      ├── rustix v1.1.5 (*)
      ├── socket2 v0.6.5
      │   └── 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 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
   Compiling proc-macro2 v1.0.107
   Compiling quote v1.0.47
   Compiling unicode-ident v1.0.26
   Compiling libc v0.2.190
   Compiling cfg-if v1.0.5
   Compiling serde_core v1.0.229
   Compiling serde v1.0.229
   Compiling autocfg v1.5.1
   Compiling find-msvc-tools v0.1.14
   Compiling memchr v2.8.3
   Compiling version_check v0.9.5
   Compiling shlex v2.0.1
   Compiling icu_properties_data v2.3.0
   Compiling icu_normalizer_data v2.3.0
   Compiling cc v1.6.0
   Compiling pkg-config v0.3.34
   Compiling vcpkg v0.2.15
   Compiling generic-array v0.14.7
   Compiling stable_deref_trait v1.2.1
   Compiling smallvec v1.16.2
   Compiling pin-project-lite v0.2.17
   Compiling parking_lot_core v0.9.12
   Compiling itoa v1.0.18
   Compiling futures-core v0.3.34
   Compiling syn v3.0.6
   Compiling syn v2.0.119
   Compiling num-traits v0.2.19
   Compiling bytes v1.12.1
   Compiling log v0.4.34
   Compiling zmij v1.0.23
   Compiling crossbeam-utils v0.8.23
   Compiling writeable v0.6.4
   Compiling litemap v0.8.3
   Compiling zerocopy v0.8.60
   Compiling utf8_iter v1.0.4
   Compiling futures-sink v0.3.34
   Compiling thiserror v2.0.21
   Compiling once_cell v1.21.4
   Compiling bitflags v2.13.2
   Compiling openssl-src v300.6.1+3.6.3
   Compiling tracing-core v0.1.36
   Compiling typenum v1.20.1
   Compiling scopeguard v1.2.0
   Compiling percent-encoding v2.3.2
   Compiling lock_api v0.4.14
   Compiling form_urlencoded v1.2.2
   Compiling openssl-sys v0.9.117
   Compiling libsqlite3-sys v0.30.1
   Compiling mio v1.2.4
   Compiling socket2 v0.6.5
   Compiling equivalent v1.0.2
   Compiling synstructure v0.14.0
   Compiling minimal-lexical v0.2.1
   Compiling num-conv v0.2.2
   Compiling thiserror v1.0.69
   Compiling subtle v2.6.1
   Compiling time-core v0.1.9
   Compiling synstructure v0.13.2
   Compiling time-macros v0.2.32
   Compiling nom v7.1.3
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling slab v0.4.12
   Compiling futures-task v0.3.34
   Compiling zerofrom-derive v0.1.8
   Compiling yoke-derive v0.8.4
   Compiling displaydoc v0.2.7
   Compiling zerovec-derive v0.11.6
   Compiling serde_derive v1.0.229
   Compiling tokio-macros v2.7.2
   Compiling tracing-attributes v0.1.31
   Compiling zerocopy-derive v0.8.60
   Compiling thiserror-impl v2.0.21
   Compiling tokio v1.53.2
   Compiling thiserror-impl v1.0.69
   Compiling zerofrom v0.1.8
   Compiling yoke v0.8.3
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling icu_locale_core v2.3.0
   Compiling icu_collections v2.3.0
   Compiling tracing v0.1.44
   Compiling allocator-api2 v0.2.21
   Compiling icu_provider v2.3.1
   Compiling getrandom v0.3.4
   Compiling icu_properties v2.3.0
   Compiling icu_normalizer v2.3.0
   Compiling deranged v0.5.8
   Compiling foldhash v0.1.5
   Compiling futures-io v0.3.34
   Compiling powerfmt v0.2.1
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling futures-util v0.3.34
   Compiling time v0.3.55
   Compiling url v2.5.8
   Compiling ppv-lite86 v0.2.21
   Compiling hashbrown v0.15.5
   Compiling rusticata-macros v4.1.0
   Compiling asn1-rs-impl v0.2.0
   Compiling asn1-rs-derive v0.5.1
   Compiling parking_lot v0.12.5
   Compiling digest v0.10.7
   Compiling getrandom v0.2.17
   Compiling http v1.5.0
   Compiling parking v2.2.1
   Compiling cpufeatures v0.2.17
   Compiling crc-catalog v2.5.0
   Compiling getrandom v0.4.3
   Compiling arrayvec v0.7.8
   Compiling serde_json v1.0.151
   Compiling hashbrown v0.17.1
   Compiling crc v3.4.0
   Compiling event-listener v5.4.2
   Compiling rand_core v0.6.4
   Compiling sha2 v0.10.9
   Compiling crossbeam-queue v0.3.14
   Compiling asn1-rs v0.6.2
   Compiling futures-intrusive v0.5.0
   Compiling indexmap v2.14.2
   Compiling http-body v1.1.0
   Compiling hashlink v0.10.0
   Compiling either v1.18.0
   Compiling num-integer v0.1.47
   Compiling spin v0.9.9
   Compiling futures-channel v0.3.34
   Compiling base64 v0.22.1
   Compiling ryu v1.0.23
   Compiling base64 v0.21.7
   Compiling heck v0.5.0
   Compiling oid-registry v0.7.1
   Compiling httparse v1.10.1
   Compiling rustix v1.1.5
   Compiling foreign-types-shared v0.1.1
   Compiling pastey v0.1.1
   Compiling tokio-stream v0.1.19
   Compiling openssl v0.10.81
   Compiling base64urlsafedata v0.5.5
   Compiling sqlx-core v0.8.6
   Compiling foreign-types v0.3.2
   Compiling serde_urlencoded v0.7.1
   Compiling num-bigint v0.4.8
   Compiling flume v0.11.1
   Compiling atoi v2.0.0
   Compiling rand_core v0.9.5
   Compiling futures-executor v0.3.34
   Compiling openssl-macros v0.1.1
   Compiling webauthn-attestation-ca v0.5.5
   Compiling tower-service v0.3.3
   Compiling linux-raw-sys v0.12.1
   Compiling der-parser v9.0.0
   Compiling uuid v1.27.0
   Compiling rand_chacha v0.9.0
   Compiling half v2.7.1
   Compiling errno v0.3.14
   Compiling memoffset v0.9.1
   Compiling hex v0.4.3
   Compiling cfg_aliases v0.2.2
   Compiling webauthn-rs-core v0.5.5
   Compiling data-encoding v2.11.1
   Compiling httpdate v1.0.3
   Compiling atomic-waker v1.1.2
   Compiling lazy_static v1.5.1
   Compiling dotenvy v0.15.7
   Compiling tower-layer v0.3.3
   Compiling signal-hook v0.3.18
   Compiling utf8parse v0.2.2
   Compiling sync_wrapper v1.0.2
   Compiling anstyle-parse v1.0.0
   Compiling x509-parser v0.16.0
   Compiling hyper v1.11.1
   Compiling nix v0.30.1
   Compiling signal-hook-registry v1.4.8
   Compiling serde_cbor_2 v0.13.0
   Compiling rand v0.9.5
   Compiling webauthn-rs-proto v0.5.5
   Compiling http-body-util v0.1.5
   Compiling rand_chacha v0.3.1
   Compiling hex-conservative v0.2.3
   Compiling aho-corasick v1.1.5
   Compiling base64ct v1.8.3
   Compiling colorchoice v1.0.5
   Compiling anstyle v1.0.14
   Compiling regex-syntax v0.8.11
   Compiling mime v0.3.17
   Compiling sqlx-sqlite v0.8.6
   Compiling anstyle-query v1.1.5
   Compiling is_terminal_polyfill v1.70.2
   Compiling tinyvec v1.13.3
   Compiling cursor-icon v1.2.0
   Compiling vte v0.15.0
   Compiling unicode-normalization v0.1.25
   Compiling anstream v1.0.0
   Compiling axum-core v0.5.6
   Compiling password-hash v0.5.0
   Compiling regex-automata v0.4.18
   Compiling rand v0.8.8
   Compiling sqlx-macros-core v0.8.6
   Compiling bitcoin_hashes v0.14.101
   Compiling rustix-openpty v0.2.0
   Compiling polling v3.11.0
   Compiling hyper-util v0.1.21
   Compiling sqlx-macros v0.8.6
   Compiling tower v0.5.3
   Compiling blake2 v0.10.6
   Compiling serde_path_to_error v0.1.20
   Compiling clap_lex v1.1.1
   Compiling matchit v0.8.4
   Compiling strsim v0.11.1
   Compiling home v0.5.12
   Compiling unicode-width v0.2.2
   Compiling axum v0.8.9
   Compiling clap_builder v4.6.7
   Compiling argon2 v0.5.3
   Compiling bip39 v2.2.2
   Compiling alacritty_terminal v0.25.1
   Compiling clap_derive v4.6.7
   Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim)
   Compiling clap v4.6.7
   Compiling sqlx v0.8.6
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 2m 45s
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: 9612768 bytes
   Compiling libc v0.2.190
   Compiling cfg-if v1.0.5
   Compiling serde_core v1.0.229
   Compiling memchr v2.8.3
   Compiling zerofrom v0.1.8
   Compiling stable_deref_trait v1.2.1
   Compiling serde v1.0.229
   Compiling smallvec v1.16.2
   Compiling pin-project-lite v0.2.17
   Compiling itoa v1.0.18
   Compiling futures-core v0.3.34
   Compiling yoke v0.8.3
   Compiling writeable v0.6.4
   Compiling bytes v1.12.1
   Compiling zerovec v0.11.8
   Compiling log v0.4.34
   Compiling litemap v0.8.3
   Compiling zerotrie v0.2.5
   Compiling num-traits v0.2.19
   Compiling utf8_iter v1.0.4
   Compiling zerocopy v0.8.60
   Compiling icu_normalizer_data v2.3.0
   Compiling icu_properties_data v2.3.0
   Compiling futures-sink v0.3.34
   Compiling once_cell v1.21.4
   Compiling tracing-core v0.1.36
   Compiling generic-array v0.14.7
   Compiling percent-encoding v2.3.2
   Compiling typenum v1.20.1
   Compiling tinystr v0.8.4
   Compiling icu_locale_core v2.3.0
review-auth4 client pristine archive fast gate at 58040dfd599cd25ed6a44abf1f8bb9084e9837c6, exit0. Full output verbatim, part2/3; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only. ```text │ │ └── (dev) infraternal-protocol v0.1.0 │ │ └── infraternal-fuzz 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 │ │ │ │ └── infraternal v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── 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-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── (dev) infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── serde_urlencoded v0.7.1 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── 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 (*) │ │ ├── url v2.5.8 (*) │ │ ├── vte v0.15.0 │ │ │ ├── alacritty_terminal v0.25.1 (*) │ │ │ ├── infraternal-shim v0.1.0 (*) │ │ │ └── vt100 v0.16.2 │ │ │ ├── (dev) infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-shim v0.1.0 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ └── hyper-util v0.1.21 │ │ └── axum v0.8.9 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ └── tower v0.5.3 │ ├── axum v0.8.9 (*) │ └── (dev) infraternal-server v0.1.0 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:230:1 │ 230 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 231 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:232:1 │ 232 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 233 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-sqlite v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:234:1 │ 234 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 235 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-sqlite v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/.cache/codex-scratch/review-auth4/client/Cargo.lock:278:1 │ 278 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 279 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ 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-fuzz v0.1.0 │ └── infraternal v0.1.0 ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ └── signal-hook v0.3.18 │ └── alacritty_terminal v0.25.1 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ └── hyper-util v0.1.21 │ │ └── axum v0.8.9 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── sqlx-macros v0.8.6 │ │ │ └── sqlx v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 │ │ │ └── sqlx-macros v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ └── tower v0.5.3 │ ├── axum v0.8.9 (*) │ └── (dev) infraternal-server v0.1.0 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── polling v3.11.0 (*) ├── rustix v1.1.5 (*) ├── socket2 v0.6.5 │ └── 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 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Compiling proc-macro2 v1.0.107 Compiling quote v1.0.47 Compiling unicode-ident v1.0.26 Compiling libc v0.2.190 Compiling cfg-if v1.0.5 Compiling serde_core v1.0.229 Compiling serde v1.0.229 Compiling autocfg v1.5.1 Compiling find-msvc-tools v0.1.14 Compiling memchr v2.8.3 Compiling version_check v0.9.5 Compiling shlex v2.0.1 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling cc v1.6.0 Compiling pkg-config v0.3.34 Compiling vcpkg v0.2.15 Compiling generic-array v0.14.7 Compiling stable_deref_trait v1.2.1 Compiling smallvec v1.16.2 Compiling pin-project-lite v0.2.17 Compiling parking_lot_core v0.9.12 Compiling itoa v1.0.18 Compiling futures-core v0.3.34 Compiling syn v3.0.6 Compiling syn v2.0.119 Compiling num-traits v0.2.19 Compiling bytes v1.12.1 Compiling log v0.4.34 Compiling zmij v1.0.23 Compiling crossbeam-utils v0.8.23 Compiling writeable v0.6.4 Compiling litemap v0.8.3 Compiling zerocopy v0.8.60 Compiling utf8_iter v1.0.4 Compiling futures-sink v0.3.34 Compiling thiserror v2.0.21 Compiling once_cell v1.21.4 Compiling bitflags v2.13.2 Compiling openssl-src v300.6.1+3.6.3 Compiling tracing-core v0.1.36 Compiling typenum v1.20.1 Compiling scopeguard v1.2.0 Compiling percent-encoding v2.3.2 Compiling lock_api v0.4.14 Compiling form_urlencoded v1.2.2 Compiling openssl-sys v0.9.117 Compiling libsqlite3-sys v0.30.1 Compiling mio v1.2.4 Compiling socket2 v0.6.5 Compiling equivalent v1.0.2 Compiling synstructure v0.14.0 Compiling minimal-lexical v0.2.1 Compiling num-conv v0.2.2 Compiling thiserror v1.0.69 Compiling subtle v2.6.1 Compiling time-core v0.1.9 Compiling synstructure v0.13.2 Compiling time-macros v0.2.32 Compiling nom v7.1.3 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling slab v0.4.12 Compiling futures-task v0.3.34 Compiling zerofrom-derive v0.1.8 Compiling yoke-derive v0.8.4 Compiling displaydoc v0.2.7 Compiling zerovec-derive v0.11.6 Compiling serde_derive v1.0.229 Compiling tokio-macros v2.7.2 Compiling tracing-attributes v0.1.31 Compiling zerocopy-derive v0.8.60 Compiling thiserror-impl v2.0.21 Compiling tokio v1.53.2 Compiling thiserror-impl v1.0.69 Compiling zerofrom v0.1.8 Compiling yoke v0.8.3 Compiling zerovec v0.11.8 Compiling zerotrie v0.2.5 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling icu_locale_core v2.3.0 Compiling icu_collections v2.3.0 Compiling tracing v0.1.44 Compiling allocator-api2 v0.2.21 Compiling icu_provider v2.3.1 Compiling getrandom v0.3.4 Compiling icu_properties v2.3.0 Compiling icu_normalizer v2.3.0 Compiling deranged v0.5.8 Compiling foldhash v0.1.5 Compiling futures-io v0.3.34 Compiling powerfmt v0.2.1 Compiling idna_adapter v1.2.2 Compiling idna v1.1.0 Compiling futures-util v0.3.34 Compiling time v0.3.55 Compiling url v2.5.8 Compiling ppv-lite86 v0.2.21 Compiling hashbrown v0.15.5 Compiling rusticata-macros v4.1.0 Compiling asn1-rs-impl v0.2.0 Compiling asn1-rs-derive v0.5.1 Compiling parking_lot v0.12.5 Compiling digest v0.10.7 Compiling getrandom v0.2.17 Compiling http v1.5.0 Compiling parking v2.2.1 Compiling cpufeatures v0.2.17 Compiling crc-catalog v2.5.0 Compiling getrandom v0.4.3 Compiling arrayvec v0.7.8 Compiling serde_json v1.0.151 Compiling hashbrown v0.17.1 Compiling crc v3.4.0 Compiling event-listener v5.4.2 Compiling rand_core v0.6.4 Compiling sha2 v0.10.9 Compiling crossbeam-queue v0.3.14 Compiling asn1-rs v0.6.2 Compiling futures-intrusive v0.5.0 Compiling indexmap v2.14.2 Compiling http-body v1.1.0 Compiling hashlink v0.10.0 Compiling either v1.18.0 Compiling num-integer v0.1.47 Compiling spin v0.9.9 Compiling futures-channel v0.3.34 Compiling base64 v0.22.1 Compiling ryu v1.0.23 Compiling base64 v0.21.7 Compiling heck v0.5.0 Compiling oid-registry v0.7.1 Compiling httparse v1.10.1 Compiling rustix v1.1.5 Compiling foreign-types-shared v0.1.1 Compiling pastey v0.1.1 Compiling tokio-stream v0.1.19 Compiling openssl v0.10.81 Compiling base64urlsafedata v0.5.5 Compiling sqlx-core v0.8.6 Compiling foreign-types v0.3.2 Compiling serde_urlencoded v0.7.1 Compiling num-bigint v0.4.8 Compiling flume v0.11.1 Compiling atoi v2.0.0 Compiling rand_core v0.9.5 Compiling futures-executor v0.3.34 Compiling openssl-macros v0.1.1 Compiling webauthn-attestation-ca v0.5.5 Compiling tower-service v0.3.3 Compiling linux-raw-sys v0.12.1 Compiling der-parser v9.0.0 Compiling uuid v1.27.0 Compiling rand_chacha v0.9.0 Compiling half v2.7.1 Compiling errno v0.3.14 Compiling memoffset v0.9.1 Compiling hex v0.4.3 Compiling cfg_aliases v0.2.2 Compiling webauthn-rs-core v0.5.5 Compiling data-encoding v2.11.1 Compiling httpdate v1.0.3 Compiling atomic-waker v1.1.2 Compiling lazy_static v1.5.1 Compiling dotenvy v0.15.7 Compiling tower-layer v0.3.3 Compiling signal-hook v0.3.18 Compiling utf8parse v0.2.2 Compiling sync_wrapper v1.0.2 Compiling anstyle-parse v1.0.0 Compiling x509-parser v0.16.0 Compiling hyper v1.11.1 Compiling nix v0.30.1 Compiling signal-hook-registry v1.4.8 Compiling serde_cbor_2 v0.13.0 Compiling rand v0.9.5 Compiling webauthn-rs-proto v0.5.5 Compiling http-body-util v0.1.5 Compiling rand_chacha v0.3.1 Compiling hex-conservative v0.2.3 Compiling aho-corasick v1.1.5 Compiling base64ct v1.8.3 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling regex-syntax v0.8.11 Compiling mime v0.3.17 Compiling sqlx-sqlite v0.8.6 Compiling anstyle-query v1.1.5 Compiling is_terminal_polyfill v1.70.2 Compiling tinyvec v1.13.3 Compiling cursor-icon v1.2.0 Compiling vte v0.15.0 Compiling unicode-normalization v0.1.25 Compiling anstream v1.0.0 Compiling axum-core v0.5.6 Compiling password-hash v0.5.0 Compiling regex-automata v0.4.18 Compiling rand v0.8.8 Compiling sqlx-macros-core v0.8.6 Compiling bitcoin_hashes v0.14.101 Compiling rustix-openpty v0.2.0 Compiling polling v3.11.0 Compiling hyper-util v0.1.21 Compiling sqlx-macros v0.8.6 Compiling tower v0.5.3 Compiling blake2 v0.10.6 Compiling serde_path_to_error v0.1.20 Compiling clap_lex v1.1.1 Compiling matchit v0.8.4 Compiling strsim v0.11.1 Compiling home v0.5.12 Compiling unicode-width v0.2.2 Compiling axum v0.8.9 Compiling clap_builder v4.6.7 Compiling argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling alacritty_terminal v0.25.1 Compiling clap_derive v4.6.7 Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim) Compiling clap v4.6.7 Compiling sqlx v0.8.6 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal) Finished `release` profile [optimized] target(s) in 2m 45s 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: 9612768 bytes Compiling libc v0.2.190 Compiling cfg-if v1.0.5 Compiling serde_core v1.0.229 Compiling memchr v2.8.3 Compiling zerofrom v0.1.8 Compiling stable_deref_trait v1.2.1 Compiling serde v1.0.229 Compiling smallvec v1.16.2 Compiling pin-project-lite v0.2.17 Compiling itoa v1.0.18 Compiling futures-core v0.3.34 Compiling yoke v0.8.3 Compiling writeable v0.6.4 Compiling bytes v1.12.1 Compiling zerovec v0.11.8 Compiling log v0.4.34 Compiling litemap v0.8.3 Compiling zerotrie v0.2.5 Compiling num-traits v0.2.19 Compiling utf8_iter v1.0.4 Compiling zerocopy v0.8.60 Compiling icu_normalizer_data v2.3.0 Compiling icu_properties_data v2.3.0 Compiling futures-sink v0.3.34 Compiling once_cell v1.21.4 Compiling tracing-core v0.1.36 Compiling generic-array v0.14.7 Compiling percent-encoding v2.3.2 Compiling typenum v1.20.1 Compiling tinystr v0.8.4 Compiling icu_locale_core v2.3.0 ```
Author
Owner

review-auth4 client pristine archive fast gate at 58040dfd59, exit0. Full output verbatim, part3/3; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only.

   Compiling potential_utf v0.1.6
   Compiling icu_collections v2.3.0
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling mio v1.2.4
   Compiling socket2 v0.6.5
   Compiling tracing v0.1.44
   Compiling form_urlencoded v1.2.2
   Compiling openssl-sys v0.9.117
   Compiling parking_lot_core v0.9.12
   Compiling minimal-lexical v0.2.1
   Compiling tokio v1.53.2
   Compiling icu_provider v2.3.1
   Compiling subtle v2.6.1
   Compiling thiserror v1.0.69
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling nom v7.1.3
   Compiling bitflags v2.13.2
   Compiling icu_properties v2.3.0
   Compiling icu_normalizer v2.3.0
   Compiling time-core v0.1.9
   Compiling num-conv v0.2.2
   Compiling futures-task v0.3.34
   Compiling slab v0.4.12
   Compiling deranged v0.5.8
   Compiling powerfmt v0.2.1
   Compiling idna_adapter v1.2.2
   Compiling futures-io v0.3.34
   Compiling idna v1.1.0
   Compiling getrandom v0.3.4
   Compiling futures-util v0.3.34
   Compiling url v2.5.8
   Compiling rusticata-macros v4.1.0
   Compiling parking_lot v0.12.5
   Compiling digest v0.10.7
   Compiling time v0.3.55
   Compiling getrandom v0.2.17
   Compiling http v1.5.0
   Compiling zmij v1.0.23
   Compiling equivalent v1.0.2
   Compiling arrayvec v0.7.8
   Compiling ppv-lite86 v0.2.21
   Compiling getrandom v0.4.3
   Compiling serde_json v1.0.151
   Compiling rand_core v0.6.4
   Compiling http-body v1.1.0
   Compiling num-integer v0.1.47
   Compiling futures-channel v0.3.34
   Compiling crossbeam-utils v0.8.23
   Compiling allocator-api2 v0.2.21
   Compiling foldhash v0.1.5
   Compiling base64 v0.21.7
   Compiling base64 v0.22.1
   Compiling foreign-types-shared v0.1.1
   Compiling oid-registry v0.7.1
   Compiling foreign-types v0.3.2
   Compiling httparse v1.10.1
   Compiling num-bigint v0.4.8
   Compiling hashbrown v0.15.5
   Compiling base64urlsafedata v0.5.5
   Compiling rustix v1.1.5
   Compiling rand_core v0.9.5
   Compiling asn1-rs v0.6.2
   Compiling cpufeatures v0.2.17
   Compiling thiserror v2.0.21
   Compiling ryu v1.0.23
   Compiling hashbrown v0.17.1
   Compiling crc-catalog v2.5.0
   Compiling linux-raw-sys v0.12.1
   Compiling tower-service v0.3.3
   Compiling parking v2.2.1
   Compiling event-listener v5.4.2
   Compiling indexmap v2.14.2
   Compiling crc v3.4.0
   Compiling serde_urlencoded v0.7.1
   Compiling der-parser v9.0.0
   Compiling hashlink v0.10.0
   Compiling sha2 v0.10.9
   Compiling crossbeam-queue v0.3.14
   Compiling uuid v1.27.0
   Compiling rand_chacha v0.9.0
   Compiling tokio-stream v0.1.19
   Compiling half v2.7.1
   Compiling futures-intrusive v0.5.0
   Compiling either v1.18.0
   Compiling libsqlite3-sys v0.30.1
   Compiling spin v0.9.9
   Compiling errno v0.3.14
   Compiling sync_wrapper v1.0.2
   Compiling data-encoding v2.11.1
   Compiling atomic-waker v1.1.2
   Compiling lazy_static v1.5.1
   Compiling httpdate v1.0.3
   Compiling utf8parse v0.2.2
   Compiling tower-layer v0.3.3
   Compiling anstyle-parse v1.0.0
   Compiling hyper v1.11.1
   Compiling signal-hook v0.3.18
   Compiling flume v0.11.1
   Compiling sqlx-core v0.8.6
   Compiling x509-parser v0.16.0
   Compiling memoffset v0.9.1
   Compiling signal-hook-registry v1.4.8
   Compiling serde_cbor_2 v0.13.0
   Compiling rand v0.9.5
   Compiling webauthn-rs-proto v0.5.5
   Compiling futures-executor v0.3.34
   Compiling rand_chacha v0.3.1
   Compiling http-body-util v0.1.5
   Compiling hex-conservative v0.2.3
   Compiling atoi v2.0.0
   Compiling aho-corasick v1.1.5
   Compiling anstyle-query v1.1.5
   Compiling tinyvec v1.13.3
   Compiling mime v0.3.17
   Compiling cursor-icon v1.2.0
   Compiling is_terminal_polyfill v1.70.2
   Compiling regex-syntax v0.8.11
   Compiling colorchoice v1.0.5
   Compiling hex v0.4.3
   Compiling base64ct v1.8.3
   Compiling anstyle v1.0.14
   Compiling anstream v1.0.0
   Compiling password-hash v0.5.0
   Compiling unicode-normalization v0.1.25
   Compiling vte v0.15.0
   Compiling axum-core v0.5.6
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling regex-automata v0.4.18
   Compiling polling v3.11.0
   Compiling rustix-openpty v0.2.0
   Compiling hyper-util v0.1.21
   Compiling tower v0.5.3
   Compiling nix v0.30.1
   Compiling blake2 v0.10.6
   Compiling serde_path_to_error v0.1.20
   Compiling clap_lex v1.1.1
   Compiling home v0.5.12
   Compiling unicode-width v0.2.2
   Compiling strsim v0.11.1
   Compiling matchit v0.8.4
   Compiling clap_builder v4.6.7
   Compiling axum v0.8.9
   Compiling argon2 v0.5.3
   Compiling bip39 v2.2.2
   Compiling alacritty_terminal v0.25.1
   Compiling clap v4.6.7
   Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim)
   Compiling openssl v0.10.81
   Compiling webauthn-attestation-ca v0.5.5
   Compiling webauthn-rs-core v0.5.5
   Compiling sqlx-sqlite v0.8.6
   Compiling sqlx v0.8.6
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 3m 24s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 8053768 bytes
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

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

==> TypeScript protocol compiler

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

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

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

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.65s]
review-auth4 client pristine archive fast gate at 58040dfd599cd25ed6a44abf1f8bb9084e9837c6, exit0. Full output verbatim, part3/3; concatenate blocks in order. Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast. Original worktree remains read-only. ```text Compiling potential_utf v0.1.6 Compiling icu_collections v2.3.0 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling mio v1.2.4 Compiling socket2 v0.6.5 Compiling tracing v0.1.44 Compiling form_urlencoded v1.2.2 Compiling openssl-sys v0.9.117 Compiling parking_lot_core v0.9.12 Compiling minimal-lexical v0.2.1 Compiling tokio v1.53.2 Compiling icu_provider v2.3.1 Compiling subtle v2.6.1 Compiling thiserror v1.0.69 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling nom v7.1.3 Compiling bitflags v2.13.2 Compiling icu_properties v2.3.0 Compiling icu_normalizer v2.3.0 Compiling time-core v0.1.9 Compiling num-conv v0.2.2 Compiling futures-task v0.3.34 Compiling slab v0.4.12 Compiling deranged v0.5.8 Compiling powerfmt v0.2.1 Compiling idna_adapter v1.2.2 Compiling futures-io v0.3.34 Compiling idna v1.1.0 Compiling getrandom v0.3.4 Compiling futures-util v0.3.34 Compiling url v2.5.8 Compiling rusticata-macros v4.1.0 Compiling parking_lot v0.12.5 Compiling digest v0.10.7 Compiling time v0.3.55 Compiling getrandom v0.2.17 Compiling http v1.5.0 Compiling zmij v1.0.23 Compiling equivalent v1.0.2 Compiling arrayvec v0.7.8 Compiling ppv-lite86 v0.2.21 Compiling getrandom v0.4.3 Compiling serde_json v1.0.151 Compiling rand_core v0.6.4 Compiling http-body v1.1.0 Compiling num-integer v0.1.47 Compiling futures-channel v0.3.34 Compiling crossbeam-utils v0.8.23 Compiling allocator-api2 v0.2.21 Compiling foldhash v0.1.5 Compiling base64 v0.21.7 Compiling base64 v0.22.1 Compiling foreign-types-shared v0.1.1 Compiling oid-registry v0.7.1 Compiling foreign-types v0.3.2 Compiling httparse v1.10.1 Compiling num-bigint v0.4.8 Compiling hashbrown v0.15.5 Compiling base64urlsafedata v0.5.5 Compiling rustix v1.1.5 Compiling rand_core v0.9.5 Compiling asn1-rs v0.6.2 Compiling cpufeatures v0.2.17 Compiling thiserror v2.0.21 Compiling ryu v1.0.23 Compiling hashbrown v0.17.1 Compiling crc-catalog v2.5.0 Compiling linux-raw-sys v0.12.1 Compiling tower-service v0.3.3 Compiling parking v2.2.1 Compiling event-listener v5.4.2 Compiling indexmap v2.14.2 Compiling crc v3.4.0 Compiling serde_urlencoded v0.7.1 Compiling der-parser v9.0.0 Compiling hashlink v0.10.0 Compiling sha2 v0.10.9 Compiling crossbeam-queue v0.3.14 Compiling uuid v1.27.0 Compiling rand_chacha v0.9.0 Compiling tokio-stream v0.1.19 Compiling half v2.7.1 Compiling futures-intrusive v0.5.0 Compiling either v1.18.0 Compiling libsqlite3-sys v0.30.1 Compiling spin v0.9.9 Compiling errno v0.3.14 Compiling sync_wrapper v1.0.2 Compiling data-encoding v2.11.1 Compiling atomic-waker v1.1.2 Compiling lazy_static v1.5.1 Compiling httpdate v1.0.3 Compiling utf8parse v0.2.2 Compiling tower-layer v0.3.3 Compiling anstyle-parse v1.0.0 Compiling hyper v1.11.1 Compiling signal-hook v0.3.18 Compiling flume v0.11.1 Compiling sqlx-core v0.8.6 Compiling x509-parser v0.16.0 Compiling memoffset v0.9.1 Compiling signal-hook-registry v1.4.8 Compiling serde_cbor_2 v0.13.0 Compiling rand v0.9.5 Compiling webauthn-rs-proto v0.5.5 Compiling futures-executor v0.3.34 Compiling rand_chacha v0.3.1 Compiling http-body-util v0.1.5 Compiling hex-conservative v0.2.3 Compiling atoi v2.0.0 Compiling aho-corasick v1.1.5 Compiling anstyle-query v1.1.5 Compiling tinyvec v1.13.3 Compiling mime v0.3.17 Compiling cursor-icon v1.2.0 Compiling is_terminal_polyfill v1.70.2 Compiling regex-syntax v0.8.11 Compiling colorchoice v1.0.5 Compiling hex v0.4.3 Compiling base64ct v1.8.3 Compiling anstyle v1.0.14 Compiling anstream v1.0.0 Compiling password-hash v0.5.0 Compiling unicode-normalization v0.1.25 Compiling vte v0.15.0 Compiling axum-core v0.5.6 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling regex-automata v0.4.18 Compiling polling v3.11.0 Compiling rustix-openpty v0.2.0 Compiling hyper-util v0.1.21 Compiling tower v0.5.3 Compiling nix v0.30.1 Compiling blake2 v0.10.6 Compiling serde_path_to_error v0.1.20 Compiling clap_lex v1.1.1 Compiling home v0.5.12 Compiling unicode-width v0.2.2 Compiling strsim v0.11.1 Compiling matchit v0.8.4 Compiling clap_builder v4.6.7 Compiling axum v0.8.9 Compiling argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling alacritty_terminal v0.25.1 Compiling clap v4.6.7 Compiling infraternal-shim v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-shim) Compiling openssl v0.10.81 Compiling webauthn-attestation-ca v0.5.5 Compiling webauthn-rs-core v0.5.5 Compiling sqlx-sqlite v0.8.6 Compiling sqlx v0.8.6 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal-server) Compiling infraternal v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/client/crates/infraternal) Finished `release` profile [optimized] target(s) in 3m 24s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 8053768 bytes server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> TypeScript protocol compiler ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [7.95ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.43ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [1.20ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.22ms] (pass) split mux header preserves trailing Close [0.28ms] 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 [2625.51ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [7.86ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.65s] ```
Author
Owner

review-auth4 regression/scale results at server e4809d4/client58040df: native4/4; paired v3/v1/v2 prompts1/2/2, exactly one proof without PRF each; production Playwright4/4 (44.2s), 500-key p99=16.50ms/resume79.70ms. Screenshot masking for setup/recovery and acceptDownloads=false are privacy-only harness changes; assertions unchanged, failure context disabled. Release benchmarks after this review's builds/browser finish: 1024 pending, challenge21us/finish846us p99, RSS12968->14428KiB (+1460), inline136*1024=139264 bytes, 1025 rejected. Socket n3200 p99=1913us, writer512/n3200 p99=350us. SQLite memory/local test double; no actual PTY/phone/perf-VM claim. Outputs verbatim:

native.log:

supported: server rejected native browser assertion without UV
supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected
unsupported-prf: abort before finish; owner not created
nonresident: browser refused registration; owner not created
no-uv: browser refused registration; owner not created
auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55)

traffic-v3.log:

traffic: native get count=1, submitted login proofs=1, PRF extension absent
tracer + Rust auth: PASS (production UI, resident PRF setup, empty-storage discoverable login, DEK unwrap, 1 native prompt(s); Chromium 149.0.7827.55)

traffic-v1.log:

traffic: native get count=2, submitted login proofs=1, PRF extension absent
tracer + Rust auth: PASS (production UI, resident PRF setup, empty-storage discoverable login, DEK unwrap, 2 native prompt(s); Chromium 149.0.7827.55)

traffic-v2.log:

traffic: native get count=2, submitted login proofs=1, PRF extension absent
tracer + Rust auth: PASS (production UI, resident PRF setup, empty-storage discoverable login, DEK unwrap, 2 native prompt(s); Chromium 149.0.7827.55)

playwright.log:

[WebServer] $ bun run build.ts
[WebServer] built main.js, chunk-sxzajhbf.js, chunk-bvv9xq2t.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4173

Running 4 tests using 1 worker

(node:2941759) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ONBOARDING_SCREENSHOTS /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-desktop.png
  ✓  1 test/onboarding.spec.ts:9:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (13.9s)
S1 probe result (500 keys)
Painted echoes: 500 / 500
p50: 15.00 ms
p95: 16.10 ms
p99: 16.50 ms
keydown → onData: p50 0.00 ms, p99 0.10 ms
onData → encode: p50 0.00 ms, p99 0.20 ms
encode → ws.send: p50 0.10 ms, p99 0.20 ms
ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms
decode → term.write: p50 0.00 ms, p99 0.10 ms
term.write → callback: p50 14.00 ms, p99 15.70 ms
callback → paint rAF: p50 0.00 ms, p99 0.10 ms
ws.send → ws.onmessage: p50 0.80 ms, p99 1.80 ms (includes the double and both local socket legs)
Time to resume: 79.70 ms
S1 per-hop attribution (500 keys)
Clock alignment: -20812.363 ms offset; best HTTP RTT 2.100 ms (cross-process one-way splits assume a symmetric local path).
Trace coverage: 500 browser keys, 2004 double marks.
keydown → onData: p50 0.00 ms, p99 0.10 ms (500 keys)
onData → encode: p50 0.00 ms, p99 0.20 ms (500 keys)
encode → ws.send: p50 0.10 ms, p99 0.20 ms (500 keys)
ws.send → double receive: p50 0.22 ms, p99 0.99 ms (500 keys)
double receive → decode: p50 0.05 ms, p99 0.11 ms (500 keys)
double decode → echo encode: p50 0.05 ms, p99 0.15 ms (500 keys)
double echo encode → send: p50 0.00 ms, p99 0.02 ms (500 keys)
double echo send → ws.onmessage: p50 0.42 ms, p99 0.76 ms (500 keys)
ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms (500 keys)
decode → term.write: p50 0.00 ms, p99 0.10 ms (500 keys)
term.write → write callback: p50 14.00 ms, p99 15.70 ms (500 keys)
write callback → paint rAF: p50 0.00 ms, p99 0.10 ms (500 keys)
S1 screenshots: /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-terminal.png, /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-probe.png
  ✓  2 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (15.7s)
[WebServer] test-double setup denied: owner=false token-match=false username-valid=true display-name-valid=true
  ✓  3 test/terminal.spec.ts:261:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (2.6s)
Access render upper bound (setup, n=30, local production build): p50 120.80000001192093 ms, p99 348.40000000596046 ms
Access first-contentful-paint (setup, n=30, local production build): p50 59.099999994039536 ms, p99 281.70000000298023 ms
Access render upper bound (signin, n=30, local production build): p50 110.5 ms, p99 142.8999999910593 ms
Access first-contentful-paint (signin, n=30, local production build): p50 59.3999999910593 ms, p99 88.90000000596046 ms
  ✓  4 test/terminal.spec.ts:294:1 › access screens render within the local first-paint budget (9.7s)

  4 passed (44.2s)

auth-scale.log:


running 1 test
test auth::tests::discoverable_latency_at_pending_capacity ... auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=3.91 9.43 9.98 2/797 2942984
challenge mode=identified pending=0..200 n=200 p50_us=67 p99_us=141 rss_before_kib=12968 rss_after_kib=13216
challenge mode=identified pending=824..1024 n=200 p50_us=58 p99_us=129 rss_before_kib=13980 rss_after_kib=14428
challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=22 rss_before_kib=14428 rss_after_kib=14428
challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=21 rss_before_kib=14428 rss_after_kib=14428
pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations)
signed discoverable finish pending=1024 n=200 p50_us=397 p99_us=846 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier)
ok

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

socket-scale.log:


running 1 test
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=988us p99=1913us arch=x86_64 load=3.91 9.43 9.98 2/795 2942988
ok

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

writer-scale.log:


running 1 test
test websocket::writer_tests::writer_admission_at_user_capacity ... writer authority: connections=16 writers=512 n=3200 p50_us=163 p99_us=350 SQLite=memory arch=x86_64 load=3.76 9.30 9.94 1/770 2943009
ok

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

review-auth4 regression/scale results at server e4809d4/client58040df: native4/4; paired v3/v1/v2 prompts1/2/2, exactly one proof without PRF each; production Playwright4/4 (44.2s), 500-key p99=16.50ms/resume79.70ms. Screenshot masking for setup/recovery and acceptDownloads=false are privacy-only harness changes; assertions unchanged, failure context disabled. Release benchmarks after this review's builds/browser finish: 1024 pending, challenge21us/finish846us p99, RSS12968->14428KiB (+1460), inline136*1024=139264 bytes, 1025 rejected. Socket n3200 p99=1913us, writer512/n3200 p99=350us. SQLite memory/local test double; no actual PTY/phone/perf-VM claim. Outputs verbatim: native.log: ```text supported: server rejected native browser assertion without UV supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected unsupported-prf: abort before finish; owner not created nonresident: browser refused registration; owner not created no-uv: browser refused registration; owner not created auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55) ``` traffic-v3.log: ```text traffic: native get count=1, submitted login proofs=1, PRF extension absent tracer + Rust auth: PASS (production UI, resident PRF setup, empty-storage discoverable login, DEK unwrap, 1 native prompt(s); Chromium 149.0.7827.55) ``` traffic-v1.log: ```text traffic: native get count=2, submitted login proofs=1, PRF extension absent tracer + Rust auth: PASS (production UI, resident PRF setup, empty-storage discoverable login, DEK unwrap, 2 native prompt(s); Chromium 149.0.7827.55) ``` traffic-v2.log: ```text traffic: native get count=2, submitted login proofs=1, PRF extension absent tracer + Rust auth: PASS (production UI, resident PRF setup, empty-storage discoverable login, DEK unwrap, 2 native prompt(s); Chromium 149.0.7827.55) ``` playwright.log: ```text [WebServer] $ bun run build.ts [WebServer] built main.js, chunk-sxzajhbf.js, chunk-bvv9xq2t.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4173 Running 4 tests using 1 worker (node:2941759) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ONBOARDING_SCREENSHOTS /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-desktop.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-desktop.png ✓ 1 test/onboarding.spec.ts:9:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (13.9s) S1 probe result (500 keys) Painted echoes: 500 / 500 p50: 15.00 ms p95: 16.10 ms p99: 16.50 ms keydown → onData: p50 0.00 ms, p99 0.10 ms onData → encode: p50 0.00 ms, p99 0.20 ms encode → ws.send: p50 0.10 ms, p99 0.20 ms ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms decode → term.write: p50 0.00 ms, p99 0.10 ms term.write → callback: p50 14.00 ms, p99 15.70 ms callback → paint rAF: p50 0.00 ms, p99 0.10 ms ws.send → ws.onmessage: p50 0.80 ms, p99 1.80 ms (includes the double and both local socket legs) Time to resume: 79.70 ms S1 per-hop attribution (500 keys) Clock alignment: -20812.363 ms offset; best HTTP RTT 2.100 ms (cross-process one-way splits assume a symmetric local path). Trace coverage: 500 browser keys, 2004 double marks. keydown → onData: p50 0.00 ms, p99 0.10 ms (500 keys) onData → encode: p50 0.00 ms, p99 0.20 ms (500 keys) encode → ws.send: p50 0.10 ms, p99 0.20 ms (500 keys) ws.send → double receive: p50 0.22 ms, p99 0.99 ms (500 keys) double receive → decode: p50 0.05 ms, p99 0.11 ms (500 keys) double decode → echo encode: p50 0.05 ms, p99 0.15 ms (500 keys) double echo encode → send: p50 0.00 ms, p99 0.02 ms (500 keys) double echo send → ws.onmessage: p50 0.42 ms, p99 0.76 ms (500 keys) ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms (500 keys) decode → term.write: p50 0.00 ms, p99 0.10 ms (500 keys) term.write → write callback: p50 14.00 ms, p99 15.70 ms (500 keys) write callback → paint rAF: p50 0.00 ms, p99 0.10 ms (500 keys) S1 screenshots: /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-terminal.png, /home/kayg/.cache/codex-scratch/review-auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-probe.png ✓ 2 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (15.7s) [WebServer] test-double setup denied: owner=false token-match=false username-valid=true display-name-valid=true ✓ 3 test/terminal.spec.ts:261:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (2.6s) Access render upper bound (setup, n=30, local production build): p50 120.80000001192093 ms, p99 348.40000000596046 ms Access first-contentful-paint (setup, n=30, local production build): p50 59.099999994039536 ms, p99 281.70000000298023 ms Access render upper bound (signin, n=30, local production build): p50 110.5 ms, p99 142.8999999910593 ms Access first-contentful-paint (signin, n=30, local production build): p50 59.3999999910593 ms, p99 88.90000000596046 ms ✓ 4 test/terminal.spec.ts:294:1 › access screens render within the local first-paint budget (9.7s) 4 passed (44.2s) ``` auth-scale.log: ```text running 1 test test auth::tests::discoverable_latency_at_pending_capacity ... auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=3.91 9.43 9.98 2/797 2942984 challenge mode=identified pending=0..200 n=200 p50_us=67 p99_us=141 rss_before_kib=12968 rss_after_kib=13216 challenge mode=identified pending=824..1024 n=200 p50_us=58 p99_us=129 rss_before_kib=13980 rss_after_kib=14428 challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=22 rss_before_kib=14428 rss_after_kib=14428 challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=21 rss_before_kib=14428 rss_after_kib=14428 pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations) signed discoverable finish pending=1024 n=200 p50_us=397 p99_us=846 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier) ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.23s ``` socket-scale.log: ```text running 1 test test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... socket authority: sockets=16 simultaneous_per_round=16 rounds=200 n=3200 p50=988us p99=1913us arch=x86_64 load=3.91 9.43 9.98 2/795 2942988 ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.38s ``` writer-scale.log: ```text running 1 test test websocket::writer_tests::writer_admission_at_user_capacity ... writer authority: connections=16 writers=512 n=3200 p50_us=163 p99_us=350 SQLite=memory arch=x86_64 load=3.76 9.30 9.94 1/770 2943009 ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.71s ```
Author
Owner

Independent review-auth4 verdict: REWORK, ranked:

  1. R1 / F1, P1: late accepted completion HTTP response restores A's active cookie over B's failed pending login (browser401→200/reload terminal shell). B's original cookie stays401; request transaction binding works, but auth/http.rs:239/120 response Set-Cookie still crosses tabs. Reproduced twice; response-only no-Set-Cookie control stays401. Additional pending-cleanup reply clears B's active browser cookie200→401 while its server cookie stays200 (http.rs:292–295); that test uses exact matching completion per owner accepted client-consistency boundary, not a claimed B local unwrap. Review completion, pending-cleanup and other stale cookie-writing replies. No DEK-possession proof requested.
  2. R2, P2 against the requested long-open check: a live valid backend open delayed10s is rejected at5.002s with zero rows; 0.1/1.5/4.5s succeed. Failing review4_legitimate_10000. websocket.rs:42/1060 sets a total5s cap. This is the documented new policy, not an auth bypass and not a measured real slow host; resolve that budget or preserve longer legitimate work independently of prompt auth cancellation.

F2/F3 requested revocation checks PASS. Strict real WebSocket/Unix/SQLite matrix12/12 (logout/recovery/edited expiry ×0.1/1.5/10s/never), transport closed, first/late binary=false, max close30650us, no terminal rows. Hello/Resume/pre-Hello/expiry focused suite12/12. Pending matching ids, both completion orders, stale/completed ids, restricted reload and pending expiry pass. Original audit_cases.rs is SHA256-identical and passes7/7. Original two-tabs.mjs is SHA256-identical but cannot pass its obsolete positive waits for A and B to enter terminal after the rejected completion; it times out. Corrected expected-state browser probe passes401→401. This harness mismatch is not a product defect.

Native4/4; v3/v1/v2 gets1/2/2 with exactly one stripped proof each. Playwright4/4; key-to-paint p99=16.50ms, resume79.70ms. Privacy-only harness changes mask setup/recovery pixels, disable download persistence and failure DOM snapshots; assertions unchanged. Production screenshots attached in the review conversation; no visual-quality/actual PTY/physical-phone claim. Auth1024 p99 challenge21us/finish846us; RSS12968→14428KiB (+1460); inline136×1024=139264 bytes, heap excluded, 1025 denied. Socket3200 p99=1913us; writer512/3200 p99=350us, local memory SQLite. No review compilation overlapped final measurements; machine/load recorded verbatim previously.

Heads: server e4809d49cb; client58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Both original worktrees remain clean/read-only; no commits/push/deploy. Full fast logs and executable failing test sources are preserved in prior ordered comments; scratch is removed next. Both fast gates exit0, summary verbatim:

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

 7 pass
 0 fail
 34390 expect() calls

Stricter socket matrix, verbatim:

   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/audit-server/crates/infraternal-server)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 12.48s
     Running unittests src/lib.rs (target/debug/deps/infraternal_server-646bf6c1869758f4)

running 12 tests
test auth::tests::review4::review4_busy_expiry_100 ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=Some(100) -> close 27212us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_expiry_10000 ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=Some(10000) -> close 30650us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_expiry_1500 ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=Some(1500) -> close 26279us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_expiry_never ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=None -> close 26287us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_100 ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=Some(100) -> close 738us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_10000 ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=Some(10000) -> close 676us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_1500 ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=Some(1500) -> close 576us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_never ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=None -> close 677us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_100 ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=Some(100) -> close 1099us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_10000 ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=Some(10000) -> close 1239us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_1500 ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=Some(1500) -> close 671us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_never ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=None -> close 679us=false; success Result after revocation=false; terminal rows committed=0
ok

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


The stricter matrix adds explicit transport-terminal and zero-binary assertions to the previously posted review4.rs helper; it leaves production source unchanged. Earlier invalid cleanup harness attempts (target-local virtual PRF seed/focus) are excluded from product findings.

Independent review-auth4 verdict: **REWORK**, ranked: 1. **R1 / F1, P1:** late accepted completion HTTP response restores A's active cookie over B's failed pending login (browser401→200/reload terminal shell). B's original cookie stays401; request transaction binding works, but auth/http.rs:239/120 response Set-Cookie still crosses tabs. Reproduced twice; response-only no-Set-Cookie control stays401. Additional pending-cleanup reply clears B's active browser cookie200→401 while its server cookie stays200 (http.rs:292–295); that test uses exact matching completion per owner accepted client-consistency boundary, not a claimed B local unwrap. Review completion, pending-cleanup and other stale cookie-writing replies. No DEK-possession proof requested. 2. **R2, P2 against the requested long-open check:** a live valid backend open delayed10s is rejected at5.002s with zero rows; 0.1/1.5/4.5s succeed. Failing review4_legitimate_10000. websocket.rs:42/1060 sets a total5s cap. This is the documented new policy, not an auth bypass and not a measured real slow host; resolve that budget or preserve longer legitimate work independently of prompt auth cancellation. F2/F3 requested revocation checks PASS. Strict real WebSocket/Unix/SQLite matrix12/12 (logout/recovery/edited expiry ×0.1/1.5/10s/never), transport closed, first/late binary=false, max close30650us, no terminal rows. Hello/Resume/pre-Hello/expiry focused suite12/12. Pending matching ids, both completion orders, stale/completed ids, restricted reload and pending expiry pass. Original audit_cases.rs is SHA256-identical and passes7/7. Original two-tabs.mjs is SHA256-identical but cannot pass its obsolete positive waits for A and B to enter terminal after the rejected completion; it times out. Corrected expected-state browser probe passes401→401. This harness mismatch is not a product defect. Native4/4; v3/v1/v2 gets1/2/2 with exactly one stripped proof each. Playwright4/4; key-to-paint p99=16.50ms, resume79.70ms. Privacy-only harness changes mask setup/recovery pixels, disable download persistence and failure DOM snapshots; assertions unchanged. Production screenshots attached in the review conversation; no visual-quality/actual PTY/physical-phone claim. Auth1024 p99 challenge21us/finish846us; RSS12968→14428KiB (+1460); inline136×1024=139264 bytes, heap excluded, 1025 denied. Socket3200 p99=1913us; writer512/3200 p99=350us, local memory SQLite. No review compilation overlapped final measurements; machine/load recorded verbatim previously. Heads: server e4809d49cbd6aea76bc0393732d2e38cb0d76a19; client58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Both original worktrees remain clean/read-only; no commits/push/deploy. Full fast logs and executable failing test sources are preserved in prior ordered comments; scratch is removed next. Both fast gates exit0, summary verbatim: ```text +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ 7 pass 0 fail 34390 expect() calls ``` Stricter socket matrix, verbatim: ```text Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/audit-server/crates/infraternal-server) Finished `test` profile [unoptimized + debuginfo] target(s) in 12.48s Running unittests src/lib.rs (target/debug/deps/infraternal_server-646bf6c1869758f4) running 12 tests test auth::tests::review4::review4_busy_expiry_100 ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=Some(100) -> close 27212us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_expiry_10000 ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=Some(10000) -> close 30650us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_expiry_1500 ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=Some(1500) -> close 26279us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_expiry_never ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=None -> close 26287us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_100 ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=Some(100) -> close 738us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_10000 ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=Some(10000) -> close 676us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_1500 ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=Some(1500) -> close 576us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_never ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=None -> close 677us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_100 ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=Some(100) -> close 1099us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_10000 ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=Some(10000) -> close 1239us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_1500 ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=Some(1500) -> close 671us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_never ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=None -> close 679us=false; success Result after revocation=false; terminal rows committed=0 ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 69 filtered out; finished in 46.70s ``` The stricter matrix adds explicit transport-terminal and zero-binary assertions to the previously posted review4.rs helper; it leaves production source unchanged. Earlier invalid cleanup harness attempts (target-local virtual PRF seed/focus) are excluded from product findings.
Author
Owner

Accumulated review-auth4 findings (verbatim); this issue is the durable record after scratch cleanup.

review-auth4

Server e4809d4; client 58040df.

Original Rust probes — PASS unchanged

Copied audit_cases.rs byte-for-byte into disposable auth module.

test auth::tests::original_review3::review3_busy_expiry ... busy expiry -> still open at 27ms=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::original_review3::review3_busy_logout ... busy logout -> still open at 1ms=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::original_review3::review3_busy_recovery ... busy recovery -> still open at 6ms=false; success Result after revocation=false; terminal rows committed=0
idle expiry close observed at 2000ms (2-second deadline with second-resolution clock)
idle recovery commit close observed at 682us
test auth::tests::original_review3::review3_revoked_handshake_must_not_welcome ... logout committed before client Hello -> Welcome issued=false
test auth::tests::original_review3::review3_unwrap_cannot_be_skipped ... no unwrap -> unlock-finish=400 Bad Request, session=401 Unauthorized, fresh add-start=401 Unauthorized
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 74 filtered out; finished in 17.86s

Delay/transaction matrix

12/12 busy revocation variants PASS; close <100 ms, zero late success/rows. Both transaction orders, stale/completed ids, restricted reload and expired pending row PASS. Valid backend delays 0.1/1.5/4.5 s PASS.

R2 — P2 against requested long-open check: live 10 s open rejected

Input: live authorized socket, valid terminal.open, valid real Unix backend reply scheduled at 10 seconds, no revocation. Expected per requested long-legitimate-open check: success and one row. Actual: failure reply at ~5 seconds, late backend success ignored, zero rows. Failing review4_legitimate_10000 in audit-server/crates/infraternal-server/src/auth/review4.rs; matrix.log. websocket.rs:42,1060 imposes a total five-second open deadline. This is the documented new policy, not a revocation bypass; genuine slow-host/PTY legitimacy has not been demonstrated here. Separate authority cancellation from the legitimate-open duration requirement or resolve that budget explicitly.

test auth::tests::review4::review4_busy_expiry_100 ... busy expiry backend_delay=Some(100) -> close 27133us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_expiry_10000 ... busy expiry backend_delay=Some(10000) -> close 34322us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_expiry_1500 ... busy expiry backend_delay=Some(1500) -> close 28005us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_expiry_never ... busy expiry backend_delay=None -> close 26031us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_100 ... busy logout backend_delay=Some(100) -> close 807us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_10000 ... busy logout backend_delay=Some(10000) -> close 645us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_1500 ... busy logout backend_delay=Some(1500) -> close 4602us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_logout_never ... busy logout backend_delay=None -> close 795us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_100 ... busy recovery backend_delay=Some(100) -> close 1563us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_10000 ... busy recovery backend_delay=Some(10000) -> close 731us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_1500 ... busy recovery backend_delay=Some(1500) -> close 1159us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_busy_recovery_never ... busy recovery backend_delay=None -> close 1401us=false; success Result after revocation=false; terminal rows committed=0
test auth::tests::review4::review4_legitimate_100 ... legitimate backend_delay=100ms: success=true, reply=103ms, committed rows=1
test auth::tests::review4::review4_legitimate_10000 ... legitimate backend_delay=10000ms: success=false, reply=5002ms, committed rows=0
test auth::tests::review4::review4_legitimate_1500 ... legitimate backend_delay=1500ms: success=true, reply=1502ms, committed rows=1
test auth::tests::review4::review4_legitimate_4500 ... legitimate backend_delay=4500ms: success=true, reply=4506ms, committed rows=1
test auth::tests::review4::review4_transaction_variants ... transaction order reverse=false: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending
transaction order reverse=true: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending
pending expiry: matching completion denied, restricted reload denied, row cleaned
test result: FAILED. 16 passed; 1 failed; 0 ignored; 0 measured; 64 filtered out; finished in 81.29s

Input → A unwraps and the real router accepts matching completion; delay only the HTTP response. B was already on sign-in, starts a new native passkey login, fails unwrap, receives injected logout429 and has session401. Release A response.
Expected → B stays pending401 and reload signed out.
Actual → A response's Set-Cookie restores A's active cookie over B's pending cookie; B session200 and reload terminal. In-memory comparison proves restoredA=true; direct real-router request using original B cookie remains401. This is cookie replacement, not B-row activation, and not a DEK-proof request.
Failing test: audit-server/scripts/browser-auth/response-race.mjs, response-race-confirm.log. Reproduced twice with Chromium149.0.7827.55 and production dist, real verifier/SQLite/native crypto. Only response scheduling, bad nonce and logout429 controlled.
Cause → auth/http.rs:239 returns session_response(cookie), whose line120 adds Set-Cookie after accepted completion. An exact request transaction cannot bind when its response changes a shared cookie. Avoid reissuing a cookie on unlock completion; check all stale response cookie writes, including cleanup and restricted identity reads.

R1 control PASS: removing only completion Set-Cookie gives restoredA=false, B401->401/reload sign-in. Additional cleanup-direct.mjs fails: stale successful pending logout response clears B active browser cookie (200->401); original B cookie still200. B test uses exact matching completion signal per owner accepted boundary, not a claimed local B unwrap. http.rs:292-295. Earlier native cleanup attempts were invalid harnesses (target-local PRF seed/focus); they are not product findings.

Regression evidence

Both pristine snapshot fast gates PASS (full logs posted verbatim on #29); original Rust7/7 and fixed-focused12/12. Original browser hash verified unchanged: times out because it waits for the rejected A login/failed B reload to open terminal; ported corrected expected-state test PASS401->401. Native4/4, paired v3/v1/v2 native gets1/2/2 and one stripped proof each. Playwright4/4 (privacy-only masked screenshots/disabled downloads, assertions unchanged), 500-key p99 16.50ms/resume79.70ms. Release1024: challenge p99 21us/finish846us, RSS12968->14428KiB (+1460), inline136×1024=139264 bytes, 1025 denied. Socket3200 p99 1913us; writer512/3200 p99 350us. No self-review visual quality, actual PTY, phone or perf-VM claim.

Final verdict

Independent review-auth4 verdict: REWORK, ranked:

  1. R1 / F1, P1: late accepted completion HTTP response restores A's active cookie over B's failed pending login (browser401→200/reload terminal shell). B's original cookie stays401; request transaction binding works, but auth/http.rs:239/120 response Set-Cookie still crosses tabs. Reproduced twice; response-only no-Set-Cookie control stays401. Additional pending-cleanup reply clears B's active browser cookie200→401 while its server cookie stays200 (http.rs:292–295); that test uses exact matching completion per owner accepted client-consistency boundary, not a claimed B local unwrap. Review completion, pending-cleanup and other stale cookie-writing replies. No DEK-possession proof requested.
  2. R2, P2 against the requested long-open check: a live valid backend open delayed10s is rejected at5.002s with zero rows; 0.1/1.5/4.5s succeed. Failing review4_legitimate_10000. websocket.rs:42/1060 sets a total5s cap. This is the documented new policy, not an auth bypass and not a measured real slow host; resolve that budget or preserve longer legitimate work independently of prompt auth cancellation.

F2/F3 requested revocation checks PASS. Strict real WebSocket/Unix/SQLite matrix12/12 (logout/recovery/edited expiry ×0.1/1.5/10s/never), transport closed, first/late binary=false, max close30650us, no terminal rows. Hello/Resume/pre-Hello/expiry focused suite12/12. Pending matching ids, both completion orders, stale/completed ids, restricted reload and pending expiry pass. Original audit_cases.rs is SHA256-identical and passes7/7. Original two-tabs.mjs is SHA256-identical but cannot pass its obsolete positive waits for A and B to enter terminal after the rejected completion; it times out. Corrected expected-state browser probe passes401→401. This harness mismatch is not a product defect.

Native4/4; v3/v1/v2 gets1/2/2 with exactly one stripped proof each. Playwright4/4; key-to-paint p99=16.50ms, resume79.70ms. Privacy-only harness changes mask setup/recovery pixels, disable download persistence and failure DOM snapshots; assertions unchanged. Production screenshots attached in the review conversation; no visual-quality/actual PTY/physical-phone claim. Auth1024 p99 challenge21us/finish846us; RSS12968→14428KiB (+1460); inline136×1024=139264 bytes, heap excluded, 1025 denied. Socket3200 p99=1913us; writer512/3200 p99=350us, local memory SQLite. No review compilation overlapped final measurements; machine/load recorded verbatim previously.

Heads: server e4809d49cb; client58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Both original worktrees remain clean/read-only; no commits/push/deploy. Full fast logs and executable failing test sources are preserved in prior ordered comments; scratch is removed next. Both fast gates exit0, summary verbatim:

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

 7 pass
 0 fail
 34390 expect() calls

Stricter socket matrix, verbatim:

   Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/audit-server/crates/infraternal-server)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 12.48s
     Running unittests src/lib.rs (target/debug/deps/infraternal_server-646bf6c1869758f4)

running 12 tests
test auth::tests::review4::review4_busy_expiry_100 ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=Some(100) -> close 27212us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_expiry_10000 ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=Some(10000) -> close 30650us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_expiry_1500 ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=Some(1500) -> close 26279us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_expiry_never ... transport closed=true, first binary=false, late binary=false
busy expiry backend_delay=None -> close 26287us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_100 ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=Some(100) -> close 738us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_10000 ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=Some(10000) -> close 676us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_1500 ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=Some(1500) -> close 576us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_logout_never ... transport closed=true, first binary=false, late binary=false
busy logout backend_delay=None -> close 677us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_100 ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=Some(100) -> close 1099us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_10000 ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=Some(10000) -> close 1239us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_1500 ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=Some(1500) -> close 671us=false; success Result after revocation=false; terminal rows committed=0
ok
test auth::tests::review4::review4_busy_recovery_never ... transport closed=true, first binary=false, late binary=false
busy recovery backend_delay=None -> close 679us=false; success Result after revocation=false; terminal rows committed=0
ok

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


The stricter matrix adds explicit transport-terminal and zero-binary assertions to the previously posted review4.rs helper; it leaves production source unchanged. Earlier invalid cleanup harness attempts (target-local virtual PRF seed/focus) are excluded from product findings.

Accumulated review-auth4 findings (verbatim); this issue is the durable record after scratch cleanup. <!-- Independent defensive correctness recheck; original worktrees read-only. --> # review-auth4 Server e4809d4; client 58040df. ## Original Rust probes — PASS unchanged Copied audit_cases.rs byte-for-byte into disposable auth module. ```text test auth::tests::original_review3::review3_busy_expiry ... busy expiry -> still open at 27ms=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::original_review3::review3_busy_logout ... busy logout -> still open at 1ms=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::original_review3::review3_busy_recovery ... busy recovery -> still open at 6ms=false; success Result after revocation=false; terminal rows committed=0 idle expiry close observed at 2000ms (2-second deadline with second-resolution clock) idle recovery commit close observed at 682us test auth::tests::original_review3::review3_revoked_handshake_must_not_welcome ... logout committed before client Hello -> Welcome issued=false test auth::tests::original_review3::review3_unwrap_cannot_be_skipped ... no unwrap -> unlock-finish=400 Bad Request, session=401 Unauthorized, fresh add-start=401 Unauthorized test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 74 filtered out; finished in 17.86s ``` ## Delay/transaction matrix 12/12 busy revocation variants PASS; close <100 ms, zero late success/rows. Both transaction orders, stale/completed ids, restricted reload and expired pending row PASS. Valid backend delays 0.1/1.5/4.5 s PASS. ## R2 — P2 against requested long-open check: live 10 s open rejected Input: live authorized socket, valid terminal.open, valid real Unix backend reply scheduled at 10 seconds, no revocation. Expected per requested long-legitimate-open check: success and one row. Actual: failure reply at ~5 seconds, late backend success ignored, zero rows. Failing `review4_legitimate_10000` in `audit-server/crates/infraternal-server/src/auth/review4.rs`; matrix.log. `websocket.rs:42,1060` imposes a total five-second open deadline. This is the documented new policy, not a revocation bypass; genuine slow-host/PTY legitimacy has not been demonstrated here. Separate authority cancellation from the legitimate-open duration requirement or resolve that budget explicitly. ```text test auth::tests::review4::review4_busy_expiry_100 ... busy expiry backend_delay=Some(100) -> close 27133us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_expiry_10000 ... busy expiry backend_delay=Some(10000) -> close 34322us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_expiry_1500 ... busy expiry backend_delay=Some(1500) -> close 28005us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_expiry_never ... busy expiry backend_delay=None -> close 26031us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_100 ... busy logout backend_delay=Some(100) -> close 807us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_10000 ... busy logout backend_delay=Some(10000) -> close 645us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_1500 ... busy logout backend_delay=Some(1500) -> close 4602us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_logout_never ... busy logout backend_delay=None -> close 795us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_100 ... busy recovery backend_delay=Some(100) -> close 1563us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_10000 ... busy recovery backend_delay=Some(10000) -> close 731us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_1500 ... busy recovery backend_delay=Some(1500) -> close 1159us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_busy_recovery_never ... busy recovery backend_delay=None -> close 1401us=false; success Result after revocation=false; terminal rows committed=0 test auth::tests::review4::review4_legitimate_100 ... legitimate backend_delay=100ms: success=true, reply=103ms, committed rows=1 test auth::tests::review4::review4_legitimate_10000 ... legitimate backend_delay=10000ms: success=false, reply=5002ms, committed rows=0 test auth::tests::review4::review4_legitimate_1500 ... legitimate backend_delay=1500ms: success=true, reply=1502ms, committed rows=1 test auth::tests::review4::review4_legitimate_4500 ... legitimate backend_delay=4500ms: success=true, reply=4506ms, committed rows=1 test auth::tests::review4::review4_transaction_variants ... transaction order reverse=false: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending transaction order reverse=true: mismatched/stale/completed ids denied, other cookie unchanged, reload stays pending pending expiry: matching completion denied, restricted reload denied, row cleaned test result: FAILED. 16 passed; 1 failed; 0 ignored; 0 measured; 64 filtered out; finished in 81.29s ``` ## R1 — P1: delayed completion response restores another tab's active cookie Input → A unwraps and the real router accepts matching completion; delay only the HTTP response. B was already on sign-in, starts a new native passkey login, fails unwrap, receives injected logout429 and has session401. Release A response. Expected → B stays pending401 and reload signed out. Actual → A response's Set-Cookie restores A's active cookie over B's pending cookie; B session200 and reload terminal. In-memory comparison proves restoredA=true; direct real-router request using original B cookie remains401. This is cookie replacement, not B-row activation, and not a DEK-proof request. Failing test: audit-server/scripts/browser-auth/response-race.mjs, response-race-confirm.log. Reproduced twice with Chromium149.0.7827.55 and production dist, real verifier/SQLite/native crypto. Only response scheduling, bad nonce and logout429 controlled. Cause → auth/http.rs:239 returns session_response(cookie), whose line120 adds Set-Cookie after accepted completion. An exact request transaction cannot bind when its response changes a shared cookie. Avoid reissuing a cookie on unlock completion; check all stale response cookie writes, including cleanup and restricted identity reads. R1 control PASS: removing only completion Set-Cookie gives restoredA=false, B401->401/reload sign-in. Additional cleanup-direct.mjs fails: stale successful pending logout response clears B active browser cookie (200->401); original B cookie still200. B test uses exact matching completion signal per owner accepted boundary, not a claimed local B unwrap. http.rs:292-295. Earlier native cleanup attempts were invalid harnesses (target-local PRF seed/focus); they are not product findings. ## Regression evidence Both pristine snapshot fast gates PASS (full logs posted verbatim on #29); original Rust7/7 and fixed-focused12/12. Original browser hash verified unchanged: times out because it waits for the rejected A login/failed B reload to open terminal; ported corrected expected-state test PASS401->401. Native4/4, paired v3/v1/v2 native gets1/2/2 and one stripped proof each. Playwright4/4 (privacy-only masked screenshots/disabled downloads, assertions unchanged), 500-key p99 16.50ms/resume79.70ms. Release1024: challenge p99 21us/finish846us, RSS12968->14428KiB (+1460), inline136×1024=139264 bytes, 1025 denied. Socket3200 p99 1913us; writer512/3200 p99 350us. No self-review visual quality, actual PTY, phone or perf-VM claim. ## Final verdict Independent review-auth4 verdict: **REWORK**, ranked: 1. **R1 / F1, P1:** late accepted completion HTTP response restores A's active cookie over B's failed pending login (browser401→200/reload terminal shell). B's original cookie stays401; request transaction binding works, but auth/http.rs:239/120 response Set-Cookie still crosses tabs. Reproduced twice; response-only no-Set-Cookie control stays401. Additional pending-cleanup reply clears B's active browser cookie200→401 while its server cookie stays200 (http.rs:292–295); that test uses exact matching completion per owner accepted client-consistency boundary, not a claimed B local unwrap. Review completion, pending-cleanup and other stale cookie-writing replies. No DEK-possession proof requested. 2. **R2, P2 against the requested long-open check:** a live valid backend open delayed10s is rejected at5.002s with zero rows; 0.1/1.5/4.5s succeed. Failing review4_legitimate_10000. websocket.rs:42/1060 sets a total5s cap. This is the documented new policy, not an auth bypass and not a measured real slow host; resolve that budget or preserve longer legitimate work independently of prompt auth cancellation. F2/F3 requested revocation checks PASS. Strict real WebSocket/Unix/SQLite matrix12/12 (logout/recovery/edited expiry ×0.1/1.5/10s/never), transport closed, first/late binary=false, max close30650us, no terminal rows. Hello/Resume/pre-Hello/expiry focused suite12/12. Pending matching ids, both completion orders, stale/completed ids, restricted reload and pending expiry pass. Original audit_cases.rs is SHA256-identical and passes7/7. Original two-tabs.mjs is SHA256-identical but cannot pass its obsolete positive waits for A and B to enter terminal after the rejected completion; it times out. Corrected expected-state browser probe passes401→401. This harness mismatch is not a product defect. Native4/4; v3/v1/v2 gets1/2/2 with exactly one stripped proof each. Playwright4/4; key-to-paint p99=16.50ms, resume79.70ms. Privacy-only harness changes mask setup/recovery pixels, disable download persistence and failure DOM snapshots; assertions unchanged. Production screenshots attached in the review conversation; no visual-quality/actual PTY/physical-phone claim. Auth1024 p99 challenge21us/finish846us; RSS12968→14428KiB (+1460); inline136×1024=139264 bytes, heap excluded, 1025 denied. Socket3200 p99=1913us; writer512/3200 p99=350us, local memory SQLite. No review compilation overlapped final measurements; machine/load recorded verbatim previously. Heads: server e4809d49cbd6aea76bc0393732d2e38cb0d76a19; client58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Both original worktrees remain clean/read-only; no commits/push/deploy. Full fast logs and executable failing test sources are preserved in prior ordered comments; scratch is removed next. Both fast gates exit0, summary verbatim: ```text +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ 7 pass 0 fail 34390 expect() calls ``` Stricter socket matrix, verbatim: ```text Compiling infraternal-server v0.1.0 (/home/kayg/.cache/codex-scratch/review-auth4/audit-server/crates/infraternal-server) Finished `test` profile [unoptimized + debuginfo] target(s) in 12.48s Running unittests src/lib.rs (target/debug/deps/infraternal_server-646bf6c1869758f4) running 12 tests test auth::tests::review4::review4_busy_expiry_100 ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=Some(100) -> close 27212us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_expiry_10000 ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=Some(10000) -> close 30650us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_expiry_1500 ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=Some(1500) -> close 26279us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_expiry_never ... transport closed=true, first binary=false, late binary=false busy expiry backend_delay=None -> close 26287us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_100 ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=Some(100) -> close 738us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_10000 ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=Some(10000) -> close 676us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_1500 ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=Some(1500) -> close 576us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_logout_never ... transport closed=true, first binary=false, late binary=false busy logout backend_delay=None -> close 677us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_100 ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=Some(100) -> close 1099us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_10000 ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=Some(10000) -> close 1239us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_1500 ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=Some(1500) -> close 671us=false; success Result after revocation=false; terminal rows committed=0 ok test auth::tests::review4::review4_busy_recovery_never ... transport closed=true, first binary=false, late binary=false busy recovery backend_delay=None -> close 679us=false; success Result after revocation=false; terminal rows committed=0 ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 69 filtered out; finished in 46.70s ``` The stricter matrix adds explicit transport-terminal and zero-binary assertions to the previously posted review4.rs helper; it leaves production source unchanged. Earlier invalid cleanup harness attempts (target-local virtual PRF seed/focus) are excluded from product findings.
Author
Owner

review-auth4 finished and cleanup verified: t-server clean at e4809d49cb; t-web-auth clean at58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Entire HOME/.cache/codex-scratch/review-auth4 removed after preserving findings, failing executable sources and all gate logs on #29. No commits/push/deploy/issue closure. Verdict REWORK and ranked findings are in the preceding comments. Both pristine fast gates exit0; verbatim summary:

| fmt                       | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | PASS         |

 7 pass
 0 fail
 34390 expect() calls
review-auth4 finished and cleanup verified: t-server clean at e4809d49cbd6aea76bc0393732d2e38cb0d76a19; t-web-auth clean at58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Entire HOME/.cache/codex-scratch/review-auth4 removed after preserving findings, failing executable sources and all gate logs on #29. No commits/push/deploy/issue closure. Verdict REWORK and ranked findings are in the preceding comments. Both pristine fast gates exit0; verbatim summary: ```text | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | 7 pass 0 fail 34390 expect() calls ```
Author
Owner

Starting final recheck fixes: branch t-server, base e4809d49cb; client t-web-auth 58040df remains read-only unless needed. Read issue/parent history and repository contract. Reproduce delayed completion/cleanup responses and legitimate 10s open before fixes; one gated commit per finding. Proposed response invariant: completion, pending cleanup and session reads emit no Set-Cookie, preventing delayed replies from replacing another login. docs/PROCESS.md absent; supplied owner process applies. No push/deploy.

Starting final recheck fixes: branch t-server, base e4809d49cbd6aea76bc0393732d2e38cb0d76a19; client t-web-auth 58040df remains read-only unless needed. Read issue/parent history and repository contract. Reproduce delayed completion/cleanup responses and legitimate 10s open before fixes; one gated commit per finding. Proposed response invariant: completion, pending cleanup and session reads emit no Set-Cookie, preventing delayed replies from replacing another login. docs/PROCESS.md absent; supplied owner process applies. No push/deploy.
Author
Owner

F1 red evidence at e4809d4: Rust review3_completion_and_cleanup_are_transaction_bound 0 passed/1 failed on successful completion Set-Cookie. Ported reviewer browser scripts review4-response-race.mjs and review4-cleanup-direct.mjs fail against production client58040df/real Rust router: delayed completion replaces B pending cookie; delayed cleanup clears B active cookie. No screenshots/traces/secrets produced. No longer-connect budget found in DECISIONS/contracts; proposed terminal open bound60s per owner task, retaining25ms authority checks and under100ms revocation target.

F1 red evidence at e4809d4: Rust review3_completion_and_cleanup_are_transaction_bound 0 passed/1 failed on successful completion Set-Cookie. Ported reviewer browser scripts review4-response-race.mjs and review4-cleanup-direct.mjs fail against production client58040df/real Rust router: delayed completion replaces B pending cookie; delayed cleanup clears B active cookie. No screenshots/traces/secrets produced. No longer-connect budget found in DECISIONS/contracts; proposed terminal open bound60s per owner task, retaining25ms authority checks and under100ms revocation target.
Author
Owner

F1 response audit also found dispatch refreshing the request cookie on wraps/add-start and other authenticated actions (auth/http.rs:164-184); a delayed read can restore an obsolete login just like completion. Extending the same invariant: only explicit registration/login issuance writes the auth cookie; authenticated refresh/read and logout responses are cookie-neutral, including ordinary logout (database revocation remains immediate). Browser lifetime becomes30days from issuance; SQLite still slides. Updating the cookie-flags test to inspect login issuance instead of identity refresh.

F1 response audit also found dispatch refreshing the request cookie on wraps/add-start and other authenticated actions (auth/http.rs:164-184); a delayed read can restore an obsolete login just like completion. Extending the same invariant: only explicit registration/login issuance writes the auth cookie; authenticated refresh/read and logout responses are cookie-neutral, including ordinary logout (database revocation remains immediate). Browser lifetime becomes30days from issuance; SQLite still slides. Updating the cookie-flags test to inspect login issuance instead of identity refresh.
Author
Owner

F1 green focused evidence: both reviewer production Chromium races PASS, completion includes reload before delayed reply; native auth4/4 PASS. Broader response audit removes all auth-cookie refreshes and cookie clearing from logout, retaining exact SQL revocation. Current fast run not accepted:53 pass/1 fail (busy_expiry socket closed during setup under concurrent compilation); two earlier Clippy findings corrected. Client latency under build load26.7ms exceeds unchanged20ms threshold (3/4 pass). Will rerun gates without concurrent builds; no green/done claim.

F1 green focused evidence: both reviewer production Chromium races PASS, completion includes reload before delayed reply; native auth4/4 PASS. Broader response audit removes all auth-cookie refreshes and cookie clearing from logout, retaining exact SQL revocation. Current fast run not accepted:53 pass/1 fail (busy_expiry socket closed during setup under concurrent compilation); two earlier Clippy findings corrected. Client latency under build load26.7ms exceeds unchanged20ms threshold (3/4 pass). Will rerun gates without concurrent builds; no green/done claim.
Author
Owner

F1 validation at pre-commit t-server (base e4809d4), f1-accept-fast.log, verbatim part 1/3:


==> fmt

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

==> test
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
     Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c)

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

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

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

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

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

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

running 0 tests

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

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

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

running 0 tests

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

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

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

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

running 57 tests
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::audit_no_public_credential_listing ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok
test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok
test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok
test auth::tests::pending_unlock_expires_without_terminal_authority ... ok
test auth::tests::public_status_and_discoverable_http_login ... ok
test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok
test auth::tests::review3_tests::review3_busy_expiry ... ok
test auth::tests::review3_tests::review3_busy_logout ... ok
test auth::tests::review3_tests::review3_busy_recovery ... ok
test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok
test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok
test auth::tests::review3_tests::review3_waiting_handshake_loses_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok
test embedded::regressions::reattach_must_restore_output_credit ... ok
test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok
test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok
test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok
test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok
test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok
test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok
test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok
test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok
test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c)

running 12 tests
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test ring::checks::tests::wrap_and_exact_offsets ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok

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

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

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

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

   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_plugin_api

running 0 tests

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

   Doc-tests infraternal_plugin_ssh

running 0 tests

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

   Doc-tests infraternal_protocol

running 0 tests

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

   Doc-tests infraternal_server

running 0 tests

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

   Doc-tests infraternal_shim

running 0 tests

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


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

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

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'rand_core'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:199:1
    │  
199 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index
200 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand_core v0.6.4
      ├── bip39 v2.2.2
      │   └── infraternal-server v0.1.0
      │       └── infraternal v0.1.0
      ├── crypto-common v0.1.7
      │   ├── aead v0.5.2
      │   │   └── aes-gcm v0.10.3
  
F1 validation at pre-commit t-server (base e4809d4), f1-accept-fast.log, verbatim part 1/3: ```text ==> fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s ==> test Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c) running 2 tests test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-8e53c92b1f367f87) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test user_scope_survives_parent_unit_stop ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-c198a78833f77637) running 7 tests test stream_tests::split_mux_header_preserves_trailing_close ... ok test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test stream_tests::all_short_frame_splits_match_direct_decoding ... 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.00s Running unittests src/lib.rs (target/debug/deps/infraternal_server-495795ebba6d6acb) running 57 tests test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::audit_no_public_credential_listing ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::concurrent_owner_and_optional_passkey_enrollment_fail_closed ... ok test auth::tests::discoverable_login_handle_credential_counter_and_replay ... ok test auth::tests::enrollment_prf_input_matches_discoverable_login ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok test auth::tests::pending_unlock_expires_without_terminal_authority ... ok test auth::tests::public_status_and_discoverable_http_login ... ok test auth::tests::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::review3_tests::review3_backend_reply_has_a_deadline ... ok test auth::tests::review3_tests::review3_busy_expiry ... ok test auth::tests::review3_tests::review3_busy_logout ... ok test auth::tests::review3_tests::review3_busy_recovery ... ok test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound ... ok test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok test auth::tests::review3_tests::review3_waiting_handshake_loses_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok test embedded::regressions::reattach_must_restore_output_credit ... ok test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test result: ok. 54 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 43.51s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c) running 12 tests test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test frame::checks::golden::every_frozen_message ... ok test frame::checks::tests::golden_and_fragmented ... ok test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test ring::checks::tests::wrap_and_exact_offsets ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.15s Running tests/detach.rs (target/debug/deps/detach-9f5d4ed474ba6700) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.06s 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_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:26:1 │ 26 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 27 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── alacritty_terminal v0.25.1 │ └── infraternal-shim v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:93:1 │ 93 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 94 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 95 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-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/t-server/Cargo.lock:99:1 │ 99 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 100 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 ├── h2 v0.4.19 │ └── hyper v1.11.1 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ └── hyper-util v0.1.21 │ ├── axum v0.8.9 (*) │ └── axum-server v0.8.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:193:1 │ 193 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 194 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:195:1 │ 195 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 196 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:197:1 │ 197 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 198 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:199:1 │ 199 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 200 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 ```
Author
Owner

F1 validation at pre-commit t-server (base e4809d4), f1-accept-fast.log, verbatim part 2/3:

    │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   ├── cipher v0.4.4
      │   │   ├── aes v0.8.4
      │   │   │   └── aes-gcm v0.10.3 (*)
      │   │   ├── aes-gcm v0.10.3 (*)
      │   │   └── ctr v0.9.2
      │   │       └── aes-gcm v0.10.3 (*)
      │   ├── digest v0.10.7
      │   │   ├── blake2 v0.10.6
      │   │   │   └── argon2 v0.5.3
      │   │   │       └── infraternal-server v0.1.0 (*)
      │   │   ├── hmac v0.12.1
      │   │   │   └── hkdf v0.12.4
      │   │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   │   ├── sha1 v0.10.7
      │   │   │   ├── axum v0.8.9
      │   │   │   │   └── infraternal-server v0.1.0 (*)
      │   │   │   └── tungstenite v0.29.0
      │   │   │       └── tokio-tungstenite v0.29.0
      │   │   │           ├── axum v0.8.9 (*)
      │   │   │           └── (dev) infraternal-server v0.1.0 (*)
      │   │   └── sha2 v0.10.9
      │   │       ├── infraternal-server v0.1.0 (*)
      │   │       ├── sqlx-core v0.8.6
      │   │       │   ├── sqlx v0.8.6
      │   │       │   │   ├── infraternal v0.1.0 (*)
      │   │       │   │   └── infraternal-server v0.1.0 (*)
      │   │       │   ├── sqlx-macros v0.8.6
      │   │       │   │   └── sqlx v0.8.6 (*)
      │   │       │   ├── sqlx-macros-core v0.8.6
      │   │       │   │   └── sqlx-macros v0.8.6 (*)
      │   │       │   └── sqlx-sqlite v0.8.6
      │   │       │       ├── sqlx v0.8.6 (*)
      │   │       │       └── sqlx-macros-core v0.8.6 (*)
      │   │       └── sqlx-macros-core v0.8.6 (*)
      │   └── universal-hash v0.5.1
      │       └── polyval v0.6.2
      │           └── ghash v0.5.1
      │               └── aes-gcm v0.10.3 (*)
      ├── password-hash v0.5.0
      │   └── argon2 v0.5.3 (*)
      ├── rand v0.8.8
      │   └── bip39 v2.2.2 (*)
      └── rand_chacha v0.3.1
          └── rand v0.8.8 (*)
    ├ rand_core v0.9.5
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   └── infraternal v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   └── webauthn-rs-core v0.5.5
      │       └── webauthn-rs v0.5.5
      │           └── infraternal-server v0.1.0 (*)
      └── rand_chacha v0.9.0
          ├── rand v0.9.5 (*)
          └── webauthn-rs-core v0.5.5 (*)

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

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:300:1
    │  
300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.59.0
      └── alacritty_terminal v0.25.1
          └── infraternal-shim v0.1.0
              ├── infraternal v0.1.0
              └── infraternal-fuzz v0.1.0
    ├ windows-sys v0.61.2
      ├── anstyle-query v1.1.5
      │   └── anstream v1.0.0
      │   
F1 validation at pre-commit t-server (base e4809d4), f1-accept-fast.log, verbatim part 2/3: ```text │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:239:1 │ 239 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 240 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ ├── sqlx-macros v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tracing-subscriber v0.3.23 │ │ └── infraternal-server v0.1.0 (*) │ ├── webauthn-attestation-ca v0.5.5 (*) │ ├── webauthn-rs v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) └── zerocopy-derive v0.8.60 └── zerocopy v0.8.60 ├── half v2.7.1 │ ├── ciborium-ll v0.2.2 │ │ └── ciborium v0.2.2 │ │ └── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 (*) │ └── serde_cbor_2 v0.13.0 │ ├── (dev) 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-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── displaydoc v0.2.7 │ ├── asn1-rs v0.6.2 │ │ ├── der-parser v9.0.0 │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── futures-macro v0.3.34 │ └── futures-util v0.3.34 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 │ └── infraternal-server v0.1.0 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.0 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── itertools v0.13.0 │ │ │ │ ├── criterion v0.7.0 (*) │ │ │ │ └── criterion-plot v0.6.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── rayon v1.12.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── sqlx-core v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── (dev) 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 (*) │ │ ├── vte v0.15.0 │ │ │ ├── alacritty_terminal v0.25.1 (*) │ │ │ ├── infraternal-shim v0.1.0 (*) │ │ │ └── vt100 v0.16.2 │ │ │ ├── (dev) infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-shim v0.1.0 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ └── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── axum-server v0.8.0 (*) │ ├── fs-err v3.3.2 │ │ └── axum-server v0.8.0 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 (*) │ ├── tower v0.5.3 (*) │ └── tower-http v0.6.11 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:242:1 │ 242 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 243 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:244:1 │ 244 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 245 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:246:1 │ 246 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 247 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:300:1 │ 300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ windows-sys v0.61.2 ├── anstyle-query v1.1.5 │ └── anstream v1.0.0 │ ```
Author
Owner

F1 validation at pre-commit t-server (base e4809d4), f1-accept-fast.log, verbatim part 3/3:

    └── clap_builder v4.6.7
      │           └── clap v4.6.7
      │               ├── criterion v0.7.0
      │               │   └── (dev) infraternal-protocol v0.1.0
      │               │       ├── infraternal-fuzz v0.1.0
      │               │       └── infraternal-server v0.1.0
      │               │           └── infraternal v0.1.0
      │               └── infraternal v0.1.0 (*)
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   ├── rustix v1.1.5
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── polling v3.11.0
      │   │   │   └── alacritty_terminal v0.25.1 (*)
      │   │   └── rustix-openpty v0.2.0
      │   │       └── alacritty_terminal v0.25.1 (*)
      │   ├── rustix-openpty v0.2.0 (*)
      │   └── signal-hook-registry v1.4.8
      │       ├── signal-hook v0.3.18
      │       │   └── alacritty_terminal v0.25.1 (*)
      │       └── tokio v1.53.2
      │           ├── axum v0.8.9
      │           │   └── 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 (*)
      │           ├── hyper v1.11.1 (*)
      │           ├── hyper-util v0.1.21 (*)
      │           ├── infraternal v0.1.0 (*)
      │           ├── infraternal-server v0.1.0 (*)
      │           ├── sqlx-core v0.8.6
      │           │   ├── sqlx v0.8.6
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── infraternal-server v0.1.0 (*)
      │           │   ├── sqlx-macros v0.8.6
      │           │   │   └── sqlx v0.8.6 (*)
      │           │   ├── sqlx-macros-core v0.8.6
      │           │   │   └── sqlx-macros v0.8.6 (*)
      │           │   └── sqlx-sqlite v0.8.6
      │           │       ├── sqlx v0.8.6 (*)
      │           │       └── sqlx-macros-core v0.8.6 (*)
      │           ├── sqlx-macros-core v0.8.6 (*)
      │           ├── tokio-openssl v0.6.5
      │           │   └── axum-server v0.8.0 (*)
      │           ├── tokio-stream v0.1.19
      │           │   └── sqlx-core v0.8.6 (*)
      │           ├── tokio-tungstenite v0.29.0
      │           │   ├── 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 (*)
      ├── home v0.5.12
      │   └── alacritty_terminal v0.25.1 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2 (*)
      ├── miow v0.6.1
      │   └── alacritty_terminal v0.25.1 (*)
      ├── nu-ansi-term v0.50.3
      │   └── tracing-subscriber v0.3.23
      │       └── infraternal-server v0.1.0 (*)
      ├── polling v3.11.0 (*)
      ├── rustix v1.1.5 (*)
      ├── socket2 v0.6.5
      │   └── 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 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Finished `release` profile [optimized] target(s) in 0.17s
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: 14796224 bytes
    Finished `release` profile [optimized] target(s) in 0.16s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 12390880 bytes
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

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

==> TypeScript protocol compiler

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

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

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

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.12s]

F1 validation at pre-commit t-server (base e4809d4), f1-accept-fast.log, verbatim part 3/3: ```text └── clap_builder v4.6.7 │ └── clap v4.6.7 │ ├── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ ├── signal-hook v0.3.18 │ │ └── alacritty_terminal v0.25.1 (*) │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ └── 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 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── sqlx-macros v0.8.6 │ │ │ └── sqlx v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 │ │ │ └── sqlx-macros v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── 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 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── nu-ansi-term v0.50.3 │ └── tracing-subscriber v0.3.23 │ └── infraternal-server v0.1.0 (*) ├── polling v3.11.0 (*) ├── rustix v1.1.5 (*) ├── socket2 v0.6.5 │ └── 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 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Finished `release` profile [optimized] target(s) in 0.17s 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: 14796224 bytes Finished `release` profile [optimized] target(s) in 0.16s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 12390880 bytes server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> TypeScript protocol compiler ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [5.63ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.21ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.59ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.14ms] (pass) split mux header preserves trailing Close [0.16ms] 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 [2103.96ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [6.90ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.12s] ```
Author
Owner

F1 validation at pre-commit t-server (base e4809d4), f1-final-native.log, verbatim part 1/1:

   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.10s
bun install v1.4.2 (744846f84)

Checked 5 installs across 7 packages (no changes) [2.00ms]
Bundled 11 modules in 6ms

  entropy.js  38.28 KB  (entry point)

supported: server rejected native browser assertion without UV
supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected
unsupported-prf: abort before finish; owner not created
nonresident: browser refused registration; owner not created
no-uv: browser refused registration; owner not created
auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55)

F1 validation at pre-commit t-server (base e4809d4), f1-final-native.log, verbatim part 1/1: ```text Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.10s bun install v1.4.2 (744846f84) Checked 5 installs across 7 packages (no changes) [2.00ms] Bundled 11 modules in 6ms entropy.js 38.28 KB (entry point) supported: server rejected native browser assertion without UV supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected unsupported-prf: abort before finish; owner not created nonresident: browser refused registration; owner not created no-uv: browser refused registration; owner not created auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55) ```
Author
Owner

F1 validation at pre-commit t-server (base e4809d4), auth-scale.log, verbatim part 1/1:

    Finished `release` profile [optimized] target(s) in 0.15s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=3.37 5.14 6.73 3/802 3049241
challenge mode=identified pending=0..200 n=200 p50_us=54 p99_us=150 rss_before_kib=13124 rss_after_kib=13372
challenge mode=identified pending=824..1024 n=200 p50_us=52 p99_us=107 rss_before_kib=14136 rss_after_kib=14580
challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=20 rss_before_kib=14580 rss_after_kib=14580
challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=20 rss_before_kib=14580 rss_after_kib=14580
pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations)
signed discoverable finish pending=1024 n=200 p50_us=352 p99_us=600 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier)
test auth::tests::discoverable_latency_at_pending_capacity ... ok

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


F1 validation at pre-commit t-server (base e4809d4), auth-scale.log, verbatim part 1/1: ```text Finished `release` profile [optimized] target(s) in 0.15s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test auth scale: owners=1 passkeys=2 pending_limit=1024 arch=x86_64 load=3.37 5.14 6.73 3/802 3049241 challenge mode=identified pending=0..200 n=200 p50_us=54 p99_us=150 rss_before_kib=13124 rss_after_kib=13372 challenge mode=identified pending=824..1024 n=200 p50_us=52 p99_us=107 rss_before_kib=14136 rss_after_kib=14580 challenge mode=discoverable pending=0..200 n=200 p50_us=2 p99_us=20 rss_before_kib=14580 rss_after_kib=14580 challenge mode=discoverable pending=824..1024 n=200 p50_us=4 p99_us=20 rss_before_kib=14580 rss_after_kib=14580 pending inline bytes/unit=136 bytes/1024=139264 (excludes heap/hash-table allocations) signed discoverable finish pending=1024 n=200 p50_us=352 p99_us=600 (browser binding + pending unlock transaction/id + SQLite memory + real ES256 verifier) test auth::tests::discoverable_latency_at_pending_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 56 filtered out; finished in 0.21s ```
Author
Owner

F1 completed at59f76869fd3c0da9fa4c992b2a876c83f800e242: cookie-neutral completion/authenticated responses/logout, explicit issuance only. Fast all5rows PASS;54 server tests pass,3 release measurements ignored; protocol7/0/34390. Native4/4 and both production cookie races PASS including reload before release. Auth scale1024: challenge p99=20us, signed finish p99=600us,136bytes/unit. Verbatim gates posted above. Unchanged client Playwright latency fails26.7/25.4ms and standalone rerun; investigating separately, no all-gates/done claim.

F1 completed at59f76869fd3c0da9fa4c992b2a876c83f800e242: cookie-neutral completion/authenticated responses/logout, explicit issuance only. Fast all5rows PASS;54 server tests pass,3 release measurements ignored; protocol7/0/34390. Native4/4 and both production cookie races PASS including reload before release. Auth scale1024: challenge p99=20us, signed finish p99=600us,136bytes/unit. Verbatim gates posted above. Unchanged client Playwright latency fails26.7/25.4ms and standalone rerun; investigating separately, no all-gates/done claim.
Author
Owner

P2 red on59f7686: review4_ten_second_open_preserves_authority fails0pass/1fail after10.41s: real Unix backend replies successfully after10s but live socket already received failure from5s timeout. Add dedicated terminal-connect60s bound; attachment deadline remains5s and authority interruption25ms checks unchanged. Client standalone suite latency20.4ms (threshold20), host load6.65/5.63/6.65 and other-job rustc processes active; no client source touched.

P2 red on59f7686: review4_ten_second_open_preserves_authority fails0pass/1fail after10.41s: real Unix backend replies successfully after10s but live socket already received failure from5s timeout. Add dedicated terminal-connect60s bound; attachment deadline remains5s and authority interruption25ms checks unchanged. Client standalone suite latency20.4ms (threshold20), host load6.65/5.63/6.65 and other-job rustc processes active; no client source touched.
Author
Owner

P2 green evidence: dedicated60s terminal-connect bound; attach5s unchanged. Single live open10003ms; revoke during10s open closes1508us. Release at per-user capacity16: all16 ten-second opens succeed10005ms; all16 revoked sockets close2728us, zero late success/terminal rows. Eight i9-9900K KVM vCPUs, Linux6.12.111 x86_64; load after4.14/5.21/6.14; real SQLite/Unix, no real SSH claim. First full fast PASS; final gate including capacity test pending. Native auth4/4 PASS.

P2 green evidence: dedicated60s terminal-connect bound; attach5s unchanged. Single live open10003ms; revoke during10s open closes1508us. Release at per-user capacity16: all16 ten-second opens succeed10005ms; all16 revoked sockets close2728us, zero late success/terminal rows. Eight i9-9900K KVM vCPUs, Linux6.12.111 x86_64; load after4.14/5.21/6.14; real SQLite/Unix, no real SSH claim. First full fast PASS; final gate including capacity test pending. Native auth4/4 PASS.
Author
Owner

P2 validation before final commit, p2-final-fast.log, verbatim part 1/3:


==> fmt

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

==> test
   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 5.38s
     Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c)

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

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

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

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

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

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

running 0 tests

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2)

running 0 tests

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

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

running 0 tests

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

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

running 7 tests
test stream_tests::split_mux_header_preserves_trailing_close ... 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 tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test stream_tests::all_short_frame_splits_match_direct_decoding ... 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.01s

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

running 59 tests
test auth::tests::account_identity_migration_backfills_legacy_users ... ok
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds
test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok
test auth::tests::audit_ceremony_browser_binding ... ok
test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok
test auth::tests::audit_logout_survives_admission_exhaustion ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok
test auth::tests::audit_no_public_credential_listing ... 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::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_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... 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 has been running for over 60 seconds
test auth::tests::review3_tests::review3_busy_expiry has been running for over 60 seconds
test auth::tests::review3_tests::review3_busy_logout has been running for over 60 seconds
test auth::tests::review3_tests::review3_busy_recovery has been running for over 60 seconds
test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound has been running for over 60 seconds
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome has been running for over 60 seconds
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays has been running for over 60 seconds
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery has been running for over 60 seconds
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::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds
test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok
test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok
test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok
test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok
test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok
test auth::tests::review3_tests::review4_ten_second_open_preserves_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok
test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation
test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok
test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok
test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok
test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok
test embedded::regressions::reattach_must_restore_output_credit ... ok
test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok
test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok
test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok
test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok
test runtime::tests::router_migrates_private_storage_and_serves_health ... ok
test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok
test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok
test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds
test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok
test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok
test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok
test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok
test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok
test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok
test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok
test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok

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

     Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c)

running 12 tests
test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile
test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test frame::checks::golden::every_frozen_message ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host
test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok

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

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

running 1 test
test closed_standard_descriptors_become_dev_null ... ok

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

   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_plugin_api

running 0 tests

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

   Doc-tests infraternal_plugin_ssh

running 0 tests

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

   Doc-tests infraternal_protocol

running 0 tests

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

   Doc-tests infraternal_server

running 0 tests

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

   Doc-tests infraternal_shim

running 0 tests

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


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

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:197:1
    │  
197 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index
198 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────
P2 validation before final commit, p2-final-fast.log, verbatim part 1/3: ```text ==> fmt ==> clippy Checking infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.45s ==> test Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `test` profile [unoptimized + debuginfo] target(s) in 5.38s Running unittests src/main.rs (target/debug/deps/infraternal-8a07bbf4e6ccb27c) running 2 tests test install::tests::dry_run_prints_a_process_surviving_user_unit ... ok test setup_token_tests::setup_token_command_reads_only_the_expected_socket_response ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-8e53c92b1f367f87) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test user_scope_survives_parent_unit_stop ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.27s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-c198a78833f77637) running 7 tests test stream_tests::split_mux_header_preserves_trailing_close ... 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 tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test stream_tests::all_short_frame_splits_match_direct_decoding ... 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.01s Running unittests src/lib.rs (target/debug/deps/infraternal_server-495795ebba6d6acb) running 59 tests test auth::tests::account_identity_migration_backfills_legacy_users ... ok test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::discoverable_latency_at_pending_capacity ... ignored, run --release --ignored --nocapture without concurrent builds test auth::tests::account_identity_schema_has_unique_usernames_and_display_names ... ok test auth::tests::audit_ceremony_browser_binding ... ok test auth::tests::authenticated_prf_metadata_preserves_legacy_envelopes ... ok test auth::tests::audit_logout_survives_admission_exhaustion ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... ok test auth::tests::audit_no_public_credential_listing ... 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::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_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... 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 has been running for over 60 seconds test auth::tests::review3_tests::review3_busy_expiry has been running for over 60 seconds test auth::tests::review3_tests::review3_busy_logout has been running for over 60 seconds test auth::tests::review3_tests::review3_busy_recovery has been running for over 60 seconds test auth::tests::review3_tests::review3_completion_and_cleanup_are_transaction_bound has been running for over 60 seconds test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome has been running for over 60 seconds test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays has been running for over 60 seconds test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery has been running for over 60 seconds 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::review4_slow_open_at_user_capacity ... ignored, release-only connect scale measurement; run without concurrent builds test auth::tests::review3_tests::review3_expired_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_identified_privacy_timing_and_binding_replays ... ok test auth::tests::review3_tests::review3_pending_routes_and_idle_expiry_recovery ... ok test auth::tests::review3_tests::review3_revoked_handshake_must_not_welcome ... ok test auth::tests::review3_tests::review3_revoked_resume_must_not_welcome ... ok test auth::tests::setup_identity_validation_and_uniqueness ... 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::setup_start_accepts_username_and_display_name ... ok test auth::tests::review3_tests::review4_ten_second_open_preserves_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::server_setup_terminal_echo_and_resume_preserve_offsets_once ... ok test auth::tests::socket_tests::socket_authority_latency_at_user_capacity ... ignored, release-only measurement without concurrent compilation test auth::tests::sessions_slide_but_fresh_tap_does_not_and_device_keys_are_scoped ... ok test embedded::regressions::full_output_queue_must_not_block_shared_actor ... ok test embedded::regressions::healthy_streams_progress_at_user_attachment_capacity ... ok test embedded::regressions::output_and_snapshot_spend_remaining_restart_credit ... ok test embedded::regressions::reattach_must_restore_output_credit ... ok test embedded::regressions::stream_close_must_not_restart_all_sessions ... ok test runtime::tests::proxy_mode_requires_an_explicit_peer_allowlist ... ok test runtime::tests::proxy_networks_match_only_their_address_family_and_prefix ... ok test runtime::tests::restart_serves_fresh_setup_token_and_completes_owner_enrollment ... ok test runtime::tests::router_migrates_private_storage_and_serves_health ... ok test runtime::tests::setup_token_socket_is_private_and_requires_explicit_request ... ok test websocket::writer_tests::second_device_does_not_inherit_first_device_input_ack ... ok test websocket::writer_tests::writer_admission_at_user_capacity ... ignored, release-only scale measurement; run without concurrent builds test websocket::writer_tests::writer_ownership_capacity_unsigned_offsets_and_identity_reuse ... ok test auth::tests::setup_restart_rotation_expiry_and_parallel_redemption ... ok test auth::tests::socket_tests::clean_control_close_is_not_an_internal_error ... ok test auth::tests::socket_tests::expired_handshake_releases_user_permits ... ok test auth::tests::socket_tests::fragmented_wire_frame_has_a_completion_deadline ... ok test auth::tests::socket_tests::half_open_sockets_obey_user_limit ... ok test auth::tests::socket_tests::revoked_idle_socket_loses_all_authority ... ok test auth::tests::stale_counters_recovery_cancellation_and_wrap_tampering ... ok test result: ok. 55 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 125.40s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-95c8f09c3e6bd78c) running 12 tests test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test frame::checks::golden::every_frozen_message ... ok test frame::checks::tests::golden_and_fragmented ... ok test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.17s Running tests/detach.rs (target/debug/deps/detach-9f5d4ed474ba6700) running 1 test test closed_standard_descriptors_become_dev_null ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s 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_plugin_api running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_plugin_ssh running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_protocol running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests infraternal_shim running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ==> cargo-deny warning[duplicate]: found 2 duplicate entries for crate 'base64' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:26:1 │ 26 │ ╭ base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index 27 │ │ base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────┘ lock entries │ ├ base64 v0.21.7 ├── base64urlsafedata v0.5.5 │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── webauthn-rs v0.5.5 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-proto v0.5.5 │ └── webauthn-rs-core v0.5.5 (*) ├── webauthn-rs-core v0.5.5 (*) └── webauthn-rs-proto v0.5.5 (*) ├ base64 v0.22.1 ├── alacritty_terminal v0.25.1 │ └── infraternal-shim v0.1.0 │ ├── infraternal v0.1.0 │ └── infraternal-fuzz v0.1.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 3 duplicate entries for crate 'getrandom' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:93:1 │ 93 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index 94 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index 95 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ getrandom v0.2.17 └── rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-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/t-server/Cargo.lock:99:1 │ 99 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index 100 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ hashbrown v0.15.5 ├── hashlink v0.10.0 │ └── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) └── sqlx-core v0.8.6 (*) ├ hashbrown v0.17.1 └── indexmap v2.14.2 ├── h2 v0.4.19 │ └── hyper v1.11.1 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ └── hyper-util v0.1.21 │ ├── axum v0.8.9 (*) │ └── axum-server v0.8.0 (*) └── sqlx-core v0.8.6 ├── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) └── sqlx-sqlite v0.8.6 ├── sqlx v0.8.6 (*) └── sqlx-macros-core v0.8.6 (*) warning[duplicate]: found 2 duplicate entries for crate 'r-efi' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:193:1 │ 193 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index 194 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────┘ lock entries │ ├ r-efi v5.3.0 └── getrandom v0.3.4 └── rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) ├ r-efi v6.0.0 └── getrandom v0.4.3 ├── jobserver v0.1.35 │ └── cc v1.6.0 │ ├── (build) libfuzzer-sys v0.4.13 │ │ └── infraternal-fuzz v0.1.0 │ ├── (build) libsqlite3-sys v0.30.1 │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 (*) │ │ └── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── openssl-src v300.6.1+3.6.3 │ │ └── (build) openssl-sys v0.9.117 │ │ ├── axum-server v0.8.0 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── openssl v0.10.81 │ │ │ ├── axum-server v0.8.0 (*) │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── tokio-openssl v0.6.5 │ │ │ │ └── axum-server v0.8.0 (*) │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── tokio-openssl v0.6.5 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ └── webauthn-rs-core v0.5.5 (*) │ └── (build) openssl-sys v0.9.117 (*) └── uuid v1.27.0 ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:195:1 │ 195 │ ╭ rand 0.8.8 registry+https://github.com/rust-lang/crates.io-index 196 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand v0.9.5 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ └── (dev) infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 └── webauthn-rs v0.5.5 └── infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:197:1 │ 197 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index 198 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────── ```
Author
Owner

P2 validation before final commit, p2-final-fast.log, verbatim part 2/3:

───────────┘ lock entries
    │  
    ├ rand_chacha v0.3.1
      └── rand v0.8.8
          └── bip39 v2.2.2
              └── infraternal-server v0.1.0
                  └── infraternal v0.1.0
    ├ rand_chacha v0.9.0
      ├── rand v0.9.5
      │   ├── infraternal-server v0.1.0
      │   │   └── infraternal v0.1.0
      │   ├── tungstenite v0.29.0
      │   │   └── tokio-tungstenite v0.29.0
      │   │       ├── axum v0.8.9
      │   │       │   └── infraternal-server v0.1.0 (*)
      │   │       └── (dev) infraternal-server v0.1.0 (*)
      │   └── webauthn-rs-core v0.5.5
      │       └── webauthn-rs v0.5.5
      │           └── infraternal-server v0.1.0 (*)
      └── webauthn-rs-core v0.5.5 (*)

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

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

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

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

warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:246:1
    │  
246 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index
247 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror-impl v1.0.69
      └── thiserror v1.0.69
          ├── asn1-rs v0.6.2
          │   ├── der-parser v9.0.0
          │   │   ├── webauthn-rs-core v0.5.5
          │   │   │   └── webauthn-rs v0.5.5
          │   │   │       └── infraternal-server v0.1.0
          │   │   │           └── infraternal v0.1.0
          │   │   └── x509-parser v0.16.0
          │   │       └── webauthn-rs-core v0.5.5 (*)
          │   ├── oid-registry v0.7.1
          │   │   └── x509-parser v0.16.0 (*)
          │   └── x509-parser v0.16.0 (*)
          ├── webauthn-rs-core v0.5.5 (*)
          └── x509-parser v0.16.0 (*)
    ├ thiserror-impl v2.0.21
      └── thiserror v2.0.21
          ├── infraternal v0.1.0
          ├── infraternal-server v0.1.0
          │   └── infraternal v0.1.0 (*)
          ├── sqlx-core v0.8.6
          │   ├── sqlx v0.8.6
          │
P2 validation before final commit, p2-final-fast.log, verbatim part 2/3: ```text ───────────┘ lock entries │ ├ rand_chacha v0.3.1 └── rand v0.8.8 └── bip39 v2.2.2 └── infraternal-server v0.1.0 └── infraternal v0.1.0 ├ rand_chacha v0.9.0 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand_core' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:199:1 │ 199 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index 200 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries │ ├ rand_core v0.6.4 ├── bip39 v2.2.2 │ └── infraternal-server v0.1.0 │ └── infraternal v0.1.0 ├── crypto-common v0.1.7 │ ├── aead v0.5.2 │ │ └── aes-gcm v0.10.3 │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── cipher v0.4.4 │ │ ├── aes v0.8.4 │ │ │ └── aes-gcm v0.10.3 (*) │ │ ├── aes-gcm v0.10.3 (*) │ │ └── ctr v0.9.2 │ │ └── aes-gcm v0.10.3 (*) │ ├── digest v0.10.7 │ │ ├── blake2 v0.10.6 │ │ │ └── argon2 v0.5.3 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── hmac v0.12.1 │ │ │ └── hkdf v0.12.4 │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ ├── sha1 v0.10.7 │ │ │ ├── axum v0.8.9 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── tungstenite v0.29.0 │ │ │ └── tokio-tungstenite v0.29.0 │ │ │ ├── axum v0.8.9 (*) │ │ │ └── (dev) infraternal-server v0.1.0 (*) │ │ └── sha2 v0.10.9 │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── sqlx-core v0.8.6 │ │ │ ├── sqlx v0.8.6 │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ ├── sqlx v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ └── universal-hash v0.5.1 │ └── polyval v0.6.2 │ └── ghash v0.5.1 │ └── aes-gcm v0.10.3 (*) ├── password-hash v0.5.0 │ └── argon2 v0.5.3 (*) ├── rand v0.8.8 │ └── bip39 v2.2.2 (*) └── rand_chacha v0.3.1 └── rand v0.8.8 (*) ├ rand_core v0.9.5 ├── rand v0.9.5 │ ├── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ ├── tungstenite v0.29.0 │ │ └── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 │ │ │ └── infraternal-server v0.1.0 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── webauthn-rs-core v0.5.5 │ └── webauthn-rs v0.5.5 │ └── infraternal-server v0.1.0 (*) └── rand_chacha v0.9.0 ├── rand v0.9.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'syn' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:239:1 │ 239 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index 240 │ │ syn 3.0.6 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────┘ lock entries │ ├ syn v2.0.119 ├── asn1-rs-derive v0.5.1 │ └── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── asn1-rs-impl v0.2.0 │ └── asn1-rs v0.6.2 (*) ├── openssl-macros v0.1.1 │ └── openssl v0.10.81 │ ├── axum-server v0.8.0 │ │ └── infraternal-server v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── webauthn-attestation-ca v0.5.5 │ │ └── webauthn-rs-core v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) ├── sqlx-macros v0.8.6 │ └── sqlx v0.8.6 │ ├── infraternal v0.1.0 (*) │ └── infraternal-server v0.1.0 (*) ├── sqlx-macros-core v0.8.6 │ └── sqlx-macros v0.8.6 (*) ├── synstructure v0.13.2 │ └── asn1-rs-derive v0.5.1 (*) ├── thiserror-impl v1.0.69 │ └── thiserror v1.0.69 │ ├── asn1-rs v0.6.2 (*) │ ├── webauthn-rs-core v0.5.5 (*) │ └── x509-parser v0.16.0 (*) ├── tracing-attributes v0.1.31 │ └── tracing v0.1.44 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── axum-core v0.5.6 │ │ └── axum v0.8.9 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ ├── sqlx-macros v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tracing-subscriber v0.3.23 │ │ └── infraternal-server v0.1.0 (*) │ ├── webauthn-attestation-ca v0.5.5 (*) │ ├── webauthn-rs v0.5.5 (*) │ └── webauthn-rs-core v0.5.5 (*) └── zerocopy-derive v0.8.60 └── zerocopy v0.8.60 ├── half v2.7.1 │ ├── ciborium-ll v0.2.2 │ │ └── ciborium v0.2.2 │ │ └── criterion v0.7.0 │ │ └── (dev) infraternal-protocol v0.1.0 │ │ ├── infraternal-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 (*) │ └── serde_cbor_2 v0.13.0 │ ├── (dev) 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-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── displaydoc v0.2.7 │ ├── asn1-rs v0.6.2 │ │ ├── der-parser v9.0.0 │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ └── x509-parser v0.16.0 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ ├── oid-registry v0.7.1 │ │ │ └── x509-parser v0.16.0 (*) │ │ └── x509-parser v0.16.0 (*) │ ├── der-parser v9.0.0 (*) │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 (*) │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── tinystr v0.8.4 │ │ └── icu_locale_core v2.3.0 (*) │ └── zerotrie v0.2.5 │ ├── icu_properties v2.3.0 (*) │ └── icu_provider v2.3.1 (*) ├── futures-macro v0.3.34 │ └── futures-util v0.3.34 │ ├── axum v0.8.9 │ │ └── infraternal-server v0.1.0 (*) │ ├── futures-executor v0.3.34 │ │ └── sqlx-sqlite v0.8.6 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── js-sys v0.3.106 │ │ └── web-sys v0.3.106 │ │ └── plotters v0.3.7 │ │ └── criterion v0.7.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ ├── tower v0.5.3 │ │ ├── axum v0.8.9 (*) │ │ └── (dev) infraternal-server v0.1.0 (*) │ └── tower-http v0.6.11 │ └── infraternal-server v0.1.0 (*) ├── serde_derive v1.0.229 │ ├── serde v1.0.229 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── base64urlsafedata v0.5.5 │ │ │ ├── webauthn-attestation-ca v0.5.5 │ │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ │ ├── webauthn-rs v0.5.5 (*) │ │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 (*) │ │ ├── bip39 v2.2.2 │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── ciborium v0.2.2 │ │ │ └── criterion v0.7.0 (*) │ │ ├── criterion v0.7.0 (*) │ │ ├── either v1.18.0 │ │ │ ├── axum-server v0.8.0 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── itertools v0.13.0 │ │ │ │ ├── criterion v0.7.0 (*) │ │ │ │ └── criterion-plot v0.6.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── rayon v1.12.0 │ │ │ │ └── criterion v0.7.0 (*) │ │ │ ├── sqlx-core v0.8.6 (*) │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ ├── infraternal-server v0.1.0 (*) │ │ ├── serde_cbor_2 v0.13.0 │ │ │ ├── (dev) 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 (*) │ │ ├── vte v0.15.0 │ │ │ ├── alacritty_terminal v0.25.1 (*) │ │ │ ├── infraternal-shim v0.1.0 (*) │ │ │ └── vt100 v0.16.2 │ │ │ ├── (dev) infraternal v0.1.0 (*) │ │ │ └── (dev) infraternal-shim v0.1.0 (*) │ │ ├── webauthn-attestation-ca v0.5.5 (*) │ │ ├── webauthn-rs v0.5.5 (*) │ │ ├── webauthn-rs-core v0.5.5 (*) │ │ └── webauthn-rs-proto v0.5.5 (*) │ └── url v2.5.8 (*) ├── synstructure v0.14.0 │ ├── yoke-derive v0.8.4 │ │ └── yoke v0.8.3 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── zerotrie v0.2.5 (*) │ │ └── zerovec v0.11.8 │ │ ├── icu_collections v2.3.0 (*) │ │ ├── icu_locale_core v2.3.0 (*) │ │ ├── icu_normalizer v2.3.0 (*) │ │ ├── icu_properties v2.3.0 (*) │ │ ├── icu_provider v2.3.1 (*) │ │ ├── potential_utf v0.1.6 │ │ │ └── icu_collections v2.3.0 (*) │ │ └── tinystr v0.8.4 (*) │ └── zerofrom-derive v0.1.8 │ └── zerofrom v0.1.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── yoke v0.8.3 (*) │ ├── zerotrie v0.2.5 (*) │ └── zerovec v0.11.8 (*) ├── thiserror-impl v2.0.21 │ └── thiserror v2.0.21 │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-sqlite v0.8.6 (*) │ └── tungstenite v0.29.0 │ └── tokio-tungstenite v0.29.0 (*) ├── tokio-macros v2.7.2 │ └── tokio v1.53.2 │ ├── axum v0.8.9 (*) │ ├── axum-server v0.8.0 (*) │ ├── fs-err v3.3.2 │ │ └── axum-server v0.8.0 (*) │ ├── h2 v0.4.19 │ │ └── hyper v1.11.1 │ │ ├── axum v0.8.9 (*) │ │ ├── axum-server v0.8.0 (*) │ │ └── hyper-util v0.1.21 │ │ ├── axum v0.8.9 (*) │ │ └── axum-server v0.8.0 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 (*) │ ├── tokio-util v0.7.19 │ │ ├── h2 v0.4.19 (*) │ │ └── tower-http v0.6.11 (*) │ ├── tower v0.5.3 (*) │ └── tower-http v0.6.11 (*) ├── wasm-bindgen-macro-support v0.2.129 │ └── wasm-bindgen-macro v0.2.129 │ └── wasm-bindgen v0.2.129 │ ├── js-sys v0.3.106 (*) │ ├── plotters v0.3.7 (*) │ └── web-sys v0.3.106 (*) ├── yoke-derive v0.8.4 (*) ├── zerofrom-derive v0.1.8 (*) └── zerovec-derive v0.11.6 └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'synstructure' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:242:1 │ 242 │ ╭ synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index 243 │ │ synstructure 0.14.0 registry+https://github.com/rust-lang/crates.io-index │ ╰─────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ synstructure v0.13.2 └── asn1-rs-derive v0.5.1 └── asn1-rs v0.6.2 ├── der-parser v9.0.0 │ ├── webauthn-rs-core v0.5.5 │ │ └── webauthn-rs v0.5.5 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── x509-parser v0.16.0 │ └── webauthn-rs-core v0.5.5 (*) ├── oid-registry v0.7.1 │ └── x509-parser v0.16.0 (*) └── x509-parser v0.16.0 (*) ├ synstructure v0.14.0 ├── yoke-derive v0.8.4 │ └── yoke v0.8.3 │ ├── icu_collections v2.3.0 │ │ ├── icu_normalizer v2.3.0 │ │ │ └── idna_adapter v1.2.2 │ │ │ └── idna v1.1.0 │ │ │ └── url v2.5.8 │ │ │ ├── infraternal-server v0.1.0 │ │ │ │ └── infraternal v0.1.0 │ │ │ ├── sqlx-core v0.8.6 │ │ │ │ ├── sqlx v0.8.6 │ │ │ │ │ ├── infraternal v0.1.0 (*) │ │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ │ ├── sqlx-macros v0.8.6 │ │ │ │ │ └── sqlx v0.8.6 (*) │ │ │ │ ├── sqlx-macros-core v0.8.6 │ │ │ │ │ └── sqlx-macros v0.8.6 (*) │ │ │ │ └── sqlx-sqlite v0.8.6 │ │ │ │ ├── sqlx v0.8.6 (*) │ │ │ │ └── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-macros-core v0.8.6 (*) │ │ │ ├── sqlx-sqlite v0.8.6 (*) │ │ │ ├── webauthn-rs v0.5.5 │ │ │ │ └── infraternal-server v0.1.0 (*) │ │ │ ├── webauthn-rs-core v0.5.5 │ │ │ │ └── webauthn-rs v0.5.5 (*) │ │ │ └── webauthn-rs-proto v0.5.5 │ │ │ └── webauthn-rs-core v0.5.5 (*) │ │ └── icu_properties v2.3.0 │ │ └── idna_adapter v1.2.2 (*) │ ├── icu_provider v2.3.1 │ │ ├── icu_normalizer v2.3.0 (*) │ │ └── icu_properties v2.3.0 (*) │ ├── zerotrie v0.2.5 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ └── zerovec v0.11.8 │ ├── icu_collections v2.3.0 (*) │ ├── icu_locale_core v2.3.0 │ │ ├── icu_properties v2.3.0 (*) │ │ └── icu_provider v2.3.1 (*) │ ├── icu_normalizer v2.3.0 (*) │ ├── icu_properties v2.3.0 (*) │ ├── icu_provider v2.3.1 (*) │ ├── potential_utf v0.1.6 │ │ └── icu_collections v2.3.0 (*) │ └── tinystr v0.8.4 │ └── icu_locale_core v2.3.0 (*) └── zerofrom-derive v0.1.8 └── zerofrom v0.1.8 ├── icu_collections v2.3.0 (*) ├── icu_provider v2.3.1 (*) ├── yoke v0.8.3 (*) ├── zerotrie v0.2.5 (*) └── zerovec v0.11.8 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:244:1 │ 244 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index 245 │ │ thiserror 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:246:1 │ 246 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index 247 │ │ thiserror-impl 2.0.21 registry+https://github.com/rust-lang/crates.io-index │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ thiserror-impl v1.0.69 └── thiserror v1.0.69 ├── asn1-rs v0.6.2 │ ├── der-parser v9.0.0 │ │ ├── webauthn-rs-core v0.5.5 │ │ │ └── webauthn-rs v0.5.5 │ │ │ └── infraternal-server v0.1.0 │ │ │ └── infraternal v0.1.0 │ │ └── x509-parser v0.16.0 │ │ └── webauthn-rs-core v0.5.5 (*) │ ├── oid-registry v0.7.1 │ │ └── x509-parser v0.16.0 (*) │ └── x509-parser v0.16.0 (*) ├── webauthn-rs-core v0.5.5 (*) └── x509-parser v0.16.0 (*) ├ thiserror-impl v2.0.21 └── thiserror v2.0.21 ├── infraternal v0.1.0 ├── infraternal-server v0.1.0 │ └── infraternal v0.1.0 (*) ├── sqlx-core v0.8.6 │ ├── sqlx v0.8.6 │ ```
Author
Owner

P2 validation before final commit, p2-final-fast.log, verbatim part 3/3:

   │   ├── infraternal v0.1.0 (*)
          │   │   └── infraternal-server v0.1.0 (*)
          │   ├── sqlx-macros v0.8.6
          │   │   └── sqlx v0.8.6 (*)
          │   ├── sqlx-macros-core v0.8.6
          │   │   └── sqlx-macros v0.8.6 (*)
          │   └── sqlx-sqlite v0.8.6
          │       ├── sqlx v0.8.6 (*)
          │       └── sqlx-macros-core v0.8.6 (*)
          ├── sqlx-sqlite v0.8.6 (*)
          └── tungstenite v0.29.0
              └── tokio-tungstenite v0.29.0
                  ├── axum v0.8.9
                  │   └── infraternal-server v0.1.0 (*)
                  └── (dev) infraternal-server v0.1.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'windows-sys'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:300:1
    │  
300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ windows-sys v0.59.0
      └── alacritty_terminal v0.25.1
          └── infraternal-shim v0.1.0
              ├── infraternal v0.1.0
              └── infraternal-fuzz v0.1.0
    ├ 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-fuzz v0.1.0
      │               │       └── infraternal-server v0.1.0
      │               │           └── infraternal v0.1.0
      │               └── infraternal v0.1.0 (*)
      ├── anstyle-wincon v3.0.11
      │   └── anstream v1.0.0 (*)
      ├── errno v0.3.14
      │   ├── rustix v1.1.5
      │   │   ├── alacritty_terminal v0.25.1
      │   │   │   └── infraternal-shim v0.1.0
      │   │   │       ├── infraternal v0.1.0 (*)
      │   │   │       └── infraternal-fuzz v0.1.0 (*)
      │   │   ├── polling v3.11.0
      │   │   │   └── alacritty_terminal v0.25.1 (*)
      │   │   └── rustix-openpty v0.2.0
      │   │       └── alacritty_terminal v0.25.1 (*)
      │   ├── rustix-openpty v0.2.0 (*)
      │   └── signal-hook-registry v1.4.8
      │       ├── signal-hook v0.3.18
      │       │   └── alacritty_terminal v0.25.1 (*)
      │       └── tokio v1.53.2
      │           ├── axum v0.8.9
      │           │   └── 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 (*)
      │           ├── hyper v1.11.1 (*)
      │           ├── hyper-util v0.1.21 (*)
      │           ├── infraternal v0.1.0 (*)
      │           ├── infraternal-server v0.1.0 (*)
      │           ├── sqlx-core v0.8.6
      │           │   ├── sqlx v0.8.6
      │           │   │   ├── infraternal v0.1.0 (*)
      │           │   │   └── infraternal-server v0.1.0 (*)
      │           │   ├── sqlx-macros v0.8.6
      │           │   │   └── sqlx v0.8.6 (*)
      │           │   ├── sqlx-macros-core v0.8.6
      │           │   │   └── sqlx-macros v0.8.6 (*)
      │           │   └── sqlx-sqlite v0.8.6
      │           │       ├── sqlx v0.8.6 (*)
      │           │       └── sqlx-macros-core v0.8.6 (*)
      │           ├── sqlx-macros-core v0.8.6 (*)
      │           ├── tokio-openssl v0.6.5
      │           │   └── axum-server v0.8.0 (*)
      │           ├── tokio-stream v0.1.19
      │           │   └── sqlx-core v0.8.6 (*)
      │           ├── tokio-tungstenite v0.29.0
      │           │   ├── 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 (*)
      ├── home v0.5.12
      │   └── alacritty_terminal v0.25.1 (*)
      ├── mio v1.2.4
      │   └── tokio v1.53.2 (*)
      ├── miow v0.6.1
      │   └── alacritty_terminal v0.25.1 (*)
      ├── nu-ansi-term v0.50.3
      │   └── tracing-subscriber v0.3.23
      │       └── infraternal-server v0.1.0 (*)
      ├── polling v3.11.0 (*)
      ├── rustix v1.1.5 (*)
      ├── socket2 v0.6.5
      │   └── 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 (*)
          └── walkdir v2.5.0 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Finished `release` profile [optimized] target(s) in 0.21s
target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped
PT_INTERP: absent; size: 14796224 bytes
    Finished `release` profile [optimized] target(s) in 0.19s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 12390880 bytes
server subcommand: exit 2, not implemented
agent subcommand: exit 2, not implemented

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

==> TypeScript protocol compiler

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

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

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

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.32s]

P2 validation before final commit, p2-final-fast.log, verbatim part 3/3: ```text │ ├── infraternal v0.1.0 (*) │ │ └── infraternal-server v0.1.0 (*) │ ├── sqlx-macros v0.8.6 │ │ └── sqlx v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 │ │ └── sqlx-macros v0.8.6 (*) │ └── sqlx-sqlite v0.8.6 │ ├── sqlx v0.8.6 (*) │ └── sqlx-macros-core v0.8.6 (*) ├── sqlx-sqlite v0.8.6 (*) └── tungstenite v0.29.0 └── tokio-tungstenite v0.29.0 ├── axum v0.8.9 │ └── infraternal-server v0.1.0 (*) └── (dev) infraternal-server v0.1.0 (*) warning[duplicate]: found 2 duplicate entries for crate 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-server/Cargo.lock:300:1 │ 300 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 301 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ 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-fuzz v0.1.0 │ │ └── infraternal-server v0.1.0 │ │ └── infraternal v0.1.0 │ └── infraternal v0.1.0 (*) ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 (*) │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ ├── signal-hook v0.3.18 │ │ └── alacritty_terminal v0.25.1 (*) │ └── tokio v1.53.2 │ ├── axum v0.8.9 │ │ └── 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 (*) │ ├── hyper v1.11.1 (*) │ ├── hyper-util v0.1.21 (*) │ ├── infraternal v0.1.0 (*) │ ├── infraternal-server v0.1.0 (*) │ ├── sqlx-core v0.8.6 │ │ ├── sqlx v0.8.6 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-server v0.1.0 (*) │ │ ├── sqlx-macros v0.8.6 │ │ │ └── sqlx v0.8.6 (*) │ │ ├── sqlx-macros-core v0.8.6 │ │ │ └── sqlx-macros v0.8.6 (*) │ │ └── sqlx-sqlite v0.8.6 │ │ ├── sqlx v0.8.6 (*) │ │ └── sqlx-macros-core v0.8.6 (*) │ ├── sqlx-macros-core v0.8.6 (*) │ ├── tokio-openssl v0.6.5 │ │ └── axum-server v0.8.0 (*) │ ├── tokio-stream v0.1.19 │ │ └── sqlx-core v0.8.6 (*) │ ├── tokio-tungstenite v0.29.0 │ │ ├── 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 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── mio v1.2.4 │ └── tokio v1.53.2 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── nu-ansi-term v0.50.3 │ └── tracing-subscriber v0.3.23 │ └── infraternal-server v0.1.0 (*) ├── polling v3.11.0 (*) ├── rustix v1.1.5 (*) ├── socket2 v0.6.5 │ └── 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 (*) └── walkdir v2.5.0 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Finished `release` profile [optimized] target(s) in 0.21s target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped PT_INTERP: absent; size: 14796224 bytes Finished `release` profile [optimized] target(s) in 0.19s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 12390880 bytes server subcommand: exit 2, not implemented agent subcommand: exit 2, not implemented +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ ==> TypeScript protocol compiler ==> Rust stream oracle (for the differential test) ==> TypeScript protocol tests bun test v1.4.2 (744846f84) src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [5.81ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.22ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.80ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.33ms] (pass) split mux header preserves trailing Close [0.20ms] 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 [2298.54ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [9.27ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.32s] ```
Author
Owner

P2 validation before final commit, p2-native.log, verbatim part 1/1:

   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.61s
bun install v1.4.2 (744846f84)

Checked 5 installs across 7 packages (no changes) [1.00ms]
Bundled 11 modules in 9ms

  entropy.js  38.28 KB  (entry point)

supported: server rejected native browser assertion without UV
supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected
unsupported-prf: abort before finish; owner not created
nonresident: browser refused registration; owner not created
no-uv: browser refused registration; owner not created
auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55)

P2 validation before final commit, p2-native.log, verbatim part 1/1: ```text Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.61s bun install v1.4.2 (744846f84) Checked 5 installs across 7 packages (no changes) [1.00ms] Bundled 11 modules in 9ms entropy.js 38.28 KB (entry point) supported: server rejected native browser assertion without UV supported: discoverable resident UV passkey, PRF fallback get, stripped proofs, native HKDF/AES-GCM, login DEK roundtrip, wrong origin rejected unsupported-prf: abort before finish; owner not created nonresident: browser refused registration; owner not created no-uv: browser refused registration; owner not created auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55) ```
Author
Owner

P2 validation before final commit, connect-scale.log, verbatim part 1/1:

    Finished `release` profile [optimized] target(s) in 0.17s
     Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b)

running 1 test
PASS: 16 live ten-second opens succeeded in 10005ms
PASS: 16 pending opens revoked; all sockets closed in 2728us
test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ok

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


P2 validation before final commit, connect-scale.log, verbatim part 1/1: ```text Finished `release` profile [optimized] target(s) in 0.17s Running unittests src/lib.rs (target/release/deps/infraternal_server-c4542cba05bbc25b) running 1 test PASS: 16 live ten-second opens succeeded in 10005ms PASS: 16 pending opens revoked; all sockets closed in 2728us test auth::tests::review3_tests::review4_slow_open_at_user_capacity ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 58 filtered out; finished in 20.12s ```
Author
Owner

P2 validation before final commit, p2-red.log, verbatim part 1/1:

   Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 8.34s
     Running unittests src/lib.rs (target/debug/deps/infraternal_server-646bf6c1869758f4)

running 1 test

thread 'auth::tests::review3_tests::review4_ten_second_open_preserves_authority' (3054877) panicked at crates/infraternal-server/src/auth/review3_tests.rs:878:13:
live ten-second open was rejected
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test auth::tests::review3_tests::review4_ten_second_open_preserves_authority ... FAILED

failures:

failures:
    auth::tests::review3_tests::review4_ten_second_open_preserves_authority

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 57 filtered out; finished in 10.41s

error: test failed, to rerun pass `-p infraternal-server --lib`

P2 validation before final commit, p2-red.log, verbatim part 1/1: ```text Compiling infraternal-server v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/t-server/crates/infraternal-server) Finished `test` profile [unoptimized + debuginfo] target(s) in 8.34s Running unittests src/lib.rs (target/debug/deps/infraternal_server-646bf6c1869758f4) running 1 test thread 'auth::tests::review3_tests::review4_ten_second_open_preserves_authority' (3054877) panicked at crates/infraternal-server/src/auth/review3_tests.rs:878:13: live ten-second open was rejected note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace test auth::tests::review3_tests::review4_ten_second_open_preserves_authority ... FAILED failures: failures: auth::tests::review3_tests::review4_ten_second_open_preserves_authority test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 57 filtered out; finished in 10.41s error: test failed, to rerun pass `-p infraternal-server --lib` ```
Author
Owner

Final production client58040df Playwright on disposable archive; fixture/config port only4173->4187 after shared-port collision, source/thresholds/flags unchanged. Verbatim output:

$ bun x playwright test
[WebServer] $ bun run build.ts
[WebServer] built main.js, chunk-sxzajhbf.js, chunk-bvv9xq2t.js
[WebServer] tracer TEST DOUBLE listening on http://localhost:4187

Running 4 tests using 1 worker

(node:3073462) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)
ONBOARDING_SCREENSHOTS /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-desktop.png
  ✓  1 test/onboarding.spec.ts:9:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (14.3s)
S1 probe result (500 keys)
Painted echoes: 500 / 500
p50: 14.80 ms
p95: 15.70 ms
p99: 16.20 ms
keydown → onData: p50 0.00 ms, p99 0.10 ms
onData → encode: p50 0.10 ms, p99 0.20 ms
encode → ws.send: p50 0.10 ms, p99 0.20 ms
ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms
decode → term.write: p50 0.00 ms, p99 0.10 ms
term.write → callback: p50 13.90 ms, p99 15.30 ms
callback → paint rAF: p50 0.00 ms, p99 0.10 ms
ws.send → ws.onmessage: p50 0.70 ms, p99 2.10 ms (includes the double and both local socket legs)
Time to resume: 78.50 ms
S1 per-hop attribution (500 keys)
Clock alignment: -21491.032 ms offset; best HTTP RTT 3.000 ms (cross-process one-way splits assume a symmetric local path).
Trace coverage: 500 browser keys, 2004 double marks.
keydown → onData: p50 0.00 ms, p99 0.10 ms (500 keys)
onData → encode: p50 0.10 ms, p99 0.20 ms (500 keys)
encode → ws.send: p50 0.10 ms, p99 0.20 ms (500 keys)
ws.send → double receive: p50 0.59 ms, p99 0.90 ms (500 keys)
double receive → decode: p50 0.04 ms, p99 0.12 ms (500 keys)
double decode → echo encode: p50 0.05 ms, p99 0.13 ms (500 keys)
double echo encode → send: p50 0.00 ms, p99 0.02 ms (500 keys)
double echo send → ws.onmessage: p50 0.06 ms, p99 0.45 ms (500 keys)
ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms (500 keys)
decode → term.write: p50 0.00 ms, p99 0.10 ms (500 keys)
term.write → write callback: p50 13.90 ms, p99 15.30 ms (500 keys)
write callback → paint rAF: p50 0.00 ms, p99 0.10 ms (500 keys)
S1 screenshots: /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-terminal.png, /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-probe.png
  ✓  2 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (15.5s)
[WebServer] test-double setup denied: owner=false token-match=false username-valid=true display-name-valid=true
  ✓  3 test/terminal.spec.ts:261:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (2.4s)
Access render upper bound (setup, n=30, local production build): p50 138 ms, p99 338.40000000596046 ms
Access first-contentful-paint (setup, n=30, local production build): p50 68.09999999403954 ms, p99 270.1000000089407 ms
Access render upper bound (signin, n=30, local production build): p50 128.5 ms, p99 168.59999999403954 ms
Access first-contentful-paint (signin, n=30, local production build): p50 68.79999999701977 ms, p99 83.70000000298023 ms
  ✓  4 test/terminal.spec.ts:294:1 › access screens render within the local first-paint budget (11.1s)

  4 passed (45.4s)

Final production client58040df Playwright on disposable archive; fixture/config port only4173->4187 after shared-port collision, source/thresholds/flags unchanged. Verbatim output: ```text $ bun x playwright test [WebServer] $ bun run build.ts [WebServer] built main.js, chunk-sxzajhbf.js, chunk-bvv9xq2t.js [WebServer] tracer TEST DOUBLE listening on http://localhost:4187 Running 4 tests using 1 worker (node:3073462) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) ONBOARDING_SCREENSHOTS /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-1-token-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-2-identity-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-3-passkey-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/step-4-recovery-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/welcome-desktop.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-desktop.png ✓ 1 test/onboarding.spec.ts:9:1 › setup, recovery acknowledgement, welcome and returning sign-in match the browser contract (14.3s) S1 probe result (500 keys) Painted echoes: 500 / 500 p50: 14.80 ms p95: 15.70 ms p99: 16.20 ms keydown → onData: p50 0.00 ms, p99 0.10 ms onData → encode: p50 0.10 ms, p99 0.20 ms encode → ws.send: p50 0.10 ms, p99 0.20 ms ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms decode → term.write: p50 0.00 ms, p99 0.10 ms term.write → callback: p50 13.90 ms, p99 15.30 ms callback → paint rAF: p50 0.00 ms, p99 0.10 ms ws.send → ws.onmessage: p50 0.70 ms, p99 2.10 ms (includes the double and both local socket legs) Time to resume: 78.50 ms S1 per-hop attribution (500 keys) Clock alignment: -21491.032 ms offset; best HTTP RTT 3.000 ms (cross-process one-way splits assume a symmetric local path). Trace coverage: 500 browser keys, 2004 double marks. keydown → onData: p50 0.00 ms, p99 0.10 ms (500 keys) onData → encode: p50 0.10 ms, p99 0.20 ms (500 keys) encode → ws.send: p50 0.10 ms, p99 0.20 ms (500 keys) ws.send → double receive: p50 0.59 ms, p99 0.90 ms (500 keys) double receive → decode: p50 0.04 ms, p99 0.12 ms (500 keys) double decode → echo encode: p50 0.05 ms, p99 0.13 ms (500 keys) double echo encode → send: p50 0.00 ms, p99 0.02 ms (500 keys) double echo send → ws.onmessage: p50 0.06 ms, p99 0.45 ms (500 keys) ws.onmessage → decode: p50 0.00 ms, p99 0.10 ms (500 keys) decode → term.write: p50 0.00 ms, p99 0.10 ms (500 keys) term.write → write callback: p50 13.90 ms, p99 15.30 ms (500 keys) write callback → paint rAF: p50 0.00 ms, p99 0.10 ms (500 keys) S1 screenshots: /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-terminal.png, /home/kayg/.cache/codex-scratch/auth4/client/apps/tracer/test-results/terminal-first-run-passkey-29742-esume-and-the-latency-probe/tracer-probe.png ✓ 2 test/terminal.spec.ts:5:1 › first run, passkey login, terminal resume, and the latency probe (15.5s) [WebServer] test-double setup denied: owner=false token-match=false username-valid=true display-name-valid=true ✓ 3 test/terminal.spec.ts:261:1 › status failure, invalid setup token, and cancelled passkey have distinct guidance (2.4s) Access render upper bound (setup, n=30, local production build): p50 138 ms, p99 338.40000000596046 ms Access first-contentful-paint (setup, n=30, local production build): p50 68.09999999403954 ms, p99 270.1000000089407 ms Access render upper bound (signin, n=30, local production build): p50 128.5 ms, p99 168.59999999403954 ms Access first-contentful-paint (signin, n=30, local production build): p50 68.79999999701977 ms, p99 83.70000000298023 ms ✓ 4 test/terminal.spec.ts:294:1 › access screens render within the local first-paint budget (11.1s) 4 passed (45.4s) ```
Author
Owner

Finished final recheck fixes: t-server head7551ff6271180f5983910e1ef6040b84dbe901f8; F1 commit59f76869fd3c0da9fa4c992b2a876c83f800e242, P2 commit7551ff6. Client t-web-auth unchanged58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Both findings reproduced red first; commits gated separately. Cookie races preserve B401/200 across held responses and reload; no response cookie refresh/clear outside explicit issuance. Terminal connect60s per owner fallback, attach5s unchanged. Capacity16: opens10005ms, all revoked sockets closed2728us, zero late success/rows. Auth1024: p99 challenge20us/finish600us. Self-review/evidence docs/verification/auth4.md. Complete unedited fast/native/Playwright/scale outputs in preceding comments. No push/deploy/issue closure.

Final gate output, verbatim:

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

 7 pass
 0 fail
 34390 expect() calls

auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55)

  4 passed (45.4s)

Server test summary, verbatim:

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

Client production500-key p99=16.20ms; resume78.50ms. Scratch archive changed fixture port only to4187 after collision; client source/thresholds unchanged. Removing this job scratch builds after durable evidence preservation.

Finished final recheck fixes: t-server head7551ff6271180f5983910e1ef6040b84dbe901f8; F1 commit59f76869fd3c0da9fa4c992b2a876c83f800e242, P2 commit7551ff6. Client t-web-auth unchanged58040dfd599cd25ed6a44abf1f8bb9084e9837c6. Both findings reproduced red first; commits gated separately. Cookie races preserve B401/200 across held responses and reload; no response cookie refresh/clear outside explicit issuance. Terminal connect60s per owner fallback, attach5s unchanged. Capacity16: opens10005ms, all revoked sockets closed2728us, zero late success/rows. Auth1024: p99 challenge20us/finish600us. Self-review/evidence docs/verification/auth4.md. Complete unedited fast/native/Playwright/scale outputs in preceding comments. No push/deploy/issue closure. Final gate output, verbatim: ```text +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | PASS | +---------------------------+--------------+ 7 pass 0 fail 34390 expect() calls auth browser: PASS (4 isolated scenarios; Chromium 149.0.7827.55) 4 passed (45.4s) ``` Server test summary, verbatim: ```text test result: ok. 55 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 125.40s ``` Client production500-key p99=16.20ms; resume78.50ms. Scratch archive changed fixture port only to4187 after collision; client source/thresholds unchanged. Removing this job scratch builds after durable evidence preservation.
Author
Owner

Cleanup PASS: removed auth4 target symlink and8.5GB job scratch builds/archive after posting all required evidence. Both source worktrees clean: server7551ff6271180f5983910e1ef6040b84dbe901f8; client unchanged58040dfd599cd25ed6a44abf1f8bb9084e9837c6. No fixture listener on4187. No push/deploy/issue closure.

Cleanup PASS: removed auth4 target symlink and8.5GB job scratch builds/archive after posting all required evidence. Both source worktrees clean: server7551ff6271180f5983910e1ef6040b84dbe901f8; client unchanged58040dfd599cd25ed6a44abf1f8bb9084e9837c6. No fixture listener on4187. No push/deploy/issue closure.
Author
Owner

Orchestrator hand check: both new browser regressions pass against t-server 7551ff6 + t-web-auth 58040df:

  • review4-response-race: PASS (a delayed completion preserves the replacement pending cookie and the reload)
  • review4-cleanup-direct: PASS (a delayed pending cleanup preserves the replacement active cookie and the reload)
    They are not in scripts/verify yet; integration adds them to the native auth gate.
Orchestrator hand check: both new browser regressions pass against t-server 7551ff6 + t-web-auth 58040df: - review4-response-race: PASS (a delayed completion preserves the replacement pending cookie and the reload) - review4-cleanup-direct: PASS (a delayed pending cleanup preserves the replacement active cookie and the reload) They are not in scripts/verify yet; integration adds them to the native auth gate.
Author
Owner

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Auth audit rounds ended with fixes merged (7551ff6, faa3154 in dev and prod); A3 answered as D108 and regressions added. 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: Auth audit rounds ended with fixes merged (7551ff6, faa3154 in dev and prod); A3 answered as D108 and regressions added. Reopen if anything is still missing.
kayg closed this issue 2026-10-28 17:52:20 +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#29
No description provided.