Skip to content

Web UI: add full cron edit parity, all-jobs run history, and compact filters#24155

Merged
Takhoffman merged 3 commits intomainfrom
task/cron-ui-history-polish
Feb 23, 2026
Merged

Web UI: add full cron edit parity, all-jobs run history, and compact filters#24155
Takhoffman merged 3 commits intomainfrom
task/cron-ui-history-polish

Conversation

@Takhoffman
Copy link
Copy Markdown
Contributor

@Takhoffman Takhoffman commented Feb 23, 2026

Summary

Describe the problem and fix in 2–5 bullets:

  • Problem:
    • Cron management from the web UI lacked CLI feature parity for editing and advanced run controls, and run history did not scale well for cross-job triage.
    • The cron form and history filters had rough layout/UX issues (unclear field guidance, awkward selection behavior, and low-density filtering controls).
  • Why it matters:
    • Operators need reliable day-to-day scheduling and failure triage from the UI without dropping to CLI.
  • What changed:
    • Added full cron edit flow in the web UI with validation and clearer descriptions for schedule, execution, payload, delivery, and advanced fields.
    • Added clone, improved selection behavior, and cancel/edit state handling.
    • Added pagination/sort/filter for jobs and run history, including all-jobs history mode and richer history metadata (delivery/model/usage/session context).
    • Added multi-select filtering for run status and delivery outcomes, then redesigned run-history filters to compact dropdown-checklist controls with cleaner two-row layout.
    • Improved cron page layout, alignment, and responsive behavior; widened/tuned problematic filter sizing.
    • Updated gateway cron protocol/handlers to support paged/filterable list/runs queries and all-scope run history.
    • Added/updated tests for protocol validation, server cron behavior, presenter formatting, controller/view behavior, and paging/filtering paths.
  • What did NOT change (scope boundary):
    • No new auth scopes, no new external service integrations, and no changes to core cron execution semantics beyond exposing existing capabilities in UI/API shape.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

  • Closes #
  • Related #

User-visible / Behavior Changes

  • Cron jobs can now be edited in web UI with near-CLI parity.
  • Cron form has stronger required-field/error guidance and clearer descriptions for payload/session/delivery semantics.
  • Clicking job actions (edit/clone/run/history/etc.) keeps selection aligned with the clicked row.
  • Run history supports:
    • all-jobs view,
    • pagination,
    • search/sort,
    • multi-select filters for status and delivery,
    • richer run details for triage.
  • Jobs list supports paging/search/filter/sort.

Security Impact (required)

  • New permissions/capabilities? (Yes/No) No
  • Secrets/tokens handling changed? (Yes/No) No
  • New/changed network calls? (Yes/No) No
  • Command/tool execution surface changed? (Yes/No) No
  • Data access scope changed? (Yes/No) No
  • If any Yes, explain risk + mitigation:

Repro + Verification

Environment

  • OS: macOS
  • Runtime/container: Node 22+, pnpm
  • Model/provider: n/a
  • Integration/channel (if any): n/a
  • Relevant config (redacted): default dev gateway + control UI

Steps

  1. Start control UI and open Cron Jobs page.
  2. Create/edit/clone jobs with each schedule/payload/delivery combination.
  3. View run history in selected-job and all-jobs scope, apply search/sort/status/delivery filters.

Expected

  • Edit/clone flows preserve correct selection and form state.
  • Required-field errors are visible and actionable.
  • Jobs/runs paging and filtering return stable, expected results.
  • Run history filter UI is compact and readable.

Actual

  • Matches expected.

Evidence

Attach at least one:

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording
  • Perf numbers (if relevant)

Human Verification (required)

What you personally verified (not just CI), and how:

  • Verified scenarios:
    • cron add/update/clone/cancel flows,
    • row selection behavior on actions,
    • all-job run history browsing,
    • filter interactions and layout.
  • Edge cases checked:
    • empty filter sets = include all,
    • invalid required fields disable submit with specific reasons,
    • switching scope between all and selected job.
  • What you did not verify:
    • production-scale perf on extremely large run-log directories.

Compatibility / Migration

  • Backward compatible? (Yes/No) Yes
  • Config/env changes? (Yes/No) No
  • Migration needed? (Yes/No) No
  • If yes, exact upgrade steps:

Failure Recovery (if this breaks)

  • How to disable/revert this change quickly:
    • Revert commit 137f3dd22.
  • Files/config to restore:
    • src/gateway/protocol/schema/cron.ts
    • src/gateway/server-methods/cron.ts
    • src/cron/run-log.ts
    • ui/src/ui/controllers/cron.ts
    • ui/src/ui/views/cron.ts
    • ui/src/styles/components.css
  • Known bad symptoms reviewers should watch for:
    • Run-history filters not applying,
    • action buttons selecting wrong row,
    • cron form submit blocked unexpectedly.

Risks and Mitigations

  • Risk:
    • Larger UI/gateway surface change around cron filtering and pagination could introduce subtle regressions.
    • Mitigation:
      • Added protocol, server, controller, presenter, and view tests; ran pnpm check and targeted cron test suites.

