Skip to content

feat(frontend): Redesigned the schedule/trigger drawers and UI/UX - #5975

Merged
mmabrouk merged 13 commits into
release/v0.112.1from
code/schedule-trigger-drawer-arch-40ca4d
Aug 13, 2026
Merged

feat(frontend): Redesigned the schedule/trigger drawers and UI/UX#5975
mmabrouk merged 13 commits into
release/v0.112.1from
code/schedule-trigger-drawer-arch-40ca4d

Conversation

@ashrafchowdury

@ashrafchowdury ashrafchowdury commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Context

The schedule and subscription drawers rendered two different UIs for the same object. Opened from a playground they became a 960px master-detail manager (list rail on the left, config on the right); opened from settings they were a plain 640px form. Two layouts, two mount paths, two sets of state. Inside the form, picking which version a trigger runs meant walking a workflow → variant → revision cascader, the sampled event was drawn three separate ways (a chip strip, a raw JSON dump, a per-path preview), and the schedule editor sat permanently open as a control panel.

Changes

Both hosts now render the same single form at 640px. The master-detail layer is gone (MasterDetailRail, useDraftMasterDetail, SchedulesList, SubscriptionsList, ScheduleDrawerContent, SubscriptionDrawerContent). The playground passes its agent, so the drawer drops the Agent field, puts the agent name in the title, and keeps "Run in playground" in the footer. Settings picks the agent with a new AgentField.

The form reads as a flat stack: Name, Agent (settings only), Schedule or Trigger, Message, and an Advanced disclosure holding Version and the active window.

Version binding. VersionField replaces the cascader with one Select: a "Latest" entry per variant plus that variant's revisions beneath it. The two answers persist differently, which is why they can't be collapsed:

Latest (backend resolves the newest revision on each run):
{"application": {"id": "..."}, "application_variant": {"id": "..."}}

Pinned:
{"application": {"id": "..."}, "application_revision": {"id": "..."}}

useTriggerBinding owns reading that shape back. The drawer label and the row's drift tag now resolve through it together; read separately they disagreed about pinned revisions and could name two different versions for one trigger. The tag only appears when the trigger targets something other than the open revision ("Runs on v3", "Runs on latest version").

Message shape migration. Both drawers learn isChat/primaryKey from an async query, so a message typed before the agent resolved was stored under the wrong key. Re-reading it under the resolved shape returned "", the composer looked empty, and the save went out against an agent that couldn't receive it. remapMessageShape moves the message across and deletes the old key:

Before: {"message": "summarize this"}
After: {"messages": [{"role": "user", "content": "summarize this"}]}

Schedule builder. The row collapses to words plus a next run ("Weekdays at 09:00 UTC", "Next run Mon 17 Aug, 09:00 UTC · in 2 days") and everything editable moved into a popover. List phrases are capped at three entries with a "+N" tail, so a monthly schedule on 31 days no longer truncates mid-word.

Event mapping. EventFieldList is now the single view of the sampled event: one row per field showing what the selector resolves to right now, clicking it writes the selector into the mapping. The raw JSON editor is kept for non-agent targets only.

New UI primitives. DatePicker, TimePicker and a combined DateTimePicker in @agenta/ui (adds react-day-picker), replacing the antd DatePicker in the active-window field. Each half replaces only its own component, so setting a time keeps the day and picking a day keeps the time.

Rows and tables. The playground trigger rows gained Run in playground and Pause/Resume in the menu. In settings, "Bound workflow" became "Connected agent" resolved from the applications list; workflowMolecule.artifactName is scoped to an open app, so on settings pages it never resolved and the column fell back to raw ids. The Window column only renders when a row actually uses one.

Tests

  • pnpm vitest run tests/unit/gatewayTriggerMessageInputs.test.ts tests/unit/gatewayTriggerScheduleBuilder.test.ts in @agenta/entities: 45 passing, including a new remapMessageShape suite (both shape directions, sibling keys preserved, unreadable mappings left untouched).
  • pnpm run types:check in @agenta/entity-ui: clean.
  • Storybook: MasterDetailRail.stories.tsx deleted with the component; the MessageComposer, ScheduleBuilderField, WindowField, TriggerRow and SubscriptionChildRow stories were rewritten against the new components.

