[Feature] Add governed tenant and system appearance defaults #290

Closed
opened 2026-08-20 06:26:40 +02:00 by zemion · 1 comment
Owner

Follow-up from #246. Define system and tenant palette defaults through existing settings and policy boundaries. Preserve precedence: an explicit user palette wins unless a separately permissioned, documented policy lock is configured. Include preview, effective-source provenance, reset/inherit behavior, permissions, documentation, and light/dark visual regression coverage. Modules must continue consuming only Core semantic tokens.

Follow-up from #246. Define system and tenant palette defaults through existing settings and policy boundaries. Preserve precedence: an explicit user palette wins unless a separately permissioned, documented policy lock is configured. Include preview, effective-source provenance, reset/inherit behavior, permissions, documentation, and light/dark visual regression coverage. Modules must continue consuming only Core semantic tokens.
zemion added the
type
feature
codex/ready
status
ready
area/api
priority
p2
module/core
labels 2026-08-20 06:26:40 +02:00
Author
Owner

Implemented and verified the governed appearance-default hierarchy across the owning modules.

Delivered:

  • Core 8f642bd: neutral appearance resolver, provenance model, inheritance/reset semantics, shared palette select/preview components, personal Settings integration, documentation, and unit/API/theme contracts.
  • Access 6052dde: effective appearance projection on authenticated responses and lock-aware profile writes that still permit unrelated preference updates.
  • Admin 50c9525: system palette default and separate policy-authorized lock, delta propagation, shared UI, and administrator documentation.
  • Tenancy c5119ab: tenant inherit/override/reset and policy lock, system-lock precedence, protected settings paths, delta propagation, shared UI, tests, and documentation.

Precedence is system lock > tenant lock > explicit user > tenant default > system default. Locks do not overwrite child choices; reset stores inheritance.

Verification:

  • tools/checks/check-focused.sh passed end to end, including 68 manifests, backend/cross-module suites, 57 WebUI module permutations, full-product bundle budgets, and 7 Playwright conformance tests.
  • Core appearance API/unit tests passed.
  • Access full suite passed: 72 tests.
  • Admin full suite passed: 12 tests plus 3 subtests.
  • Tenancy full suite passed: 10 tests.
  • Manifest registry passed for 68/68 modules; all four diffs passed git diff --check.
Implemented and verified the governed appearance-default hierarchy across the owning modules. Delivered: - Core `8f642bd`: neutral appearance resolver, provenance model, inheritance/reset semantics, shared palette select/preview components, personal Settings integration, documentation, and unit/API/theme contracts. - Access `6052dde`: effective appearance projection on authenticated responses and lock-aware profile writes that still permit unrelated preference updates. - Admin `50c9525`: system palette default and separate policy-authorized lock, delta propagation, shared UI, and administrator documentation. - Tenancy `c5119ab`: tenant inherit/override/reset and policy lock, system-lock precedence, protected settings paths, delta propagation, shared UI, tests, and documentation. Precedence is system lock > tenant lock > explicit user > tenant default > system default. Locks do not overwrite child choices; reset stores inheritance. Verification: - `tools/checks/check-focused.sh` passed end to end, including 68 manifests, backend/cross-module suites, 57 WebUI module permutations, full-product bundle budgets, and 7 Playwright conformance tests. - Core appearance API/unit tests passed. - Access full suite passed: 72 tests. - Admin full suite passed: 12 tests plus 3 subtests. - Tenancy full suite passed: 10 tests. - Manifest registry passed for 68/68 modules; all four diffs passed `git diff --check`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-core#290