Greptile Summary

Added comprehensive cron editing and history workflows to the web UI, bringing near-parity with CLI capabilities for job management and run triage.

  • Extended protocol schemas and server handlers to support pagination, filtering, and sorting for both job lists (cron.list) and run history (cron.runs), including all-jobs run history mode
  • Implemented readCronRunLogEntriesPage and readCronRunLogEntriesPageAll in src/cron/run-log.ts to support filtered/paged run queries with multi-select status and delivery filters
  • Added full edit flow in UI controller with startCronEdit, startCronClone, and comprehensive form validation (validateCronForm) that blocks submission with specific field-level error messages
  • Refactored UI views to display compact multi-select filter dropdowns for run status and delivery outcomes, improving filter density and layout
  • Added richer run metadata (model, provider, usage tokens, session context) to telemetry capture and presentation
  • Preserved row selection state when performing job actions (edit/clone/run/history) to avoid unexpected selection jumps
  • Added comprehensive test coverage for protocol validation, server behavior, controller logic, and view interactions

Confidence Score: 4/5

  • Safe to merge with minor monitoring recommended for filter edge cases
  • Large but well-structured change with good test coverage across protocol, server, and UI layers. The implementation follows existing patterns, includes validation safeguards, and maintains backward compatibility. Score reflects the extensive surface area and potential for subtle pagination/filtering edge cases in production at scale.
  • Pay close attention to src/cron/run-log.ts for pagination edge cases with very large run logs, and monitor ui/src/ui/views/cron.ts for filter interaction behavior

Last reviewed commit: 137f3dd

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation app: web-ui App: web-ui gateway Gateway runtime size: XL maintainer Maintainer-authored PR labels Feb 23, 2026
@Takhoffman Takhoffman changed the title UI: improve cron editing and history workflows UI: improve cron managment and history workflows Feb 23, 2026
@Takhoffman Takhoffman changed the title UI: improve cron managment and history workflows Web UI: add full cron edit parity, all-jobs run history, and compact filters Feb 23, 2026
@Takhoffman Takhoffman force-pushed the task/cron-ui-history-polish branch from fca8696 to 1e75906 Compare February 23, 2026 05:05
@Takhoffman Takhoffman merged commit 77c3b14 into main Feb 23, 2026
15 checks passed
@Takhoffman Takhoffman deleted the task/cron-ui-history-polish branch February 23, 2026 05:05
@Takhoffman
Copy link
Copy Markdown
Contributor Author

PR #24155 - Web UI: add full cron edit parity, all-jobs run history, and compact filters (#24155)

Merged via squash.

  • Merge commit: 77c3b14
  • Verified: pnpm install --frozen-lockfile, pnpm build, pnpm check, pnpm test:macmini
  • Changes made:
    M CHANGELOG.md
    M docs/web/control-ui.md
    M src/cron/run-log.ts
    M src/cron/service.ts
    M src/cron/service/ops.ts
    M src/gateway/protocol/cron-validators.test.ts
    M src/gateway/protocol/schema/cron.ts
    M src/gateway/server-methods/cron.ts
    M src/gateway/server.cron.test.ts
    A test/ui.presenter-next-run.test.ts
    M ui/src/styles/components.css
    M ui/src/ui/app-defaults.ts
    M ui/src/ui/app-render.ts
    M ui/src/ui/app-settings.ts
    M ui/src/ui/app-view-state.ts
    M ui/src/ui/app.ts
    M ui/src/ui/controllers/cron.test.ts
    M ui/src/ui/controllers/cron.ts
    M ui/src/ui/presenter.ts
    M ui/src/ui/types.ts
    M ui/src/ui/ui-types.ts
    M ui/src/ui/views/cron.test.ts
    M ui/src/ui/views/cron.ts
  • Why these changes were made:

Summary

  • Changelog: CHANGELOG.md updated=true required=true opt_out=false

Thanks @Takhoffman!

ethvilet pushed a commit to ethvilet/openclaw that referenced this pull request Feb 23, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
carlosrivera pushed a commit to myascendai/meshiclaw that referenced this pull request Feb 23, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
gabrielkoo pushed a commit to gabrielkoo/openclaw that referenced this pull request Feb 23, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
mreedr pushed a commit to mreedr/openclaw-custom that referenced this pull request Feb 24, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
margulans pushed a commit to margulans/Neiron-AI-assistant that referenced this pull request Feb 25, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
mylukin pushed a commit to mylukin/openclaw that referenced this pull request Feb 26, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
r4jiv007 pushed a commit to r4jiv007/openclaw that referenced this pull request Feb 28, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
zooqueen pushed a commit to hanzoai/bot that referenced this pull request Mar 6, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
lovewanwan pushed a commit to lovewanwan/openclaw that referenced this pull request Apr 28, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
ogt-redknie pushed a commit to ogt-redknie/OPENX that referenced this pull request May 2, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 9, 2026
…filters (openclaw#24155) thanks @Takhoffman

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui docs Improvements or additions to documentation gateway Gateway runtime maintainer Maintainer-authored PR size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant