mirror of
https://github.com/openclaw/openclaw.git
synced 2026-10-03 17:53:39 +00:00
* fix(activity): summary card ignores the selected time filter The Activity pulse card was pinned to the local civil day and the Gateway capped the pulse at one day of hourly buckets, so Last 24 hours, 7 days, 30 days, and All time all showed today's numbers while the list below narrowed correctly. sessions.list replaces activityPulseSince/activityPulseUntil (added in #159611, not in a tagged release) with activityPulseBoundaries: 2 to 64 strictly ascending boundaries computed in the caller's local time zone. Pulse sessions, people, and running counts now cover the whole filtered result; started counts sessions created within activeMinutes and is omitted for All time. The UI requests 25 hourly, 8 or 31 daily, or 12 monthly buckets, refreshes when the current bucket ends, and aligns axis labels with their bars. Hour starts subtract local minutes so a repeated DST hour cannot shift the window. Production lines stay neutral through nearby behavior-preserving cleanup. * fix(activity): mock Activity pulse follows the selected time filter The dev mock answered every Activity time filter with one fixed hourly pulse and fixed totals, which the window-aware renderer drew as days or months. Each bounded window now has its own case keyed on activeMinutes, with rows filtered by activity time and a pulse bucketed by the same boundaries the UI sends. * fix(sessions): reject unordered pulse boundaries before subscribing to events sessions.subscribe registered the connection for session events before the list handler rejected non-ascending activityPulseBoundaries, so a rejected subscribe stayed subscribed. The ascending rule now lives in the shared sessions.list params validator as a precheck, which both RPCs run before registration or store reads, and it compares only numeric boundaries so malformed elements reach the schema's type error. * fix(sessions): type-check pulse boundary precheck without assertions The merged head failed tsgo (unchecked index) and the assertion-safety ratchet (uncommented cast), which also broke the declaration-building lanes. The precheck now reads params through asNullableRecord, narrows boundaries with a number type predicate, and treats the first boundary's missing predecessor explicitly. * docs(activity): describe the pulse card for each time window The Control UI Activity guide still promised a fixed Today card with hourly bars. It now describes the hourly, daily, and monthly pulse for the selected window, the window-scoped counts, and the All time count scope. |
||
|---|---|---|
| .. | ||
| .i18n | ||
| android | ||
| ios | ||
| linux | ||
| macos | ||
| macos-mlx-tts | ||
| shared | ||
| swabble | ||