Repository navigation
Conversation
… 09:00 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — Cleared run times now block saving rather than silently becoming 09:00. Human confirmation is needed for removing that implicit save-time default; new tasks still initially show 09:00. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
Note Written by Verified in a real dev environmentverified unchanged head
read-only query of the dev server database after the UI flow: Not verifiednative ios/android clients, electron shell, macos/windows, and remote/tunnel connections were not exercised on this linux web path. did not wait for the next wall-clock 14:30 dispatch; execution was verified through "Run now". other providers and webhook delivery were outside this focused change. |
# Conflicts: # apps/web/src/components/settings/scheduledTasksSettings.logic.test.ts





Problem
Clearing or partly filling a fixed-time scheduled task's native time input reports an empty value. Saving silently replaced the task's time with 09:00 instead of reporting an error, so an existing 14:30 task could move to 09:00.
Change
Reject an empty fixed-time draft with “Invalid run time / Pick a time.” through the existing validation/toast path, and remove the 09:00 save fallback. The 09:00 default for new tasks remains. Mobile and the shared contract already reject invalid times.
The integration with main retains #29851's stored-hour padding and its regression test alongside the cleared-time regression. This remains one small fix for a documented form silently saving a different time.
Scope and approval
This changes only the web Scheduled Tasks save validation, also used by desktop. It is proposed as a small, focused fix for a form silently saving a different time: clearing an existing time must not silently reschedule it to 09:00. It adds no scheduling mode or configuration, and the initial 09:00 value for new tasks remains.
Macroscope requires human confirmation that removing the implicit save-time fallback is the intended behavior. That maintainer decision is pending; no maintainer approval is claimed.
Related #24216 also blocked empty/incomplete input as part of a broader time-format and model-options change. It closed unmerged. This PR retains the native input and fixes only the silent 09:00 fallback.
Verification
At bcea0b0, integrated with main 6647b0a:
CI=true vp run check:changed 6647b0a761ff7a1287047a9bb5fd5b63772f456bpasses format, lint, knip, two package typechecks, scheduling tests and React compiler validation.claudeAgentprovider: APPROVE, no actionable findings. The committed patch matches the frozen reviewed patch.Maria's real-client receipt reports Linux Chrome verification at 89db860, against base 61c3794c. Base saved 09:00 after clearing 14:30. The candidate rejected both empty and partial times; cancel/reload/reopen retained 14:30. A valid 16:45 edit and a 17-minute interval persisted, and Run now completed a real Codex automation. These are supplied observations, not a new client run by this follow-up agent.
The captures below are rehosted unchanged from that earlier run. The validation and save-error path they demonstrate remain unchanged by this integration; they are not captures of the current head. Current integration proof is automated.
Before — recorded base silently saved 09:00
After — recorded candidate rejects the empty time
Recorded candidate: partial-input rejection and reopening at 14:30
Limits: no fresh current-head client capture, native iOS/Android, Electron-specific, macOS/Windows or remote/tunnel verification. The earlier runtime used Run now; it did not wait for the next wall-clock dispatch. Other providers and webhooks were not exercised.
Originally implemented with Claude Opus 5.5 in Claude Code (T3 Code), with an independent GPT-6.1 Sol review. Maria's client verification used GPT-6.1 Sol through Codex. Conflict integration and this evidence/description follow-up used GPT-6.1 Sol through the Codex harness in T3 Code.