1.6 KiB
1.6 KiB
ADR 0002: Daily Fortune Contract Ownership
Status
Accepted
Context
The device needs to receive a user birth profile over its LAN configuration page, persist it, fetch a daily fortune after wall-clock synchronization, and apply the returned wealth direction. This workflow crosses transport, storage, domain data, and orchestration boundaries.
Decision
platformowns opaque persistent blob storage, SNTP time synchronization, and bounded raw LAN HTTP transport primitives.domainowns the typed birth-profile and daily-fortune result contracts, persistence adapters, direction-name aliases, and user configuration routes.control_planeowns HTTP fetch, retry, local-midnight scheduling, result refresh policy, configuration-server connectivity lifecycle, and the wealth-direction apply sequence.app_compositioncontinues to start the existing control-plane runtime worker set and does not gain fortune policy logic.- The favorable-color element is persisted and logged. LCD color presentation is deferred because it requires a separate semantic expression contract and assets.
Consequences
- The stateless server can be called every day because the device retains the birth profile in NVS through an opaque platform storage API.
- Upper layers do not include platform types or call platform LCD primitives.
- Cardinal server values such as
正北are normalized by the domain direction catalog rather than by orchestration code. - Any future favorable-color animation requires a new ADR or an explicit update to the existing LCD expression ownership decision.