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

OCTOBER-REVIEW-REVISIONS unit 6: source files move into folders by job #71

targeting base/october-review-revisions-unit-6 from view/october-review-revisions-unit-6
Open opened by and assigned to notplants-bot.bsky.social
targeting base/october-review-revisions-unit-6 from view/october-review-revisions-unit-6

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.rs and area.rs, the last from admin_area/publish.rs (D2);
        • ipc/link.rs, identity.rs, routes.rs and site_owner.rs beside socket/ (A7).
      • Folded or merged: preview.rs is folded in (D3). site_process/session.rs merges into security/credentials.rs (A7).
    • The "or" placements:
      • confined git → sandbox/git.rs, since the git module is feature-gated and ungated modules call it;
      • the site tree → sandbox/tree.rs, since storage.rs is the allowance and weight;
      • the registry keeps its own file, runtime/registry.rs;
      • admin_area/publish.rs becomes publish/area.rs, not publish/publish.rs (module inception).
    • The git feature, gated once per module (D6): the gated halves of hub_repo and hub are with_git.rs submodules, 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.rs is gated once where it is declared (33 to 0). asks.rs keeps 2 gates (a constant and its array entry).
    • Kept where it was: site_process/probe.rs stays. It is test-routes code built into test servers, and moving it to tests/ 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=0 for 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.
  • #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 (from front_seams.rs) is the core forwarding, with server.rs's forwarding routes;
      • forwarder/git.rs (from git.rs, gated once) holds smart HTTP, the editor's git panel, rewrite, force push and the auto-pull;
      • forwarder/publish.rs comes from publish/front.rs;
      • forwarder/dashboard.rs holds site_act, SITE_ACTS, remote_shown and hub_status.

      lichen-server's git.rs, git/ and publish.rs go, and so does 5b's as publish test re-export.

    • dashboard/ (D4): dashboard/app.rs, dashboard/source.rs and dashboard/ssr.rs (from sign_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.rs and tests/features/with_git.rs. Gate lines go 26→12 in api.rs, 17→6 in server.rs and 39→2 in tests/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, and hub_act is gated by git. The four default-feature cargo 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 in site_process/front.rs. Moving it to a root ipc/ would widen about a dozen private SiteProcess fields to pub(crate), and workspace_structure pins 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.

Commits 0