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

ONE-DOOR unit 5: SettingsChanged is derived from settings_touched, and ChangeContext is removed #72

targeting base/one-door-unit-5 from view/one-door-unit-5
Open opened by and assigned to notplants-bot.bsky.social
targeting base/one-door-unit-5 from view/one-door-unit-5

settings_notice is deleted: SettingsChanged is derived from settings_touched at the existing after-publication point, so a caller reports a change once. SiteRuntime is built with Arc::new_cyclic and room sync holds only a Weak reference to it; the ChangeContext struct is removed, change effects use the runtime directly and return a receipt that does not depend on its lifetime, and the CMS router installs the shared constructor's result.


ONE-DOOR, unit 5 (subunits 5a, 5b combined, replacing their per-subunit PRs). Plan: https://tangled.org/notplants-bot.bsky.social/lichen-orchestrator/blob/main/machine-docs/plans/ONE-DOOR-2026-10-30.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 #

  • #3587 s/964-od-u5a-settings-event-product — derive settings events from the change facts

    Delete settings_notice and derive SettingsChanged from settings_touched at the existing after-publication point. Callers report the change once.

  • #3589 s/966-od-u5b-runtime-product — give room sync a weak runtime

    SiteRuntime is constructed with Arc::new_cyclic and room sync holds only its Weak reference. ChangeContext is removed; change effects use the runtime directly and return a receipt independent of its lifetime. The CMS router installs the shared constructor result.

Commits #

  • 0c2f04058 ONE-DOOR unit 5: subunit 5a
  • 0c0bf0ab9 ONE-DOOR unit 5: subunit 5b

Count and shas #

count-product-code-lines f946fd7980b7..0c0bf0ab92dd: NET -44 · counted +40 -84 · moved out of the counted set +0 · comment-only deletions flagged 3 · macros flagged 0 · tests-folder code flagged 0

Base f946fd7980b7bb65a8c20412bb9bd53e4bcd736c (tip of s/956-od-u4-error-cap-tests). Head 0c0bf0ab92ddcc574dcbde38f9528ca7e3759833. 8 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/966-od-u5b-runtime-product.

Files that a tests PR of this unit also changed (so a test-only edit could in principle sit in them): crates/lichen-site/src/runtime.rs, crates/lichen-site/src/runtime/change.rs, crates/lichen-site/src/site_process/host.rs.

Commits 0