What to QA

  • Settings → Triggers → New schedule. Pick an agent, set a cadence, type a message, save. The table row shows the agent's name in "Connected agent", not an id, and the Window column only appears if some schedule has one.
  • Open an agent in the playground → Triggers → add a schedule. The drawer has no Agent field and the title reads "New schedule · ".
  • From the playground row menu: "Run in playground" opens the run, Pause and Resume flip the row's status and persist after a reload.
  • Advanced → Version. Save with "Latest", reopen: still Latest. Pin v2, save, reopen: still v2. Open an older revision of that agent and confirm the row shows "Runs on v2".
  • Type a message immediately after opening the drawer, before the agent finishes loading, then save. The message survives into the agent's shape instead of the composer going blank.
  • Subscription drawer: choose a source, "Get a sample event", click a field in the list. The selector lands in the mapping and previews the live value.
  • Advanced → active window: set a date, then a time. The date stays put. Save and reopen and confirm the UTC wall clock round-trips.
  • Regression: a subscription whose target is not an agent still shows the raw JSON mapping editor with the event field list below it.

Preview

will add it ones fully tested it

…es for improved clarity and functionality

- Updated MessageComposer story to utilize the new component structure and enhance documentation.
- Simplified ScheduleBuilderField story by removing deprecated code and improving the layout for better readability.
- Refactored WindowField story to streamline the component usage and clarify the optional start/end bounds functionality.
- Removed unused imports and legacy code to maintain a clean codebase.
…onents; update SubscriptionForm for improved structure and functionality

- Deleted SubscriptionDrawerContent and SubscriptionsList components to streamline the subscription drawer.
- Refactored SubscriptionForm to enhance readability and maintainability, including changes to state management and event handling.
- Introduced suggestSubscriptionName helper function for better naming conventions.
- Updated constants and helpers to reflect the removal of unused code and improve clarity.
- Enhanced UI components for better user experience, including adjustments to select and time-picker components.
- Introduced `useBoundAgentShape` to retrieve the shape of bound agents, improving the handling of agent workflows.
- Updated `InputsMappingField` to simplify mapping validation and enhance the user experience with event fields.
- Modified `MappingSection` to ensure the raw JSON editor is only shown when necessary, improving usability.
- Enhanced `SourceField` to include a clear button for better user interaction.
- Updated `SubscriptionForm` to integrate event filters directly under the event selection, ensuring necessary filters are visible.
- Refactored storybook examples for `SubscriptionChildRow` and `TriggerRow` to reflect the latest UI changes and improve clarity.
@vercel

vercel Bot commented Aug 12, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
agenta-documentation Error Error Aug 13, 2026 2:18pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: ad812834-4559-4103-95d4-60a8022bbf5d

📥 Commits

Reviewing files that changed from the base of the PR and between 846bfd9 and 23e1dec.

📒 Files selected for processing (1)
  • web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Redesigned trigger schedule and subscription management with agent selection, version binding, clearer status indicators, and row-based actions.
    • Added streamlined forms with loading states, improved mapping controls, automatic naming, and playground execution.
    • Added calendar, date, time, and date-time picker controls.
    • Added schedule summaries, next-run information, drift indicators, and improved UTC time-window editing.
  • Bug Fixes
    • Improved handling of long names, event keys, missing values, invalid schedules, and message-shape changes.
    • Improved pause/resume feedback, preserved integration logos, and enhanced waiting-event reliability.

Walkthrough

The PR redesigns gateway trigger schedules and subscriptions around agent bindings. It adds shared schedule, message, mapping, date, and time controls. It moves actions into menus and removes legacy master-detail and comparison implementations.

Changes

Gateway trigger redesign

