Source files are moved into folders by job, with no change in behaviour. In lichen-site the root files go from 45 to 31 (sandbox/, security/, runtime/, publish/, ipc/ and more). In lichen-server, forwarder/ (core forwarding, git, publish, dashboard acts) and dashboard/ replace the old git.rs, publish.rs and sign_in_render.rs. The git feature is gated once per module instead of line by line, and the default build without git works.
OCTOBER-REVIEW-REVISIONS, unit 6 (subunits 6b, 6c combined, replacing their per-subunit PRs). 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 PR'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 #
-
#3415
s/784-orr-u6b-site-moves— ORR 6b: lichen-site's moves (sandbox/, security/, runtime/, publish/, ipc/; the git feature gated once)OCTOBER-REVIEW-REVISIONS unit 6b, product: lichen-site's moves, one PR for the crate (the operator, 2026-10-30). Moves only; renames are unit 7's.
- Layout: the root files go from 45 to 31.
- New folders and files:
sandbox/:workers.rs,children.rs,git.rs,tree.rs,spawns.rs,permissions.rs(B4);security/:ssrf_guard.rs,access.rs,token_scope.rs,symlink.rs,credentials.rs,deploy_key.rs(B5);runtime/(D1);settings/cache.rs;publish/outcome.rs,record.rs,build.rsandarea.rs, the last fromadmin_area/publish.rs(D2);ipc/link.rs,identity.rs,routes.rsandsite_owner.rsbesidesocket/(A7).
- Folded or merged:
preview.rsis folded in (D3).site_process/session.rsmerges intosecurity/credentials.rs(A7).
- New folders and files:
- The "or" placements:
- confined git →
sandbox/git.rs, since thegitmodule is feature-gated and ungated modules call it; - the site tree →
sandbox/tree.rs, sincestorage.rsis the allowance and weight; - the registry keeps its own file,
runtime/registry.rs; admin_area/publish.rsbecomespublish/area.rs, notpublish/publish.rs(module inception).
- confined git →
- The git feature, gated once per module (D6): the gated halves of
hub_repoandhubarewith_git.rssubmodules, declared and re-exported under one gate, so no caller's path changes. Gates go from 79 to 15 and from 35 to 23.publish/run.rsis gated once where it is declared (33 to 0).asks.rskeeps 2 gates (a constant and its array entry). - Kept where it was:
site_process/probe.rsstays. It is test-routes code built into test servers, and moving it totests/hid it from the product scans (the route contract, the permission snapshot, the socket-pair, git-starter and kept-statics scans). - AST, on lichen-ci (per-sha, the checker built from
ast-checker/):equal=True errors=0for B4, D1, D2, D3, A7, the follow-up fix, the D6 move and the probe move-back.- B5's 3 errors were in
shortcodes/tests/proxy.rs, a file no module loads. The follow-up commit updates it, and it checks equal.
- B5's 3 errors were in
- Layout: the root files go from 45 to 31.
-
#3417
s/786-orr-u6c-server-moves— ORR 6c: lichen-server's moves (forwarder/, dashboard/; the git feature gated once)OCTOBER-REVIEW-REVISIONS unit 6c, product: lichen-server's moves, one PR for the crate. Moves only; renames are unit 7's.
-
forwarder/(A6):forwarder.rs(fromfront_seams.rs) is the core forwarding, withserver.rs's forwarding routes;forwarder/git.rs(fromgit.rs, gated once) holds smart HTTP, the editor's git panel, rewrite, force push and the auto-pull;forwarder/publish.rscomes frompublish/front.rs;forwarder/dashboard.rsholdssite_act,SITE_ACTS,remote_shownandhub_status.
lichen-server's
git.rs,git/andpublish.rsgo, and so does 5b'sas publishtest re-export. -
dashboard/(D4):dashboard/app.rs,dashboard/source.rsanddashboard/ssr.rs(fromsign_in_render.rs, as a file move; item renames are unit 7's). lichen-cli names the new path. -
The git feature, gated once (D6): the gated halves are in
api/with_git.rsandtests/features/with_git.rs. Gate lines go 26→12 inapi.rs, 17→6 inserver.rsand 39→2 intests/features.rs. The cfg mod lines are in a commit of their own. -
The default build, without git (A6b): the publish's forward to the admin thread moves into
forwarder.rs's core, andhub_actis gated by git. The four default-featurecargo checks (lichen-site and lichen-server, lib and--tests) are rc 0. -
A7 for lichen-server: not done, for your call. After 2c, lichen-server has no
ipc/. What is left is the channel code insite_process/front.rs. Moving it to a rootipc/would widen about a dozen privateSiteProcessfields topub(crate), andworkspace_structurepins the control channel's one reader and writer to that file. -
AST, on lichen-ci (per-sha, notify-8c3c59e5): every move pair is
rc=0 equal=True errors=0:- R: the retired re-exports;
- A6: 26 moved, 19 files renamed;
- D4: 6 renamed;
- D6: 54 moved;
- D5a: 4 tests;
- D5b: 2 renamed;
- A6b: 3 moved.
-
Commits #
- ef2386924 OCTOBER-REVIEW-REVISIONS unit 6: subunit 6b
- e2ee754e6 OCTOBER-REVIEW-REVISIONS unit 6: subunit 6c
Count and shas #
count-product-code-lines 8b237e65b9a7..e2ee754e68b3: NET -3675 · counted +6833 -10508 · moved out of the counted set +0 · comment-only deletions flagged 49 · macros flagged 0 · tests-folder code flagged 0
Base 8b237e65b9a76de6db8734066ebc230391464509 (tip of s/783-orr-u6a-guard-no-hash-tests). Head e2ee754e68b39598772a87ea3cb9eed7fe70820b. 141 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/786-orr-u6c-server-moves.
No file here was changed by any tests PR of this unit.