S1 tracer: agent core (embedded agent, shim management, terminal relay) #20

Closed
opened 2026-10-06 11:48:15 +00:00 by kayg · 35 comments
Owner

Part of #9. Base dev 7174d6b. The agent half: infraternal agent --fd 3 speaks the wire protocol over the socketpair, starts shims (contracts/shim.md), reattaches to them after a restart, and relays terminal streams exactly-once with credit flow control and catch-up by snapshot (contracts/wire.md §5–6).

Part of #9. Base `dev` `7174d6b`. The agent half: `infraternal agent --fd 3` speaks the wire protocol over the socketpair, starts shims (contracts/shim.md), reattaches to them after a restart, and relays terminal streams exactly-once with credit flow control and catch-up by snapshot (contracts/wire.md §5–6).
Author
Owner

Starting the infraternal agent core lane on branch t-agent, base 7174d6b. Reading contracts and the merged shim before implementation; changes stay within the lane and contract proposals will be recorded here.

Starting the infraternal agent core lane on branch t-agent, base 7174d6b. Reading contracts and the merged shim before implementation; changes stay within the lane and contract proposals will be recorded here.
Author
Owner

Contract findings before deviations: (1) frozen shim v1 Input has no sequence or PTY-write Ack, and Hello has no input offset (contracts/shim.md §4; crates/infraternal-shim/src/session.rs input queue/write). A crash after socket write but before leg-B Ack cannot distinguish written input from unsent input; a restart-safe exactly-once promise requires shim-owned dedup/ack, negotiated additively via caps. Proposal: a capability for sequenced Input, PTY-write Ack, and input-offset query; retain v1 unchanged. (2) contracts/wire.md §4 and infraternal-protocol Frame have no Exited frame. Proposal: use existing Event with terminal.exited JSON and session_id/status/final_seq. (3) terminal.open JSON schemas are unspecified. Proposal: input uid, cols, rows; output session_id as UUID string. (4) scripts/verify.d/rust.sh still requires agent exit 2 with not implemented, conflicting with the new CLI; request gate ownership/coordination. (5) inherited fd adoption requires an audited syscall boundary; current shim exposes only detach/run. Proposal: a safe shim API to adopt the inherited Unix socket without adding unsafe to the infraternal agent. Working first on pure bounded relay state and tests; no contract changes made.

Contract findings before deviations: (1) frozen shim v1 Input has no sequence or PTY-write Ack, and Hello has no input offset (contracts/shim.md §4; crates/infraternal-shim/src/session.rs input queue/write). A crash after socket write but before leg-B Ack cannot distinguish written input from unsent input; a restart-safe exactly-once promise requires shim-owned dedup/ack, negotiated additively via caps. Proposal: a capability for sequenced Input, PTY-write Ack, and input-offset query; retain v1 unchanged. (2) contracts/wire.md §4 and infraternal-protocol Frame have no Exited frame. Proposal: use existing Event with terminal.exited JSON and session_id/status/final_seq. (3) terminal.open JSON schemas are unspecified. Proposal: input uid, cols, rows; output session_id as UUID string. (4) scripts/verify.d/rust.sh still requires agent exit 2 with not implemented, conflicting with the new CLI; request gate ownership/coordination. (5) inherited fd adoption requires an audited syscall boundary; current shim exposes only detach/run. Proposal: a safe shim API to adopt the inherited Unix socket without adding unsafe to the infraternal agent. Working first on pure bounded relay state and tests; no contract changes made.
Author
Owner

Follow-up to boundary/gate findings: safe nix send/recv with MSG_DONTWAIT and tokio AsyncFd registration can operate the inherited descriptor without taking ownership or adding unsafe; no shim boundary change is needed for fd adoption. The existing fast CLI check can remain green by preserving the no-fd (remote transport not implemented) stub and implementing agent --fd explicitly. The shim-owned input acknowledgment/dedup gap remains; work can continue within lane ownership for discovery, launch and transport.

Follow-up to boundary/gate findings: safe nix send/recv with MSG_DONTWAIT and tokio AsyncFd registration can operate the inherited descriptor without taking ownership or adding unsafe; no shim boundary change is needed for fd adoption. The existing fast CLI check can remain green by preserving the no-fd (remote transport not implemented) stub and implementing agent --fd explicitly. The shim-owned input acknowledgment/dedup gap remains; work can continue within lane ownership for discovery, launch and transport.
Author
Owner

The concrete shared-boundary proposal is now reviewable at crates/infraternal-agent/CONTRACT-PROPOSAL.md in t-agent: shim capability bit 0; additive SequencedInput 0x17, PTY-write Ack 0x18, InputStateRequest 0x19 and InputState 0x1A; frozen v1 stays unchanged. It includes the indistinguishable crash cases and why a file/socket-write acknowledgment cannot fix them. Five relay state tests pass, including restored input offsets, byte-range overflow, output overlap/partial credit, 250 ms one-shot starvation, and snapshot lengths that do not advance output offsets. Relay states store no payload buffers (tested size bounds: Output <=64 bytes, Input <=32 bytes). Full fast gate is still doing the initial static builds.

The concrete shared-boundary proposal is now reviewable at crates/infraternal-agent/CONTRACT-PROPOSAL.md in t-agent: shim capability bit 0; additive SequencedInput 0x17, PTY-write Ack 0x18, InputStateRequest 0x19 and InputState 0x1A; frozen v1 stays unchanged. It includes the indistinguishable crash cases and why a file/socket-write acknowledgment cannot fix them. Five relay state tests pass, including restored input offsets, byte-range overflow, output overlap/partial credit, 250 ms one-shot starvation, and snapshot lengths that do not advance output offsets. Relay states store no payload buffers (tested size bounds: Output <=64 bytes, Input <=32 bytes). Full fast gate is still doing the initial static builds.
Author
Owner

Discovery and launch are committed as f6eff6c after a green fast gate. The session receive loop is cancellation-safe (fragmented header and body test), startup handshakes are concurrent and capped at 128, and launch uses a one-shot inotify readiness wait. Security finding: the inherited leg-B descriptor must not reach a target user shell; the launch/probe wrapper closes fd 3 before exec. Test finding: the absolute worktree-based fixture socket path exceeded Linux SUN_LEN; short relative paths within target/ fix the fixture without changing runtime state defaults. Transport socketpair tests now pass for fragmented/coalesced frames, reusable transmit storage, oversized prefixes and truncated EOF. PTY-write Ack/exactly-once input remains blocked on the shared shim capability proposed in CONTRACT-PROPOSAL.md.

Discovery and launch are committed as f6eff6c after a green fast gate. The session receive loop is cancellation-safe (fragmented header and body test), startup handshakes are concurrent and capped at 128, and launch uses a one-shot inotify readiness wait. Security finding: the inherited leg-B descriptor must not reach a target user shell; the launch/probe wrapper closes fd 3 before exec. Test finding: the absolute worktree-based fixture socket path exceeded Linux SUN_LEN; short relative paths within target/ fix the fixture without changing runtime state defaults. Transport socketpair tests now pass for fragmented/coalesced frames, reusable transmit storage, oversized prefixes and truncated EOF. PTY-write Ack/exactly-once input remains blocked on the shared shim capability proposed in CONTRACT-PROPOSAL.md.
Author
Owner

Real-shim canary finding and fix: the first run received 9,744 bytes but timed out before OPEN_OK because the host login profile enters a multiplexer. Reused crates/infraternal/tests/profile/.zshrc through a child-only wrapper, as the existing shim tests do; no user environment/files changed. The real shim launch/discovery/replay/resize test now passes (1 passed in 0.06s). A FIFO barrier releases output only after the replacement connection sends ReadFrom, avoiding sleep-based replay races. This proves the session helpers, not a runnable --fd daemon or crash-safe input. Remaining CLI relay, agent-process restart/flood tests and requested RSS/p99/throughput measurements depend on resolving the shared shim input capability; no such measurements are claimed.

Real-shim canary finding and fix: the first run received 9,744 bytes but timed out before OPEN_OK because the host login profile enters a multiplexer. Reused crates/infraternal/tests/profile/.zshrc through a child-only wrapper, as the existing shim tests do; no user environment/files changed. The real shim launch/discovery/replay/resize test now passes (1 passed in 0.06s). A FIFO barrier releases output only after the replacement connection sends ReadFrom, avoiding sleep-based replay races. This proves the session helpers, not a runnable --fd daemon or crash-safe input. Remaining CLI relay, agent-process restart/flood tests and requested RSS/p99/throughput measurements depend on resolving the shared shim input capability; no such measurements are claimed.
Author
Owner

Blocked handoff for the remaining tracer bullet, head 04c64fd852, branch t-agent (base 7174d6b). Six atomic commits, clean worktree. Every commit passed the prescribed fast gate.

Implemented within lane ownership: constant-space relay offset/credit state; safe event-driven inherited socket IO; secure, bounded concurrent shim discovery; system/user scope or detached launch; fd-3 closure before child exec; cancellation-safe shim reads; eleven new tests, including real-shim discovery/replay/resize. Evidence: crates/infraternal-agent/src/{relay,sessions,transport}.rs, crates/infraternal-agent/tests/, crates/infraternal/tests/agent_sessions.rs. The real-shim test uses the existing canary profile and a FIFO barrier, not timed replay.

Remaining work is NOT completed: agent --fd 3 wiring and session registry, full daemon relay, agent-process restart/exactly-once input tests, 50M credit-starvation Snapshot/memory test, idle RSS, Input→shim p99 and flood throughput. No daemon performance numbers are claimed. Completing input correctness requires shared shim-owned sequenced input and PTY-write Ack/cursor query outside this lane ownership; awaiting authorization or the shared shim change. Concrete additive layout and crash evidence: crates/infraternal-agent/CONTRACT-PROPOSAL.md. No decisions or shared shim/protocol contracts were changed; nothing pushed/deployed; issue remains open.

Final command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast
Gate output follows verbatim:


==> fmt

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

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

running 0 tests

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

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

running 1 test
test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok

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

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

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

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

running 8 tests
test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok
test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok
test relay::tests::output_partial_credit_and_dedup ... ok
test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok
test relay::tests::overflowing_ranges_never_mutate_cursors ... ok
test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok
test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok
test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok

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

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

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

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

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

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

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::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::http_csrf_cookie_flags_body_limit_and_latency_evidence ... 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 13.27s

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

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

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

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

   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-agent/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-agent 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-agent/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-agent v0.1.0
         │   └── infraternal v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── webauthn-attestation-ca v0.5.5 (*)
         ├── webauthn-rs v0.5.5 (*)
         └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'hashbrown'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent v0.1.0
              │   └── infraternal v0.1.0 (*)
              ├── infraternal-server v0.1.0 (*)
              ├── webauthn-attestation-ca v0.5.5 (*)
              ├── webauthn-rs v0.5.5 (*)
              └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent/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-agent/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-agent v0.1.0
              │   │               │   └── infraternal 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-agent v0.1.0
      │       │       │   └── infraternal 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-agent 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-agent 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-agent/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-agent/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-agent/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-agent/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-agent 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-agent v0.1.0
      │               │       │   └── infraternal 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-agent 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
      │           │       └── 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-agent 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 (*)
      ├── 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 (*)
      ├── 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.16s
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: 9631904 bytes
    Finished `release` profile [optimized] target(s) in 0.13s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 8073272 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.12ms]
(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.79ms]
(pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.18ms]
(pass) split mux header preserves trailing Close [0.25ms]

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.21s]
Blocked handoff for the remaining tracer bullet, head 04c64fd852018f7522f2773c8a77ff55b365ee92, branch t-agent (base 7174d6b). Six atomic commits, clean worktree. Every commit passed the prescribed fast gate. Implemented within lane ownership: constant-space relay offset/credit state; safe event-driven inherited socket IO; secure, bounded concurrent shim discovery; system/user scope or detached launch; fd-3 closure before child exec; cancellation-safe shim reads; eleven new tests, including real-shim discovery/replay/resize. Evidence: crates/infraternal-agent/src/{relay,sessions,transport}.rs, crates/infraternal-agent/tests/, crates/infraternal/tests/agent_sessions.rs. The real-shim test uses the existing canary profile and a FIFO barrier, not timed replay. Remaining work is NOT completed: agent --fd 3 wiring and session registry, full daemon relay, agent-process restart/exactly-once input tests, 50M credit-starvation Snapshot/memory test, idle RSS, Input→shim p99 and flood throughput. No daemon performance numbers are claimed. Completing input correctness requires shared shim-owned sequenced input and PTY-write Ack/cursor query outside this lane ownership; awaiting authorization or the shared shim change. Concrete additive layout and crash evidence: crates/infraternal-agent/CONTRACT-PROPOSAL.md. No decisions or shared shim/protocol contracts were changed; nothing pushed/deployed; issue remains open. Final command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast Gate output follows verbatim: ``` ==> fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.20s ==> test Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s Running unittests src/main.rs (target/debug/deps/infraternal-c351afadfebadd86) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/agent_sessions.rs (target/debug/deps/agent_sessions-1c3a0b71e713e043) running 1 test test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running tests/shim.rs (target/debug/deps/shim-25ea48bd575f1ccc) 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.21s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-789384eece5a0f3d) running 8 tests test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok test relay::tests::output_partial_credit_and_dedup ... ok test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/transport.rs (target/debug/deps/transport-e7d8b19e2a273cd8) running 2 tests test oversized_header_and_truncated_frame_are_rejected ... ok test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s 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.00s Running unittests src/lib.rs (target/debug/deps/infraternal_server-0899e35831817744) 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::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::http_csrf_cookie_flags_body_limit_and_latency_evidence ... 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 13.27s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-2fd8334f3fce03a4) 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 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.14s Running tests/detach.rs (target/debug/deps/detach-f166a95c6d08480e) 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.51s 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-agent/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-agent 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-agent/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'hashbrown' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent/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-agent/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-agent v0.1.0 │ │ │ └── infraternal 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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-agent 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-agent/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-agent/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-agent/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-agent/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-agent 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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 │ │ └── 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-agent 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 (*) ├── 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 (*) ├── 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.16s 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: 9631904 bytes Finished `release` profile [optimized] target(s) in 0.13s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 8073272 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.12ms] (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.79ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.18ms] (pass) split mux header preserves trailing Close [0.25ms] 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 [2192.66ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [5.58ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.21s] ```
Author
Owner

Orchestrator decision on CONTRACT-PROPOSAL.md: approved, all of it.

  • Shim cap bit 0 SEQUENCED_INPUT, frames 0x17–0x1A, exactly as proposed. contracts/shim.md §7 allows additive caps, and this closes a real hole: v1 cannot tell an agent restart that happened after PTY write from one that happened before it. That breaks DECISIONS 41 (no lost or doubled keystrokes).
  • terminal.open schema and the uid and size limits: approved.
  • Exit as an Event (terminal.exited) on the terminal stream: approved.
  • Socketpair as the leg-B transport for the embedded agent, with no listener and no mTLS bypass: approved.
    The lane may change crates/infraternal-shim for this capability. Do it in separate atomic commits: contract text first, then shim with tests, then the agent use. Caps-zero shims must keep passing their existing tests unchanged.
Orchestrator decision on CONTRACT-PROPOSAL.md: **approved, all of it.** - Shim cap bit 0 `SEQUENCED_INPUT`, frames 0x17–0x1A, exactly as proposed. contracts/shim.md §7 allows additive caps, and this closes a real hole: v1 cannot tell an agent restart that happened after PTY write from one that happened before it. That breaks DECISIONS 41 (no lost or doubled keystrokes). - `terminal.open` schema and the uid and size limits: approved. - Exit as an Event (`terminal.exited`) on the terminal stream: approved. - Socketpair as the leg-B transport for the embedded agent, with no listener and no mTLS bypass: approved. The lane may change `crates/infraternal-shim` for this capability. Do it in separate atomic commits: contract text first, then shim with tests, then the agent use. Caps-zero shims must keep passing their existing tests unchanged.
Author
Owner

