This repository was archived by the owner on Oct 21, 2026. It is now read-only.
Repository navigation
Commit 22c337f
feat(automations): align layout with Codex (#501)
* feat(automations): align layout with Codex
* feat(automations): add safe task editing foundations
* feat(automations): model schedule drafts and repeat presets
* feat(automations): guard drafts and expose task actions
* feat(automations): keep filtered task lists mounted
* feat(automations): unify schedule creation and editing
* feat(automations): simplify loop setup with progressive disclosure
* fix(automations): preserve results and stabilize detail panels
* fix(desktop): stop session chrome bleeding into automations overlay
The persistent DesktopChrome never suppressed its right-rail panel
toggles or session title/menu while the Automations overlay covers
the workspace, so they kept showing on top of it. Null out
rightControls and titleContent while automationsOpen, matching the
existing !automationsOpen gate already used for the Resources control.
* feat(automations): rework schedule/loop form fields, add weekday multi-select
- Move Loop's agent/harness selector out of Advanced settings into the
primary flow, alongside project selection.
- Move Schedule's timezone field into Advanced settings now that it's
confirmed load-bearing for cadence calculation (DST-aware next-run
math), not cosmetic.
- Convert the misfire policy control from a radio group to a dropdown.
- Support selecting several weekdays for a weekly schedule: the form
model now carries an array, the cadence builder joins them into a
comma-separated cron field (croner already parses that), and the
preset recognizer round-trips a multi-weekday cron expression back
into the friendly weekly UI. Adds a new TaskMultiSelect checklist
popover to back the picker.
* feat(automations): add a resizable, layout-stable detail panel
- New ResizeHandle (packages/presentation/ui): a standalone drag
divider that reads no sibling DOM geometry and owns no styling
contract, unlike the desktop shell's Sash — any panel can report a
clamped size through onResize/onResizeEnd and decide how to render
and persist it. Live drag frames stay local to the caller; only the
settled size needs persisting.
- New persisted useAutomationDetailWidthStore backing the Automations
detail pane's width (420-960px, default 640).
- automations-view.tsx: the list pane is now the fluid grid column and
the detail pane is the fixed, user-resizable one, mirroring how the
session view's own right panel works. Also adds a fixed top-right
slot (DetailHeaderSlotProvider) next to the close button for detail
views to portal contextual header actions into, and removes the
list pane's masterDetailVisible-driven title/button/padding swap so
expanding or collapsing the detail pane only animates the outer grid
track — nothing inside the list has to reflow or pop.
- Drop the max-w-xl cap on the create-form pane so its content fills
the resizable width instead of re-centering at a fixed 576px.
* fix(automations): unify detail-panel header actions and dialog padding
- Schedule and Loop detail views now portal their AutomationActions
overflow menu into the fixed slot next to the close button instead
of rendering it inline in their own scrollable header — the two
controls were only ever coincidentally adjacent, and scrolled apart
as soon as the panel's content moved.
- Split Schedule's run history out of the disclosure that used to sit
after the Save/Cancel row into its own "Run history" tab, alongside
an "Edit" tab holding the existing form — nothing renders below Save
now.
- Remove the duplicate heading text repeated inside the Loop log and
Schedule run-history disclosures (the trigger already shows it).
- Give the discard-unsaved-changes and delete-confirmation dialogs
their missing padding via AlertDialogHeader/AlertDialogFooter,
matching every other dialog in the codebase.
- Drop the now-unused "title" string; the in-page <h1> it backed was
removed together with the list pane's other content that swapped on
selection.
* fix(automations): center-align the status badge on wide list rows
The status badge sat inline with the truncated name (top-aligned with
the rest of the row), while the sibling "more actions" button is
vertically centered against the row's full height — visibly offset
once the list pane is wide enough for a two-line row to have real
height to spare. A container query on the row now moves the badge to
a trailing, self-centered column past 380px of row width, matching
the actions button; narrower rows keep the existing inline placement.
---------
Co-authored-by: Lan_zhijiang <lanzhijiang@foxmail.com>1 parent 972a40c commit 22c337f
49 files changed
Lines changed: 2517 additions & 883 deletions
File tree
- apps
- desktop/src/renderer/src
- __tests__
- automations
- shell
- layout
- webview/src
- routes
- shell
- docs
- packages
- client
- sdk/src
- workbench/src
- automations
- loop
- schedule
- surface
- foundation/schema/src
- model
- wire
- host
- agent-adapter
- src/native
- engine/src/automation
- presentation
- i18n/src/locales
- ui/src/shell
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
| |||
36 | 35 | | |
37 | 36 | | |
38 | 37 | | |
39 | | - | |
40 | 38 | | |
41 | 39 | | |
42 | 40 | | |
| |||
53 | 51 | | |
54 | 52 | | |
55 | 53 | | |
56 | | - | |
57 | | - | |
58 | 54 | | |
59 | 55 | | |
60 | 56 | | |
| |||
66 | 62 | | |
67 | 63 | | |
68 | 64 | | |
69 | | - | |
70 | | - | |
71 | | - | |
| 65 | + | |
| 66 | + | |
72 | 67 | | |
73 | 68 | | |
74 | | - | |
| 69 | + | |
75 | 70 | | |
76 | 71 | | |
77 | 72 | | |
| |||
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
| 130 | + | |
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| 23 | + | |
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
| |||
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
| 34 | + | |
32 | 35 | | |
33 | 36 | | |
34 | 37 | | |
| |||
50 | 53 | | |
51 | 54 | | |
52 | 55 | | |
53 | | - | |
54 | 56 | | |
55 | 57 | | |
56 | 58 | | |
| |||
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
| 177 | + | |
175 | 178 | | |
176 | 179 | | |
177 | 180 | | |
| |||
297 | 300 | | |
298 | 301 | | |
299 | 302 | | |
300 | | - | |
| 303 | + | |
| 304 | + | |
301 | 305 | | |
302 | 306 | | |
303 | 307 | | |
304 | 308 | | |
305 | 309 | | |
306 | | - | |
| 310 | + | |
| 311 | + | |
307 | 312 | | |
308 | 313 | | |
309 | 314 | | |
| |||
678 | 683 | | |
679 | 684 | | |
680 | 685 | | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
681 | 689 | | |
682 | | - | |
| 690 | + | |
683 | 691 | | |
684 | 692 | | |
685 | 693 | | |
| |||
747 | 755 | | |
748 | 756 | | |
749 | 757 | | |
750 | | - | |
| 758 | + | |
751 | 759 | | |
752 | 760 | | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
753 | 771 | | |
754 | 772 | | |
755 | 773 | | |
| |||
795 | 813 | | |
796 | 814 | | |
797 | 815 | | |
| 816 | + | |
798 | 817 | | |
799 | 818 | | |
800 | 819 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
14 | | - | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
| |||
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
| 59 | + | |
| 60 | + | |
58 | 61 | | |
59 | 62 | | |
60 | 63 | | |
| |||
66 | 69 | | |
67 | 70 | | |
68 | 71 | | |
| 72 | + | |
69 | 73 | | |
70 | 74 | | |
71 | 75 | | |
72 | 76 | | |
73 | | - | |
| 77 | + | |
74 | 78 | | |
75 | 79 | | |
76 | 80 | | |
| |||
290 | 294 | | |
291 | 295 | | |
292 | 296 | | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
293 | 302 | | |
294 | 303 | | |
295 | 304 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | 1 | | |
3 | 2 | | |
4 | 3 | | |
| |||
22 | 21 | | |
23 | 22 | | |
24 | 23 | | |
25 | | - | |
26 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
14 | 18 | | |
15 | 19 | | |
16 | 20 | | |
| |||
0 commit comments