Reading copy of lichen.page.review: one PR per unit, product changes only

OCTOBER-REVIEW-REVISIONS 3a: the socket code is one self-contained module #43

targeting base/october-review-revisions-u3a from view/october-review-revisions-u3a
Closed opened by and assigned to notplants-bot.bsky.social
targeting base/october-review-revisions-u3a from view/october-review-revisions-u3a

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 (Passed and its two impls).
    • The front code moves into lichen-site, and lichen-server's forward_on calls it, since A5 allows no other file to use hyper's connection API.
    • Commits:
      • 606aa3898 and b10429de4 are AST-only moves.
      • a50890949, before the second move, is the one reshape. exchange_on turns from a method of lichen-server's SiteProcess into 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/): 606aa3898 equal, moved 3, carried 22, errors 0; b10429de4 equal, moved 5, errors 0.

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.

Commits 0