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

ONE-DOOR 4: clean-up after the storage and error work #31

targeting base/one-door-u4 from view/one-door-u4
Closed opened by and assigned to notplants-bot.bsky.social
targeting base/one-door-u4 from view/one-door-u4

Clean-up after the storage and error work. Loading calls the existing pinned-fetch implementation directly, and the plugin and dashboard path adapters import the common path predicate instead of wrapping it. The create-only forwarding layer is merged into guarded creation, which reuses its reserved site path (a successful PDS import still keeps its guard). The tuple conversion owns the canonical messages for empty or untrusted errors, so the legacy buffering and invalid wire/JSON fallbacks delegate to it, keeping storage guidance and public client text.


ONE-DOOR, subunit 4. 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 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 #

  • #3579 s/951-od-u4-cleanup-product — remove redundant package and registration forwarding helpers

    Load calls the existing pinned-fetch implementation directly; plugin/dashboard path adapters import the common predicate instead of wrapping it. Merge the create-only forwarding layer into guarded creation and reuse its reserved site path, preserving successful PDS-import guard retention.

  • #3581 s/953-od-u4-error-fallback-product — centralize canonical API refusal fallback

    The existing tuple conversion owns canonical messages for empty/untrusted errors. Legacy buffering and invalid wire/JSON fallbacks delegate to it, removing duplicate fallback construction while preserving storage guidance and public client text.

Commits #

  • 14ad7a340 OD 4: od-u4-cleanup-product (#3579)
  • 6f6cc16ae OD 4: od-u4-error-fallback-product (#3581)

Count and shas #

count-product-code-lines 1ba986560c6a..6f6cc16ae8f9: NET -41 · counted +12 -53 · moved out of the counted set +0 · comment-only deletions flagged 0 · macros flagged 0 · tests-folder code flagged 0

Base 1ba986560c6a0c35dffbe25b4b5d4428424a2f19 (tip of s/950-od-u4e-paths-tests). Head 6f6cc16ae8f91f5644275e7278f9f8d690274cf3. 5 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/953-od-u4-error-fallback-product. Files that differ from the subunit's top branch s/956-od-u4-error-cap-tests: crates/lichen-site/src/api/api_utils.rs.

Commits 0