mirror of
https://github.com/wu736139669/hapi.git
synced 2026-11-07 01:21:37 +00:00
* feat(android): add session date-range filter with activity-aware picker - Pure SessionDateRangeFilter port of the web SessionList.tsx semantics: strict YYYY-MM-DD parsing with calendar round-trip validation, [start local midnight, end local midnight + 1 day) windows anchored to the injected zone, session.updatedAt as the activity field - M3 DateRangePicker dialog (opens on the selected start's month, Clear resets without closing) plus a lightweight recent-activity legend — declared divergence: M3 exposes no per-day decoration API, so the web's in-cell "has session activity" emphasis surfaces beside the picker instead; explicit Apply replaces the web's close-after-second-click - Wired as a transient, unpersisted lens (web useState parity) applied before the machine scope; the activity-day set and machine chips both derive from the unfiltered list so filtering never hides alternatives - Top-bar calendar action with active dot badge, active-range summary row with clear, date-specific empty state; strings in en/zh-rCN/ru (en-ru key order KEYSYNC clean) - JVM tests: predicate window edges, DST spring-forward, zone-anchored midnights, strict parsing, VM lens combination and pre-filter activity-day derivation Co-Authored-By: Claude Code <noreply@anthropic.com> via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> * fix(android): refresh session date filters after timezone changes * Deduplicate Android sessions before applying date filters --------- Co-authored-by: Claude Code <noreply@anthropic.com> Co-authored-by: HAPI <noreply@hapi.run> Co-authored-by: weishu <twsxtd@gmail.com>