Skip to content

feat(cron): show command payloads in UI#1286

Merged
clark-cant merged 1 commit into
nextlevelbuilder:devfrom
zezaeoh:feat/cron-command-ui
Jun 27, 2026
Merged

feat(cron): show command payloads in UI#1286
clark-cant merged 1 commit into
nextlevelbuilder:devfrom
zezaeoh:feat/cron-command-ui

Conversation

@zezaeoh

@zezaeoh zezaeoh commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to command cron enablement work in #1279 and #1285. Those PRs made deterministic command cron jobs runnable/configurable, but the cron dashboard still rendered them like agent-turn jobs and showed “No message configured”; this adds read-only visibility for command payloads in the UI.

Adds a payload type badge in the cron list and command details in the job overview so operators can see when a cron job runs a script/command.

Type

  • Feature
  • Bug fix
  • Hotfix (targeting main)
  • Refactor
  • Docs
  • CI/CD

Target Branch

Targets dev.

Checklist

  • go build ./... passes
  • go build -tags sqliteonly ./... passes (if Go changes)
  • go vet ./... passes
  • Tests pass: go test -race ./...
  • Web UI builds: cd ui/web && pnpm build (if UI changes)
  • No hardcoded secrets or credentials
  • SQL queries use parameterized $1, $2 (no string concat)
  • New user-facing strings added to all 3 locales (en/vi/zh)
  • Migration version bumped in internal/upgrade/version.go (if new migration)

Test Plan

  • corepack prepare pnpm@10.30.1 --activate && pnpm --dir ui/web 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 ./...
  • 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 ./...

@clark-cant clark-cant left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — clean follow-up to #1279/#1285. Command payload visibility in the cron UI is well-scoped: proper i18n across all 4 locales, clean utility helpers (isCommandCron, formatCommand), and good conditional rendering between agent-turn and command jobs. CI all green.

Posted by github-maintain at 2026-06-27T04:23:00Z

@clark-cant clark-cant merged commit 99e2b7f into nextlevelbuilder:dev Jun 27, 2026
3 checks passed
duhd-vnpay added a commit to duhd-vnpay/goclaw that referenced this pull request Jun 30, 2026
…m wiring)

49 commits from upstream beta.27 → beta.67. 709 files / +30861/-1797.

NEW UPSTREAM MIGRATIONS (3, schema 103 → 106):
- 000085 webhook_calls_heartbeat (lease renewal column + index)
- 000086 fix_channel_contacts_merged_fk (FK type fix)
- 000087 usage_snapshots_agent_fk (FK constraint + orphan cleanup)

LOCAL MIGRATION RENUMBER (19 files shifted +3):
- 000085-000103 → 000088-000106
- Affected: cron_jobs_timeout_ms, dropped_harness_workflow_runs, org_users,
  channel_pairing, departments, dropped_project_*, agents_acp_tools,
  run_timeline_items, channel_context_capabilities, channel_memory_extraction,
  secure_cli_agent_credentials, skill_user_grants_tenant_unique, skill_self_evolution,
  usage_event_analytics, cron_provider_override, add_fk_constraints*, mcp_oauth_tokens.

CONFLICT RESOLUTIONS:
- internal/upgrade/version.go: RequiredSchemaVersion 103 → 106
- internal/config/config_load.go: upstream + reinsert Keycloak OIDC env block (local fork patch)
- internal/store/cron_store.go: upstream (CronCommandSpec + IsCommand) + reinsert TimeoutMS field (local fork.13 patch)
- go.mod: max versions per package
  - whatsmeow: 5f04eac6dbbb (upstream, 06-22 newer)
  - otel*: v1.43.0 (local)
  - image: v0.39.0 (local), mod: v0.37.0 (upstream)
  - oauth2: v0.35.0 (local), term: v0.44.0 (upstream)
  - sys/net/text/grpc: upstream newer (v0.46/v0.56/v0.38/v1.78)
  - crypto v0.53.0 / sync v0.21.0 / exp upstream / proto v1.10.0 (local)
- go.sum: regenerated via go mod tidy

SQLITE (auto-merged):
- schema.sql: webhook_calls.last_heartbeat_at column added
- schema.go: SchemaVersion 51 → 52 + migration patch added
  (mirrors PG 000085; 086/087 PG-specific FK fixes not mirrored)

UPSTREAM HIGHLIGHTS (49 commits):
- fix(cron): invert stateless gate (nextlevelbuilder#1139) — fixes UI label mismatch (eliminates
  need for local seed 123-cron-stateless-fix.sql; remove next session)
- feat(cron): deterministic command payloads (nextlevelbuilder#1279) + UI nextlevelbuilder#1286-1289 — major
  new feature: cron runs shell command without LLM (zero token cost)
- feat(webhooks): lease heartbeat (nextlevelbuilder#1275), configurable timeout (nextlevelbuilder#1267),
  paginate list (nextlevelbuilder#1268), stream provider responses for caching (nextlevelbuilder#1273)
- feat(providers): Ollama native provider (nextlevelbuilder#1307 fixes num_ctx)
- feat(i18n): Korean ko locale (nextlevelbuilder#1081)
- fix(security): block 198.18.0.0/15 + 240.0.0.0/4 SSRF (nextlevelbuilder#1269)
- feat(auth): inherit tenant_users.role for paired sessions (nextlevelbuilder#1066)
- feat(telegram): /addcron /removecron /croners commands (nextlevelbuilder#1106)
- feat(bitrix24): mention gate, OpenLine media tags (nextlevelbuilder#1294-1296)

VERIFY:
- go build ./... PASS (PG build)
- go build -tags sqliteonly ./... PASS (Desktop/SQLite build)
- go vet ./... → 1 pre-existing upstream Windows-only test bug
  (document_parser_test.go uses waitForRecordedPIDs which is in
  shell_abort_test.go gated `//go:build !windows`) — non-blocking
- Migration sequence: 1 → 106 sequential, 0 gaps, 0 duplicates
- Conflict markers: 0 remaining

BACKUP: backup-pre-v3.15.0-beta.67-merge

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NgQHyKwxDBedm9KbfFyk3w
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants