fix: normalize Android all-day calendar events#100032
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 4, 2026, 1:41 PM ET / 17:41 UTC. Summary PR surface: Other +47. Total +47 across 2 files. Reproducibility: yes. source inspection gives a high-confidence reproduction path: current main sends all-day calendar.add requests to CalendarContract with caller instants and the device timezone. I did not establish a live provider failure in this read-only review. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Merge this narrow Android fix after redacted device or emulator proof shows calendar.add creates an all-day event with UTC timezone metadata and UTC-midnight boundaries. Do we have a high-confidence way to reproduce the issue? Yes, source inspection gives a high-confidence reproduction path: current main sends all-day calendar.add requests to CalendarContract with caller instants and the device timezone. I did not establish a live provider failure in this read-only review. Is this the best way to solve the issue? Yes, this is the best narrow fix shape: normalize the Android calendar.add request before the CalendarContract insert and keep timed events on the existing device-timezone path. The remaining gap is real Android provider proof, not a different implementation layer. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 0869edc23b0d. Label changesLabel justifications:
Evidence reviewedPR surface: Other +47. Total +47 across 2 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (1 earlier review cycle)
|
Source: #100032 Co-authored-by: NianJiuZst <[email protected]>
* fix(agents): harden LSP process failures Source: #100450 Co-authored-by: morluto <[email protected]> * fix(sandbox): report effective workspace layout Sources: #100435, #100439 Co-authored-by: Aniruddha Adak <[email protected]> Co-authored-by: ZengWen-DT <[email protected]> * fix(security): fail install checks on stream errors Source: #100413 Co-authored-by: 陈宪彪0668000387 <[email protected]> * fix(android): normalize all-day calendar events Source: #100032 Co-authored-by: NianJiuZst <[email protected]> * fix(ios): serialize push-to-talk lifecycle Source: #99942 Co-authored-by: NianJiuZst <[email protected]> * fix(talk): reject inherited provider names Source: #99849 Co-authored-by: zenglingbiao <[email protected]> * fix(android): stop voice capture in background Source: #99840 Co-authored-by: xialonglee <[email protected]> * fix(cron): preserve fallback result classification Source: #99913 Co-authored-by: jincheng-xydt <[email protected]> * fix(google): bound Vertex response decompression Source: #99812 Co-authored-by: 黄剑雄0668001315 <[email protected]> * fix(plugins): report malformed discovery JSON Source: #99892 Co-authored-by: 陈宪彪0668000387 <[email protected]> * test(sandbox): configure non-default workspace fixture * test: fix small-fix batch validation --------- Co-authored-by: morluto <[email protected]> Co-authored-by: ZengWen-DT <[email protected]> Co-authored-by: 陈宪彪0668000387 <[email protected]> Co-authored-by: NianJiuZst <[email protected]> Co-authored-by: zenglingbiao <[email protected]> Co-authored-by: xialonglee <[email protected]> Co-authored-by: jincheng-xydt <[email protected]> Co-authored-by: 黄剑雄0668001315 <[email protected]>
|
Thanks @NianJiuZst — your Android all-day calendar fix was incorporated into #100483, landed as aaf5ab9. The landed version covers same-day expansion, multi-day UTC-midnight bounds, and unchanged timed-event instants/timezones. Contributor credit is preserved. Closing this superseded PR. |
* fix(agents): harden LSP process failures Source: openclaw#100450 Co-authored-by: morluto <[email protected]> * fix(sandbox): report effective workspace layout Sources: openclaw#100435, openclaw#100439 Co-authored-by: Aniruddha Adak <[email protected]> Co-authored-by: ZengWen-DT <[email protected]> * fix(security): fail install checks on stream errors Source: openclaw#100413 Co-authored-by: 陈宪彪0668000387 <[email protected]> * fix(android): normalize all-day calendar events Source: openclaw#100032 Co-authored-by: NianJiuZst <[email protected]> * fix(ios): serialize push-to-talk lifecycle Source: openclaw#99942 Co-authored-by: NianJiuZst <[email protected]> * fix(talk): reject inherited provider names Source: openclaw#99849 Co-authored-by: zenglingbiao <[email protected]> * fix(android): stop voice capture in background Source: openclaw#99840 Co-authored-by: xialonglee <[email protected]> * fix(cron): preserve fallback result classification Source: openclaw#99913 Co-authored-by: jincheng-xydt <[email protected]> * fix(google): bound Vertex response decompression Source: openclaw#99812 Co-authored-by: 黄剑雄0668001315 <[email protected]> * fix(plugins): report malformed discovery JSON Source: openclaw#99892 Co-authored-by: 陈宪彪0668000387 <[email protected]> * test(sandbox): configure non-default workspace fixture * test: fix small-fix batch validation --------- Co-authored-by: morluto <[email protected]> Co-authored-by: ZengWen-DT <[email protected]> Co-authored-by: 陈宪彪0668000387 <[email protected]> Co-authored-by: NianJiuZst <[email protected]> Co-authored-by: zenglingbiao <[email protected]> Co-authored-by: xialonglee <[email protected]> Co-authored-by: jincheng-xydt <[email protected]> Co-authored-by: 黄剑雄0668001315 <[email protected]>
What Problem This Solves
Fixes Android
calendar.addall-day events being written with the device timezone and caller-provided instants instead of Android provider-compatible UTC all-day rows.Why This Change Was Made
Android
CalendarContractall-day events need UTC timezone metadata and UTC-midnightDTSTART/DTENDvalues. This change normalizes only the all-day path to UTC day boundaries and keeps timed events on the existing device-timezone path.User Impact
calendar.addrequests withisAllDay: truenow create stable all-day Android calendar events instead of depending on OEM provider tolerance for invalid all-day rows that may be rejected or stored on the wrong date.Evidence
node scripts/run-android-gradle.mjs :app:testPlayDebugUnitTest --tests ai.openclaw.app.node.CalendarHandlerTestgit diff --checknode scripts/run-android-gradle.mjs :app:ktlintCheckwas attempted and failed on pre-existing unrelated ktlint violations inapps/android/app/src/test/java/ai/openclaw/app/chat/ChatControllerCommandControlsTest.kt,apps/android/app/src/test/java/ai/openclaw/app/gateway/InvokeErrorParserTest.kt, andapps/android/app/src/test/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt.