Wearable preferences/NVS failure and reboot recovery PASS
Battery percent/filter/invalid/error retention and compact NET rates PASS
Wearable shell immediate navigation/draft and UTC clock PASS
RX8130 UTC / fixed Demo UTC+8 / day, month, year, leap rollover PASS
Wearable RAM structs: DevicePreferences=12 LoadedPreferences=24 UiState=80 NVSBlob=25 PASS
Wearable renderer round-safe Watch/Agent/Help/Settings; glance rows, battery icon, date/time order; all sizes/themes PASS
Agent Live == manual page 0; pages tile the body with no overlap/gap PASS
Watch glance host thresholds/hysteresis, task mapping, Codex percent/reset, redraw policy PASS
CJK subset generator coverage PASS (GB2312 Level 1 3755/3755, glyphs=5000, 中/这 covered)
Production raw button polling / all Settings Back paths / Settings Voice starts=0 / Approval ownership PASS (host)
Double A/B top-level only / openAgentSessionPicker reuse / Speech Mode APPLY PASS (host)
Touch virtual A/B / top-level swipe / Agent browse / History controls / Settings entries PASS (host)
Touch contact epoch ownership / stale cancellation / Long release PASS (host)
View cached reply / fixed body and page / updates badge / touch / boundary / target reset PASS
History multi-screen message paging / touch parity / reset PASS (host)
History A/Newer boundary, loading, empty, touch and explicit exit PASS (host)
History cross-page fetch/cache traversal PASS (host)
Navigator stale-epoch ownership / legal Long finish PASS (host)
Production Voice 999/1000 CANCEL, 1001 TRANSCRIBING; Confirm/Direct once-only transcript PASS
Production shell gestures / offline settings / Apply failure / Voice / Approval modal priority PASS (host)
Raw GPIO / 30ms debounce / >600ms Hold A / Settings Back / no Voice or trailing CLICK PASS (host)
Bounded Navigator paging/empty creation/capabilities/native choice semantics PASS
tap inside slop resolves exactly one Tap PASS
tap slop boundary 18px is inclusive PASS
swipe in four directions resolves the dominant axis PASS
swipe requires >=1.5x dominant axis PASS
long press resolves Long then LongRelease PASS
movement cancels Long and never yields Tap PASS
sub-debounce contact is ignored PASS
one primary gesture per contact PASS
left/right half splits into virtual B/A PASS
TouchTransform maps, mirrors and clamps in one place PASS
Raw TouchGesture reducer / transform PASS (host)
history cache never exceeds kCachePages PASS
history append_older makes the fetched page current PASS
history cache eviction keeps traversal linear and in range PASS
history cache older/newer boundaries PASS
AgentBrowse manual page / live tail restore / reset PASS
HistoryScreen linear paging and position PASS
HistoryScreen multi-screen message paging is linear and reversible PASS
history_bounded_text truncates on a UTF-8 boundary PASS
Bounded Agent history cache / view / UTF-8 PASS (host)
production hello advertises History and preserves playback freeze PASS
70ms A/B press wholly inside display stall survives queue PASS
queued click remains bound to original UI owner PASS
shell double click / immediate Settings click preserved PASS
long and long-release survive owner change without trailing click PASS
queue overflow discards incomplete generation and recovers only after release PASS
overflow cancels active recording if its physical release was lost PASS
Production snapshot/activity callbacks: reader frozen, sticky badge, session switch clears/ closes PASS
