The socket code is gathered into lichen-site/src/ipc/socket/ as a self-contained module, by moves only: the control channel's frames with SCM_RIGHTS (site_process/control.rs), the admin thread's connection server (serve_admin, answer_refused), relay_upgrade, the front's per-connection exchange (exchange_on, UPGRADE_ERROR_DRAIN) and the main runtime's passed-connection listener (Passed). The front's code moves into lichen-site and lichen-server's forward_on calls it, so no other file uses hyper's connection API. exchange_on becomes a free function instead of a method of lichen-server's SiteProcess, and Passed's fields are named. The non-HTTP pairs (PTY request, test-routes datagram probe, test-only egress hand-over) stay where they are.
OCTOBER-REVIEW-REVISIONS, subunit 3a. Plan: https://tangled.org/notplants-bot.bsky.social/lichen-orchestrator/blob/main/machine-docs/plans/OCTOBER-REVIEW-REVISIONS-2026-10-28.md
This is a reading copy: only this subunit's product changes, applied in order on its base. Nothing here is to be merged.
Source PRs on lichen.page.review (product), in order, with their original descriptions #
- #3400
s/768-orr-u3a-ipc-socket— ORR 3a: the socket code is self-contained in ipc/socket/ (AST-checked moves)OCTOBER-REVIEW-REVISIONS unit 3a, product: the socket code is self-contained in
lichen-site/src/ipc/socket/(A5). Moves only, AST-checked; renames are unit 7's.- Moved into
ipc/socket/:- the control channel's frames with
SCM_RIGHTS(site_process/control.rs, whole); - the admin thread's connection server (
serve_admin,answer_refused); relay_upgrade;- the front's per-connection exchange (
exchange_on,UPGRADE_ERROR_DRAIN); - the main runtime's passed-connection listener (
Passedand its two impls).
- the control channel's frames with
- The front code moves into lichen-site, and lichen-server's
forward_oncalls it, since A5 allows no other file to use hyper's connection API. - Commits:
606aa3898andb10429de4are AST-only moves.a50890949, before the second move, is the one reshape.exchange_onturns from a method of lichen-server'sSiteProcessinto a free function, because the checker cannot move a method across crates.Passed's fields become named.- A docs commit and a rustfmt commit follow (whitespace and trailing commas).
- Stays where it is: the non-HTTP pairs (the PTY request, the test-routes datagram probe, the test-only egress hand-over).
AST move checks on lichen-ci (per-sha notify-fc50eca1, the checker built from the coordination repo's
ast-checker/):606aa3898equal, moved 3, carried 22, errors 0;b10429de4equal, moved 5, errors 0. - Moved into
Commits #
- 9f45d85ac ORR 3a: orr-u3a-ipc-socket (#3400)
Count and shas #
count-product-code-lines 828dafebcfb9..9f45d85acb7b: NET +41 · counted +483 -442 · moved out of the counted set +0 · comment-only deletions flagged 8 · macros flagged 0 · tests-folder code flagged 0
Base 828dafebcfb94ff3bcc6bed6b4ab78a14df44a50 (tip of s/767-orr-u2d-spindle-fixups-tests). Head 9f45d85acb7b30f4f9f3bed1afbc1114f5ea1306. 27 files changed.
Check #
Every changed file is a file one of the product PRs changed, and each is identical at the head to the same file at the last product branch s/768-orr-u3a-ipc-socket.
Files that differ from the subunit's top branch s/769-orr-u3a-ipc-socket-tests: crates/lichen-server/src/tests/site_process__front.rs, crates/lichen-site/src/ipc/socket/control.rs, crates/lichen-site/src/ipc/socket/request.rs, crates/lichen-site/src/tests/site_process__control.rs.