Continuing the approved tracer bullet on branch t-agent, base 04c64fd852. Read CLAUDE.md, DECISIONS.md, docs/ARCHITECTURE.md, the issue thread and CONTRACT-PROPOSAL.md. Implementing contract first, then negotiated shim input, then daemon and real-binary evidence; each logical commit runs the prescribed fast gate.

Continuing the approved tracer bullet on branch t-agent, base 04c64fd852018f7522f2773c8a77ff55b365ee92. Read CLAUDE.md, DECISIONS.md, docs/ARCHITECTURE.md, the issue thread and CONTRACT-PROPOSAL.md. Implementing contract first, then negotiated shim input, then daemon and real-binary evidence; each logical commit runs the prescribed fast gate.
Author
Owner

Contract committed as 012b9a0; shim capability committed as the following logical step. Negotiated input checks overflow/gaps/full queue before mutation, trims accepted overlap, and keeps written/accepted cursors across peer replacement. No periodic shim poll remains (signalfd handles child exit). Existing caps-zero compatibility assertions pass; the performance fixture only initializes added state. Evidence: crates/infraternal-shim/tests/unit/sequenced_input.rs and target/issue-20-shim-gate.log. New frames seeded into shim_frame_decode: 4,581,894 executions in 301 seconds, cov=473, ft=1421, no crash (target/issue-20-shim-fuzz.log). Preparing daemon registry and real-binary Ack-delivery barrier tests.

Contract committed as 012b9a0; shim capability committed as the following logical step. Negotiated input checks overflow/gaps/full queue before mutation, trims accepted overlap, and keeps written/accepted cursors across peer replacement. No periodic shim poll remains (signalfd handles child exit). Existing caps-zero compatibility assertions pass; the performance fixture only initializes added state. Evidence: crates/infraternal-shim/tests/unit/sequenced_input.rs and target/issue-20-shim-gate.log. New frames seeded into shim_frame_decode: 4,581,894 executions in 301 seconds, cov=473, ft=1421, no crash (target/issue-20-shim-fuzz.log). Preparing daemon registry and real-binary Ack-delivery barrier tests.
Author
Owner

The inherited-fd daemon is now wired through the real CLI, with bounded per-session tasks and registry. Real debug binary evidence: open/type/output and terminal.exited status=7 passed; 389,120-byte SIGKILL mid-stream replay passed with exact contiguous output; 1,664-byte crash after shim PTY write but before delivery of its Ack passed with exact input/output. The latter uses a local shim proxy holding InputAck, not a timed sleep. Daemon and CLI each passed their prescribed fast gates (target/issue-20-daemon-gate.log and target/issue-20-cli-gate.log). Release static binary measures are running; debug timing is not claimed as performance evidence.

The inherited-fd daemon is now wired through the real CLI, with bounded per-session tasks and registry. Real debug binary evidence: open/type/output and terminal.exited status=7 passed; 389,120-byte SIGKILL mid-stream replay passed with exact contiguous output; 1,664-byte crash after shim PTY write but before delivery of its Ack passed with exact input/output. The latter uses a local shim proxy holding InputAck, not a timed sleep. Daemon and CLI each passed their prescribed fast gates (target/issue-20-daemon-gate.log and target/issue-20-cli-gate.log). Release static binary measures are running; debug timing is not claimed as performance evidence.
Author
Owner

Release flood oracle finding: a shell-side completion marker does not prove the last kernel PTY bytes have reached shim screen state. First starvation run returned a valid Snapshot at 104850241 with the flood starting at 52429390 (7949 bytes below the expected 50 MiB end). The test incorrectly required the Snapshot itself to include those still-buffered bytes. Updating the oracle to require a near-head Snapshot followed by a contiguous raw suffix through the 50 MiB boundary; this checks no suffix is lost rather than assuming a PTY write and shim read are atomic. Evidence: target/issue-20-tracer-release.log; scripts/verify-agent.py fixture being prepared. Release idle RSS and input Ack timing already satisfy the decision-41 budgets; posting final numbers after the corrected gate.

Release flood oracle finding: a shell-side completion marker does not prove the last kernel PTY bytes have reached shim screen state. First starvation run returned a valid Snapshot at 104850241 with the flood starting at 52429390 (7949 bytes below the expected 50 MiB end). The test incorrectly required the Snapshot itself to include those still-buffered bytes. Updating the oracle to require a near-head Snapshot followed by a contiguous raw suffix through the 50 MiB boundary; this checks no suffix is lost rather than assuming a PTY write and shim read are atomic. Evidence: target/issue-20-tracer-release.log; scripts/verify-agent.py fixture being prepared. Release idle RSS and input Ack timing already satisfy the decision-41 budgets; posting final numbers after the corrected gate.
Author
Owner

Startup finding from a repeat release fixture: terminal.open transiently failed. The existing readiness watch observed only IN_CREATE, which Linux emits at bind before listen. If the connection is refused in that interval and the event is consumed, there is no later IN_CREATE and launch waits for its 2-second deadline. Fix: watch IN_ATTRIB too, because the shim chmods the socket to 0600 after listen succeeds. Deterministic regression binds a non-listening socket, consumes creation, confirms ConnectionRefused, then listens/chmods and requires a readiness event. Evidence: crates/infraternal-agent/src/sessions.rs::socket_readiness, tests/unit/sessions.rs::post_listen_chmod_wakes_a_connection_refused_at_bind; both this regression and the real-binary crash oracle pass in target/issue-20-readiness-gate.log. No periodic retry was added.

Startup finding from a repeat release fixture: terminal.open transiently failed. The existing readiness watch observed only IN_CREATE, which Linux emits at bind before listen. If the connection is refused in that interval and the event is consumed, there is no later IN_CREATE and launch waits for its 2-second deadline. Fix: watch IN_ATTRIB too, because the shim chmods the socket to 0600 after listen succeeds. Deterministic regression binds a non-listening socket, consumes creation, confirms ConnectionRefused, then listens/chmods and requires a readiness event. Evidence: crates/infraternal-agent/src/sessions.rs::socket_readiness, tests/unit/sessions.rs::post_listen_chmod_wakes_a_connection_refused_at_bind; both this regression and the real-binary crash oracle pass in target/issue-20-readiness-gate.log. No periodic retry was added.
Author
Owner

Starting finish-and-harden work on branch t-agent, base SHA 68ef7556fc. Reviewing inherited tests and fixtures, then reproducing bounded command queue saturation before fixing it. No push or deployment.

Starting finish-and-harden work on branch t-agent, base SHA 68ef7556fc265936101e29aa2af8a7d523e889ed. Reviewing inherited tests and fixtures, then reproducing bounded command queue saturation before fixing it. No push or deployment.
Author
Owner

Reliability bug reproduced deterministically against the base debug binary: scripts/verify-agent-queues.py holds InputState responses across 12 concurrent sessions and sends 65 Input frames per session. Before release of the handshake barriers the daemon exits with: infraternal agent failed: terminal command queue full or closed. Fix replaces try_send with bounded awaiting backpressure and contains terminal-task IO errors to their mux stream. The oracle also compares every echoed payload byte and probes daemon liveness after killing one shim.

Reliability bug reproduced deterministically against the base debug binary: scripts/verify-agent-queues.py holds InputState responses across 12 concurrent sessions and sends 65 Input frames per session. Before release of the handshake barriers the daemon exits with: infraternal agent failed: terminal command queue full or closed. Fix replaces try_send with bounded awaiting backpressure and contains terminal-task IO errors to their mux stream. The oracle also compares every echoed payload byte and probes daemon liveness after killing one shim.
Author
Owner

Queue hardening committed as d3ce366; capability/readiness regressions retained as d250690. Both prescribed fast gates pass in target/issue-20-{queues,session-tests}-gate.log. The expanded 24-crash fixture passed debug with seed 20 (4,710,396 payload bytes). Concurrent verification exposed a fixture-only launch error: POSIX /bin/sh rejects closing inherited descriptors above nine (leg-b: Syntax error: Bad fd number). The fixture now uses Bash for arbitrary descriptor numbers and closes stderr on each killed subprocess. Crash tests hold input before forwarding and real PTY-write Acks before delivery, plus random mid-output and immediate-after-send kills; large held-Ack payloads were bounded to avoid the oracle itself blocking unread output.

Queue hardening committed as d3ce366; capability/readiness regressions retained as d250690. Both prescribed fast gates pass in target/issue-20-{queues,session-tests}-gate.log. The expanded 24-crash fixture passed debug with seed 20 (4,710,396 payload bytes). Concurrent verification exposed a fixture-only launch error: POSIX /bin/sh rejects closing inherited descriptors above nine (leg-b: Syntax error: Bad fd number). The fixture now uses Bash for arbitrary descriptor numbers and closes stderr on each killed subprocess. Crash tests hold input before forwarding and real PTY-write Acks before delivery, plus random mid-output and immediate-after-send kills; large held-Ack payloads were bounded to avoid the oracle itself blocking unread output.
Author
Owner

Crash-oracle stall resolved with evidence: target/issue-20-crash-stress-20.log timed out at iteration 22 with 229,376 output bytes received and proxy blocked forwarding an Output frame, while the replacement daemon was sending a large replay. The single-threaded proxy created a duplex transport deadlock; two independently bounded frame pumps remove it without changing daemon/shim code. The corrected release fixture now passes three consecutive 24-iteration runs, seeds 20/21/22: 4,710,396 / 6,222,717 / 5,303,608 payload bytes compared exactly in both directions (72 SIGKILLs total). Logs: target/issue-20-crash-release-{20,21,22}.log. All four crash positions run six times per fixture, including event-controlled pre-forward and real PTY-write-before-Ack windows. Reusable encoder regression retained as f2f1d56 after its green fast gate.

Crash-oracle stall resolved with evidence: target/issue-20-crash-stress-20.log timed out at iteration 22 with 229,376 output bytes received and proxy blocked forwarding an Output frame, while the replacement daemon was sending a large replay. The single-threaded proxy created a duplex transport deadlock; two independently bounded frame pumps remove it without changing daemon/shim code. The corrected release fixture now passes three consecutive 24-iteration runs, seeds 20/21/22: 4,710,396 / 6,222,717 / 5,303,608 payload bytes compared exactly in both directions (72 SIGKILLs total). Logs: target/issue-20-crash-release-{20,21,22}.log. All four crash positions run six times per fixture, including event-controlled pre-forward and real PTY-write-before-Ack windows. Reusable encoder regression retained as f2f1d56 after its green fast gate.
Author
Owner

Finished finish-and-harden work on branch t-agent. Head SHA: 947d68f02d. Clean worktree. Nothing pushed or deployed; issue stays open.

Atomic commits:
d3ce366 fix(agent): backpressure full terminal queues and isolate shim failures
d250690 test(agent): cover shim capability negotiation and listen readiness
f2f1d56 test(shim): verify reusable encoding preserves capacity and state
947d68f test(agent): exercise 24 real daemon crashes and release budgets

Reliability evidence: the pre-fix daemon failed with "terminal command queue full or closed" under stalled shim handshakes. The bounded eight-slot queue now awaits capacity and pauses leg-B reads. Closed shim IO is confined to its mux stream. The regression sends 12 concurrent sessions x 65 Input frames, compares 2,640,000 payload bytes exactly once, kills one shim, and requires daemon Ping to succeed. Paths: crates/infraternal-agent/src/daemon.rs, crates/infraternal/tests/agent_queues.rs, scripts/verify-agent-queues.py.

Three consecutive release 24-crash fixtures, 72 SIGKILLs total and 16,236,721 payload bytes:
24-iteration crash fixture seed=20: 4710396 payload bytes, all four crash positions x 6: PASS
24-iteration crash fixture seed=21: 6222717 payload bytes, all four crash positions x 6: PASS
24-iteration crash fixture seed=22: 5303608 payload bytes, all four crash positions x 6: PASS
Paths: target/issue-20-crash-release-{20,21,22}.log. Every run exercises four crash positions six times, including barriers before shim forwarding and after actual PTY write before Ack delivery. Replays are compared through an exact output fence with contiguous sequence checks and written-input acknowledgments. Shared proxy fixtures use one bounded frame per direction and shut down companion pumps on disconnect. Concurrent verification also exposed and corrected Bash descriptor handling above fd 9 and a single-threaded fixture proxy duplex deadlock.

Release evidence from target/x86_64-unknown-linux-musl/release/infraternal on this shared development host (not the pinned perf VM); timing includes the Python peer, transport and PTY-write acknowledgment, so it is an upper bound for Input→PTY write. This measurement ran alongside the fast gate. Full output, including an additional 24-crash run, follows verbatim:

idle infraternal agent RSS=3644 KiB; CPU ticks over 500 ms=['0', '0'] -> ['0', '0']
real terminal.open/type/output and terminal.exited status=7: PASS
SIGKILL 01/24 mid-stream: 347392 bytes, output observed before kill=24574; exact input/output replay: PASS
SIGKILL 02/24 before-forward: 338432 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 03/24 after-send: 400768 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 04/24 before-forward: 445952 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 05/24 after-send: 223872 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 06/24 mid-stream: 400640 bytes, output observed before kill=54795; exact input/output replay: PASS
SIGKILL 07/24 PTY-write-before-Ack: 1957 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 08/24 mid-stream: 492672 bytes, output observed before kill=212189; exact input/output replay: PASS
SIGKILL 09/24 after-send: 139264 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 10/24 after-send: 171776 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 11/24 PTY-write-before-Ack: 945 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 12/24 before-forward: 462848 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 13/24 PTY-write-before-Ack: 1790 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 14/24 PTY-write-before-Ack: 1302 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 15/24 mid-stream: 381696 bytes, output observed before kill=192465; exact input/output replay: PASS
SIGKILL 16/24 PTY-write-before-Ack: 1002 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 17/24 before-forward: 205184 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 18/24 before-forward: 365568 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 19/24 after-send: 363008 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 20/24 PTY-write-before-Ack: 1236 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 21/24 mid-stream: 289152 bytes, output observed before kill=90090; exact input/output replay: PASS
SIGKILL 22/24 before-forward: 447232 bytes, output observed before kill=0; exact input/output replay: PASS
SIGKILL 23/24 mid-stream: 392576 bytes, output observed before kill=144862; exact input/output replay: PASS
SIGKILL 24/24 after-send: 502400 bytes, output observed before kill=0; exact input/output replay: PASS
24-iteration crash fixture seed=23: 6378664 payload bytes, all four crash positions x 6: PASS
Input->PTY-write Ack through binary (upper bound): n=1000 p50=101.678 us p99=276.187 us
credited flood: 52429019 bytes in 11.004 s, 4.544 MiB/s
starved 50 MiB: Snapshot seq=104858502, repaint=27579 bytes; final cursor=104858502; daemon peak RSS=4416 KiB; no retained flood

Idle daemon RSS: 3,644 KiB (<15 MB); zero CPU ticks during 500 ms idle. Input→PTY-write Ack p99: 276.187 us, n=1000. Credited flood: 52,429,019 bytes / 11.004 s = 4.544 MiB/s. Starved 50 MiB: Snapshot seq 104858502, repaint 27,579 bytes, final cursor 104858502, sampled daemon peak RSS 4,416 KiB (10 ms sampling). Shell-side completion file proves flood progress while starved; contiguous suffix after Snapshot accounts for any final kernel PTY bytes. No throughput budget is claimed beyond these measured numbers.

Every commit passed the prescribed fast command. Per-step logs: target/issue-20-queues-gate.log, target/issue-20-session-tests-gate.log, target/issue-20-shim-tests-gate.log, target/issue-20-crash-tests-gate.log.

Final command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast
Final gate output verbatim:


==> fmt

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

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

running 0 tests

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

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

running 1 test
test real_binary_preserves_input_and_output_across_24_crashes ... ok

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

     Running tests/agent_queues.rs (target/debug/deps/agent_queues-4faaf7835d2b827f)

running 1 test
test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok

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

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

running 1 test
test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok

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

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

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-322df3fc11bd9871)

