feat(cron): add command payload form#1289
Merged
Merged
Conversation
clark-cant
approved these changes
Jun 27, 2026
clark-cant
left a comment
Contributor
There was a problem hiding this comment.
PR Review
Verdict: APPROVE
Summary
Follow-up to #1287/#1288 completing the cron command UI series. Replaces the raw JSON textarea in the create dialog with a structured command form (argv per-line, cwd, timeouts, output limit, stdin). Clean, well-scoped frontend-only change.
Mandatory gates
- Duplicate / prior implementation: clear — this is the planned final piece in the cron command UI series (#1279, #1285, #1286, #1287, #1288)
- Project standards: consistent — follows existing form patterns, proper i18n across 4 locales (en, ko, vi, zh), zod validation, satisfies type annotation
- Strategic necessity: clear value — structured form is significantly more user-friendly than raw JSON editing for command cron creation
Findings
No blocking issues. Clean implementation:
- argv parsing (split/trim/filter) is correct for the per-line input pattern
- Numeric field validation with regex + range check is appropriate
- Optional fields correctly default to undefined via falsy check
- Form layout with grid for timeout fields is clean UX
- i18n strings properly added to all 4 locales
CI
All checks green: release-versioning ✅, go ✅, web ✅
Merge state
MERGEABLE, CLEAN
Posted by github-maintain cron-safe run at 2026-06-27T05:53:00Z
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #1279, #1285, #1286, #1287, and #1288. Command cron payloads can now run, show in the UI, be edited, and be created; this PR replaces the create dialog's raw command JSON box with a structured command form.
The form collects argv as one argument per line plus optional cwd, timeout, no-output timeout, output byte limit, and stdin. It still submits the same
CronCommandSpecshape tocron.create.Type
main)Target Branch
Targets
dev.Checklist
go build ./...passesgo build -tags sqliteonly ./...passes (if Go changes)go vet ./...passesgo test -race ./...cd ui/web && pnpm build(if UI changes)$1, $2(no string concat)internal/upgrade/version.go(if new migration)Test Plan
corepack prepare pnpm@10.30.1 --activate && pnpm --dir ui/web buildenv -u GOCLAW_CONFIG -u GOCLAW_DATA_DIR -u GOCLAW_HOST -u GOCLAW_PORT -u GOCLAW_PUBLIC_URL -u GOCLAW_ALLOWED_ORIGINS PATH=/usr/local/go/bin:$PATH go build ./...env -u GOCLAW_CONFIG -u GOCLAW_DATA_DIR -u GOCLAW_HOST -u GOCLAW_PORT -u GOCLAW_PUBLIC_URL -u GOCLAW_ALLOWED_ORIGINS PATH=/usr/local/go/bin:$PATH go build -tags sqliteonly ./...