[E18-S02] Preference mutation endpoint #127

Open
opened 2026-08-27 00:03:46 +00:00 by kpcto · 0 comments
Owner

Parent epic: [E18] Public theme selector (#46)

Intent

Provide an endpoint that persists a visitor's theme choice after validating that the requested theme is installed, enabled and owner-permitted.

Acceptance criteria

  • The endpoint rejects a theme that is not installed.
  • The endpoint rejects a theme that is not enabled.
  • The endpoint rejects a theme the owner has not permitted.
  • A valid choice persists under the visitor's anonymous identity.

Explicitly out of scope

  • The client selector island UI (that is E18-S01).
  • SSR resolution of the chosen theme (that is E18-S03).
  • The disable fallback behaviour (that is E18-S04).

Test plan

  • API tests for each rejection path (not installed, not enabled, not permitted).
  • API test that a valid theme persists and returns success.
  • Assert no theme data is written into the cookie.

Rollback note

  • Additive endpoint; revert the commit. Persisted preferences remain but are ignored.

Owning stream

platform

Risk quadrant

agent-full

> Parent epic: [E18] Public theme selector (#46) ## Intent Provide an endpoint that persists a visitor's theme choice after validating that the requested theme is installed, enabled and owner-permitted. ## Acceptance criteria - The endpoint rejects a theme that is not installed. - The endpoint rejects a theme that is not enabled. - The endpoint rejects a theme the owner has not permitted. - A valid choice persists under the visitor's anonymous identity. ## Explicitly out of scope - The client selector island UI (that is E18-S01). - SSR resolution of the chosen theme (that is E18-S03). - The disable fallback behaviour (that is E18-S04). ## Test plan - API tests for each rejection path (not installed, not enabled, not permitted). - API test that a valid theme persists and returns success. - Assert no theme data is written into the cookie. ## Rollback note - Additive endpoint; revert the commit. Persisted preferences remain but are ignored. ### Owning stream platform ### Risk quadrant agent-full
kpcto added this to the Sprint 5 milestone 2026-08-27 00:03:46 +00:00
kpcto added the
kind
story
status
proposed
labels 2026-08-27 00:03:46 +00:00
Sign in to join this conversation.