running 10 tests
test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok
test relay::tests::output_partial_credit_and_dedup ... ok
test relay::tests::overflowing_ranges_never_mutate_cursors ... ok
test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok
test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok
test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok
test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok
test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok
test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok
test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok

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

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

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

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

     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::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok
test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok
test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok
test stream_tests::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-0899e35831817744)

running 12 tests
test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... 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::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok
test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok
test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... 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 15.15s

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

running 16 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 session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok
test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok
test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok
test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... 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. 13 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.19s

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

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

   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-agent/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-agent 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-agent/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-agent v0.1.0
         │   └── infraternal v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── webauthn-attestation-ca v0.5.5 (*)
         ├── webauthn-rs v0.5.5 (*)
         └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'hashbrown'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent v0.1.0
              │   └── infraternal v0.1.0 (*)
              ├── infraternal-server v0.1.0 (*)
              ├── webauthn-attestation-ca v0.5.5 (*)
              ├── webauthn-rs v0.5.5 (*)
              └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent/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-agent/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-agent v0.1.0
              │   │               │   └── infraternal 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-agent v0.1.0
      │       │       │   └── infraternal 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-agent 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-agent 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 (*)
      │   │   ├── 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-agent 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-agent/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-agent/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-agent/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-agent/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-agent 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-agent v0.1.0
      │               │       │   └── infraternal 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-agent 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
      │           │       └── 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-agent 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 (*)
      ├── 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 (*)
      ├── 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: 9906208 bytes
    Finished `release` profile [optimized] target(s) in 0.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: 8325072 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.51ms]
(pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.20ms]
(pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.77ms]
(pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.20ms]
(pass) split mux header preserves trailing Close [0.17ms]

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [2.42s]
Finished finish-and-harden work on branch t-agent. Head SHA: 947d68f02d787fea54dec33898418651d65fdf74. Clean worktree. Nothing pushed or deployed; issue stays open. Atomic commits: d3ce366 fix(agent): backpressure full terminal queues and isolate shim failures d250690 test(agent): cover shim capability negotiation and listen readiness f2f1d56 test(shim): verify reusable encoding preserves capacity and state 947d68f test(agent): exercise 24 real daemon crashes and release budgets Reliability evidence: the pre-fix daemon failed with "terminal command queue full or closed" under stalled shim handshakes. The bounded eight-slot queue now awaits capacity and pauses leg-B reads. Closed shim IO is confined to its mux stream. The regression sends 12 concurrent sessions x 65 Input frames, compares 2,640,000 payload bytes exactly once, kills one shim, and requires daemon Ping to succeed. Paths: crates/infraternal-agent/src/daemon.rs, crates/infraternal/tests/agent_queues.rs, scripts/verify-agent-queues.py. Three consecutive release 24-crash fixtures, 72 SIGKILLs total and 16,236,721 payload bytes: 24-iteration crash fixture seed=20: 4710396 payload bytes, all four crash positions x 6: PASS 24-iteration crash fixture seed=21: 6222717 payload bytes, all four crash positions x 6: PASS 24-iteration crash fixture seed=22: 5303608 payload bytes, all four crash positions x 6: PASS Paths: target/issue-20-crash-release-{20,21,22}.log. Every run exercises four crash positions six times, including barriers before shim forwarding and after actual PTY write before Ack delivery. Replays are compared through an exact output fence with contiguous sequence checks and written-input acknowledgments. Shared proxy fixtures use one bounded frame per direction and shut down companion pumps on disconnect. Concurrent verification also exposed and corrected Bash descriptor handling above fd 9 and a single-threaded fixture proxy duplex deadlock. Release evidence from target/x86_64-unknown-linux-musl/release/infraternal on this shared development host (not the pinned perf VM); timing includes the Python peer, transport and PTY-write acknowledgment, so it is an upper bound for Input→PTY write. This measurement ran alongside the fast gate. Full output, including an additional 24-crash run, follows verbatim: ``` idle infraternal agent RSS=3644 KiB; CPU ticks over 500 ms=['0', '0'] -> ['0', '0'] real terminal.open/type/output and terminal.exited status=7: PASS SIGKILL 01/24 mid-stream: 347392 bytes, output observed before kill=24574; exact input/output replay: PASS SIGKILL 02/24 before-forward: 338432 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 03/24 after-send: 400768 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 04/24 before-forward: 445952 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 05/24 after-send: 223872 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 06/24 mid-stream: 400640 bytes, output observed before kill=54795; exact input/output replay: PASS SIGKILL 07/24 PTY-write-before-Ack: 1957 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 08/24 mid-stream: 492672 bytes, output observed before kill=212189; exact input/output replay: PASS SIGKILL 09/24 after-send: 139264 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 10/24 after-send: 171776 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 11/24 PTY-write-before-Ack: 945 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 12/24 before-forward: 462848 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 13/24 PTY-write-before-Ack: 1790 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 14/24 PTY-write-before-Ack: 1302 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 15/24 mid-stream: 381696 bytes, output observed before kill=192465; exact input/output replay: PASS SIGKILL 16/24 PTY-write-before-Ack: 1002 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 17/24 before-forward: 205184 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 18/24 before-forward: 365568 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 19/24 after-send: 363008 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 20/24 PTY-write-before-Ack: 1236 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 21/24 mid-stream: 289152 bytes, output observed before kill=90090; exact input/output replay: PASS SIGKILL 22/24 before-forward: 447232 bytes, output observed before kill=0; exact input/output replay: PASS SIGKILL 23/24 mid-stream: 392576 bytes, output observed before kill=144862; exact input/output replay: PASS SIGKILL 24/24 after-send: 502400 bytes, output observed before kill=0; exact input/output replay: PASS 24-iteration crash fixture seed=23: 6378664 payload bytes, all four crash positions x 6: PASS Input->PTY-write Ack through binary (upper bound): n=1000 p50=101.678 us p99=276.187 us credited flood: 52429019 bytes in 11.004 s, 4.544 MiB/s starved 50 MiB: Snapshot seq=104858502, repaint=27579 bytes; final cursor=104858502; daemon peak RSS=4416 KiB; no retained flood ``` Idle daemon RSS: 3,644 KiB (<15 MB); zero CPU ticks during 500 ms idle. Input→PTY-write Ack p99: 276.187 us, n=1000. Credited flood: 52,429,019 bytes / 11.004 s = 4.544 MiB/s. Starved 50 MiB: Snapshot seq 104858502, repaint 27,579 bytes, final cursor 104858502, sampled daemon peak RSS 4,416 KiB (10 ms sampling). Shell-side completion file proves flood progress while starved; contiguous suffix after Snapshot accounts for any final kernel PTY bytes. No throughput budget is claimed beyond these measured numbers. Every commit passed the prescribed fast command. Per-step logs: target/issue-20-queues-gate.log, target/issue-20-session-tests-gate.log, target/issue-20-shim-tests-gate.log, target/issue-20-crash-tests-gate.log. Final command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast Final gate output verbatim: ``` ==> fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.31s ==> test Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s Running unittests src/main.rs (target/debug/deps/infraternal-44bdbcbfd20ee91a) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/agent_daemon.rs (target/debug/deps/agent_daemon-d744fbc05ac66a58) running 1 test test real_binary_preserves_input_and_output_across_24_crashes ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.58s Running tests/agent_queues.rs (target/debug/deps/agent_queues-4faaf7835d2b827f) running 1 test test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s Running tests/agent_sessions.rs (target/debug/deps/agent_sessions-65dbfea270028fb1) running 1 test test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running tests/shim.rs (target/debug/deps/shim-58a34b8e2a586631) 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-322df3fc11bd9871) running 10 tests test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok test relay::tests::output_partial_credit_and_dedup ... ok test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/transport.rs (target/debug/deps/transport-ed8193dfcba5b7a0) running 2 tests test oversized_header_and_truncated_frame_are_rejected ... ok test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s 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::oversized_encode_keeps_the_reusable_output_unchanged ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... ok test tests::rejects_oversized_noncanonical_and_malformed_frames_before_buffering_body ... ok test tests::golden_vectors_encode_and_decode_every_contract_frame ... ok test stream_tests::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-0899e35831817744) running 12 tests test auth::http::tests::admission_partitions_reset_without_trusting_forwarded_headers ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... 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::recovery_delay_cancel_and_replacement_revokes_every_capability ... ok test auth::tests::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... ok test auth::tests::recovery_expiry_revocation_and_cross_user_isolation ... 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 15.15s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-2fd8334f3fce03a4) running 16 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 session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... ok test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... 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. 13 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.19s Running tests/detach.rs (target/debug/deps/detach-f166a95c6d08480e) 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.60s 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-agent/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-agent 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-agent/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'hashbrown' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent/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-agent/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-agent v0.1.0 │ │ │ └── infraternal 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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-agent 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 (*) │ │ ├── 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-agent 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-agent/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-agent/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-agent/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-agent/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-agent 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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 │ │ └── 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-agent 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 (*) ├── 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 (*) ├── 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: 9906208 bytes Finished `release` profile [optimized] target(s) in 0.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: 8325072 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.51ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.20ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.77ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.20ms] (pass) split mux header preserves trailing Close [0.17ms] src/stream.test.ts: stream differential: 134 streams, 11439 schedules, zero divergences (pass) Rust and TypeScript preserve every frame at all boundaries and random multi-splits [2397.56ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [6.98ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.42s] ```
Author
Owner

Independent review started on t-agent, head 947d68f02d, diff base dev 7174d6bf6f. Source worktree remains read-only; experiments will use a temporary worktree. Reviewing restart windows, SEQUENCED_INPUT, queue bounds, throughput, idle wakeups and history.

Independent review started on t-agent, head 947d68f02d787fea54dec33898418651d65fdf74, diff base dev 7174d6bf6f1880458a4166a2cf0fa45158d1742e. Source worktree remains read-only; experiments will use a temporary worktree. Reviewing restart windows, SEQUENCED_INPUT, queue bounds, throughput, idle wakeups and history.
Author
Owner

Independent review finding R1 (high): daemon.rs:203 awaits a full per-terminal command queue inside the sole leg-B dispatcher. Reproduction on release head 947d68f: hold one shim InputState reply, enqueue 9 Credit frames on that stream, then Ping on stream 0. No Pong after 1 s despite a live daemon; Pong arrives only after the shim barrier is released. One stalled shim can starve control and sibling inputs. Evidence: review-agent/evidence/starvation.log and review_probes.py (report artifacts will be retained under ~/.local/state/codex-jobs/infraternal/review-agent). Use bounded per-stream overload handling that preserves multiplexed dispatch; increasing queue size only moves the failure.

Independent review finding R1 (high): daemon.rs:203 awaits a full per-terminal command queue inside the sole leg-B dispatcher. Reproduction on release head 947d68f: hold one shim InputState reply, enqueue 9 Credit frames on that stream, then Ping on stream 0. No Pong after 1 s despite a live daemon; Pong arrives only after the shim barrier is released. One stalled shim can starve control and sibling inputs. Evidence: review-agent/evidence/starvation.log and review_probes.py (report artifacts will be retained under ~/.local/state/codex-jobs/infraternal/review-agent). Use bounded per-stream overload handling that preserves multiplexed dispatch; increasing queue size only moves the failure.
Author
Owner

Independent review finding R2 (high): daemon.rs:321-329 retains a Snapshot that exceeds credit without arming starvation or detaching. Reproduction: drain initial output credit during a 12 MiB flood until it finishes detached; grant one byte of Credit to trigger catch-up; send another 12 MiB flood. Its completion marker is absent after 3 s; it completes after stream Close releases the shim. Pending Snapshot disables shim reads at line 369 and blocks PTY progress indefinitely if further credit never arrives, contrary to wire section 6 and decisions 75/81. Fix by detaching while credit cannot fund repaint, then requesting a fresh Snapshot once sufficient credit is available. Evidence: review-agent/evidence/snapshot.log and review_probes.py.

Independent review finding R2 (high): daemon.rs:321-329 retains a Snapshot that exceeds credit without arming starvation or detaching. Reproduction: drain initial output credit during a 12 MiB flood until it finishes detached; grant one byte of Credit to trigger catch-up; send another 12 MiB flood. Its completion marker is absent after 3 s; it completes after stream Close releases the shim. Pending Snapshot disables shim reads at line 369 and blocks PTY progress indefinitely if further credit never arrives, contrary to wire section 6 and decisions 75/81. Fix by detaching while credit cannot fund repaint, then requesting a fresh Snapshot once sufficient credit is available. Evidence: review-agent/evidence/snapshot.log and review_probes.py.
Author
Owner

Independent review finding R3 (high): daemon.rs:244-247 assumes the first frame after InputStateRequest is InputState. A surviving shim can legally emit InputAck first while previously accepted input reaches the PTY. Real release reproduction: raw/no-echo shell delays reading for 3 s, submit 524288 bytes, abruptly stop infraternal agent after Ack=11827 with submitted=524339, restart, hold StateRequest while retained input drains. Reattachment receives a real InputAck and emits terminal shim disconnected instead of attaching. A separate valid-frame socket oracle also reproduces with InputAck(1), InputState(1,1). Read until State, handling interleaved negotiated Acks; add a retained accepted-but-unwritten restart test. Evidence: review-agent/evidence/real-state-ack.log, real_state_ack_probe.py, and state_ack_probe.py.

Independent review finding R3 (high): daemon.rs:244-247 assumes the first frame after InputStateRequest is InputState. A surviving shim can legally emit InputAck first while previously accepted input reaches the PTY. Real release reproduction: raw/no-echo shell delays reading for 3 s, submit 524288 bytes, abruptly stop infraternal agent after Ack=11827 with submitted=524339, restart, hold StateRequest while retained input drains. Reattachment receives a real InputAck and emits terminal shim disconnected instead of attaching. A separate valid-frame socket oracle also reproduces with InputAck(1), InputState(1,1). Read until State, handling interleaved negotiated Acks; add a retained accepted-but-unwritten restart test. Evidence: review-agent/evidence/real-state-ack.log, real_state_ack_probe.py, and state_ack_probe.py.
Author
Owner

Independent review finding R4 (blocker, decision 41): three direct release 50 MiB credited floods measured 3.779, 4.190 and 3.453 MiB/s (50 MiB / 13.233, 11.932 and 14.481 s). Required 10 MB/s is 9.537 MiB/s. perf sampled both shim and infraternal agent: 91.17% CPU in shim, 8.83% in infraternal agent; hottest reset-cell instructions account for about 70% of total. This flood stresses Alacritty row reset/scrolling; the reported ~44 MB/s parser microbenchmark does not establish throughput on this payload. Transport-only optimization cannot meet the budget (even eliminating all sampled daemon cost gives at most 1.10x). Profiling with symbols and additional workloads is in progress; evidence will be retained in review-agent/evidence/perf*.data and flood*.log.

Independent review finding R4 (blocker, decision 41): three direct release 50 MiB credited floods measured 3.779, 4.190 and 3.453 MiB/s (50 MiB / 13.233, 11.932 and 14.481 s). Required 10 MB/s is 9.537 MiB/s. perf sampled both shim and infraternal agent: 91.17% CPU in shim, 8.83% in infraternal agent; hottest reset-cell instructions account for about 70% of total. This flood stresses Alacritty row reset/scrolling; the reported ~44 MB/s parser microbenchmark does not establish throughput on this payload. Transport-only optimization cannot meet the budget (even eliminating all sampled daemon cost gives at most 1.10x). Profiling with symbols and additional workloads is in progress; evidence will be retained in review-agent/evidence/perf*.data and flood*.log.
Author
Owner

