Skip to content

feat(frontend): render cron elicitation fields with the schedule builder - #5228

Merged
ardaerzin merged 3 commits into
big-agentsfrom
fe-feat/elicitation-cron-format
Jul 11, 2026
Merged

feat(frontend): render cron elicitation fields with the schedule builder#5228
ardaerzin merged 3 commits into
big-agentsfrom
fe-feat/elicitation-cron-format

Conversation

@ardaerzin

Copy link
Copy Markdown
Contributor

What

Adds format: "cron" (alias crontab) to the elicitation format vocabulary, so an agent asking for a recurring schedule via request_input gets the playground's friendly schedule builder instead of a raw text input.

Why

The schedule-creation drawer already has a vetted builder UI (ScheduleBuilderField: frequency, day, time — serialized as a 5-field cron expression). Until now, a chat elicitation asking "when should this run?" fell back to a plain string field, forcing the user to hand-write cron. This wires the existing control into the elicitation renderer — same pattern as date/multiline, gated behind the formats flag.

How

  • @agenta/shared elicitation.tscron joins KNOWN_STRING_FORMATS; crontab canonicalizes to it.
  • SchemaForm.tsx — the cron format case renders ScheduleBuilderField (same-package import from gatewayTrigger/drawers); the stepper review row humanizes the value via describeBuilder(cronToBuilder(value).state) with a raw-value fallback.
  • static_catalog.py — the request_input tool description teaches the new format ("renders a friendly schedule builder; the value is a 5-field cron expression").
  • Pins — golden fixture gains a run_schedule cron field with a default; the catalog pytest asserts the golden exercises it; vitest pins the cron/crontab normalization; playbook-spec + prompting-checklist format lists updated.

Verification

  • @agenta/shared 275 vitest ✓, @agenta/entity-ui 185 vitest ✓, turbo build ✓
  • test_static_catalog.py 41 passed ✓, ruff format/check ✓

@vercel

vercel Bot commented Jul 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agenta-documentation Ready Ready Preview, Comment Jul 11, 2026 9:28pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 05e99a3c-669f-48a0-8985-9832765190a6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Cron is added as a supported request_input format across documentation, backend schema descriptions, shared normalization, fixtures, validation, and the web schema form. Cron fields render through a schedule builder and support crontab alias normalization.

Changes

Cron format support

Layer / File(s) Summary
Cron format contracts and normalization
.agents/skills/.../prompting-checklist.md, docs/design/.../playbook-spec.md, web/packages/agenta-shared/src/utils/elicitation.ts, web/packages/agenta-shared/tests/...
Documentation and shared elicitation utilities define cron as a supported format, normalize crontab to cron, and cover both cases in tests and fixtures.
request_input schema contract and validation
api/oss/src/core/workflows/static_catalog.py, api/oss/tests/pytest/unit/workflows/test_static_catalog.py
The tool description documents cron expressions and golden-request validation requires a cron-formatted property.
Cron form rendering and review display
web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx, web/packages/agenta-entity-ui/src/gatewayTool/components/schemaFormOptions.ts, web/packages/agenta-entity-ui/tests/unit/schemaFormOptions.test.ts
Cron fields render with ScheduleBuilderField, use default values, and display parsed schedule descriptions with raw-value fallback.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant RequestInput
  participant FormatNormalizer
  participant SchemaForm
  participant ScheduleBuilderField
  RequestInput->>FormatNormalizer: Provide cron or crontab format
  FormatNormalizer->>SchemaForm: Normalize format to cron
  SchemaForm->>ScheduleBuilderField: Render cron value with initial default
  ScheduleBuilderField-->>SchemaForm: Return updated cron expression
Loading

Possibly related PRs

  • Agenta-AI/agenta#4978: Introduces the schedule-builder utilities and component used by the new cron form handling.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: rendering cron elicitation fields with the schedule builder.
Description check ✅ Passed The description is directly related to the changeset and accurately describes the cron elicitation updates.
Docstring Coverage ✅ Passed Docstring coverage is 85.71% which is sufficient. The required threshold is 60.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fe-feat/elicitation-cron-format

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

format: "cron" (alias "crontab") joins the elicitation format vocabulary.
SchemaForm renders it with the playground's ScheduleBuilderField instead of
a raw text input, and the stepper review row humanizes the value via
describeBuilder. Catalog description, golden fixture, playbook docs and
tests pin the new format on both sides of the wire.
@ardaerzin
ardaerzin force-pushed the fe-feat/elicitation-cron-format branch from 3d3c253 to 8ec3df3 Compare July 11, 2026 20:47
@ardaerzin
ardaerzin marked this pull request as ready for review July 11, 2026 20:48
@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. Feature Request New feature or request Frontend labels Jul 11, 2026
@ardaerzin

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4c6f6f78-8b3c-43a9-8758-697dfccde10c

📥 Commits

Reviewing files that changed from the base of the PR and between b5c4784 and 8ec3df3.

📒 Files selected for processing (8)
  • .agents/skills/write-template-playbooks/references/prompting-checklist.md
  • api/oss/src/core/workflows/static_catalog.py
  • api/oss/tests/pytest/unit/workflows/test_static_catalog.py
  • docs/design/agent-workflows/projects/agent-templates/playbook-spec.md
  • web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx
  • web/packages/agenta-shared/src/utils/elicitation.ts
  • web/packages/agenta-shared/tests/fixtures/elicitation_request.json
  • web/packages/agenta-shared/tests/unit/elicitation.test.ts

Comment thread web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx Outdated
… displays

ScheduleBuilderField has no empty state, so a cron field without a wire
default looked answered while the form value stayed undefined — a required
field kept Accept disabled with no visible way to confirm the shown
schedule, and an optional one silently submitted nothing. cronInitialValue
seeds the displayed schedule as the value (WYSIWYG); the CronField fallback
now only covers post-mount clears (stepper Skip).
@ardaerzin

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@ardaerzin
ardaerzin merged commit b00a00c into big-agents Jul 11, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature Request New feature or request Frontend size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant