S1 lane: session shim (PTY, VT state, frozen socket protocol) #16

Closed
opened 2026-10-06 10:10:49 +00:00 by kayg · 15 comments
Owner

Implement contracts/shim.md in infraternal-shim: the PTY, the VT state with snapshots, the ring buffer, the frozen v1 framing, SO_PEERCRED, and survival through a restart (scope or setsid). Audited unsafe only in the PTY module. Base: s1-base 386acfd. Part of #9.

Implement `contracts/shim.md` in `infraternal-shim`: the PTY, the VT state with snapshots, the ring buffer, the frozen v1 framing, SO_PEERCRED, and survival through a restart (scope or setsid). Audited unsafe only in the PTY module. Base: `s1-base` `386acfd`. Part of #9.
Author
Owner

Starting S1 session shim on branch lane-shim, base s1-base at 386acfd. Read CLAUDE.md, DECISIONS.md, docs/ARCHITECTURE.md and contracts/shim.md. Will measure VT candidates, implement frozen v1 framing and PTY lifecycle, exercise reconnect/survival, fuzz the decoder for at least ten minutes, and run the requested fast gate.

Starting S1 session shim on branch lane-shim, base s1-base at 386acfd. Read CLAUDE.md, DECISIONS.md, docs/ARCHITECTURE.md and contracts/shim.md. Will measure VT candidates, implement frozen v1 framing and PTY lifecycle, exercise reconnect/survival, fuzz the decoder for at least ten minutes, and run the requested fast gate.
Author
Owner

Contract finding: contracts/shim.md section 4 leaves Attach/live-stream ordering and future ReadFrom offsets unspecified. Proposed v1 interpretation: Hello is followed by Attach (caps=0); ReadFrom or SnapshotRequest establishes the output delivery cursor, then live Output continues from that cursor. This prevents output racing replay and producing duplicate bytes. ReadFrom above head_seq is rejected; ExitAck is accepted only after shell exit and PTY drain. No frame changes. Ring fallback Snapshot is generated at the current head, and streaming resumes exactly there. Also snapshots must be bounded to the 1 MiB frame limit, trimming only the oldest scrollback tail.

Contract finding: contracts/shim.md section 4 leaves Attach/live-stream ordering and future ReadFrom offsets unspecified. Proposed v1 interpretation: Hello is followed by Attach (caps=0); ReadFrom or SnapshotRequest establishes the output delivery cursor, then live Output continues from that cursor. This prevents output racing replay and producing duplicate bytes. ReadFrom above head_seq is rejected; ExitAck is accepted only after shell exit and PTY drain. No frame changes. Ring fallback Snapshot is generated at the current head, and streaming resumes exactly there. Also snapshots must be bounded to the 1 MiB frame limit, trimming only the oldest scrollback tail.
Author
Owner

VT evidence (release, 200x60, same ASCII stream): alacritty_terminal 0.25.1 58.63 MB/s and +47,988 KiB RSS for 10,000 retained lines; vt100 0.16.2 42.51 MB/s and +63,704 KiB. libghostty-vt 0.2.2 safe binding builds with Zig 0.15.2 (0.16 rejected); corrected retention uses bytes despite API docs saying lines: +19,672 KiB for 10,001 lines, 138.26 MB/s in the throughput run (later 38,799 retained lines). Its available VT formatter failed cursor restoration on vim/htop/less and continuation equality on all three; htop repaint differed too (target/shim-ghostty-fixtures.log). Chose Alacritty: custom screen/primary/alternate/cursor/mode repaint passes real captured vim, htop, less fixtures and their continuations in terminal.rs. Snapshot 200x60 plus 256-line tail: p50 0.434 ms, p99 0.819 ms, 69,406 bytes. Input decode through a real PTY write: 10,000 samples, p50 1.497 us, p99 9.296 us (target/shim-budgets.log). Survival tests passed: separate transient systemd user scope remains active after parent service stop; setsid/double-fork shim remains usable after launcher SIGKILL. Five real socket integration tests pass. Repaint requests will be deferred to complete frame boundaries, rather than rejecting a valid request while Output is partly sent. Hello pid denotes shim pid; oversized repaint returns Error without killing the shell. These resolve unspecified ordering/limit behavior without changing v1 bytes.

VT evidence (release, 200x60, same ASCII stream): alacritty_terminal 0.25.1 58.63 MB/s and +47,988 KiB RSS for 10,000 retained lines; vt100 0.16.2 42.51 MB/s and +63,704 KiB. libghostty-vt 0.2.2 safe binding builds with Zig 0.15.2 (0.16 rejected); corrected retention uses bytes despite API docs saying lines: +19,672 KiB for 10,001 lines, 138.26 MB/s in the throughput run (later 38,799 retained lines). Its available VT formatter failed cursor restoration on vim/htop/less and continuation equality on all three; htop repaint differed too (target/shim-ghostty-fixtures.log). Chose Alacritty: custom screen/primary/alternate/cursor/mode repaint passes real captured vim, htop, less fixtures and their continuations in terminal.rs. Snapshot 200x60 plus 256-line tail: p50 0.434 ms, p99 0.819 ms, 69,406 bytes. Input decode through a real PTY write: 10,000 samples, p50 1.497 us, p99 9.296 us (target/shim-budgets.log). Survival tests passed: separate transient systemd user scope remains active after parent service stop; setsid/double-fork shim remains usable after launcher SIGKILL. Five real socket integration tests pass. Repaint requests will be deferred to complete frame boundaries, rather than rejecting a valid request while Output is partly sent. Hello pid denotes shim pid; oversized repaint returns Error without killing the shell. These resolve unspecified ordering/limit behavior without changing v1 bytes.
Author
Owner

Final findings/evidence: optimized the metadata observer to skip printable ASCII in ground state; the complete shim VT path now parses 44.69 MB/s, preserving 10,000 lines (release test terminal::throughput::measured_parser). Final latency samples: Input decode through successful real PTY write p99 17.007 us (10,000 samples); 200x60 screen plus bounded tail p99 1.103 ms (1,000 samples), 74,157 bytes. Fresh static binary idle RSS 1,160 KiB (1.133 MiB); ring allocated lazily. Rootful security canary verifies uid 1001 in real/effective/saved/fs slots, groups 27/1001 without root, home traversal after uid drop, rejection of uid 65534 via SO_PEERCRED, and retention of the authenticated root peer (tests/security.py; target/shim-security.log). Fuzzer finished 3,470,294 executions in 611 seconds without crash, cov=434 ft=1244 (target/shim-fuzz.log); LLVM coverage needed fuzz-only LTO=false after undefined _sancov_gen symbols, production LTO unchanged. The real vim socket integration now compares all 12,000 visible cells, colors/styles and cursor to an independent VT fed raw Output, at the same byte offset as the ring-wrap Snapshot. Both survival paths run here; detached-progress/backpressure and replacement checks pass. Evidence/reproduction and the five unsafe review sites are recorded in docs/S1-SHIM.md. Second reviewer audit remains the contract-required merge review; this lane does not claim to independently review itself.

Final findings/evidence: optimized the metadata observer to skip printable ASCII in ground state; the complete shim VT path now parses 44.69 MB/s, preserving 10,000 lines (release test terminal::throughput::measured_parser). Final latency samples: Input decode through successful real PTY write p99 17.007 us (10,000 samples); 200x60 screen plus bounded tail p99 1.103 ms (1,000 samples), 74,157 bytes. Fresh static binary idle RSS 1,160 KiB (1.133 MiB); ring allocated lazily. Rootful security canary verifies uid 1001 in real/effective/saved/fs slots, groups 27/1001 without root, home traversal after uid drop, rejection of uid 65534 via SO_PEERCRED, and retention of the authenticated root peer (tests/security.py; target/shim-security.log). Fuzzer finished 3,470,294 executions in 611 seconds without crash, cov=434 ft=1244 (target/shim-fuzz.log); LLVM coverage needed fuzz-only LTO=false after undefined __sancov_gen_ symbols, production LTO unchanged. The real vim socket integration now compares all 12,000 visible cells, colors/styles and cursor to an independent VT fed raw Output, at the same byte offset as the ring-wrap Snapshot. Both survival paths run here; detached-progress/backpressure and replacement checks pass. Evidence/reproduction and the five unsafe review sites are recorded in docs/S1-SHIM.md. Second reviewer audit remains the contract-required merge review; this lane does not claim to independently review itself.
Author
Owner

Finished implementation on lane-shim at 7c879a47e508a32452571d2bb5d750a10311b718, base 386acfd3dc. One atomic feature commit; worktree clean; no push/deploy. Frozen v1 codec, PTY/session lifecycle, secure Unix rendezvous, bounded exactly-once replay/backpressure, Alacritty repaint and hidden __shim are implemented. Real vim fallback compares 12,000 visible cells, styles and cursor against raw-output VT at the same seq. Seven socket integrations and eight unit tests pass; both systemd scope and launcher-SIGKILL survival tests ran here. Five SAFETY-documented unsafe sites are confined to pty; second-reviewer audit remains the required merge review.

Gate command: nix shell nixpkgs#binutils nixpkgs#file -c scripts/verify fast
Exit status: 0. Output verbatim:


==> fmt

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

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

running 0 tests

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

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

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

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

running 0 tests

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

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

running 0 tests

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

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

running 0 tests

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

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

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_server-3a7dcd467cd5ddf2)

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_shim-d4acae7815975a8c)

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

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

   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 'windows-sys'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/lane-shim/Cargo.lock:83:1
   │  
83 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
84 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
   │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ windows-sys v0.59.0
     └── alacritty_terminal v0.25.1
         └── infraternal-shim v0.1.0
             ├── infraternal v0.1.0
             └── infraternal-fuzz v0.1.0
   ├ windows-sys v0.61.2
     ├── anstyle-query v1.1.5
     │   └── anstream v1.0.0
     │       └── clap_builder v4.6.7
     │           └── clap v4.6.7
     │               └── infraternal v0.1.0
     ├── anstyle-wincon v3.0.11
     │   └── anstream v1.0.0 (*)
     ├── errno v0.3.14
     │   ├── rustix v1.1.5
     │   │   ├── alacritty_terminal v0.25.1
     │   │   │   └── infraternal-shim v0.1.0
     │   │   │       ├── infraternal v0.1.0 (*)
     │   │   │       └── infraternal-fuzz v0.1.0
     │   │   ├── polling v3.11.0
     │   │   │   └── alacritty_terminal v0.25.1 (*)
     │   │   └── rustix-openpty v0.2.0
     │   │       └── alacritty_terminal v0.25.1 (*)
     │   ├── rustix-openpty v0.2.0 (*)
     │   └── signal-hook-registry v1.4.8
     │       └── signal-hook v0.3.18
     │           └── alacritty_terminal v0.25.1 (*)
     ├── home v0.5.12
     │   └── alacritty_terminal v0.25.1 (*)
     ├── miow v0.6.1
     │   └── alacritty_terminal v0.25.1 (*)
     ├── polling v3.11.0 (*)
     └── rustix v1.1.5 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Finished `release` profile [optimized] target(s) in 0.05s
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: 1024920 bytes
    Finished `release` profile [optimized] target(s) in 0.04s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 875544 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         |
+---------------------------+--------------+

Release budget/throughput output verbatim:

   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim)
    Finished `release` profile [optimized] target(s) in 11.99s
     Running unittests src/lib.rs (target/release/deps/infraternal_shim-8324859e1eed4dd2)

running 3 tests
Input decode -> real PTY write: n=10000 p50=0.958 us p99=17.007 us
test session::budgets::input_to_pty_write ... ok
Snapshot 200x60 + 256-line tail: p50=0.543 ms p99=1.103 ms bytes=74157
test terminal::budgets::snapshot_200x60 ... ok
shim VT including observer: 44.69 MB/s, 10,000-line retention
test terminal::throughput::measured_parser ... ok

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

Final static idle and rootful canary output verbatim:

static shim idle RSS: 1124 KiB (1.098 MiB); 80x24; default 8 MiB ring allocated lazily; 10,000-line scrollback limit
PTY slave: uid=1001, mode=0600
rootful shell: real/effective/saved/fs uid=['1001', '1001', '1001', '1001']; supplementary groups=['27', '1001']; root group absent
SO_PEERCRED: uid 65534 connected but received no Hello; authenticated root connection retained
Exited(0) -> ExitAck: shim exited and socket removed

shim_frame_decode ASan/libFuzzer: Done 3470294 runs in 611 second(s), no crash; cov=434 ft=1244, corpus=296/64KiB. Fuzz-only LTO override and all reproduction commands/VT comparisons are recorded in docs/S1-SHIM.md and fuzz/README.md. Raw logs are under target/shim-*. Binary VT recordings and fuzz seeds are marked binary to preserve exact CR/escape bytes. All dependencies are workspace-declared with commit-body reasons; cargo-deny green including permissive NCSA harness licensing. Issue stays open for review/owner merge.

Finished implementation on lane-shim at 7c879a47e508a32452571d2bb5d750a10311b718, base 386acfd3dc6255c7f58f98b4f114d5d7326292ad. One atomic feature commit; worktree clean; no push/deploy. Frozen v1 codec, PTY/session lifecycle, secure Unix rendezvous, bounded exactly-once replay/backpressure, Alacritty repaint and hidden __shim are implemented. Real vim fallback compares 12,000 visible cells, styles and cursor against raw-output VT at the same seq. Seven socket integrations and eight unit tests pass; both systemd scope and launcher-SIGKILL survival tests ran here. Five SAFETY-documented unsafe sites are confined to pty; second-reviewer audit remains the required merge review. Gate command: nix shell nixpkgs#binutils nixpkgs#file -c scripts/verify fast Exit status: 0. Output verbatim: ```text ==> fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.10s ==> test Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s Running unittests src/main.rs (target/debug/deps/infraternal-7bd7fe7437694712) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-ceb57354563cc582) 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.20s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-342516d5dbf00714) 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_server-3a7dcd467cd5ddf2) 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_shim-d4acae7815975a8c) running 11 tests test frame::tests::invalid_lengths_types_and_utf8 ... ok test frame::golden::every_frozen_message ... ok test session::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test terminal::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test ring::tests::wrap_and_exact_offsets ... ok test terminal::throughput::measured_parser ... ignored, VT observer and history throughput measurement test frame::tests::golden_and_fragmented ... ok test terminal::tests::margins_tabs_charsets_and_modes_continue ... ok test frame::golden::exact_maximum_and_coalesced_frames ... ok test terminal::tests::partial_csi_and_utf8_continue ... ok test terminal::tests::fixtures_and_continuations_repaint ... ok test result: ok. 8 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.09s 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 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/lane-shim/Cargo.lock:83:1 │ 83 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 84 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ windows-sys v0.61.2 ├── anstyle-query v1.1.5 │ └── anstream v1.0.0 │ └── clap_builder v4.6.7 │ └── clap v4.6.7 │ └── infraternal v0.1.0 ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ └── signal-hook v0.3.18 │ └── alacritty_terminal v0.25.1 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── polling v3.11.0 (*) └── rustix v1.1.5 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Finished `release` profile [optimized] target(s) in 0.05s 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: 1024920 bytes Finished `release` profile [optimized] target(s) in 0.04s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 875544 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 | +---------------------------+--------------+ ``` Release budget/throughput output verbatim: ```text Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim) Finished `release` profile [optimized] target(s) in 11.99s Running unittests src/lib.rs (target/release/deps/infraternal_shim-8324859e1eed4dd2) running 3 tests Input decode -> real PTY write: n=10000 p50=0.958 us p99=17.007 us test session::budgets::input_to_pty_write ... ok Snapshot 200x60 + 256-line tail: p50=0.543 ms p99=1.103 ms bytes=74157 test terminal::budgets::snapshot_200x60 ... ok shim VT including observer: 44.69 MB/s, 10,000-line retention test terminal::throughput::measured_parser ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.89s ``` Final static idle and rootful canary output verbatim: ```text static shim idle RSS: 1124 KiB (1.098 MiB); 80x24; default 8 MiB ring allocated lazily; 10,000-line scrollback limit PTY slave: uid=1001, mode=0600 rootful shell: real/effective/saved/fs uid=['1001', '1001', '1001', '1001']; supplementary groups=['27', '1001']; root group absent SO_PEERCRED: uid 65534 connected but received no Hello; authenticated root connection retained Exited(0) -> ExitAck: shim exited and socket removed ``` shim_frame_decode ASan/libFuzzer: Done 3470294 runs in 611 second(s), no crash; cov=434 ft=1244, corpus=296/64KiB. Fuzz-only LTO override and all reproduction commands/VT comparisons are recorded in docs/S1-SHIM.md and fuzz/README.md. Raw logs are under target/shim-*. Binary VT recordings and fuzz seeds are marked binary to preserve exact CR/escape bytes. All dependencies are workspace-declared with commit-body reasons; cargo-deny green including permissive NCSA harness licensing. Issue stays open for review/owner merge.
Author
Owner

Independent review started on lane-shim at 7c879a47e508a32452571d2bb5d750a10311b718; base s1-base 386acfd3dc. Read-only audit against contracts/shim.md and decisions 7, 13, 17, 40, 41. Findings and reproductions will be recorded as review proceeds.

Independent review started on lane-shim at 7c879a47e508a32452571d2bb5d750a10311b718; base s1-base 386acfd3dc6255c7f58f98b4f114d5d7326292ad. Read-only audit against contracts/shim.md and decisions 7, 13, 17, 40, 41. Findings and reproductions will be recorded as review proceeds.
Author
Owner