Independent review performance update: symbol-preserving release build (same head 947d68f, optimization unchanged) measured 5.422, 5.662, 5.471 MiB/s for three 50 MiB LF floods after the gate build. Symbolized perf: shim 90.07%, infraternal agent 9.93%; Alacritty Row::reset alone 65.82% of all sampled CPU. Workload probe with ample batched credit: LF 5.712 MiB/s, CRLF 20.423 MiB/s, printable without LF 41.816 MiB/s. This isolates the newline/column-dependent clearing cost and rules out a universal 4 MiB/s relay ceiling. Optimize row dirty spans or batch terminal scroll/reset with equivalent VT/history semantics; a 3x speedup of the 65.82% reset component predicts 1.78x overall, enough to investigate against the 9.537 MiB/s minimum. That is an Amdahl estimate, not a demonstrated fix. 50 MiB daemon+shim syscall trace: 12804 PTY reads (~4095 bytes/read), 25612 sends, 25612 polls, 46807 epoll waits, 63984 receives, 3661 munmaps. Reuse/move output allocations and batch reads/credit as secondary improvements. Evidence will include complete perf reports and syscall tables.

Independent review performance update: symbol-preserving release build (same head 947d68f, optimization unchanged) measured 5.422, 5.662, 5.471 MiB/s for three 50 MiB LF floods after the gate build. Symbolized perf: shim 90.07%, infraternal agent 9.93%; Alacritty Row<Cell>::reset alone 65.82% of all sampled CPU. Workload probe with ample batched credit: LF 5.712 MiB/s, CRLF 20.423 MiB/s, printable without LF 41.816 MiB/s. This isolates the newline/column-dependent clearing cost and rules out a universal 4 MiB/s relay ceiling. Optimize row dirty spans or batch terminal scroll/reset with equivalent VT/history semantics; a 3x speedup of the 65.82% reset component predicts 1.78x overall, enough to investigate against the 9.537 MiB/s minimum. That is an Amdahl estimate, not a demonstrated fix. 50 MiB daemon+shim syscall trace: 12804 PTY reads (~4095 bytes/read), 25612 sends, 25612 polls, 46807 epoll waits, 63984 receives, 3661 munmaps. Reuse/move output allocations and batch reads/credit as secondary improvements. Evidence will include complete perf reports and syscall tables.
Author
Owner

Independent review finished. Verdict: merge after fixes, head 947d68f02d (base dev 7174d6bf6f).

Four required fixes, individually posted above: R1 shared dispatcher stalls behind one full command queue; R2 underfunded Snapshot leaves PTY attached and blocked; R3 legitimate interleaved InputAck breaks retained-input restart reattachment; R4 LF flood falls below decision 41, predominantly Alacritty row reset (65.82% of sampled CPU).

Independent evidence: 24 abrupt restarts, 6,261,482 bytes exactly once; restart during Snapshot and retained 91x31 resize pass; two live daemons deliver 18007 bytes exactly once through replacement; 50 attached idle sessions use 4064 KiB daemon RSS and 50-shim startup discovery takes 13.162 ms; settled 30-second trace has zero returned idle wait syscalls. Symbol-preserving release LF flood runs 5.422/5.662/5.471 MiB/s. Ample-credit workloads LF 5.712, CRLF 20.423, printable 41.816 MiB/s. No universal 4 MiB/s transport ceiling: row clearing is the principal cost. Proposed optimizations and estimated gains, scope limitations, queue inventory, history review and standalone probes are in the report.

Report appended to /home/kayg/.local/state/codex-jobs/infraternal/review-agent/findings.md; evidence retained alongside it under evidence/. Source worktree remains unchanged, no commits/push/deploy, no issue closed. Temporary experiment worktree is being removed. scripts/verify fast exited 0; all Rust and TypeScript checks pass. Full gate output verbatim follows:


==> fmt

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

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

running 0 tests

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

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

running 1 test
test real_binary_preserves_input_and_output_across_24_crashes ... ok

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

     Running tests/agent_queues.rs (target/debug/deps/agent_queues-4faaf7835d2b827f)

running 1 test
test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok

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

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

running 1 test
test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok

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

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

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

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

running 10 tests
test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok
test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok
test relay::tests::output_partial_credit_and_dedup ... ok
test relay::tests::overflowing_ranges_never_mutate_cursors ... ok
test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok
test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok
test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok
test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok
test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok
test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok

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

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

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

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

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

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

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

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::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... 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::review_invalid_device_polling_exhausts_browser_budget ... ok
test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok
test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... 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 16.42s

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

