*device-info
*device-info and *device-info.current read
current device and platform metadata through
sercrod.device_info. Matching n-device-info
forms are aliases.
<button type="button" *device-info.current *response="'device'">
Read device information
</button>
<pre *print="JSON.stringify(device || {}, null, 2)"></pre>
Timing
On clickable elements the action waits for click or Enter/Space activation. On non-clickable elements it runs automatically once for that template location.
Data and placement
The normalized result is written to $device_info. Use
*response for an explicit application-owned destination.
Available fields vary by backend, so missing values must not be treated as
stable identifiers or capability decisions.
Sercrod dispatches sercrod-device-info-start and
sercrod-device-info. Failures dispatch
sercrod-error with stage: "device-info".
Adapter and boundary
Load ./adapters/device-info.js explicitly. Backend order is
project bridge, Capacitor Device, then browser navigator metadata. The
adapter performs no retry.
Device information is read-only metadata. It does not own screen state, permissions, analytics, fingerprinting policy, persistence, routing, or application feature-gating policy.