Independent review blocker: snapshot continuation fails for prefix PRIMARY ESC[?47h ALTERNATE, snapshot into fresh Terminal, then ESC[?47l X in both. Cell 0:7 differs (original A, restored space). Failing independent test terminal::independent_review::alt47; target/review-shim-probes.log; source terminal.rs:97-100, 207-217, 301-303. Observer handles 47/1047 as alternate-screen changes although runtime parser semantics differ. Also history is one commit mixing 58 files / 3671 additions, rejected by owner atomic-history requirement.

Independent review blocker: snapshot continuation fails for prefix PRIMARY ESC[?47h ALTERNATE, snapshot into fresh Terminal, then ESC[?47l X in both. Cell 0:7 differs (original A, restored space). Failing independent test terminal::independent_review::alt47; target/review-shim-probes.log; source terminal.rs:97-100, 207-217, 301-303. Observer handles 47/1047 as alternate-screen changes although runtime parser semantics differ. Also history is one commit mixing 58 files / 3671 additions, rejected by owner atomic-history requirement.
Author
Owner

Independent unsafe audit should-fix: exported detach() with fd0 closed after Rust startup loses /dev/null stdin. Reproduction target/review-harness/src/main.rs: nix::unistd::close(0), actual infraternal_shim::detach(), grandchild read_link(/proc/self/fd/0) => ENOENT (target/review-detach-fd0.log). pty.rs:190-199 opens File at fd0; dup2(0,0) is a no-op, then File drop closes fd0. SAFETY ownership comment is false for this input. Duplicate source above fd2 and use safe nix dup2_stdin/stdout/stderr. Normal CLI startup repairs missing std fds; this finding concerns the exported API. VT blocker also reproduces immediately for DECSET 1047; target/review-shim-extra.log. Correct repaint lines: terminal.rs:290-292.

Independent unsafe audit should-fix: exported detach() with fd0 closed after Rust startup loses /dev/null stdin. Reproduction target/review-harness/src/main.rs: nix::unistd::close(0), actual infraternal_shim::detach(), grandchild read_link(/proc/self/fd/0) => ENOENT (target/review-detach-fd0.log). pty.rs:190-199 opens File at fd0; dup2(0,0) is a no-op, then File drop closes fd0. SAFETY ownership comment is false for this input. Duplicate source above fd2 and use safe nix dup2_stdin/stdout/stderr. Normal CLI startup repairs missing std fds; this finding concerns the exported API. VT blocker also reproduces immediately for DECSET 1047; target/review-shim-extra.log. Correct repaint lines: terminal.rs:290-292.
Author
Owner

Independent review finished at head 7c879a47e508a32452571d2bb5d750a10311b718. Verdict: MERGE AFTER FIXES.

Blockers:

  1. Snapshot corruption after DECSET47/1047. Prefix PRIMARY ESC[?47h ALTERNATE (also 1047) yields stale primary copy although Alacritty ignores that mode; fresh snapshot loses cell 0:7 (A becomes space). Independent failing tests in target/review-harness/src/terminal.rs, target/review-shim-probes.log and target/review-shim-extra.log; terminal.rs:95-100,201-209,255,290-292. Fix observer/runtime disagreement and add regressions.
  2. History: exactly one 58-file / 3671-addition commit mixes dependencies/modules/CLI/tests/fuzz/benches/docs. Owner requires atomic buildable split. Proposed split is recorded in findings.md.

Should-fix: detach() called with fd0 closed after Rust startup drops /dev/null fd0, confirmed by actual API probe ENOENT. Fix source-fd aliasing and inaccurate ownership comment at pty.rs:190-199. Safe nix duplication/chdir alternatives exist; safe rustix tcsetwinsize can replace resize ioctl.

Evidence: 7 real socket tests passed with both systemd parent-service stop and double-fork SIGKILL survival exercised (no skips); independent 20 concurrent two-peer races preserved contiguous output through final_seq=1439 and ExitAck; replay boundary tests passed. Supplied vim/htop/less tests pass despite the independent VT failure. Rootful UID and GID all four slots=1001, groups=27/1001; uid65534 refused and root peer retained. Idle RSS=1132/1100 KiB; Input→real PTY p99=7.566 us; snapshot p99=1.010 ms (74157 bytes); parser=49.05 MB/s. Local measurements, not perf VM. Static sizes base→head: x86_64 musl 705624→1024920 (+319296); aarch64 musl 607880→875544 (+267664). Runtime Alacritty only; vt100 dev-only, Ghostty opt-in.

Review report: /home/kayg/.local/state/codex-jobs/infraternal/review-shim/findings.md. Tracked checkout unchanged; no commits/push/deploy. Full scripts/verify fast output verbatim follows (all PASS); independent failing probes are outside this existing gate.


==> fmt

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

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

running 0 tests

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

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

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

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

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

running 0 tests

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

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

running 0 tests

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

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

running 0 tests

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

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

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_server-3a7dcd467cd5ddf2)

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_shim-d4acae7815975a8c)

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

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

   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 'windows-sys'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/lane-shim/Cargo.lock:83:1
   │  
83 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
84 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
   │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ windows-sys v0.59.0
     └── alacritty_terminal v0.25.1
         └── infraternal-shim v0.1.0
             ├── infraternal v0.1.0
             └── infraternal-fuzz v0.1.0
   ├ windows-sys v0.61.2
     ├── anstyle-query v1.1.5
     │   └── anstream v1.0.0
     │       └── clap_builder v4.6.7
     │           └── clap v4.6.7
     │               └── infraternal v0.1.0
     ├── anstyle-wincon v3.0.11
     │   └── anstream v1.0.0 (*)
     ├── errno v0.3.14
     │   ├── rustix v1.1.5
     │   │   ├── alacritty_terminal v0.25.1
     │   │   │   └── infraternal-shim v0.1.0
     │   │   │       ├── infraternal v0.1.0 (*)
     │   │   │       └── infraternal-fuzz v0.1.0
     │   │   ├── polling v3.11.0
     │   │   │   └── alacritty_terminal v0.25.1 (*)
     │   │   └── rustix-openpty v0.2.0
     │   │       └── alacritty_terminal v0.25.1 (*)
     │   ├── rustix-openpty v0.2.0 (*)
     │   └── signal-hook-registry v1.4.8
     │       └── signal-hook v0.3.18
     │           └── alacritty_terminal v0.25.1 (*)
     ├── home v0.5.12
     │   └── alacritty_terminal v0.25.1 (*)
     ├── miow v0.6.1
     │   └── alacritty_terminal v0.25.1 (*)
     ├── polling v3.11.0 (*)
     └── rustix v1.1.5 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 4.41s
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: 1024920 bytes
    Finished `release` profile [optimized] target(s) in 0.05s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 875544 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         |
+---------------------------+--------------+
Independent review finished at head 7c879a47e508a32452571d2bb5d750a10311b718. Verdict: MERGE AFTER FIXES. Blockers: 1. Snapshot corruption after DECSET47/1047. Prefix PRIMARY ESC[?47h ALTERNATE (also 1047) yields stale primary copy although Alacritty ignores that mode; fresh snapshot loses cell 0:7 (A becomes space). Independent failing tests in target/review-harness/src/terminal.rs, target/review-shim-probes.log and target/review-shim-extra.log; terminal.rs:95-100,201-209,255,290-292. Fix observer/runtime disagreement and add regressions. 2. History: exactly one 58-file / 3671-addition commit mixes dependencies/modules/CLI/tests/fuzz/benches/docs. Owner requires atomic buildable split. Proposed split is recorded in findings.md. Should-fix: detach() called with fd0 closed after Rust startup drops /dev/null fd0, confirmed by actual API probe ENOENT. Fix source-fd aliasing and inaccurate ownership comment at pty.rs:190-199. Safe nix duplication/chdir alternatives exist; safe rustix tcsetwinsize can replace resize ioctl. Evidence: 7 real socket tests passed with both systemd parent-service stop and double-fork SIGKILL survival exercised (no skips); independent 20 concurrent two-peer races preserved contiguous output through final_seq=1439 and ExitAck; replay boundary tests passed. Supplied vim/htop/less tests pass despite the independent VT failure. Rootful UID and GID all four slots=1001, groups=27/1001; uid65534 refused and root peer retained. Idle RSS=1132/1100 KiB; Input→real PTY p99=7.566 us; snapshot p99=1.010 ms (74157 bytes); parser=49.05 MB/s. Local measurements, not perf VM. Static sizes base→head: x86_64 musl 705624→1024920 (+319296); aarch64 musl 607880→875544 (+267664). Runtime Alacritty only; vt100 dev-only, Ghostty opt-in. Review report: /home/kayg/.local/state/codex-jobs/infraternal/review-shim/findings.md. Tracked checkout unchanged; no commits/push/deploy. Full scripts/verify fast output verbatim follows (all PASS); independent failing probes are outside this existing gate. ```text ==> fmt ==> clippy Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.07s ==> test Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s Running unittests src/main.rs (target/debug/deps/infraternal-7bd7fe7437694712) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-ceb57354563cc582) running 7 tests test double_fork_survives_parent_death ... ok test disallowed_signal_only_disconnects_peer ... ok test replacement_connection_and_malformed_limit ... ok active test user_scope_survives_parent_unit_stop ... ok test real_shell_reconnect_resize_and_retained_exit ... ok test attached_backpressure_and_detached_progress ... ok test ring_wrap_snapshot_repaints_real_vim ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-342516d5dbf00714) 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_server-3a7dcd467cd5ddf2) 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_shim-d4acae7815975a8c) running 11 tests test session::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test terminal::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test frame::golden::every_frozen_message ... ok test frame::tests::invalid_lengths_types_and_utf8 ... ok test frame::tests::golden_and_fragmented ... ok test ring::tests::wrap_and_exact_offsets ... ok test terminal::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::tests::partial_csi_and_utf8_continue ... ok test frame::golden::exact_maximum_and_coalesced_frames ... ok test terminal::tests::fixtures_and_continuations_repaint ... ok test result: ok. 8 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.10s 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 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/lane-shim/Cargo.lock:83:1 │ 83 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 84 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ windows-sys v0.61.2 ├── anstyle-query v1.1.5 │ └── anstream v1.0.0 │ └── clap_builder v4.6.7 │ └── clap v4.6.7 │ └── infraternal v0.1.0 ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ └── signal-hook v0.3.18 │ └── alacritty_terminal v0.25.1 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── polling v3.11.0 (*) └── rustix v1.1.5 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Blocking waiting for file lock on build directory Finished `release` profile [optimized] target(s) in 4.41s 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: 1024920 bytes Finished `release` profile [optimized] target(s) in 0.05s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 875544 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 | +---------------------------+--------------+ ```
Author
Owner

Starting independent-review fixes on lane-shim, reviewed head 7c879a47e508a32452571d2bb5d750a10311b718, base s1-base 386acfd3dc. Read all findings and contracts. Will reproduce VT and closed-fd regressions before fixes, tag lane-shim-v1, then reconstruct atomic buildable commits and remeasure contract §5.

Starting independent-review fixes on lane-shim, reviewed head 7c879a47e508a32452571d2bb5d750a10311b718, base s1-base 386acfd3dc6255c7f58f98b4f114d5d7326292ad. Read all findings and contracts. Will reproduce VT and closed-fd regressions before fixes, tag lane-shim-v1, then reconstruct atomic buildable commits and remeasure contract §5.
Author
Owner

Confirmed both review regressions before editing: target/fix-vt-red.log fails immediate DECSET47 repaint at cell 0:7 (A becomes space); target/fix-detach-result.log initially reproduced ENOENT for fd0. Observer now recognizes only runtime-supported 1049, leaving ignored 47/1047 consistent with Alacritty. Six variant/nesting cases compare 12,000 cells immediately and after continuation (target/fix-vt-green.log). Detach now duplicates its owned source above fd2 with CLOEXEC before safe dup2 wrappers; the probe returns all three descriptors as /dev/null. Added automated coverage for all seven combinations of closed standard fds. Replaced raw chdir with allocation-free nix CStr wrapper. Retaining sound TIOCSWINSZ ioctl avoids a new production dependency solely for a reviewed, documented syscall.

Confirmed both review regressions before editing: target/fix-vt-red.log fails immediate DECSET47 repaint at cell 0:7 (A becomes space); target/fix-detach-result.log initially reproduced ENOENT for fd0. Observer now recognizes only runtime-supported 1049, leaving ignored 47/1047 consistent with Alacritty. Six variant/nesting cases compare 12,000 cells immediately and after continuation (target/fix-vt-green.log). Detach now duplicates its owned source above fd2 with CLOEXEC before safe dup2 wrappers; the probe returns all three descriptors as /dev/null. Added automated coverage for all seven combinations of closed standard fds. Replaced raw chdir with allocation-free nix CStr wrapper. Retaining sound TIOCSWINSZ ioctl avoids a new production dependency solely for a reviewed, documented syscall.
Author
Owner

Review audit answers: exactly-once replay/cursor ordering, authenticated replacement, frozen decoder bounds/caps, CLOEXEC shell inheritance, default 0700/0600 socket security and credential-drop order remain unchanged; their independent probes remain valid evidence for the reviewed code, and the final gate reruns real lifecycle tests. Custom --state parents remain trusted launcher choices; stale socket removal belongs to the infraternal agent. The separate user scope test proves parent-service-stop survival, not rootful installer restart or survival of stopping the shim own scope. No new claims on those limits. vt100 stays test-only, Ghostty stays optional benchmark-only. Original fuzz campaign is historical evidence, not independently rerun here. Replacing raw chdir and dup2 addresses the cheap unsafe nits; TIOCSWINSZ stays as the reviewed sound ioctl to avoid adding a production dependency for one call. Five unsafe boundaries remain, with unique ownership documented for the new fresh-fd-to-File transfer. First budget attempt overlapped builds and benchmark threads and failed snapshot p99 at 12.672 ms (target/fix-budgets.log); serial follow-up passes at input p99 16.002 us, snapshot p99 1.213 ms, throughput 53.41 MB/s, idle 1124 KiB. These are local host figures, not pinned perf VM or all-style worst-case results.

Review audit answers: exactly-once replay/cursor ordering, authenticated replacement, frozen decoder bounds/caps, CLOEXEC shell inheritance, default 0700/0600 socket security and credential-drop order remain unchanged; their independent probes remain valid evidence for the reviewed code, and the final gate reruns real lifecycle tests. Custom --state parents remain trusted launcher choices; stale socket removal belongs to the infraternal agent. The separate user scope test proves parent-service-stop survival, not rootful installer restart or survival of stopping the shim own scope. No new claims on those limits. vt100 stays test-only, Ghostty stays optional benchmark-only. Original fuzz campaign is historical evidence, not independently rerun here. Replacing raw chdir and dup2 addresses the cheap unsafe nits; TIOCSWINSZ stays as the reviewed sound ioctl to avoid adding a production dependency for one call. Five unsafe boundaries remain, with unique ownership documented for the new fresh-fd-to-File transfer. First budget attempt overlapped builds and benchmark threads and failed snapshot p99 at 12.672 ms (target/fix-budgets.log); serial follow-up passes at input p99 16.002 us, snapshot p99 1.213 ms, throughput 53.41 MB/s, idle 1124 KiB. These are local host figures, not pinned perf VM or all-style worst-case results.
Author
Owner

Finished review fixes on lane-shim. Base: 386acfd3dc. Head: 9aacc4568c. Reviewed head preserved as lane-shim-v1 (7c879a47e508a32452571d2bb5d750a10311b718). Worktree clean; no push or deployment.

All blockers and should-fix items repaired. VT observer now agrees with runtime-supported 1049; ignored 47/1047 no longer cause stale primary repaint. Six ordinary/nested cases compare 12,000 cells immediately and after continuation. Detach owns its temporary CLOEXEC source above fd2; all seven closed-standard-fd combinations pass. Raw chdir replaced with safe nix CStr wrapper; reviewed sound resize ioctl retained as answered in the audit comment. Every finding and evidence limitation is answered in this and preceding comments, and docs/S1-SHIM.md records the complete handoff.

Final serial local release budgets (target/final-budgets.log and target/final-idle.log): Input decode through successful real-PTY write n=10000 p50=2.118 us p99=4.777 us (<200 us); 200x60 snapshot plus 256-line tail n=1000 p50=0.426 ms p99=0.669 ms, 74157 bytes (<2 ms); parser+observer 57.35 MB/s; actual static shim idle RSS 1136 KiB / 1.109 MiB (<4 MiB), 80x24 fresh login with lazy ring. These exclude socket scheduling/shell echo and full ring/full scrollback, and are not pinned perf VM figures. The earlier loaded-host 12.672 ms failure remains documented.

Rootful canary rerun passes (target/final-security.log): slave uid1001/mode0600, UID slots1001, groups27/1001, uid65534 peer refused without replacing authenticated peer, ExitAck removes socket. Seven real socket integration tests pass, including separate user-scope parent-service-stop survival, with no skips. Historical independent twenty-race, boundary-offset, credential and fd-audit evidence is retained, without claiming it was all rerun or that the installer restart path is covered.

Static builds have no PT_INTERP. Complete lane vs independently measured base: x86_64 1025208 vs705624 (+319584 /45.29%); aarch64 875968 vs607880 (+268088 /44.10%). Repair vs reviewed head adds288/424 bytes respectively. Final lockfile equals reviewed lockfile; vt100 remains dev-only and Ghostty optional bench-only. Existing windows-sys duplicate warning remains allowed by cargo-deny policy; all advisory/license/source checks pass. Decoder unchanged; original fuzz campaign remains historical evidence.

Atomic commits, each passed nix shell nixpkgs#binutils nixpkgs#file -c scripts/verify fast. Full outputs are target/history-gates/01.log through19.log in this order; regression/benchmark harnesses are separated from production modules:

8e33741 Declare Linux shim syscall dependency
03164d7 Implement frozen v1 shim frame codec
644cbc1 Retain detached PTY output by exact byte offset
2bf7fea Own PTYs and detach without closing redirected standard fds
28e8464 Declare measured Alacritty VT state dependencies
a5f0182 Serialize VT snapshots with runtime-consistent screen switches
6d3a755 Pump authenticated shim sessions through replay and retained exit
e511f6f Wire hidden shim startup into the static binary
4e96885 Declare independent terminal oracle for tests
b0e981a Test frozen frame bytes and bounded malformed decoding
717e6a0 Test replay ring wrap and absolute offsets
3d6a232 Regress closed standard descriptors through public detach
1b61ecf Regress VT fixture continuations and alternate-mode snapshots
5fd33e6 Exercise real session lifecycle and socket security
09ce023 Resolve fuzz-only libFuzzer harness dependencies
95b690b Fuzz frozen shim decoding with byte-exact seeds
c76cc02 Resolve optional Ghostty comparison dependency
55483c7 Measure PTY input and snapshot budgets and compare VT candidates
9aacc45 Document shim review repairs and measured budget evidence

Final gate output, complete and verbatim (target/final-fast.log):


==> fmt

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

==> test
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.77s
     Running unittests src/main.rs (target/debug/deps/infraternal-7bd7fe7437694712)

running 0 tests

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

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

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

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

running 0 tests

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

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

running 0 tests

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

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

running 0 tests

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

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

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_server-3a7dcd467cd5ddf2)

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_shim-d4acae7815975a8c)

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

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

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

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

   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 'windows-sys'
   ┌─ /home/kayg/Developer/infraternal/.worktrees/lane-shim/Cargo.lock:83:1
   │  
83 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index
84 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index
   │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ windows-sys v0.59.0
     └── alacritty_terminal v0.25.1
         └── infraternal-shim v0.1.0
             ├── infraternal v0.1.0
             └── infraternal-fuzz v0.1.0
   ├ windows-sys v0.61.2
     ├── anstyle-query v1.1.5
     │   └── anstream v1.0.0
     │       └── clap_builder v4.6.7
     │           └── clap v4.6.7
     │               └── infraternal v0.1.0
     ├── anstyle-wincon v3.0.11
     │   └── anstream v1.0.0 (*)
     ├── errno v0.3.14
     │   ├── rustix v1.1.5
     │   │   ├── alacritty_terminal v0.25.1
     │   │   │   └── infraternal-shim v0.1.0
     │   │   │       ├── infraternal v0.1.0 (*)
     │   │   │       └── infraternal-fuzz v0.1.0
     │   │   ├── polling v3.11.0
     │   │   │   └── alacritty_terminal v0.25.1 (*)
     │   │   └── rustix-openpty v0.2.0
     │   │       └── alacritty_terminal v0.25.1 (*)
     │   ├── rustix-openpty v0.2.0 (*)
     │   └── signal-hook-registry v1.4.8
     │       └── signal-hook v0.3.18
     │           └── alacritty_terminal v0.25.1 (*)
     ├── home v0.5.12
     │   └── alacritty_terminal v0.25.1 (*)
     ├── miow v0.6.1
     │   └── alacritty_terminal v0.25.1 (*)
     ├── polling v3.11.0 (*)
     └── rustix v1.1.5 (*)

advisories ok, bans ok, licenses ok, sources ok

==> static builds
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 8.93s
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: 1025208 bytes
   Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim)
   Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal)
    Finished `release` profile [optimized] target(s) in 8.93s
target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
PT_INTERP: absent; size: 875968 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         |
+---------------------------+--------------+
Finished review fixes on lane-shim. Base: 386acfd3dc6255c7f58f98b4f114d5d7326292ad. Head: 9aacc4568c9cbed73825b8db1f35745abbfbf9bf. Reviewed head preserved as lane-shim-v1 (7c879a47e508a32452571d2bb5d750a10311b718). Worktree clean; no push or deployment. All blockers and should-fix items repaired. VT observer now agrees with runtime-supported 1049; ignored 47/1047 no longer cause stale primary repaint. Six ordinary/nested cases compare 12,000 cells immediately and after continuation. Detach owns its temporary CLOEXEC source above fd2; all seven closed-standard-fd combinations pass. Raw chdir replaced with safe nix CStr wrapper; reviewed sound resize ioctl retained as answered in the audit comment. Every finding and evidence limitation is answered in this and preceding comments, and docs/S1-SHIM.md records the complete handoff. Final serial local release budgets (target/final-budgets.log and target/final-idle.log): Input decode through successful real-PTY write n=10000 p50=2.118 us p99=4.777 us (<200 us); 200x60 snapshot plus 256-line tail n=1000 p50=0.426 ms p99=0.669 ms, 74157 bytes (<2 ms); parser+observer 57.35 MB/s; actual static shim idle RSS 1136 KiB / 1.109 MiB (<4 MiB), 80x24 fresh login with lazy ring. These exclude socket scheduling/shell echo and full ring/full scrollback, and are not pinned perf VM figures. The earlier loaded-host 12.672 ms failure remains documented. Rootful canary rerun passes (target/final-security.log): slave uid1001/mode0600, UID slots1001, groups27/1001, uid65534 peer refused without replacing authenticated peer, ExitAck removes socket. Seven real socket integration tests pass, including separate user-scope parent-service-stop survival, with no skips. Historical independent twenty-race, boundary-offset, credential and fd-audit evidence is retained, without claiming it was all rerun or that the installer restart path is covered. Static builds have no PT_INTERP. Complete lane vs independently measured base: x86_64 1025208 vs705624 (+319584 /45.29%); aarch64 875968 vs607880 (+268088 /44.10%). Repair vs reviewed head adds288/424 bytes respectively. Final lockfile equals reviewed lockfile; vt100 remains dev-only and Ghostty optional bench-only. Existing windows-sys duplicate warning remains allowed by cargo-deny policy; all advisory/license/source checks pass. Decoder unchanged; original fuzz campaign remains historical evidence. Atomic commits, each passed nix shell nixpkgs#binutils nixpkgs#file -c scripts/verify fast. Full outputs are target/history-gates/01.log through19.log in this order; regression/benchmark harnesses are separated from production modules: ```text 8e33741 Declare Linux shim syscall dependency 03164d7 Implement frozen v1 shim frame codec 644cbc1 Retain detached PTY output by exact byte offset 2bf7fea Own PTYs and detach without closing redirected standard fds 28e8464 Declare measured Alacritty VT state dependencies a5f0182 Serialize VT snapshots with runtime-consistent screen switches 6d3a755 Pump authenticated shim sessions through replay and retained exit e511f6f Wire hidden shim startup into the static binary 4e96885 Declare independent terminal oracle for tests b0e981a Test frozen frame bytes and bounded malformed decoding 717e6a0 Test replay ring wrap and absolute offsets 3d6a232 Regress closed standard descriptors through public detach 1b61ecf Regress VT fixture continuations and alternate-mode snapshots 5fd33e6 Exercise real session lifecycle and socket security 09ce023 Resolve fuzz-only libFuzzer harness dependencies 95b690b Fuzz frozen shim decoding with byte-exact seeds c76cc02 Resolve optional Ghostty comparison dependency 55483c7 Measure PTY input and snapshot budgets and compare VT candidates 9aacc45 Document shim review repairs and measured budget evidence ``` Final gate output, complete and verbatim (target/final-fast.log): ```text ==> fmt ==> clippy Checking infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim) Checking infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal) Checking infraternal-fuzz v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/fuzz) Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.33s ==> test Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 0.77s Running unittests src/main.rs (target/debug/deps/infraternal-7bd7fe7437694712) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/shim.rs (target/debug/deps/shim-ceb57354563cc582) 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.17s Running unittests src/lib.rs (target/debug/deps/infraternal_agent-eadaa10b8c42bfd9) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_api-4480fd7032f11ca2) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_plugin_ssh-22a9a893799c7f17) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/infraternal_protocol-342516d5dbf00714) 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_server-3a7dcd467cd5ddf2) 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_shim-d4acae7815975a8c) running 12 tests test session::measurements::budgets::input_to_pty_write ... ignored, real-PTY performance measurement; set ZDOTDIR to tests/profile test frame::checks::tests::invalid_lengths_types_and_utf8 ... ok test ring::checks::tests::wrap_and_exact_offsets ... ok test frame::checks::golden::every_frozen_message ... ok test frame::checks::tests::golden_and_fragmented ... ok test terminal::measurements::budgets::snapshot_200x60 ... ignored, performance measurement; run release on the perf host test terminal::measurements::throughput::measured_parser ... ignored, VT observer and history throughput measurement test terminal::checks::tests::margins_tabs_charsets_and_modes_continue ... ok test terminal::checks::tests::partial_csi_and_utf8_continue ... ok test frame::checks::golden::exact_maximum_and_coalesced_frames ... ok test terminal::checks::tests::fixtures_and_continuations_repaint ... ok test terminal::checks::tests::alternate_variants_and_nested_switches_repaint ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.15s Running tests/detach.rs (target/debug/deps/detach-eec63b9b7e48816a) 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.73s 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 'windows-sys' ┌─ /home/kayg/Developer/infraternal/.worktrees/lane-shim/Cargo.lock:83:1 │ 83 │ ╭ windows-sys 0.59.0 registry+https://github.com/rust-lang/crates.io-index 84 │ │ windows-sys 0.61.2 registry+https://github.com/rust-lang/crates.io-index │ ╰────────────────────────────────────────────────────────────────────────┘ lock entries │ ├ windows-sys v0.59.0 └── alacritty_terminal v0.25.1 └── infraternal-shim v0.1.0 ├── infraternal v0.1.0 └── infraternal-fuzz v0.1.0 ├ windows-sys v0.61.2 ├── anstyle-query v1.1.5 │ └── anstream v1.0.0 │ └── clap_builder v4.6.7 │ └── clap v4.6.7 │ └── infraternal v0.1.0 ├── anstyle-wincon v3.0.11 │ └── anstream v1.0.0 (*) ├── errno v0.3.14 │ ├── rustix v1.1.5 │ │ ├── alacritty_terminal v0.25.1 │ │ │ └── infraternal-shim v0.1.0 │ │ │ ├── infraternal v0.1.0 (*) │ │ │ └── infraternal-fuzz v0.1.0 │ │ ├── polling v3.11.0 │ │ │ └── alacritty_terminal v0.25.1 (*) │ │ └── rustix-openpty v0.2.0 │ │ └── alacritty_terminal v0.25.1 (*) │ ├── rustix-openpty v0.2.0 (*) │ └── signal-hook-registry v1.4.8 │ └── signal-hook v0.3.18 │ └── alacritty_terminal v0.25.1 (*) ├── home v0.5.12 │ └── alacritty_terminal v0.25.1 (*) ├── miow v0.6.1 │ └── alacritty_terminal v0.25.1 (*) ├── polling v3.11.0 (*) └── rustix v1.1.5 (*) advisories ok, bans ok, licenses ok, sources ok ==> static builds Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal) Finished `release` profile [optimized] target(s) in 8.93s 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: 1025208 bytes Compiling infraternal-shim v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal-shim) Compiling infraternal v0.1.0 (/home/kayg/Developer/infraternal/.worktrees/lane-shim/crates/infraternal) Finished `release` profile [optimized] target(s) in 8.93s target/aarch64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped PT_INTERP: absent; size: 875968 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 | +---------------------------+--------------+ ```
Author
Owner

Merged into dev as 7ae0b83. The conflict with auth was resolved: main() is synchronous, and only the server arm has a tokio runtime, because __shim forks. The gate on the merge result: all PASS.

Merged into `dev` as `7ae0b83`. The conflict with auth was resolved: main() is synchronous, and only the server arm has a tokio runtime, because __shim forks. The gate on the merge result: all PASS.
Author
Owner

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Shim lane merged to dev as 7ae0b83 (verified in dev); review findings answered, gate PASS. 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: Shim lane merged to dev as 7ae0b83 (verified in dev); review findings answered, gate PASS. Reopen if anything is still missing.
kayg closed this issue 2026-10-28 17:52:09 +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#16
No description provided.