Layer / File(s) Summary
Trigger contracts and schedule helpers
web/packages/agenta-entities/src/gatewayTrigger/...
Adds agent resolution, schedule helpers, next-run formatting, schedule-name suggestions, and message-shape remapping.
Shared binding and form controls
web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/..., web/packages/agenta-ui/src/components/ui/...
Adds agent/version selectors, binding resolution, loading skeletons, calendar controls, date-time controls, and time controls.
Schedule form flow
web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/..., web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx
Replaces legacy schedule editing with a flat agent-aware form, popover schedule builder, automatic names, message remapping, and UTC window fields.
Subscription form and mapping flow
web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/...
Adds compact source selection, event-field insertion, agent-aware mapping, raw JSON mode, and controlled event waiting.
Trigger management rows
web/oss/src/components/pages/settings/Triggers/components/..., web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/...
Displays connected agents and read-only statuses. Pause, resume, and playground actions are available from row menus.
Component examples and supporting UI
web/storybook/stories/entity-ui/..., web/packages/agenta-entity-ui/src/drawers/shared/...
Updates examples and removes legacy master-detail and comparison implementations.

Estimated code review effort: 5 (Critical) | ~120 minutes

Mergeability Score: ⚪ Minimal · up to 23e1d

No actionable merge-blocking risk remains; the PR is merge-ready after normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant TriggerDrawer
  participant useTriggerBinding
  participant AgentField
  participant VersionField
  participant ScheduleForm
  participant GatewayAPI
  TriggerDrawer->>ScheduleForm: mount schedule form
  ScheduleForm->>useTriggerBinding: resolve stored or selected binding
  ScheduleForm->>AgentField: select connected agent
  ScheduleForm->>VersionField: select latest or pinned version
  ScheduleForm->>GatewayAPI: save schedule with references and message
  GatewayAPI-->>TriggerDrawer: return saved schedule
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 59.49% which is insufficient. The required threshold is 60.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main frontend redesign of the schedule and trigger drawers.
Description check ✅ Passed The description directly explains the shared drawer redesign, binding changes, UI updates, tests, and QA scope.
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 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch code/schedule-trigger-drawer-arch-40ca4d

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.

@ashrafchowdury

Copy link
Copy Markdown
Contributor Author

demo incoming

…pe transformation

refactor: update ParameterTree to import RowRemoveButton from the correct path

refactor: optimize ScheduleTriggerRow by memoizing cadence and next run calculations

refactor: simplify useDriftTag by consolidating revision fetching logic

refactor: clean up DrawerFooter by removing unused Active toggle logic

refactor: remove MasterDetailRail component and related stories

feat: implement RowRemoveButton as a separate component for better reusability

feat: enhance ScheduleForm to handle message shape changes dynamically

refactor: streamline EventSourcePicker by removing unnecessary props

refactor: update RunVersionField to use bound revision logic for better accuracy

refactor: clean up VersionField to utilize bound revision for version display

feat: introduce useShapeChange hook to manage message shape transitions

refactor: remove unused constants and functions in MappingSection and helpers
…emove Lightning icon from Test event button in MappingSection
…roups header logic; add AppLogo to IntegrationsView; enhance ScheduleForm and SubscriptionForm with ag-scroll-quiet class for improved scrollbar behavior
…improve user experience during data fetching
@ashrafchowdury
ashrafchowdury marked this pull request as ready for review August 12, 2026 14:56
@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. frontend ui ux labels Aug 12, 2026
@ashrafchowdury

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Already reviewed.

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.

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Railway Preview Environment

Preview URL https://gateway-pr-5975.up.railway.app/w
Project agenta-oss-clone-spike
Image tag pr-5975-3af741e
Status Deployed
Railway logs Open logs
Workflow logs View workflow run
Updated at 2026-08-13T14:28:49.144Z

@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: 18

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/ScheduleForm.tsx (1)

134-170: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

An agent rebind can leave Save disabled.

baselineSnapshot uses bindingKey(resolved) and isDirty compares it against bindingKey(activeBinding). The agent handler at lines 356-360 sets agentWorkflowId and resets binding to null, so activeBinding falls back to resolved. useTriggerBinding feeds agentWorkflowId into resolved whenever the stored references do not name a workflow. Both sides of the comparison then move together, the binding change cancels out, and isDirty stays false.

In edit mode this blocks the save: the user picks a different agent, nothing else changes, and the Save button remains disabled.

Derive the baseline binding from the stored or default references only, so a user-picked agent is never folded into the baseline.

🐛 Proposed direction
     const storedReferences = schedule?.data?.references
     const resolved = useTriggerBinding({
         storedReferences: isEdit ? storedReferences : state?.defaultReferences,
         playgroundEntityId,
         agentWorkflowId,
     })
+    // Baseline binding: the persisted/default one, unaffected by the agent the user picks.
+    const baselineBinding = useTriggerBinding({
+        storedReferences: isEdit ? storedReferences : state?.defaultReferences,
+        playgroundEntityId,
+    })

Then use bindingKey(baselineBinding) in baselineSnapshot and keep bindingKey(activeBinding) in isDirty.

🧹 Nitpick comments (10)
web/storybook/stories/entity-ui/MessageComposer.stories.tsx (1)

6-10: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Reduce the Storybook source comments to one short line.

Remove migration-history detail. Keep one short comment only when it documents a surprising constraint.

  • web/storybook/stories/entity-ui/MessageComposer.stories.tsx#L6-L10: replace the multi-line composer and retired-harness explanation.
  • web/storybook/stories/entity-ui/ScheduleBuilderField.stories.tsx#L6-L11: replace the multi-line control and retired-harness explanation.
  • web/storybook/stories/entity-ui/SubscriptionChildRow.stories.tsx#L8-L11: shorten the component and menu explanation.
  • web/storybook/stories/entity-ui/TriggerRow.stories.tsx#L17-L18: remove the added migration-history sentence.
  • web/storybook/stories/entity-ui/WindowField.stories.tsx#L6-L11: replace the multi-line picker and retired-harness explanation.

As per coding guidelines, “Keep in-code comments to at most one short line; use longer comments only for genuinely surprising constraints such as bugs, races, or ordering requirements.”

Source: Coding guidelines

web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/EventFieldList.tsx (1)

64-96: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Hoist TooltipProvider out of the row loop.

Each row mounts its own TooltipProvider. One provider around the whole list gives the same behavior with fewer context providers, and it keeps the shared delayDuration in one place.