running 16 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 ring::checks::tests::wrap_and_exact_offsets ... ok
test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok
test frame::checks::tests::golden_and_fragmented ... ok
test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok
test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok
test 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 session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... 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. 13 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.16s

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

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

   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'
   ┌─ /tmp/ir20/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-agent 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'
   ┌─ /tmp/ir20/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-agent v0.1.0
         │   └── infraternal v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── webauthn-attestation-ca v0.5.5 (*)
         ├── webauthn-rs v0.5.5 (*)
         └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'hashbrown'
   ┌─ /tmp/ir20/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'
    ┌─ /tmp/ir20/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-agent v0.1.0
              │   └── infraternal v0.1.0 (*)
              ├── infraternal-server v0.1.0 (*)
              ├── webauthn-attestation-ca v0.5.5 (*)
              ├── webauthn-rs v0.5.5 (*)
              └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /tmp/ir20/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'
    ┌─ /tmp/ir20/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'
    ┌─ /tmp/ir20/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'
    ┌─ /tmp/ir20/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-agent v0.1.0
              │   │               │   └── infraternal 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-agent v0.1.0
      │       │       │   └── infraternal 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-agent 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-agent 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 (*)
      │   │   ├── 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-agent 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'
    ┌─ /tmp/ir20/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'
    ┌─ /tmp/ir20/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'
    ┌─ /tmp/ir20/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'
    ┌─ /tmp/ir20/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-agent 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-agent v0.1.0
      │               │       │   └── infraternal 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-agent 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
      │           │       └── 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-agent 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 (*)
      ├── 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 (*)
      ├── 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 memchr v2.8.3
   Compiling version_check v0.9.5
   Compiling find-msvc-tools v0.1.14
   Compiling icu_properties_data v2.3.0
   Compiling icu_normalizer_data v2.3.0
   Compiling shlex v2.0.1
   Compiling generic-array v0.14.7
   Compiling pkg-config v0.3.34
   Compiling cc v1.6.0
   Compiling vcpkg v0.2.15
   Compiling stable_deref_trait v1.2.1
   Compiling pin-project-lite v0.2.17
   Compiling smallvec v1.16.2
   Compiling parking_lot_core v0.9.12
   Compiling itoa v1.0.18
   Compiling syn v3.0.6
   Compiling syn v2.0.119
   Compiling futures-core v0.3.34
   Compiling log v0.4.34
   Compiling bytes v1.12.1
   Compiling zmij v1.0.23
   Compiling num-traits v0.2.19
   Compiling writeable v0.6.4
   Compiling crossbeam-utils v0.8.23
   Compiling litemap v0.8.3
   Compiling utf8_iter v1.0.4
   Compiling zerocopy v0.8.60
   Compiling bitflags v2.13.2
   Compiling futures-sink v0.3.34
   Compiling once_cell v1.21.4
   Compiling thiserror v2.0.21
   Compiling errno v0.3.14
   Compiling signal-hook-registry v1.4.8
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling tracing-core v0.1.36
   Compiling socket2 v0.6.5
   Compiling mio v1.2.4
   Compiling openssl-src v300.6.1+3.6.3
   Compiling typenum v1.20.1
   Compiling percent-encoding v2.3.2
   Compiling openssl-sys v0.9.117
   Compiling form_urlencoded v1.2.2
   Compiling libsqlite3-sys v0.30.1
   Compiling thiserror v1.0.69
   Compiling equivalent v1.0.2
   Compiling time-core v0.1.9
   Compiling minimal-lexical v0.2.1
   Compiling num-conv v0.2.2
   Compiling subtle v2.6.1
   Compiling time-macros v0.2.32
   Compiling nom v7.1.3
   Compiling block-buffer v0.10.4
   Compiling synstructure v0.14.0
   Compiling synstructure v0.13.2
   Compiling crypto-common v0.1.7
   Compiling parking_lot v0.12.5
   Compiling deranged v0.5.8
   Compiling slab v0.4.12
   Compiling futures-io v0.3.34
   Compiling powerfmt v0.2.1
   Compiling serde_json v1.0.151
   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 tracing-attributes v0.1.31
   Compiling zerocopy-derive v0.8.60
   Compiling tokio-macros v2.7.2
   Compiling thiserror-impl v2.0.21
   Compiling zerofrom v0.1.8
   Compiling yoke v0.8.3
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling tracing v0.1.44
   Compiling tokio v1.53.2
   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 thiserror-impl v1.0.69
   Compiling icu_provider v2.3.1
   Compiling getrandom v0.4.3
   Compiling icu_properties v2.3.0
   Compiling icu_normalizer v2.3.0
   Compiling allocator-api2 v0.2.21
   Compiling futures-task v0.3.34
   Compiling getrandom v0.3.4
   Compiling foldhash v0.1.5
   Compiling arrayvec v0.7.8
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling time v0.3.55
   Compiling futures-util v0.3.34
   Compiling url v2.5.8
   Compiling hashbrown v0.15.5
   Compiling ppv-lite86 v0.2.21
   Compiling asn1-rs-impl v0.2.0
   Compiling asn1-rs-derive v0.5.1
   Compiling rusticata-macros v4.1.0
   Compiling digest v0.10.7
   Compiling getrandom v0.2.17
   Compiling http v1.5.0
   Compiling cpufeatures v0.2.17
   Compiling parking v2.2.1
   Compiling rustix v1.1.5
   Compiling crc-catalog v2.5.0
   Compiling hashbrown v0.17.1
   Compiling base64 v0.22.1
   Compiling crc v3.4.0
   Compiling indexmap v2.14.2
   Compiling event-listener v5.4.2
   Compiling rand_core v0.6.4
   Compiling http-body v1.1.0
   Compiling sha2 v0.10.9
   Compiling futures-intrusive v0.5.0
   Compiling crossbeam-queue v0.3.14
   Compiling asn1-rs v0.6.2
   Compiling hashlink v0.10.0
   Compiling either v1.18.0
   Compiling spin v0.9.9
   Compiling num-integer v0.1.47
   Compiling futures-channel v0.3.34
   Compiling httparse v1.10.1
   Compiling openssl v0.10.81
   Compiling tokio-stream v0.1.19
   Compiling base64 v0.21.7
   Compiling ryu v1.0.23
   Compiling foreign-types-shared v0.1.1
   Compiling oid-registry v0.7.1
   Compiling linux-raw-sys v0.12.1
   Compiling pastey v0.1.1
   Compiling heck v0.5.0
   Compiling sqlx-core v0.8.6
   Compiling foreign-types v0.3.2
   Compiling serde_urlencoded v0.7.1
   Compiling base64urlsafedata v0.5.5
   Compiling num-bigint v0.4.8
   Compiling flume v0.11.1
   Compiling atoi v2.0.0
   Compiling rand_core v0.9.5
   Compiling uuid v1.27.0
   Compiling futures-executor v0.3.34
   Compiling openssl-macros v0.1.1
   Compiling memoffset v0.9.1
   Compiling tower-service v0.3.3
   Compiling cfg_aliases v0.2.2
   Compiling signal-hook v0.3.18
   Compiling webauthn-attestation-ca v0.5.5
   Compiling der-parser v9.0.0
   Compiling nix v0.30.1
   Compiling rand_chacha v0.9.0
   Compiling half v2.7.1
   Compiling aho-corasick v1.1.5
   Compiling lazy_static v1.5.1
   Compiling httpdate v1.0.3
   Compiling sync_wrapper v1.0.2
   Compiling regex-syntax v0.8.11
   Compiling hex v0.4.3
   Compiling webauthn-rs-core v0.5.5
   Compiling utf8parse v0.2.2
   Compiling atomic-waker v1.1.2
   Compiling tower-layer v0.3.3
   Compiling data-encoding v2.11.1
   Compiling dotenvy v0.15.7
   Compiling cursor-icon v1.2.0
   Compiling vte v0.15.0
   Compiling hyper v1.11.1
   Compiling x509-parser v0.16.0
   Compiling regex-automata v0.4.18
   Compiling anstyle-parse v1.0.0
   Compiling sqlx-sqlite v0.8.6
   Compiling serde_cbor_2 v0.13.0
   Compiling rustix-openpty v0.2.0
   Compiling polling v3.11.0
   Compiling rand v0.9.5
   Compiling webauthn-rs-proto v0.5.5
   Compiling sqlx-macros-core v0.8.6
   Compiling http-body-util v0.1.5
   Compiling rand_chacha v0.3.1
   Compiling hex-conservative v0.2.3
   Compiling mime v0.3.17
   Compiling anstyle-query v1.1.5
   Compiling unicode-width v0.2.2
   Compiling home v0.5.12
   Compiling base64ct v1.8.3
   Compiling is_terminal_polyfill v1.70.2
   Compiling tinyvec v1.13.3
   Compiling colorchoice v1.0.5
   Compiling anstyle v1.0.14
   Compiling alacritty_terminal v0.25.1
   Compiling password-hash v0.5.0
   Compiling anstream v1.0.0
   Compiling unicode-normalization v0.1.25
   Compiling sqlx-macros v0.8.6
   Compiling axum-core v0.5.6
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling hyper-util v0.1.21
   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 argon2 v0.5.3
   Compiling bip39 v2.2.2
   Compiling axum v0.8.9
   Compiling clap_builder v4.6.7
   Compiling clap_derive v4.6.7
   Compiling infraternal-protocol v0.1.0 (/tmp/ir20/crates/infraternal-protocol)
   Compiling infraternal-shim v0.1.0 (/tmp/ir20/crates/infraternal-shim)
   Compiling infraternal-agent v0.1.0 (/tmp/ir20/crates/infraternal-agent)
   Compiling clap v4.6.7
   Compiling sqlx v0.8.6
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/tmp/ir20/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/tmp/ir20/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 2m 15s
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: 9906208 bytes
   Compiling cfg-if v1.0.5
   Compiling libc v0.2.190
   Compiling serde_core v1.0.229
   Compiling memchr v2.8.3
   Compiling zerofrom v0.1.8
   Compiling serde v1.0.229
   Compiling pin-project-lite v0.2.17
   Compiling smallvec v1.16.2
   Compiling stable_deref_trait v1.2.1
   Compiling itoa v1.0.18
   Compiling yoke v0.8.3
   Compiling futures-core v0.3.34
   Compiling bytes v1.12.1
   Compiling log v0.4.34
   Compiling writeable v0.6.4
   Compiling zerovec v0.11.8
   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_properties_data v2.3.0
   Compiling icu_normalizer_data v2.3.0
   Compiling once_cell v1.21.4
   Compiling futures-sink v0.3.34
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling tracing-core v0.1.36
   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 generic-array v0.14.7
   Compiling percent-encoding v2.3.2
   Compiling typenum v1.20.1
   Compiling form_urlencoded v1.2.2
   Compiling tracing v0.1.44
   Compiling errno v0.3.14
   Compiling socket2 v0.6.5
   Compiling signal-hook-registry v1.4.8
   Compiling mio v1.2.4
   Compiling parking_lot_core v0.9.12
   Compiling openssl-sys v0.9.117
   Compiling icu_provider v2.3.1
   Compiling tokio v1.53.2
   Compiling subtle v2.6.1
   Compiling minimal-lexical v0.2.1
   Compiling bitflags v2.13.2
   Compiling icu_normalizer v2.3.0
   Compiling icu_properties v2.3.0
   Compiling thiserror v1.0.69
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling nom v7.1.3
   Compiling parking_lot v0.12.5
   Compiling zmij v1.0.23
   Compiling futures-task v0.3.34
   Compiling time-core v0.1.9
   Compiling num-conv v0.2.2
   Compiling arrayvec v0.7.8
   Compiling slab v0.4.12
   Compiling futures-io v0.3.34
   Compiling idna_adapter v1.2.2
   Compiling deranged v0.5.8
   Compiling powerfmt v0.2.1
   Compiling idna v1.1.0
   Compiling getrandom v0.3.4
   Compiling serde_json v1.0.151
   Compiling futures-util v0.3.34
   Compiling getrandom v0.4.3
   Compiling url v2.5.8
   Compiling rusticata-macros v4.1.0
   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 base64 v0.22.1
   Compiling ppv-lite86 v0.2.21
   Compiling rustix v1.1.5
   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 base64 v0.21.7
   Compiling foldhash v0.1.5
   Compiling linux-raw-sys v0.12.1
   Compiling foreign-types-shared v0.1.1
   Compiling allocator-api2 v0.2.21
   Compiling base64urlsafedata v0.5.5
   Compiling foreign-types v0.3.2
   Compiling oid-registry v0.7.1
   Compiling httparse v1.10.1
   Compiling num-bigint v0.4.8
   Compiling hashbrown v0.15.5
   Compiling asn1-rs v0.6.2
   Compiling rand_core v0.9.5
   Compiling uuid v1.27.0
   Compiling cpufeatures v0.2.17
   Compiling thiserror v2.0.21
   Compiling parking v2.2.1
   Compiling hashbrown v0.17.1
   Compiling ryu v1.0.23
   Compiling crc-catalog v2.5.0
   Compiling tower-service v0.3.3
   Compiling crc v3.4.0
   Compiling serde_urlencoded v0.7.1
   Compiling indexmap v2.14.2
   Compiling signal-hook v0.3.18
   Compiling event-listener v5.4.2
   Compiling der-parser v9.0.0
   Compiling memoffset v0.9.1
   Compiling sha2 v0.10.9
   Compiling rand_chacha v0.9.0
   Compiling hashlink v0.10.0
   Compiling crossbeam-queue v0.3.14
   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 aho-corasick v1.1.5
   Compiling regex-syntax v0.8.11
   Compiling atomic-waker v1.1.2
   Compiling tower-layer v0.3.3
   Compiling httpdate v1.0.3
   Compiling utf8parse v0.2.2
   Compiling data-encoding v2.11.1
   Compiling cursor-icon v1.2.0
   Compiling lazy_static v1.5.1
   Compiling sync_wrapper v1.0.2
   Compiling vte v0.15.0
   Compiling anstyle-parse v1.0.0
   Compiling x509-parser v0.16.0
   Compiling hyper v1.11.1
   Compiling sqlx-core v0.8.6
   Compiling regex-automata v0.4.18
   Compiling flume v0.11.1
   Compiling serde_cbor_2 v0.13.0
   Compiling rustix-openpty v0.2.0
   Compiling polling v3.11.0
   Compiling rand v0.9.5
   Compiling nix v0.30.1
   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 unicode-width v0.2.2
   Compiling tinyvec v1.13.3
   Compiling home v0.5.12
   Compiling hex v0.4.3
   Compiling is_terminal_polyfill v1.70.2
   Compiling base64ct v1.8.3
   Compiling mime v0.3.17
   Compiling colorchoice v1.0.5
   Compiling anstyle v1.0.14
   Compiling anstyle-query v1.1.5
   Compiling unicode-normalization v0.1.25
   Compiling axum-core v0.5.6
   Compiling anstream v1.0.0
   Compiling password-hash v0.5.0
   Compiling alacritty_terminal v0.25.1
   Compiling bitcoin_hashes v0.14.101
   Compiling rand v0.8.8
   Compiling hyper-util v0.1.21
   Compiling tower v0.5.3
   Compiling blake2 v0.10.6
   Compiling serde_path_to_error v0.1.20
   Compiling matchit v0.8.4
   Compiling strsim v0.11.1
   Compiling clap_lex v1.1.1
   Compiling axum v0.8.9
   Compiling clap_builder v4.6.7
   Compiling argon2 v0.5.3
   Compiling bip39 v2.2.2
   Compiling infraternal-protocol v0.1.0 (/tmp/ir20/crates/infraternal-protocol)
   Compiling infraternal-shim v0.1.0 (/tmp/ir20/crates/infraternal-shim)
   Compiling infraternal-agent v0.1.0 (/tmp/ir20/crates/infraternal-agent)
   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 sqlx-sqlite v0.8.6
   Compiling sqlx v0.8.6
   Compiling webauthn-rs v0.5.5
   Compiling infraternal-server v0.1.0 (/tmp/ir20/crates/infraternal-server)
   Compiling infraternal v0.1.0 (/tmp/ir20/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 1m 57s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 8325072 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/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 [2143.15ms]
(pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [6.54ms]

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

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

Independent review finished. Verdict: merge after fixes, head 947d68f02d787fea54dec33898418651d65fdf74 (base dev 7174d6bf6f1880458a4166a2cf0fa45158d1742e). Four required fixes, individually posted above: R1 shared dispatcher stalls behind one full command queue; R2 underfunded Snapshot leaves PTY attached and blocked; R3 legitimate interleaved InputAck breaks retained-input restart reattachment; R4 LF flood falls below decision 41, predominantly Alacritty row reset (65.82% of sampled CPU). Independent evidence: 24 abrupt restarts, 6,261,482 bytes exactly once; restart during Snapshot and retained 91x31 resize pass; two live daemons deliver 18007 bytes exactly once through replacement; 50 attached idle sessions use 4064 KiB daemon RSS and 50-shim startup discovery takes 13.162 ms; settled 30-second trace has zero returned idle wait syscalls. Symbol-preserving release LF flood runs 5.422/5.662/5.471 MiB/s. Ample-credit workloads LF 5.712, CRLF 20.423, printable 41.816 MiB/s. No universal 4 MiB/s transport ceiling: row clearing is the principal cost. Proposed optimizations and estimated gains, scope limitations, queue inventory, history review and standalone probes are in the report. Report appended to /home/kayg/.local/state/codex-jobs/infraternal/review-agent/findings.md; evidence retained alongside it under evidence/. Source worktree remains unchanged, no commits/push/deploy, no issue closed. Temporary experiment worktree is being removed. scripts/verify fast exited 0; all Rust and TypeScript checks pass. Full gate output verbatim follows: ```text ==> fmt ==> clippy Compiling proc-macro2 v1.0.107 Compiling quote v1.0.47 Compiling unicode-ident v1.0.26 Compiling libc v0.2.190 Checking cfg-if v1.0.5 Compiling 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 Checking smallvec v1.16.2 Compiling shlex v2.0.1 Compiling find-msvc-tools v0.1.14 Compiling generic-array v0.14.7 Compiling parking_lot_core v0.9.12 Checking log v0.4.34 Checking typenum v1.20.1 Checking pin-project-lite v0.2.17 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling zmij v1.0.23 Checking scopeguard v1.2.0 Checking lock_api v0.4.14 Compiling syn v3.0.6 Compiling syn v2.0.119 Compiling pkg-config v0.3.34 Compiling vcpkg v0.2.15 Compiling jobserver v0.1.35 Checking stable_deref_trait v1.2.1 Compiling num-traits v0.2.19 Compiling cc v1.6.0 Compiling zerocopy v0.8.60 Checking arrayvec v0.7.8 Checking bitflags v2.13.2 Checking bytes v1.12.1 Checking aho-corasick v1.1.5 Checking regex-syntax v0.8.11 Checking futures-core v0.3.34 Checking base64 v0.22.1 Checking getrandom v0.2.17 Checking errno v0.3.14 Checking rand_core v0.6.4 Checking signal-hook-registry v1.4.8 Compiling serde_json v1.0.151 Compiling crossbeam-utils v0.8.23 Checking crypto-common v0.1.7 Checking parking_lot v0.12.5 Checking subtle v2.6.1 Checking writeable v0.6.4 Compiling rustix v1.1.5 Checking litemap v0.8.3 Checking mio v1.2.4 Checking socket2 v0.6.5 Checking utf8_iter v1.0.4 Checking linux-raw-sys v0.12.1 Checking regex-automata v0.4.18 Compiling memoffset v0.9.1 Compiling signal-hook v0.3.18 Checking cursor-icon v1.2.0 Checking futures-sink v0.3.34 Compiling synstructure v0.14.0 Compiling cfg_aliases v0.2.2 Checking once_cell v1.21.4 Compiling nix v0.30.1 Checking tracing-core v0.1.36 Compiling openssl-src v300.6.1+3.6.3 Checking percent-encoding v2.3.2 Checking unicode-width v0.2.2 Compiling thiserror v2.0.21 Compiling openssl-sys v0.9.117 Checking form_urlencoded v1.2.2 Checking block-buffer v0.10.4 Compiling getrandom v0.4.3 Checking home v0.5.12 Compiling heck v0.5.0 Checking cpufeatures v0.2.17 Checking digest v0.10.7 Compiling libsqlite3-sys v0.30.1 Checking minimal-lexical v0.2.1 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 Compiling zerocopy-derive v0.8.60 Compiling tracing-attributes v0.1.31 Checking zerofrom v0.1.8 Compiling yoke v0.8.3 Compiling tokio-macros v2.7.2 Compiling zerovec v0.11.8 Checking zerotrie v0.2.5 Checking tinystr v0.8.4 Checking potential_utf v0.1.6 Checking tokio v1.53.2 Checking icu_locale_core v2.3.0 Checking icu_collections v2.3.0 Checking icu_provider v2.3.1 Checking tracing v0.1.44 Checking polling v3.11.0 Checking rustix-openpty v0.2.0 Checking icu_normalizer v2.3.0 Checking vte v0.15.0 Checking either v1.18.0 Checking icu_properties v2.3.0 Compiling thiserror-impl v2.0.21 Checking alacritty_terminal v0.25.1 Checking idna_adapter v1.2.2 Compiling num-conv v0.2.2 Compiling time-core v0.1.9 Compiling thiserror v1.0.69 Compiling equivalent v1.0.2 Compiling time-macros v0.2.32 Checking idna v1.1.0 Compiling thiserror-impl v1.0.69 Checking nom v7.1.3 Compiling synstructure v0.13.2 Compiling foldhash v0.1.5 Checking powerfmt v0.2.1 Compiling allocator-api2 v0.2.21 Compiling getrandom v0.3.4 Compiling futures-io v0.3.34 Checking futures-task v0.3.34 Checking slab v0.4.12 Checking deranged v0.5.8 Compiling futures-util v0.3.34 Checking half v2.7.1 Checking ppv-lite86 v0.2.21 Compiling hashbrown v0.15.5 Compiling asn1-rs-derive v0.5.1 Checking time v0.3.55 Checking rusticata-macros v4.1.0 Checking uuid v1.27.0 Checking url v2.5.8 Checking infraternal-shim v0.1.0 (/tmp/ir20/crates/infraternal-shim) Compiling asn1-rs-impl v0.2.0 Checking http v1.5.0 Compiling parking v2.2.1 Compiling crc-catalog v2.5.0 Compiling hashbrown v0.17.1 Compiling crc v3.4.0 Checking asn1-rs v0.6.2 Compiling event-listener v5.4.2 Compiling sha2 v0.10.9 Checking http-body v1.1.0 Compiling crossbeam-queue v0.3.14 Compiling indexmap v2.14.2 Compiling futures-intrusive v0.5.0 Compiling hashlink v0.10.0 Compiling spin v0.9.9 Checking futures-channel v0.3.34 Checking num-integer v0.1.47 Compiling ryu v1.0.23 Checking infraternal-protocol v0.1.0 (/tmp/ir20/crates/infraternal-protocol) Checking foreign-types-shared v0.1.1 Checking base64 v0.21.7 Compiling pastey v0.1.1 Compiling oid-registry v0.7.1 Compiling tokio-stream v0.1.19 Compiling openssl v0.10.81 Compiling httparse v1.10.1 Checking utf8parse v0.2.2 Checking base64urlsafedata v0.5.5 Checking anstyle-parse v1.0.0 Checking num-bigint v0.4.8 Checking foreign-types v0.3.2 Compiling sqlx-core v0.8.6 Compiling flume v0.11.1 Compiling serde_urlencoded v0.7.1 Compiling atoi v2.0.0 Checking rand_core v0.9.5 Compiling futures-executor v0.3.34 Compiling openssl-macros v0.1.1 Checking colorchoice v1.0.5 Checking is_terminal_polyfill v1.70.2 Checking anstyle v1.0.14 Checking anstyle-query v1.1.5 Checking tower-service v0.3.3 Compiling webauthn-attestation-ca v0.5.5 Checking anstream v1.0.0 Checking der-parser v9.0.0 Checking rand_chacha v0.9.0 Compiling webauthn-rs-core v0.5.5 Checking strsim v0.11.1 Compiling dotenvy v0.15.7 Checking atomic-waker v1.1.2 Checking sync_wrapper v1.0.2 Checking clap_lex v1.1.1 Checking httpdate v1.0.3 Compiling hex v0.4.3 Checking data-encoding v2.11.1 Checking lazy_static v1.5.1 Checking tower-layer v0.3.3 Checking hyper v1.11.1 Checking clap_builder v4.6.7 Checking x509-parser v0.16.0 Checking rand v0.9.5 Checking webauthn-rs-proto v0.5.5 Checking http-body-util v0.1.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 mime v0.3.17 Checking base64ct v1.8.3 Checking tinyvec v1.13.3 Checking bitcoin_hashes v0.14.101 Checking password-hash v0.5.0 Checking axum-core v0.5.6 Checking rand v0.8.8 Compiling sqlx-sqlite v0.8.6 Checking unicode-normalization v0.1.25 Checking hyper-util v0.1.21 Checking tower v0.5.3 Checking blake2 v0.10.6 Checking serde_path_to_error v0.1.20 Checking matchit v0.8.4 Checking argon2 v0.5.3 Checking bip39 v2.2.2 Checking vt100 v0.16.2 Compiling crossbeam-epoch v0.9.21 Compiling crossbeam-deque v0.8.8 Checking infraternal-agent v0.1.0 (/tmp/ir20/crates/infraternal-agent) Compiling rayon-core v1.13.0 Checking inout v0.1.4 Checking axum v0.8.9 Checking ciborium-io v0.2.2 Checking plotters-backend v0.3.7 Checking ciborium-ll v0.2.2 Checking cipher v0.4.4 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 cast v0.3.0 Checking clap v4.6.7 Checking opaque-debug v0.3.1 Checking walkdir v2.5.0 Checking polyval v0.6.2 Checking rayon v1.12.0 Checking plotters v0.3.7 Checking ciborium v0.2.2 Compiling sqlx-macros-core v0.8.6 Checking criterion-plot v0.6.0 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 criterion v0.7.0 Checking ctr v0.9.2 Checking aes v0.8.4 Checking hmac v0.12.1 Checking aead v0.5.2 Checking hkdf v0.12.4 Checking aes-gcm v0.10.3 Compiling sqlx-macros v0.8.6 Checking infraternal-plugin-ssh v0.1.0 (/tmp/ir20/crates/plugins/ssh) Checking infraternal-plugin-api v0.1.0 (/tmp/ir20/crates/infraternal-plugin-api) Checking sqlx v0.8.6 Checking infraternal-fuzz v0.1.0 (/tmp/ir20/fuzz) Checking webauthn-rs v0.5.5 Checking infraternal-server v0.1.0 (/tmp/ir20/crates/infraternal-server) Checking infraternal v0.1.0 (/tmp/ir20/crates/infraternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 27s ==> test Compiling cfg-if v1.0.5 Compiling memchr v2.8.3 Compiling libc v0.2.190 Compiling serde_core v1.0.229 Compiling itoa v1.0.18 Compiling typenum v1.20.1 Compiling pin-project-lite v0.2.17 Compiling zerofrom v0.1.8 Compiling smallvec v1.16.2 Compiling log v0.4.34 Compiling stable_deref_trait v1.2.1 Compiling yoke v0.8.3 Compiling scopeguard v1.2.0 Compiling bytes v1.12.1 Compiling lock_api v0.4.14 Compiling zerovec v0.11.8 Compiling futures-core v0.3.34 Compiling writeable v0.6.4 Compiling litemap v0.8.3 Compiling zerotrie v0.2.5 Compiling generic-array v0.14.7 Compiling utf8_iter v1.0.4 Compiling tinystr v0.8.4 Compiling potential_utf v0.1.6 Compiling icu_normalizer_data v2.3.0 Compiling icu_collections v2.3.0 Compiling zmij v1.0.23 Compiling icu_locale_core v2.3.0 Compiling icu_properties_data v2.3.0 Compiling zerocopy v0.8.60 Compiling num-traits v0.2.19 Compiling arrayvec v0.7.8 Compiling futures-sink v0.3.34 Compiling percent-encoding v2.3.2 Compiling block-buffer v0.10.4 Compiling once_cell v1.21.4 Compiling getrandom v0.2.17 Compiling errno v0.3.14 Compiling parking_lot_core v0.9.12 Compiling rand_core v0.6.4 Compiling signal-hook-registry v1.4.8 Compiling form_urlencoded v1.2.2 Compiling tracing-core v0.1.36 Compiling crypto-common v0.1.7 Compiling parking_lot v0.12.5 Compiling cpufeatures v0.2.17 Compiling icu_provider v2.3.1 Compiling base64 v0.22.1 Compiling subtle v2.6.1 Compiling socket2 v0.6.5 Compiling icu_properties v2.3.0 Compiling tracing v0.1.44 Compiling mio v1.2.4 Compiling aho-corasick v1.1.5 Compiling serde v1.0.229 Compiling bitflags v2.13.2 Compiling serde_json v1.0.151 Compiling regex-syntax v0.8.11 Compiling tokio v1.53.2 Compiling crossbeam-utils v0.8.23 Compiling slab v0.4.12 Compiling futures-io v0.3.34 Compiling futures-task v0.3.34 Compiling either v1.18.0 Compiling futures-util v0.3.34 Compiling equivalent v1.0.2 Compiling linux-raw-sys v0.12.1 Compiling icu_normalizer v2.3.0 Compiling cursor-icon v1.2.0 Compiling rustix v1.1.5 Compiling allocator-api2 v0.2.21 Compiling regex-automata v0.4.18 Compiling foldhash v0.1.5 Compiling hashbrown v0.15.5 Compiling idna_adapter v1.2.2 Compiling vte v0.15.0 Compiling getrandom v0.4.3 Compiling half v2.7.1 Compiling digest v0.10.7 Compiling minimal-lexical v0.2.1 Compiling ryu v1.0.23 Compiling time-core v0.1.9 Compiling unicode-width v0.2.2 Compiling num-conv v0.2.2 Compiling parking v2.2.1 Compiling hashbrown v0.17.1 Compiling crc-catalog v2.5.0 Compiling time-macros v0.2.32 Compiling event-listener v5.4.2 Compiling nom v7.1.3 Compiling crc v3.4.0 Compiling thiserror v2.0.21 Compiling uuid v1.27.0 Compiling ppv-lite86 v0.2.21 Compiling indexmap v2.14.2 Compiling memoffset v0.9.1 Compiling idna v1.1.0 Compiling hashlink v0.10.0 Compiling polling v3.11.0 Compiling rustix-openpty v0.2.0 Compiling signal-hook v0.3.18 Compiling powerfmt v0.2.1 Compiling home v0.5.12 Compiling deranged v0.5.8 Compiling alacritty_terminal v0.25.1 Compiling thiserror v1.0.69 Compiling rusticata-macros v4.1.0 Compiling url v2.5.8 Compiling nix v0.30.1 Compiling time v0.3.55 Compiling http v1.5.0 Compiling spin v0.9.9 Compiling crossbeam-queue v0.3.14 Compiling flume v0.11.1 Compiling futures-intrusive v0.5.0 Compiling sha2 v0.10.9 Compiling http-body v1.1.0 Compiling libsqlite3-sys v0.30.1 Compiling getrandom v0.3.4 Compiling futures-executor v0.3.34 Compiling num-integer v0.1.47 Compiling futures-channel v0.3.34 Compiling foreign-types-shared v0.1.1 Compiling base64 v0.21.7 Compiling hex v0.4.3 Compiling foreign-types v0.3.2 Compiling num-bigint v0.4.8 Compiling asn1-rs v0.6.2 Compiling rand_core v0.9.5 Compiling base64urlsafedata v0.5.5 Compiling atoi v2.0.0 Compiling infraternal-shim v0.1.0 (/tmp/ir20/crates/infraternal-shim) Compiling serde_urlencoded v0.7.1 Compiling openssl-sys v0.9.117 Compiling tower-service v0.3.3 Compiling utf8parse v0.2.2 Compiling anstyle-parse v1.0.0 Compiling rand_chacha v0.9.0 Compiling httparse v1.10.1 Compiling openssl v0.10.81 Compiling tokio-stream v0.1.19 Compiling sqlx-core v0.8.6 Compiling oid-registry v0.7.1 Compiling der-parser v9.0.0 Compiling data-encoding v2.11.1 Compiling anstyle v1.0.14 Compiling httpdate v1.0.3 Compiling tower-layer v0.3.3 Compiling lazy_static v1.5.1 Compiling is_terminal_polyfill v1.70.2 Compiling colorchoice v1.0.5 Compiling anstyle-query v1.1.5 Compiling atomic-waker v1.1.2 Compiling sync_wrapper v1.0.2 Compiling anstream v1.0.0 Compiling hyper v1.11.1 Compiling x509-parser v0.16.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 serde_cbor_2 v0.13.0 Compiling sqlx-sqlite v0.8.6 Compiling webauthn-attestation-ca v0.5.5 Compiling hex-conservative v0.2.3 Compiling infraternal-protocol v0.1.0 (/tmp/ir20/crates/infraternal-protocol) Compiling clap_lex v1.1.1 Compiling base64ct v1.8.3 Compiling strsim v0.11.1 Compiling mime v0.3.17 Compiling tinyvec v1.13.3 Compiling axum-core v0.5.6 Compiling password-hash v0.5.0 Compiling unicode-normalization v0.1.25 Compiling clap_builder v4.6.7 Compiling bitcoin_hashes v0.14.101 Compiling webauthn-rs-core v0.5.5 Compiling hyper-util v0.1.21 Compiling rand v0.8.8 Compiling sqlx-macros-core v0.8.6 Compiling tower v0.5.3 Compiling blake2 v0.10.6 Compiling serde_path_to_error v0.1.20 Compiling matchit v0.8.4 Compiling argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling axum v0.8.9 Compiling clap v4.6.7 Compiling vt100 v0.16.2 Compiling sqlx-macros v0.8.6 Compiling infraternal-agent v0.1.0 (/tmp/ir20/crates/infraternal-agent) Compiling crossbeam-epoch v0.9.21 Compiling webauthn-rs v0.5.5 Compiling inout v0.1.4 Compiling crossbeam-deque v0.8.8 Compiling cipher v0.4.4 Compiling universal-hash v0.5.1 Compiling ciborium-io v0.2.2 Compiling opaque-debug v0.3.1 Compiling plotters-backend v0.3.7 Compiling polyval v0.6.2 Compiling plotters-svg v0.3.7 Compiling sqlx v0.8.6 Compiling ciborium-ll v0.2.2 Compiling rayon-core v1.13.0 Compiling itertools v0.13.0 Compiling same-file v1.0.6 Compiling cast v0.3.0 Compiling walkdir v2.5.0 Compiling rayon v1.12.0 Compiling ciborium v0.2.2 Compiling plotters v0.3.7 Compiling ghash v0.5.1 Compiling ctr v0.9.2 Compiling aes v0.8.4 Compiling regex v1.13.1 Compiling criterion-plot v0.6.0 Compiling hmac v0.12.1 Compiling tinytemplate v1.2.1 Compiling aead v0.5.2 Compiling oorandom v11.1.5 Compiling anes v0.1.6 Compiling aes-gcm v0.10.3 Compiling hkdf v0.12.4 Compiling infraternal-plugin-api v0.1.0 (/tmp/ir20/crates/infraternal-plugin-api) Compiling infraternal-plugin-ssh v0.1.0 (/tmp/ir20/crates/plugins/ssh) Compiling infraternal-server v0.1.0 (/tmp/ir20/crates/infraternal-server) Compiling criterion v0.7.0 Compiling infraternal v0.1.0 (/tmp/ir20/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 27.10s Running unittests src/main.rs (target/debug/deps/infraternal-44bdbcbfd20ee91a) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/agent_daemon.rs (target/debug/deps/agent_daemon-d744fbc05ac66a58) running 1 test test real_binary_preserves_input_and_output_across_24_crashes ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.89s Running tests/agent_queues.rs (target/debug/deps/agent_queues-4faaf7835d2b827f) running 1 test test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.26s Running tests/agent_sessions.rs (target/debug/deps/agent_sessions-65dbfea270028fb1) running 1 test test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s Running tests/shim.rs (target/debug/deps/shim-58a34b8e2a586631) 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.29s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-322df3fc11bd9871) running 10 tests test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok test relay::tests::output_partial_credit_and_dedup ... ok test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/transport.rs (target/debug/deps/transport-ed8193dfcba5b7a0) running 2 tests test oversized_header_and_truncated_frame_are_rejected ... ok test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s 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::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::all_short_frame_splits_match_direct_decoding ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/debug/deps/infraternal_server-0899e35831817744) 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::rejected_origin_uv_challenge_signature_prf_and_expired_ceremonies ... 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::review_invalid_device_polling_exhausts_browser_budget ... ok test auth::tests::http_csrf_cookie_flags_body_limit_and_latency_evidence ... ok test auth::tests::ceremony_prf_wraps_and_optional_second_passkey ... 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 16.42s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-2fd8334f3fce03a4) running 16 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 ring::checks::tests::wrap_and_exact_offsets ... ok test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok test frame::checks::tests::golden_and_fragmented ... ok test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok test 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 session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... 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. 13 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.16s Running tests/detach.rs (target/debug/deps/detach-f166a95c6d08480e) 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.78s 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' ┌─ /tmp/ir20/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-agent 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' ┌─ /tmp/ir20/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'hashbrown' ┌─ /tmp/ir20/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' ┌─ /tmp/ir20/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /tmp/ir20/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' ┌─ /tmp/ir20/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' ┌─ /tmp/ir20/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' ┌─ /tmp/ir20/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-agent v0.1.0 │ │ │ └── infraternal 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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-agent 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 (*) │ │ ├── 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-agent 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' ┌─ /tmp/ir20/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' ┌─ /tmp/ir20/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' ┌─ /tmp/ir20/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' ┌─ /tmp/ir20/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-agent 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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 │ │ └── 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-agent 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 (*) ├── 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 (*) ├── 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 memchr v2.8.3 Compiling version_check v0.9.5 Compiling find-msvc-tools v0.1.14 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling shlex v2.0.1 Compiling generic-array v0.14.7 Compiling pkg-config v0.3.34 Compiling cc v1.6.0 Compiling vcpkg v0.2.15 Compiling stable_deref_trait v1.2.1 Compiling pin-project-lite v0.2.17 Compiling smallvec v1.16.2 Compiling parking_lot_core v0.9.12 Compiling itoa v1.0.18 Compiling syn v3.0.6 Compiling syn v2.0.119 Compiling futures-core v0.3.34 Compiling log v0.4.34 Compiling bytes v1.12.1 Compiling zmij v1.0.23 Compiling num-traits v0.2.19 Compiling writeable v0.6.4 Compiling crossbeam-utils v0.8.23 Compiling litemap v0.8.3 Compiling utf8_iter v1.0.4 Compiling zerocopy v0.8.60 Compiling bitflags v2.13.2 Compiling futures-sink v0.3.34 Compiling once_cell v1.21.4 Compiling thiserror v2.0.21 Compiling errno v0.3.14 Compiling signal-hook-registry v1.4.8 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling tracing-core v0.1.36 Compiling socket2 v0.6.5 Compiling mio v1.2.4 Compiling openssl-src v300.6.1+3.6.3 Compiling typenum v1.20.1 Compiling percent-encoding v2.3.2 Compiling openssl-sys v0.9.117 Compiling form_urlencoded v1.2.2 Compiling libsqlite3-sys v0.30.1 Compiling thiserror v1.0.69 Compiling equivalent v1.0.2 Compiling time-core v0.1.9 Compiling minimal-lexical v0.2.1 Compiling num-conv v0.2.2 Compiling subtle v2.6.1 Compiling time-macros v0.2.32 Compiling nom v7.1.3 Compiling block-buffer v0.10.4 Compiling synstructure v0.14.0 Compiling synstructure v0.13.2 Compiling crypto-common v0.1.7 Compiling parking_lot v0.12.5 Compiling deranged v0.5.8 Compiling slab v0.4.12 Compiling futures-io v0.3.34 Compiling powerfmt v0.2.1 Compiling serde_json v1.0.151 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 tracing-attributes v0.1.31 Compiling zerocopy-derive v0.8.60 Compiling tokio-macros v2.7.2 Compiling thiserror-impl v2.0.21 Compiling zerofrom v0.1.8 Compiling yoke v0.8.3 Compiling zerovec v0.11.8 Compiling zerotrie v0.2.5 Compiling tracing v0.1.44 Compiling tokio v1.53.2 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 thiserror-impl v1.0.69 Compiling icu_provider v2.3.1 Compiling getrandom v0.4.3 Compiling icu_properties v2.3.0 Compiling icu_normalizer v2.3.0 Compiling allocator-api2 v0.2.21 Compiling futures-task v0.3.34 Compiling getrandom v0.3.4 Compiling foldhash v0.1.5 Compiling arrayvec v0.7.8 Compiling idna_adapter v1.2.2 Compiling idna v1.1.0 Compiling time v0.3.55 Compiling futures-util v0.3.34 Compiling url v2.5.8 Compiling hashbrown v0.15.5 Compiling ppv-lite86 v0.2.21 Compiling asn1-rs-impl v0.2.0 Compiling asn1-rs-derive v0.5.1 Compiling rusticata-macros v4.1.0 Compiling digest v0.10.7 Compiling getrandom v0.2.17 Compiling http v1.5.0 Compiling cpufeatures v0.2.17 Compiling parking v2.2.1 Compiling rustix v1.1.5 Compiling crc-catalog v2.5.0 Compiling hashbrown v0.17.1 Compiling base64 v0.22.1 Compiling crc v3.4.0 Compiling indexmap v2.14.2 Compiling event-listener v5.4.2 Compiling rand_core v0.6.4 Compiling http-body v1.1.0 Compiling sha2 v0.10.9 Compiling futures-intrusive v0.5.0 Compiling crossbeam-queue v0.3.14 Compiling asn1-rs v0.6.2 Compiling hashlink v0.10.0 Compiling either v1.18.0 Compiling spin v0.9.9 Compiling num-integer v0.1.47 Compiling futures-channel v0.3.34 Compiling httparse v1.10.1 Compiling openssl v0.10.81 Compiling tokio-stream v0.1.19 Compiling base64 v0.21.7 Compiling ryu v1.0.23 Compiling foreign-types-shared v0.1.1 Compiling oid-registry v0.7.1 Compiling linux-raw-sys v0.12.1 Compiling pastey v0.1.1 Compiling heck v0.5.0 Compiling sqlx-core v0.8.6 Compiling foreign-types v0.3.2 Compiling serde_urlencoded v0.7.1 Compiling base64urlsafedata v0.5.5 Compiling num-bigint v0.4.8 Compiling flume v0.11.1 Compiling atoi v2.0.0 Compiling rand_core v0.9.5 Compiling uuid v1.27.0 Compiling futures-executor v0.3.34 Compiling openssl-macros v0.1.1 Compiling memoffset v0.9.1 Compiling tower-service v0.3.3 Compiling cfg_aliases v0.2.2 Compiling signal-hook v0.3.18 Compiling webauthn-attestation-ca v0.5.5 Compiling der-parser v9.0.0 Compiling nix v0.30.1 Compiling rand_chacha v0.9.0 Compiling half v2.7.1 Compiling aho-corasick v1.1.5 Compiling lazy_static v1.5.1 Compiling httpdate v1.0.3 Compiling sync_wrapper v1.0.2 Compiling regex-syntax v0.8.11 Compiling hex v0.4.3 Compiling webauthn-rs-core v0.5.5 Compiling utf8parse v0.2.2 Compiling atomic-waker v1.1.2 Compiling tower-layer v0.3.3 Compiling data-encoding v2.11.1 Compiling dotenvy v0.15.7 Compiling cursor-icon v1.2.0 Compiling vte v0.15.0 Compiling hyper v1.11.1 Compiling x509-parser v0.16.0 Compiling regex-automata v0.4.18 Compiling anstyle-parse v1.0.0 Compiling sqlx-sqlite v0.8.6 Compiling serde_cbor_2 v0.13.0 Compiling rustix-openpty v0.2.0 Compiling polling v3.11.0 Compiling rand v0.9.5 Compiling webauthn-rs-proto v0.5.5 Compiling sqlx-macros-core v0.8.6 Compiling http-body-util v0.1.5 Compiling rand_chacha v0.3.1 Compiling hex-conservative v0.2.3 Compiling mime v0.3.17 Compiling anstyle-query v1.1.5 Compiling unicode-width v0.2.2 Compiling home v0.5.12 Compiling base64ct v1.8.3 Compiling is_terminal_polyfill v1.70.2 Compiling tinyvec v1.13.3 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling alacritty_terminal v0.25.1 Compiling password-hash v0.5.0 Compiling anstream v1.0.0 Compiling unicode-normalization v0.1.25 Compiling sqlx-macros v0.8.6 Compiling axum-core v0.5.6 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling hyper-util v0.1.21 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 argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling axum v0.8.9 Compiling clap_builder v4.6.7 Compiling clap_derive v4.6.7 Compiling infraternal-protocol v0.1.0 (/tmp/ir20/crates/infraternal-protocol) Compiling infraternal-shim v0.1.0 (/tmp/ir20/crates/infraternal-shim) Compiling infraternal-agent v0.1.0 (/tmp/ir20/crates/infraternal-agent) Compiling clap v4.6.7 Compiling sqlx v0.8.6 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/tmp/ir20/crates/infraternal-server) Compiling infraternal v0.1.0 (/tmp/ir20/crates/infraternal) Finished `release` profile [optimized] target(s) in 2m 15s 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: 9906208 bytes Compiling cfg-if v1.0.5 Compiling libc v0.2.190 Compiling serde_core v1.0.229 Compiling memchr v2.8.3 Compiling zerofrom v0.1.8 Compiling serde v1.0.229 Compiling pin-project-lite v0.2.17 Compiling smallvec v1.16.2 Compiling stable_deref_trait v1.2.1 Compiling itoa v1.0.18 Compiling yoke v0.8.3 Compiling futures-core v0.3.34 Compiling bytes v1.12.1 Compiling log v0.4.34 Compiling writeable v0.6.4 Compiling zerovec v0.11.8 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_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling once_cell v1.21.4 Compiling futures-sink v0.3.34 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling tracing-core v0.1.36 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 generic-array v0.14.7 Compiling percent-encoding v2.3.2 Compiling typenum v1.20.1 Compiling form_urlencoded v1.2.2 Compiling tracing v0.1.44 Compiling errno v0.3.14 Compiling socket2 v0.6.5 Compiling signal-hook-registry v1.4.8 Compiling mio v1.2.4 Compiling parking_lot_core v0.9.12 Compiling openssl-sys v0.9.117 Compiling icu_provider v2.3.1 Compiling tokio v1.53.2 Compiling subtle v2.6.1 Compiling minimal-lexical v0.2.1 Compiling bitflags v2.13.2 Compiling icu_normalizer v2.3.0 Compiling icu_properties v2.3.0 Compiling thiserror v1.0.69 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling nom v7.1.3 Compiling parking_lot v0.12.5 Compiling zmij v1.0.23 Compiling futures-task v0.3.34 Compiling time-core v0.1.9 Compiling num-conv v0.2.2 Compiling arrayvec v0.7.8 Compiling slab v0.4.12 Compiling futures-io v0.3.34 Compiling idna_adapter v1.2.2 Compiling deranged v0.5.8 Compiling powerfmt v0.2.1 Compiling idna v1.1.0 Compiling getrandom v0.3.4 Compiling serde_json v1.0.151 Compiling futures-util v0.3.34 Compiling getrandom v0.4.3 Compiling url v2.5.8 Compiling rusticata-macros v4.1.0 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 base64 v0.22.1 Compiling ppv-lite86 v0.2.21 Compiling rustix v1.1.5 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 base64 v0.21.7 Compiling foldhash v0.1.5 Compiling linux-raw-sys v0.12.1 Compiling foreign-types-shared v0.1.1 Compiling allocator-api2 v0.2.21 Compiling base64urlsafedata v0.5.5 Compiling foreign-types v0.3.2 Compiling oid-registry v0.7.1 Compiling httparse v1.10.1 Compiling num-bigint v0.4.8 Compiling hashbrown v0.15.5 Compiling asn1-rs v0.6.2 Compiling rand_core v0.9.5 Compiling uuid v1.27.0 Compiling cpufeatures v0.2.17 Compiling thiserror v2.0.21 Compiling parking v2.2.1 Compiling hashbrown v0.17.1 Compiling ryu v1.0.23 Compiling crc-catalog v2.5.0 Compiling tower-service v0.3.3 Compiling crc v3.4.0 Compiling serde_urlencoded v0.7.1 Compiling indexmap v2.14.2 Compiling signal-hook v0.3.18 Compiling event-listener v5.4.2 Compiling der-parser v9.0.0 Compiling memoffset v0.9.1 Compiling sha2 v0.10.9 Compiling rand_chacha v0.9.0 Compiling hashlink v0.10.0 Compiling crossbeam-queue v0.3.14 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 aho-corasick v1.1.5 Compiling regex-syntax v0.8.11 Compiling atomic-waker v1.1.2 Compiling tower-layer v0.3.3 Compiling httpdate v1.0.3 Compiling utf8parse v0.2.2 Compiling data-encoding v2.11.1 Compiling cursor-icon v1.2.0 Compiling lazy_static v1.5.1 Compiling sync_wrapper v1.0.2 Compiling vte v0.15.0 Compiling anstyle-parse v1.0.0 Compiling x509-parser v0.16.0 Compiling hyper v1.11.1 Compiling sqlx-core v0.8.6 Compiling regex-automata v0.4.18 Compiling flume v0.11.1 Compiling serde_cbor_2 v0.13.0 Compiling rustix-openpty v0.2.0 Compiling polling v3.11.0 Compiling rand v0.9.5 Compiling nix v0.30.1 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 unicode-width v0.2.2 Compiling tinyvec v1.13.3 Compiling home v0.5.12 Compiling hex v0.4.3 Compiling is_terminal_polyfill v1.70.2 Compiling base64ct v1.8.3 Compiling mime v0.3.17 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling anstyle-query v1.1.5 Compiling unicode-normalization v0.1.25 Compiling axum-core v0.5.6 Compiling anstream v1.0.0 Compiling password-hash v0.5.0 Compiling alacritty_terminal v0.25.1 Compiling bitcoin_hashes v0.14.101 Compiling rand v0.8.8 Compiling hyper-util v0.1.21 Compiling tower v0.5.3 Compiling blake2 v0.10.6 Compiling serde_path_to_error v0.1.20 Compiling matchit v0.8.4 Compiling strsim v0.11.1 Compiling clap_lex v1.1.1 Compiling axum v0.8.9 Compiling clap_builder v4.6.7 Compiling argon2 v0.5.3 Compiling bip39 v2.2.2 Compiling infraternal-protocol v0.1.0 (/tmp/ir20/crates/infraternal-protocol) Compiling infraternal-shim v0.1.0 (/tmp/ir20/crates/infraternal-shim) Compiling infraternal-agent v0.1.0 (/tmp/ir20/crates/infraternal-agent) 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 sqlx-sqlite v0.8.6 Compiling sqlx v0.8.6 Compiling webauthn-rs v0.5.5 Compiling infraternal-server v0.1.0 (/tmp/ir20/crates/infraternal-server) Compiling infraternal v0.1.0 (/tmp/ir20/crates/infraternal) Finished `release` profile [optimized] target(s) in 1m 57s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 8325072 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/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 [2143.15ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [6.54ms] src/codec.test.ts: (pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [3.00ms] (pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.20ms] (pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.27ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.29ms] (pass) split mux header preserves trailing Close [0.17ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [2.16s] ```
Author
Owner

Starting review fixes on branch t-agent, base 947d68f02d. Scope: R1–R3 deterministic regressions and corrections; R4 secondary payload-copy, buffer, read and credit batching measurements only. VT engine and row clearing remain for spike-vt. Atomic commits each run the required fast gate.

Starting review fixes on branch t-agent, base 947d68f02d787fea54dec33898418651d65fdf74. Scope: R1–R3 deterministic regressions and corrections; R4 secondary payload-copy, buffer, read and credit batching measurements only. VT engine and row clearing remain for spike-vt. Atomic commits each run the required fast gate.
Author
Owner

Starting terminal-state spike on branch spike-vt, base 947d68f02d. Evaluating patched alacritty, Ghostty with a custom serializer, and visible-screen state with raw history. Results and reproducible gates will be committed in logical steps under spikes/vt.

Starting terminal-state spike on branch spike-vt, base 947d68f02d787fea54dec33898418651d65fdf74. Evaluating patched alacritty, Ghostty with a custom serializer, and visible-screen state with raw history. Results and reproducible gates will be committed in logical steps under spikes/vt.
Author
Owner

R3 reproduced with deterministic real-shim FIFO barriers: accepted=524614, written=14150, surviving unwritten=510464 bytes. A real InputAck reaches the replacement before InputStateRequest is released. Reviewed production binary emits Close (target/review-fixes/r3-before.log); corrected handshake verifies 524288 replay bytes exactly once (r3-after.log). Commit e72589e consumes monotonic Acks with a two-second total State deadline; fast gate exit 0 (r3-gate.log). R1 regression holds State, fills nine command slots and demonstrates no Pong within one second (r1-before.log). R2 regression grants one byte after a detached 12 MiB flood; no Snapshot arrives within the fixture deadline (r2-before.log).

R3 reproduced with deterministic real-shim FIFO barriers: accepted=524614, written=14150, surviving unwritten=510464 bytes. A real InputAck reaches the replacement before InputStateRequest is released. Reviewed production binary emits Close (target/review-fixes/r3-before.log); corrected handshake verifies 524288 replay bytes exactly once (r3-after.log). Commit e72589e consumes monotonic Acks with a two-second total State deadline; fast gate exit 0 (r3-gate.log). R1 regression holds State, fills nine command slots and demonstrates no Pong within one second (r1-before.log). R2 regression grants one byte after a detached 12 MiB flood; no Snapshot arrives within the fixture deadline (r2-before.log).
Author
Owner

R1 corrected in 6265615: eight-slot queues use nonblocking admission; overload retires and cancels only that terminal attachment. Holding a real shim State reply while sending nine commands now produces stream-local Close, sibling terminal output and control Pong before barrier release within one second (target/review-fixes/r1-after.log). Twelve concurrent saturated attachments are retired then reattached: 2640000 payload bytes verified exactly once; stopped shim remains isolated (r1-queues.log). Required fast gate exit 0 (r1-gate.log). Local performance measurements are contended: eight cores, load average 15.47; results will be reported as local comparisons, not performance-VM budget evidence.

R1 corrected in 6265615: eight-slot queues use nonblocking admission; overload retires and cancels only that terminal attachment. Holding a real shim State reply while sending nine commands now produces stream-local Close, sibling terminal output and control Pong before barrier release within one second (target/review-fixes/r1-after.log). Twelve concurrent saturated attachments are retired then reattached: 2640000 payload bytes verified exactly once; stopped shim remains isolated (r1-queues.log). Required fast gate exit 0 (r1-gate.log). Local performance measurements are contended: eight cores, load average 15.47; results will be reported as local comparisons, not performance-VM budget evidence.
Author
Owner

R2 contract is documented in its own commit 6c4b0c5, wire section 6: one bounded indivisible Snapshot with positive usable credit may borrow; future grants repay debt before raw output or another Snapshot; unfunded pending output detaches after 250 ms without extending the deadline for partial repayment. Test-first accounting regressions fail on the original relay (target/review-fixes/r2-unit-before.log). Corrected real-binary test completes four independent 12 MiB floods, delivers three catch-up Snapshots of 27541–27546 bytes with one byte usable credit, then verifies initial ring-wrap attachment at seq=50317621 (r2-after.log). No stream Close is needed for those four floods.

R2 contract is documented in its own commit 6c4b0c5, wire section 6: one bounded indivisible Snapshot with positive usable credit may borrow; future grants repay debt before raw output or another Snapshot; unfunded pending output detaches after 250 ms without extending the deadline for partial repayment. Test-first accounting regressions fail on the original relay (target/review-fixes/r2-unit-before.log). Corrected real-binary test completes four independent 12 MiB floods, delivers three catch-up Snapshots of 27541–27546 bytes with one byte usable credit, then verifies initial ring-wrap attachment at seq=50317621 (r2-after.log). No stream Close is needed for those four floods.
Author
Owner

R4 secondary measurements and codec correction: d24a414 moves full owned Output payloads; same-process 16 KiB forwarding benchmark 3899.5 -> 2078.5 ns/frame. 6427ab9 adds borrowed shim payload decoding and contiguous incremental buffering. Seven release samples (100000 frames each) have medians: owned decode 302.1 ns, borrowed 3.9; new owned feed 906.3 ns, borrowed 209.1 versus original bytewise feed 42051.7 ns (target/review-fixes/codec-{before,after-repeated}.log). Encoder reuse median 326.3 versus fresh 470.4 ns. Every fragmentation boundary/coalescing test passes. Differential owned/borrowed ASan fuzz completed 100000 runs without a finding (codec-fuzz-no-lto.log); fuzz-only LTO disabled to resolve sanitizer-coverage link errors. Both commits have passing required fast gates. Credit batching reduces measured CRLF grants 12895 -> 757 per 50 MiB; contended throughput varies, so no stable throughput claim is made for that change.

R4 secondary measurements and codec correction: d24a414 moves full owned Output payloads; same-process 16 KiB forwarding benchmark 3899.5 -> 2078.5 ns/frame. 6427ab9 adds borrowed shim payload decoding and contiguous incremental buffering. Seven release samples (100000 frames each) have medians: owned decode 302.1 ns, borrowed 3.9; new owned feed 906.3 ns, borrowed 209.1 versus original bytewise feed 42051.7 ns (target/review-fixes/codec-{before,after-repeated}.log). Encoder reuse median 326.3 versus fresh 470.4 ns. Every fragmentation boundary/coalescing test passes. Differential owned/borrowed ASan fuzz completed 100000 runs without a finding (codec-fuzz-no-lto.log); fuzz-only LTO disabled to resolve sanitizer-coverage link errors. Both commits have passing required fast gates. Credit batching reduces measured CRLF grants 12895 -> 757 per 50 MiB; contended throughput varies, so no stable throughput claim is made for that change.
Author
Owner

R4 secondary pump fixes: cc3a5a9 consumes borrowed input into the surviving queue and reuses bounded encoder/stack poll storage. Poll construction benchmark 30.8 -> 1.5 ns/turn; encoder reuse median 470.4 -> 326.3 ns/frame. e8812fe drains immediately-ready PTY bytes into at most 16 KiB (and at most 16 reads), never waiting to fill a batch. Same 50 MiB CRLF workload on only daemon/shim: before drain 164910 traced calls / 25623 poll / 25625 sendto; after 54292 / 6445 / 6447, total -67.1%. PTY read calls increase 12811 -> 15686 while chunks approach 16 KiB. Traced throughput 5.678 -> 7.001 MiB/s is perturbed and contended. Evidence: target/review-fixes/{poll-bench,codec-after-repeated,syscalls-pump,syscalls-after,trace-pump,trace-after}.log. Both commits pass required fast gates; large retained-input restart still verifies 524288 bytes exactly once. VT engine and row clearing remain with spike-vt.

R4 secondary pump fixes: cc3a5a9 consumes borrowed input into the surviving queue and reuses bounded encoder/stack poll storage. Poll construction benchmark 30.8 -> 1.5 ns/turn; encoder reuse median 470.4 -> 326.3 ns/frame. e8812fe drains immediately-ready PTY bytes into at most 16 KiB (and at most 16 reads), never waiting to fill a batch. Same 50 MiB CRLF workload on only daemon/shim: before drain 164910 traced calls / 25623 poll / 25625 sendto; after 54292 / 6445 / 6447, total -67.1%. PTY read calls increase 12811 -> 15686 while chunks approach 16 KiB. Traced throughput 5.678 -> 7.001 MiB/s is perturbed and contended. Evidence: target/review-fixes/{poll-bench,codec-after-repeated,syscalls-pump,syscalls-after,trace-pump,trace-after}.log. Both commits pass required fast gates; large retained-input restart still verifies 524288 bytes exactly once. VT engine and row clearing remain with spike-vt.
Author
Owner

Final release results: the new deterministic probes pass with 512512 surviving unwritten bytes and 524288 replay bytes exactly once; held-stream sibling/Pong completion 3.647 ms; four 12 MiB floods plus three 27580-byte one-credit Snapshots and initial ring-wrap attachment (target/review-fixes/r{1,2,3}-release.log). Existing 24-stop oracle seed 21 verifies 6222717 payload bytes, input-to-PTY Ack p99 197.446 us, daemon starved-flood peak RSS 4088 KiB (release-final.log). Three-run local LF median 4.426 MiB/s; explicit 10 MB/s check fails at 4.295 (lf-budget.log). The pinned-VM/VT requirement remains unresolved.

Additional measured memory finding: settled 30-second daemon/shim CPU ticks remain zero, daemon RSS 3852 KiB; shim RSS 5872 KiB. The existing standalone shim-idle <4096 KiB guard fails (shim-idle-final.log). The reviewed baseline binary also measures about 5736 KiB shim RSS in the same open-idle fixture (idle-baseline.log), so this is already present before the secondary fixes; the combined daemon/shim idle check claims zero ticks and daemon budget only. This is recorded without changing VT scope or loosening its guard.

Final release results: the new deterministic probes pass with 512512 surviving unwritten bytes and 524288 replay bytes exactly once; held-stream sibling/Pong completion 3.647 ms; four 12 MiB floods plus three 27580-byte one-credit Snapshots and initial ring-wrap attachment (target/review-fixes/r{1,2,3}-release.log). Existing 24-stop oracle seed 21 verifies 6222717 payload bytes, input-to-PTY Ack p99 197.446 us, daemon starved-flood peak RSS 4088 KiB (release-final.log). Three-run local LF median 4.426 MiB/s; explicit 10 MB/s check fails at 4.295 (lf-budget.log). The pinned-VM/VT requirement remains unresolved. Additional measured memory finding: settled 30-second daemon/shim CPU ticks remain zero, daemon RSS 3852 KiB; shim RSS 5872 KiB. The existing standalone shim-idle <4096 KiB guard fails (shim-idle-final.log). The reviewed baseline binary also measures about 5736 KiB shim RSS in the same open-idle fixture (idle-baseline.log), so this is already present before the secondary fixes; the combined daemon/shim idle check claims zero ticks and daemon budget only. This is recorded without changing VT scope or loosening its guard.
Author
Owner

Finished the requested review-fix scope on t-agent, head 6c64ede107, base 947d68f02d, in 13 atomic commits. No push or deployment; this issue remains open.

R1–R3 regressions are now part of the normal fast gate. Final release evidence: 512512 surviving unwritten input bytes, 524288 replay bytes exactly once, a real interleaved Ack before State; stalled-session sibling output and Pong in 3.647 ms before release; four 12 MiB floods, three 27580-byte Snapshots funded by one usable byte and initial ring-wrap seq=50333127. Twelve saturated streams replay 2640000 bytes exactly once. The full 24-stop fixture seed 21 verifies 6222717 payload bytes; 1000 input-to-PTY Ack samples p99=197.446 us; starved 50 MiB daemon peak RSS=4088 KiB.

R4 secondary evidence: full payload move 3899.5 -> 2078.5 ns/frame; contiguous/borrowed codec, cancellation-safe borrowed Reader, encoder reuse and stack poll storage have measured benefits; 16 KiB readiness draining reduces traced calls 164910 -> 54292 (-67.1%), poll/send calls by about 75%. Credit grants 12895 -> 757 at 64 KiB batching. Owned/borrowed ASan fuzz: 100000 runs, no finding. Production optimization unchanged; fuzz-only LTO override resolves sanitizer coverage linkage.

Remaining budget evidence is explicit: three-run local LF median 4.426 MiB/s; strict 10 MB/s check fails at 4.295 MiB/s. Standalone shim idle guard fails at 5872 KiB versus 4096; reviewed baseline is about 5736 KiB in the same fixture. Thirty settled idle seconds have unchanged daemon/shim CPU ticks, daemon RSS=3852 KiB. VT engine/row clearing remain with spike-vt and pinned-VM budget evidence remains required. The fast gate is green; these two targeted budget checks are not.

Detailed report: docs/agent-review-fixes.md. All local artifact paths and reproduction commands are recorded there under target/review-fixes/. Final required command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast; exit 0. Full output verbatim follows:


==> fmt

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

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

running 0 tests

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

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

running 1 test
test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok

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

     Running tests/agent_queues.rs (target/debug/deps/agent_queues-4faaf7835d2b827f)

running 1 test
test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok

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

     Running tests/agent_review.rs (target/debug/deps/agent_review-155516d9e31a8a55)

running 3 tests
test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok
test retained_unwritten_input_survives_interleaved_ack_restart ... ok
test repeated_tiny_credit_snapshots_preserve_shell_progress ... ok

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

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

running 1 test
test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok

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

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

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

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

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

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

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

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

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

     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 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::split_mux_header_preserves_trailing_close ... ok
test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok
test stream_tests::all_short_frame_splits_match_direct_decoding ... ok
test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok
test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... 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-0899e35831817744)

running 12 tests
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::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::recovery_expiry_revocation_and_cross_user_isolation ... 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 15.29s

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

running 19 tests
test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement
test frame::checks::golden::every_frozen_message ... ok
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::tests::golden_and_fragmented ... ok
test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement
test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok
test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok
test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok
test ring::checks::tests::wrap_and_exact_offsets ... ok
test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... 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::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok
test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok
test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok
test terminal::checks::tests::partial_csi_and_utf8_continue ... ok
test terminal::checks::tests::fixtures_and_continuations_repaint ... ok
test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok

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

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

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

   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-agent/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-agent 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-agent/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-agent v0.1.0
         │   └── infraternal v0.1.0 (*)
         ├── infraternal-server v0.1.0 (*)
         ├── webauthn-attestation-ca v0.5.5 (*)
         ├── webauthn-rs v0.5.5 (*)
         └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'hashbrown'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent v0.1.0
              │   └── infraternal v0.1.0 (*)
              ├── infraternal-server v0.1.0 (*)
              ├── webauthn-attestation-ca v0.5.5 (*)
              ├── webauthn-rs v0.5.5 (*)
              └── webauthn-rs-core v0.5.5 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent/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-agent/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-agent v0.1.0
              │   │               │   └── infraternal 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-agent v0.1.0
      │       │       │   └── infraternal 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-agent 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-agent 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 (*)
      │   │   ├── 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-agent 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-agent/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-agent/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-agent/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-agent/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-agent 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-agent v0.1.0
      │               │       │   └── infraternal 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-agent 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
      │           │       └── 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-agent 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 (*)
      ├── 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 (*)
      ├── 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.15s
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: 9907712 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: 8327856 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.75ms]
(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.71ms]
(pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.19ms]
(pass) split mux header preserves trailing Close [0.15ms]

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

 7 pass
 0 fail
 34390 expect() calls
Ran 7 tests across 2 files. [1.90s]
Finished the requested review-fix scope on t-agent, head 6c64ede10745b690c27ece4e035a7455fedd5a0a, base 947d68f02d787fea54dec33898418651d65fdf74, in 13 atomic commits. No push or deployment; this issue remains open. R1–R3 regressions are now part of the normal fast gate. Final release evidence: 512512 surviving unwritten input bytes, 524288 replay bytes exactly once, a real interleaved Ack before State; stalled-session sibling output and Pong in 3.647 ms before release; four 12 MiB floods, three 27580-byte Snapshots funded by one usable byte and initial ring-wrap seq=50333127. Twelve saturated streams replay 2640000 bytes exactly once. The full 24-stop fixture seed 21 verifies 6222717 payload bytes; 1000 input-to-PTY Ack samples p99=197.446 us; starved 50 MiB daemon peak RSS=4088 KiB. R4 secondary evidence: full payload move 3899.5 -> 2078.5 ns/frame; contiguous/borrowed codec, cancellation-safe borrowed Reader, encoder reuse and stack poll storage have measured benefits; 16 KiB readiness draining reduces traced calls 164910 -> 54292 (-67.1%), poll/send calls by about 75%. Credit grants 12895 -> 757 at 64 KiB batching. Owned/borrowed ASan fuzz: 100000 runs, no finding. Production optimization unchanged; fuzz-only LTO override resolves sanitizer coverage linkage. Remaining budget evidence is explicit: three-run local LF median 4.426 MiB/s; strict 10 MB/s check fails at 4.295 MiB/s. Standalone shim idle guard fails at 5872 KiB versus 4096; reviewed baseline is about 5736 KiB in the same fixture. Thirty settled idle seconds have unchanged daemon/shim CPU ticks, daemon RSS=3852 KiB. VT engine/row clearing remain with spike-vt and pinned-VM budget evidence remains required. The fast gate is green; these two targeted budget checks are not. Detailed report: docs/agent-review-fixes.md. All local artifact paths and reproduction commands are recorded there under target/review-fixes/. Final required command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fast; exit 0. Full output verbatim follows: ```text ==> fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.25s ==> test Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s Running unittests src/main.rs (target/debug/deps/infraternal-44bdbcbfd20ee91a) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/agent_daemon.rs (target/debug/deps/agent_daemon-d744fbc05ac66a58) running 1 test test real_binary_preserves_input_and_output_across_24_abrupt_stops ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.09s Running tests/agent_queues.rs (target/debug/deps/agent_queues-4faaf7835d2b827f) running 1 test test saturated_terminal_queues_preserve_every_byte_and_daemon_liveness ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.22s Running tests/agent_review.rs (target/debug/deps/agent_review-155516d9e31a8a55) running 3 tests test stalled_terminal_never_delays_control_or_sibling_dispatch ... ok test retained_unwritten_input_survives_interleaved_ack_restart ... ok test repeated_tiny_credit_snapshots_preserve_shell_progress ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 49.06s Running tests/agent_sessions.rs (target/debug/deps/agent_sessions-65dbfea270028fb1) running 1 test test detached_shim_is_discovered_and_replays_from_the_last_observed_offset ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/shim.rs (target/debug/deps/shim-58a34b8e2a586631) 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.38s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-322df3fc11bd9871) running 15 tests test relay::tests::output_payload_move_measurement ... ignored, release ownership versus payload-copy measurement test relay::tests::input_overlap_gap_and_restart_from_confirmed_offset ... ok test relay::tests::output_partial_credit_and_dedup ... ok test relay::tests::overflowing_ranges_never_mutate_cursors ... ok test relay::tests::returned_credit_cancels_starvation_and_state_has_no_payload_buffer ... ok test relay::tests::starvation_is_one_shot_and_snapshot_length_does_not_advance_sequence ... ok test relay::tests::tiny_snapshot_credit_is_one_frame_debt_not_unlimited_output ... ok test sessions::tests::reader_borrow_measurement ... ignored, release borrowed versus owned asynchronous receive measurement test relay::tests::initial_ring_wrap_repaint_with_insufficient_credit_obeys_debt ... ok test sessions::tests::refused_socket_is_removed_but_insecure_directory_is_rejected ... ok test sessions::tests::symlink_state_cannot_redirect_private_runtime_storage ... ok test sessions::tests::post_listen_chmod_wakes_a_connection_refused_at_bind ... ok test sessions::tests::sequenced_attach_intersects_caps_and_legacy_attach_stays_zero ... ok test sessions::tests::borrowed_reader_payload_uses_reusable_cancel_safe_storage ... ok test sessions::tests::cancelled_fragmented_shim_read_retains_header_and_body_progress ... ok test result: ok. 13 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.03s Running tests/transport.rs (target/debug/deps/transport-ed8193dfcba5b7a0) running 2 tests test oversized_header_and_truncated_frame_are_rejected ... ok test fragmented_headers_coalesced_frames_and_reusable_transmit ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s 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 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::split_mux_header_preserves_trailing_close ... ok test tests::oversized_encode_keeps_the_reusable_output_unchanged ... ok test stream_tests::all_short_frame_splits_match_direct_decoding ... ok test stream_tests::maximum_sized_fragmented_frame_is_not_rejected ... ok test tests::mux_round_trip_and_incremental_decoders_preserve_frame_order ... 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-0899e35831817744) running 12 tests 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::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::recovery_expiry_revocation_and_cross_user_isolation ... 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 15.29s Running unittests src/lib.rs (target/debug/deps/infraternal_shim-2fd8334f3fce03a4) running 19 tests test frame::checks::codec_reuse_measurement ... ignored, release codec and allocation-path measurement test frame::checks::golden::every_frozen_message ... ok 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::tests::golden_and_fragmented ... ok test session::measurements::poll_storage_measurement ... ignored, release poll-storage allocation measurement test session::sequenced_checks::coalesced_ack_never_overwrites_a_partial_output_and_cursors_survive_peer_loss ... ok test session::sequenced_checks::reusable_encoder_retains_capacity_and_refuses_growth_before_mutation ... ok test session::sequenced_checks::new_frames_roundtrip_and_refuse_noncanonical_payloads ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test session::sequenced_checks::trim_duplicates_gaps_overflow_and_capacity_are_transactional ... 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::borrowed_and_owned_decoders_agree_at_every_fragment_boundary ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 14 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.18s Running tests/detach.rs (target/debug/deps/detach-f166a95c6d08480e) 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.70s 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-agent/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-agent 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-agent/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'hashbrown' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent v0.1.0 │ └── infraternal v0.1.0 (*) ├── infraternal-server v0.1.0 (*) ├── webauthn-attestation-ca v0.5.5 (*) ├── webauthn-rs v0.5.5 (*) └── webauthn-rs-core v0.5.5 (*) warning[duplicate]: found 2 duplicate entries for crate 'rand' ┌─ /home/kayg/Developer/infraternal/.worktrees/t-agent/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-agent/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-agent/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-agent/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-agent v0.1.0 │ │ │ └── infraternal 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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-agent 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 (*) │ │ ├── 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-agent 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-agent/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-agent/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-agent/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-agent/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-agent 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-agent v0.1.0 │ │ │ └── infraternal 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-agent 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 │ │ └── 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-agent 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 (*) ├── 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 (*) ├── 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.15s 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: 9907712 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: 8327856 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.75ms] (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.71ms] (pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.19ms] (pass) split mux header preserves trailing Close [0.15ms] 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 [1877.60ms] (pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [8.04ms] 7 pass 0 fail 34390 expect() calls Ran 7 tests across 2 files. [1.90s] ```
Author
Owner

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Agent core merged (6c64ede, 48d7bab in dev and prod); review R3 fixed (e72589e), integrated via #34. 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: Agent core merged (6c64ede, 48d7bab in dev and prod); review R3 fixed (e72589e), integrated via #34. Reopen if anything is still missing.
kayg closed this issue 2026-10-28 17:52:12 +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#20
No description provided.