Repository navigation
Conversation
… has one digit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Saved single-digit hours are padded so scheduled-task editing displays the existing time correctly. The change preserves the intended schedule and leaves defaults unchanged. 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 on both versions, added a project pointing at the real checkout and sent a real codex
read-only database observations from the running app: blacksmith checks passed: main, with the blank saved time: pr, with the same task values: saving and reopening the editor: real provider execution through run now: Not verifiednative ios/android clients and the electron shell on macos/windows were not exercised on this linux vm. remote/relay/tunnel connections, other providers, and waiting until the daily 09:05 wall-clock trigger were not exercised. run now exercised real server dispatch and provider completion; the saved daily timestamp was checked separately. |




Problem
The scheduled-task contract accepts a fixed time with a one-digit hour, such as
9:05, and the server stores it unchanged. Agents can save one with theschedule_taskMCP tool. When a user opens that task in Settings to edit it, the Run at field is blank. The web form passes the stored string straight into a native<input type="time">, and the browser turns any value that is notHH:MMinto an empty string.If the user then fills in only part of the empty field, the input reports
"", and saving falls back to09:00. The task then runs at a time the user never picked.Change
taskToDraftpads the stored time toHH:MM(9:05→09:05) before it reaches the form. All other contract-valid values are unchanged. Re-saving does not reschedule a pending run, because the server'sisSameSchedulealready compares parsed times ("padded-hour edits do not reschedule pending runs"). The mobile picker already parses one-digit hours (timePickerValue), so this brings web in line with it.Scope and approval
Very small, focused fix for an obvious bug, so no prior issue: the edit form does not show a value the server accepts and stores, and the fix is one line plus one test case.
Overlap search: #28021 replaces this input with a custom time-format control and would also pad the hour, but it addresses the 12/24-hour preference and is still open. #19373 and #22801 change the default base branch, and #21792 and #29067 change other editor fields. None of them changes how
taskToDraftreadstimeOfDayon main.Verification
vp test run src/components/settings/scheduledTasksSettings.logic.test.tsfails the new case withAssertionError: expected '9:05' to be '09:05'.vp run check:changed: format, lint, knip, typecheck, tests, and react compiler all pass.input[type=time].valueto"9:00"or"9:05"reads back"", and"09:00"reads back"09:00".Reviewed with sol-loop: 1 round with GPT-6.1 Sol on high. Sol verdict: approved.
Created with Claude Opus 5.5 in Claude Code (T3 Code).
🤖 Generated with Claude Code