♻️ Proposed refactor
     return (
-        <div className={`flex flex-col gap-0.5 overflow-y-auto ${className}`}>
-            {fields.map((f) => (
-                <TooltipProvider key={f.key} delayDuration={400}>
-                    <Tooltip>
+        <TooltipProvider delayDuration={400}>
+            <div className={`flex flex-col gap-0.5 overflow-y-auto ${className}`}>
+                {fields.map((f) => (
+                    <Tooltip key={f.key}>

Close the new wrapper at the end of the list.

web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/MappingSection.tsx (2)

163-178: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extract the duplicated test-event picker.

The same EventSourcePicker block with the same trigger button markup and the same props appears in the non-agent branch here and in the agent branch at lines 200-215. One local component keeps the two headers in sync when the wait hint or the button style changes.

♻️ Proposed refactor
+function TestEventPicker({
+    recentEvents,
+    onPick,
+    onWaitForEvent,
+}: {
+    recentEvents: SampledEvent[]
+    onPick: (event: SampledEvent) => void
+    onWaitForEvent?: () => Promise<SampledEvent | null>
+}) {
+    return (
+        <EventSourcePicker
+            placement="bottomRight"
+            trigger={
+                <button
+                    type="button"
+                    className="flex cursor-pointer items-center gap-1 border-0 bg-transparent p-0 text-xs font-medium text-[var(--ag-colorTextSecondary)] hover:text-[var(--ag-colorText)]"
+                >
+                    Test event
+                </button>
+            }
+            recentEvents={recentEvents}
+            onPick={onPick}
+            onWaitForEvent={onWaitForEvent}
+            waitHint="trigger it from the app now"
+            captureMode
+        />
+    )
+}

Then render <TestEventPicker …/> in both branches.


66-71: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Memoize richerThanComposer.

parseMessageTemplate(value, isChat, primaryKey) runs on every render, including renders that only toggle raw or fieldsOpen. A useMemo on the same inputs removes the repeated parse and matches the memoization guideline for changed surfaces.

♻️ Proposed refactor
-    const richerThanComposer =
-        !!value.trim() && parseMessageTemplate(value, isChat, primaryKey) === ""
+    const richerThanComposer = useMemo(
+        () => !!value.trim() && parseMessageTemplate(value, isChat, primaryKey) === "",
+        [value, isChat, primaryKey],
+    )

As per coding guidelines: "Minimize React re-renders with useMemo, useCallback, and React.memo where appropriate".

Source: Coding guidelines

web/packages/agenta-entities/src/gatewayTrigger/core/scheduleBuilder.ts (1)

176-177: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

The describeCron fallback is unreachable.

state.cron.trim() is falsy only for an empty or whitespace expression. describeCron("") fails validation and returns the same empty expression, so the right operand can never add text. The custom branch therefore always yields the raw expression or "".

If the raw expression is the intended output, drop the dead operand and the now-unused import path. If a humanized description is intended for a valid expression, invert the operands.

♻️ Proposed simplification
         case "custom":
-            return state.cron.trim() || describeCron(state.cron)
+            return state.cron.trim()
web/packages/agenta-entity-ui/src/drawers/shared/Labelled.tsx (1)

8-17: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Give Labelled a way to name its control.

The label renders as a span with no association to the control. Screen readers therefore read the wrapped Input, AutosizeTextarea, and Radix SelectTrigger without a name. WindowField already solves this locally with useId plus aria-labelledby, so the pattern exists in the same feature.

Expose the generated id so each consumer can wire aria-labelledby (or htmlFor for native inputs).

♿ Proposed change to expose a label id
-import type {ReactNode} from "react"
+import {useId, type ReactNode} from "react"
 
 /**
  * One labelled field in a drawer's flat field stack — the shape both trigger drawers use in
  * place of the old accordion sections. A label and its control, nothing else: status chips,
  * summaries and required markers were what made the sections heavy.
  */
-export function Labelled({label, children}: {label: string; children: ReactNode}) {
+export function Labelled({
+    label,
+    children,
+}: {
+    label: string
+    children: ReactNode | ((labelId: string) => ReactNode)
+}) {
+    const labelId = useId()
     return (
         <div className="flex flex-col gap-2">
-            <span className="text-xs font-medium text-[var(--ag-colorTextDescription)]">
+            <span
+                id={labelId}
+                className="text-xs font-medium text-[var(--ag-colorTextDescription)]"
+            >
                 {label}
             </span>
-            {children}
+            {typeof children === "function" ? children(labelId) : children}
         </div>
     )
 }
web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/MessageComposer.tsx (1)

25-39: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Guard the first edit when wouldReplace is true.

The raw-JSON editor is gone, so richer inputs_fields can no longer be viewed or restored in this drawer. The textarea stays editable while wouldReplace is true, so one keystroke calls setScheduleMessage and discards the whole mapping. The user has no way to recover the previous value.

Require an explicit acknowledgement before the first destructive edit. For example, keep the textarea read-only while wouldReplace is true and add a "Replace inputs" action that clears the guard.

This makes the warning at lines 47-48 actionable instead of advisory.

web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/ScheduleForm.tsx (1)

86-86: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove the stale Active-toggle comment.

The footer Active toggle is gone, so nothing calls setEnabled outside hydration. For a new schedule enabled is therefore always true, and the comment at line 280 describes a control that no longer exists.

Keep the is_active: true default for create, and correct the comment. Also drop setEnabled from the create path reasoning so the next reader does not look for a missing toggle.

♻️ Proposed comment fix
-                    // Honor the Active toggle at creation (otherwise the BE defaults to active).
+                    // New schedules start active; pause is done from the triggers list.
                     flags: {is_active: enabled},

Also applies to: 280-281

web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/VersionField.tsx (1)

78-84: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Share the "real revisions, newest first" rule with useBoundRevision.

Lines 78-84 filter version !== 0 and sort descending. useBoundRevision in useTriggerBinding.ts (lines 219-226) applies the same two rules. The file header of useTriggerBinding.ts states that these copies had already drifted apart once. Export one helper from useTriggerBinding.ts and call it here, so the list order and the resolved "Latest" revision cannot diverge again.

web/packages/agenta-ui/package.json (1)

125-125: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Version is current; note the preferred v10 package name.

10.0.1 is the latest published version, and DayPicker is compatible with React 16.8 and later, so the peer range in this package is satisfied. For information: the recommended v10 package name is @daypicker/react; the react-day-picker package name remains available in v10 for compatibility, so existing imports can still work. Keeping react-day-picker is valid. Consider the scoped name in a later dependency pass.


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: bccb189c-5d2f-4019-9d30-338a4114fc9b

📥 Commits

Reviewing files that changed from the base of the PR and between ab084b5 and ab1efc4.

⛔ Files ignored due to path filters (1)
  • web/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (69)
  • web/oss/src/components/pages/settings/Triggers/components/GatewaySchedulesSection.tsx
  • web/oss/src/components/pages/settings/Triggers/components/GatewaySubscriptionsSection.tsx
  • web/oss/src/components/pages/settings/Triggers/components/useAgentNameById.ts
  • web/packages/agenta-entities/src/gatewayTrigger/core/messageInputs.ts
  • web/packages/agenta-entities/src/gatewayTrigger/core/scheduleBuilder.ts
  • web/packages/agenta-entities/src/gatewayTrigger/core/types.ts
  • web/packages/agenta-entities/src/gatewayTrigger/core/window.ts
  • web/packages/agenta-entities/src/gatewayTrigger/index.ts
  • web/packages/agenta-entities/tests/unit/gatewayTriggerMessageInputs.test.ts
  • web/packages/agenta-entities/tests/unit/gatewayTriggerScheduleBuilder.test.ts
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/TriggerManagementSection.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/agentTemplate/ParameterTree.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/sectionGroups.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/AppTriggerProviderGroups.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/ScheduleTriggerRow.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/SubscriptionChildRow.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/TriggerRow.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/useDriftTag.ts
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/useSubscriptionRun.ts
  • web/packages/agenta-entity-ui/src/DrillInView/index.ts
  • web/packages/agenta-entity-ui/src/drawers/shared/DrawerFooter.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/GatewayCatalogDrawer.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/Labelled.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/MasterDetailRail.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/RowRemoveButton.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/index.ts
  • web/packages/agenta-entity-ui/src/drawers/shared/useDraftMasterDetail.ts
  • web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/ScheduleBuilderField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/TriggerScheduleDrawer.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/TriggerSubscriptionDrawer.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/MessageComposer.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/ScheduleDrawerContent.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/ScheduleForm.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/SchedulesList.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/WindowField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/constants.ts
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/AgentField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/EventSourcePicker.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/FormSkeleton.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/RequiredTitle.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/RunVersionField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/VersionField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/useShapeChange.ts
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/useTriggerBinding.ts
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/EventFieldList.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/InputsMappingField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/MappingSection.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SourceBrowsePage.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SourceField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SubscriptionDrawerContent.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SubscriptionForm.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SubscriptionsList.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/constants.ts
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/helpers.ts
  • web/packages/agenta-ui/package.json
  • web/packages/agenta-ui/src/components/ui/calendar.tsx
  • web/packages/agenta-ui/src/components/ui/date-picker.tsx
  • web/packages/agenta-ui/src/components/ui/date-time-picker.tsx
  • web/packages/agenta-ui/src/components/ui/index.ts
  • web/packages/agenta-ui/src/components/ui/select.tsx
  • web/packages/agenta-ui/src/components/ui/time-picker.tsx
  • web/packages/agenta-ui/src/components/ui/tooltip.tsx
  • web/storybook/stories/entity-ui/MasterDetailRail.stories.tsx
  • web/storybook/stories/entity-ui/MessageComposer.stories.tsx
  • web/storybook/stories/entity-ui/ScheduleBuilderField.stories.tsx
  • web/storybook/stories/entity-ui/SubscriptionChildRow.stories.tsx
  • web/storybook/stories/entity-ui/TriggerRow.stories.tsx
  • web/storybook/stories/entity-ui/WindowField.stories.tsx
💤 Files with no reviewable changes (9)
  • web/packages/agenta-entity-ui/src/drawers/shared/useDraftMasterDetail.ts
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/RequiredTitle.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/ScheduleDrawerContent.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/index.ts
  • web/storybook/stories/entity-ui/MasterDetailRail.stories.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/MasterDetailRail.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SubscriptionsList.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SubscriptionDrawerContent.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/SchedulesList.tsx

Comment thread web/oss/src/components/pages/settings/Triggers/components/useAgentNameById.ts Outdated
Comment thread web/packages/agenta-ui/src/components/ui/date-picker.tsx
Comment thread web/packages/agenta-ui/src/components/ui/date-time-picker.tsx Outdated
Comment thread web/packages/agenta-ui/src/components/ui/time-picker.tsx Outdated

@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: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 0790961c-099e-47e0-8e11-28a30d66d5b1

📥 Commits

Reviewing files that changed from the base of the PR and between ab1efc4 and 846bfd9.

📒 Files selected for processing (18)
  • web/oss/src/components/pages/settings/Triggers/components/GatewaySchedulesSection.tsx
  • web/oss/src/components/pages/settings/Triggers/components/GatewaySubscriptionsSection.tsx
  • web/oss/src/components/pages/settings/Triggers/components/useAgentNameById.ts
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/AppTriggerProviderGroups.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/ScheduleTriggerRow.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/SubscriptionChildRow.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/DrawerFooter.tsx
  • web/packages/agenta-entity-ui/src/drawers/shared/HelpTip.tsx
  • web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/ScheduleBuilderField.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/ScheduleForm.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/EventSourcePicker.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/useTriggerBinding.ts
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/MappingSection.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/SubscriptionForm.tsx
  • web/packages/agenta-ui/src/components/ui/date-picker.tsx
  • web/packages/agenta-ui/src/components/ui/date-time-picker.tsx
  • web/packages/agenta-ui/src/components/ui/time-picker.tsx
🚧 Files skipped from review as they are similar to previous changes (13)
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/ScheduleBuilderField.tsx
  • web/oss/src/components/pages/settings/Triggers/components/GatewaySchedulesSection.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/SubscriptionChildRow.tsx
  • web/packages/agenta-ui/src/components/ui/time-picker.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/ScheduleTriggerRow.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/subscription/MappingSection.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/schedule/ScheduleForm.tsx
  • web/oss/src/components/pages/settings/Triggers/components/GatewaySubscriptionsSection.tsx
  • web/packages/agenta-ui/src/components/ui/date-time-picker.tsx
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/useTriggerBinding.ts
  • web/packages/agenta-entity-ui/src/gatewayTrigger/drawers/shared/EventSourcePicker.tsx
  • web/packages/agenta-entity-ui/src/DrillInView/SchemaControls/triggerManagement/AppTriggerProviderGroups.tsx
  • web/packages/agenta-entity-ui/src/gatewayTool/components/SchemaForm.tsx

@mmabrouk
mmabrouk changed the base branch from release/v0.112.0 to release/v0.112.1 August 13, 2026 14:12
@mmabrouk mmabrouk added the lgtm This PR has been approved by a maintainer label Aug 13, 2026
@mmabrouk
mmabrouk merged commit 792fbcd into release/v0.112.1 Aug 13, 2026
38 of 41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend lgtm This PR has been approved by a maintainer size:XXL This PR changes 1000+ lines, ignoring generated files. ui ux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants