Skip to content

feat: merge Jobs and Triggers into one Automations area - #709

Merged
pedronauck merged 69 commits into
mainfrom
automations
Oct 8, 2026
Merged

pedronauck merged 69 commits into
mainfrom
automations

Conversation

@pedronauck

@pedronauck pedronauck commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

What & why

The Web UI had two apps for one idea: Jobs (time) and Triggers (events and links), each with its own list, detail page, dialog and run list. A user had to know which daemon entity they created before they could find it again, and COPY.md has carried "Jobs / Triggers — pending owner decision" since the normie pass.

This PR implements the whole automations spec (.compozy/tasks/automations, tasks 01–07, ADR-001…004) against the approved design set docs/design/opendesign/automations/ (S1 listing · S2 detail · S3 editor · S4 surfaces). The result is one Automations window:

  • Listing (S1). Every automation is one sentence (Every weekday at 09:00 UTC, ask summarizer.). Each row has a time stat, its last-run truth (Last run failed 7h ago in danger; skipped/missed/handed off/completed in neutral), a non-optimistic On/Off switch, and an overflow with only the supported actions. Start views (All · Scheduled · On events), search, and the Does/Status/Location/Source/Loop facets are all server-side, so totals stay honest. Cards view, first-run empty state with suggestions, and loading / unavailable / partial / failed states.
  • Detail (S2). One page grammar for schedules, events and links: sentence head with the switch opposite, "How it works" (Starts / Only if / Does with next runs, conditions, prompt, Loop inputs, task, webhook endpoint), one run list with StateGlyph, one rail card, a lockbar for config/package sources, Inspect for the machine truth, and delete-by-typing-the-name. Run now exists only for schedules.
  • Editor (S3). One dialog: Name → Starts → Only if → Does → Options. A live sentence bar shows Ready / Needs a fix; there's a schedule builder (no cron needed), event cards, webhook fields and conditions. The start you pick decides the entity (schedule → job, event/link → trigger). Edit mode locks start/target/agent/scope and says why. Deep links: ?create=1&start=…, ?create=loop&loop=…, ?edit=options.
  • Shell (S4–S7). One dock launcher; palette view + entity section with sentence subtitles and "New scheduled automation" / "New automation on an event"; Settings › Automation Manage row with plainer labels; Loop pages get Automate ▾ and a Start-panel link to the filtered listing.

The daemon keeps both entities (ADR-001). Its changes:

  • last_run on job/trigger DTOs (ADR-003). One batched latest-per-owner query per page, two new partial composite indexes, and skip_reason lifted from the run metadata so a skip never reads as a cancel. It reaches HTTP, UDS, CLI (new Last Run column, JSON/toon fields) and the compozy__automation_*_{list,get} tools.
  • target=agent|loop|task list filter. A catalog target column is backfilled in the migration; the filter is exposed as --target and as a tool input.
  • App-id retirement (ADR-002/004).
    • corecmds serves one automations app and view.
    • Window-manager snapshot v5 migrates every stored v3/v4 desktop losslessly: Jobs/Triggers windows, tabs, floating stacks, nav stacks and closed entries become Automations windows on the rewritten routes, persisted once, and no window is closed.
    • A Goose migration merges palette pins/recents/usage into the automations ids.
    • Old public inputs stay accepted for one release and warn, with removal in v0.5.0: --app jobs|triggers, window commands, window_layout resources, palette app.open.{jobs,triggers} / palette.view.{jobs,triggers} over HTTP/UDS and the cmd-palette CLI, and web /jobs* / /triggers* (redirect stubs).

Every job-only or trigger-only page, row, card, run list, form and hook is deleted, not aliased (regime 3).

How you verified it

Local targeted checks (CI owns the full gate):

  • go test on every touched Go package (api/core, automation, windowmanager, cmdpalette, cli, daemon WindowManager|Snapshot|NativeAutomation, store/globaldb migration + latest-run + target suites, internal/store TestProductionMigrationStreams).
  • golangci-lint on touched packages: 0 issues. make codegen-check: clean. make product-language-check: pass.
  • Web: bunx turbo run typecheck --filter=./web and the full web Vitest run, 684 files / 6,734 tests green.
  • Site: tests and typecheck green.

Real-app QA (3 rounds, isolated eng-qa-bootstrap labs, real daemon + Web UI in Chrome). I seeded the board's seven automations through the real CLI, with real runs.

  • Walked all seven new scenarios in docs/qa/scenarios/TA-*automation*.
  • Upgrade, in place and for real: a home created by the main binary had a v4 desktop with tiled/stacked/floating/closed Jobs and Triggers windows plus pinned palette commands. After booting this branch's binary it came back as v5 Automations windows in the same slots, with windowmanager.snapshot_migrated logged once and the pins merged.
  • Old URLs redirect with history replace. compozy window open --app jobs warns and opens Automations. -o json last_run equals …/runs?limit=1 for 11/11 automations.
  • Round 1 found 11 issues. The 8 in scope are fixed and re-walked, including F1: ?create= deep links died on a cold load because the StrictMode development double mount disposed the editor and the seed store read that as an operator close. The regression is pinned with renderHook(..., { reactStrictMode: true }), which fails on the old code.

Reviews. Claude Fable 5.1 (high) reviewed the full diff against the spec, boards and SD-013 before this PR: approve with fixes (1 blocker, 5 major, 27 minor, 15 nits). All accepted findings were fixed and a Fable confirmation pass returned approve. Rejected: B-1, renumbering migrations to 00129/00130. TestProductionMigrationStreams requires gap-free versions, so that would make this PR red; see the rebase checklist below.

Screenshots (real daemon, 1440×900):

Listing rows Listing cards
Scheduled view Does filter
First run Detail schedule
Detail event Detail webhook
Inspect Failed run drawer
Editor schedule Editor event Only if
Editor needs a fix Palette
Settings Loop Automate menu
Old URL redirect CLI Last Run
Listing dark

How it was built. A Claude Opus 5.5 controller orchestrated parallel workers in isolated worktrees through herdr: Codex GPT-6 Astra (medium) on the daemon slices (task 01 last_run/target, task 02 app-id retirement, review fixes), and Claude Opus 5.5 (medium) on the listing, detail, editor, shell surfaces, docs and the QA walks. The controller integrated every slice into this branch, resolved the conflicts, and fixed the cross-slice gaps itself: the web snapshot-v5 schema, migration renumbering + atlas, CLI palette aliases, and the F1 root cause. I reviewed and verified the result.

Impact

  • Web: Jobs + Triggers → one Automations app (/automations, /automations/jobs/:id, /automations/triggers/:id). /jobs* and /triggers* redirect until v0.5.0.
  • CLI: additive. Last Run column, last_run in JSON/toon, --target on automation jobs|triggers. --app jobs|triggers and cmd-palette invoke|inspect app.open.{jobs,triggers} warn on stderr until v0.5.0. Verbs and flags are otherwise unchanged.
  • HTTP/UDS: additive last_run on job/trigger list and get; target query param on both list routes (OpenAPI + generated clients regenerated). Palette routes alias the retired ids with a WARN.
  • Native tools: ids unchanged; results gain last_run; list tools gain target; descriptions name the UI noun.
  • User state: snapshot v4→v5 (lossless, permanent; version-4 layout documents keep loading). Goose 00128 (latest-run indexes + catalog target) and 00129 (palette personalization merge).
  • Config: no key changes; Settings labels only.
  • Docs: one Automations site category with two step-by-step tutorials; jobs/triggers pages moved to schedules/events with permanent redirects; official skill, COPY.md + glossary, release note with a migration block, docs/_memory/change-impact.md, merged QA scenarios.

Rebase checklist vs memory-removal (whichever lands second)

  • Renumber the second branch's migrations after the first (memory-removal holds 00128_retire_memory.sql) and regenerate atlas.sum.
  • internal/daemon/window_manager_repository.go: the v5 app-id rewrite must run before memory-removal's registered-app reconcile.
  • Drop the remaining memory.consolidated catalog/docs entries. They are pre-existing on main and owned by memory-removal.

Known issues found by QA that are pre-existing on main (out of scope, reproduced on a main build)

  • Duplicate automation names are accepted, so the editor's name-conflict path never fires (uniqueness moved to resource_records).
  • The daemon fails to boot once a workspace Loop-target job exists (resolve scheduler catch-up policy … loop definition not found).
  • With a project active, the listing still shows other projects' workspace-scoped automations unless Location = This project.

Follow-ups (deferred review nits)

  • ValidateLayout deprecation source needs a request-actor field.
  • The editor's relative "next in …" is computed in UTC for non-UTC zones (cronNext has no zone input).
  • The detail overflow placement after Edit needs a shell-wide topbar decision.
  • The package lockbar can't name the package (no DTO field).

  • make gate passes locally; this PR is delivered only after its required CI checks are green. Gates are delegated to CI by standing decision; targeted local checks are listed above.
  • New or changed behavior is covered by tests, or I explained above why not
  • If an agent wrote or co-wrote this, I named it above and verified the result myself

🤖 Generated with Claude Code

pedronauck and others added 30 commits October 8, 2026 00:16
Rename trigger-detail/* to automation-detail/* serving jobs and triggers:
sentence head with the On/Off switch, How it works (Starts / Only if /
Does with next runs, conditions, prompt, Loop inputs, task, webhook
endpoint), one shared run list, one-card rail, lockbar, Inspect for both
kinds, delete by typing the name, and states with a way back. One
useAutomationDetailPage replaces the job and trigger detail hooks; the
job detail page, its sections and run history are deleted.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
# Conflicts:
#	web/src/systems/os/lib/__tests__/os-palette-domain-search.test.ts
Next runs drop the accent chip for faint indexes and hairline rows, the
rule card reads at form size with subtle sub-lines, the prompt clamp
keeps its padding, the subhead emphasizes the project and times, and the
rail names the event the way the rule card does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge the job and trigger forms into one AutomationForm (Name → Starts →
Only if → Does → Options) with a live sentence bar, a schedule builder
without cron by default, event cards, link fields, conditions, three
targets, one Options fold, the preview swap and edit-mode locks. The Starts
choice decides whether the save creates a job or a trigger.

- useAutomationForm + useAutomationEditor replace the per-kind hooks
- deep links: ?create=1|loop with start/loop, edit=1|options
- delete automation-job-form, automation-trigger-form, job-form/*,
  trigger-form/*, both reliability sections and both previews

Co-Authored-By: Claude Opus 5.5 <[email protected]>
# Conflicts:
#	web/src/systems/automation/components/job-form/preview/next-runs-card.tsx
#	web/src/systems/automation/index.ts
#	web/src/systems/os/apps/automation/__tests__/use-automation-trigger-detail-page.test.tsx
#	web/src/systems/os/apps/automation/automation-create-seed-store.ts
#	web/src/systems/os/apps/automation/use-automation-job-detail-page.ts
#	web/src/systems/os/apps/automation/use-automation-page-base.ts
#	web/src/systems/os/apps/automation/use-automation-page.ts
#	web/src/systems/os/apps/automation/use-automation-trigger-detail-page.ts
#	web/src/systems/os/apps/automation/use-automations-page.ts
# Conflicts:
#	internal/store/globaldb/global_db_test.go
#	internal/store/globaldb/schema/migrations/atlas.sum
- create=1 seeds wait for a resolved lens, not a project, so the empty
  state's "On a schedule" opens the editor in Global; Loop seeds still
  need their project
- the editor preview renders the detail's AutomationNextRuns from a small
  schedule helper; job-preview, job-form/ and automation-target-details go
- the editor form names its entity (data-entity) for browser artifacts
- tests: page-level UT-106 (Loop seed, strip, no reopen, Global), the
  same-window link search reaching the WM location, E2E-005

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The daemon now stores and serves version 5 snapshots and layout
documents; the web schemas still required version 4 and would reject
every snapshot after the upgrade. Also aligns the layout tool schema and
the official skill.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
# Conflicts:
#	web/src/systems/os/apps/automation/use-automations-page.ts
# Conflicts:
#	web/src/systems/os/apps/automation/__tests__/use-automations-page.test.tsx
pedronauck and others added 5 commits October 8, 2026 03:39
E2E-005 expected the Start panel's count link to be visible on load. The
Loop rail card folds by default and carries the answer in its gist
("1 automation"), so the test now checks the gist, opens the card, and
follows the link to /automations?loop=<name>.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
main.tsx renders under StrictMode, whose development double mount
disposes the editor the first effect opened. The seed store read that
reset as an operator close and stripped ?create= before the dialog ever
showed. Only an explicit Cancel or dismiss now strips the params; any
other reset reopens the editor.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@vercel

vercel Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
compozy-site Ready Ready Preview Oct 8, 2026 4:07pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 380 files, which is 80 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration
  • Configuration used: Repository: compozy/compozy/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: fb38260e-de9f-4909-913e-cb6c0c078578
📥 Commits

Reviewing files that changed from the base of the PR and between 599886c and 8d419b0.

⛔ Files ignored due to path filters (88)
  • .release-notes/one-automations-window-1791444637.md is excluded by !**/*.md
  • COPY.md is excluded by !**/*.md
  • docs/_memory/change-impact.md is excluded by !**/*.md
  • docs/_memory/glossary.md is excluded by !**/*.md
  • docs/qa/journeys/J-24-triage-work-at-scale.md is excluded by !**/*.md
  • docs/qa/journeys/J-start-from-empty-catalogs.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-palette-domain-views.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-catalog-navigation.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-jobs-triggers-catalog.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-page-content-gutter.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-route-chrome-topbar.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-trigger-detail-rule-page.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-ui-resilience.md is excluded by !**/*.md
  • docs/qa/scenarios/MS-web-menubar-global-scope-toggle.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-054.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-056.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-automation-crud-loop-target.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-automation-last-run-agent.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-scheduled-session-restart-recovery.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-automation-detail.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-automation-editor.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-automation-preview-toggle.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-automations-first-run.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-automations-listing.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-automations-shell-entry.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-automations-upgrade.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-jobs-zero-inventory-suggestions.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-triggers-zero-inventory-intro.md is excluded by !**/*.md
  • internal/store/globaldb/schema/migrations/atlas.sum is excluded by !**/*.sum, !**/*.sum
  • internal/tools/builtin/testdata/native-tool-catalog.json is excluded by !**/*.json
  • internal/windowmanager/testdata/retired_app_routes.json is excluded by !**/*.json
  • openapi/compozy.json is excluded by !**/*.json
  • packages/site/content/docs/automation/events.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/automation/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/automation/meta.json is excluded by !**/*.json
  • packages/site/content/docs/automation/react-when-a-session-fails.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/automation/run-an-agent-every-morning.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/automation/schedules.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/automation/suggestions.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/automation/webhooks.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/automation/jobs/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/automation/triggers/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/examples/morning-briefing-job.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/examples/react-to-session-end.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/examples/webhook-to-agent-run.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/hooks/event-catalog.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/loops/catalog.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/loops/reference-grammar.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/workspaces/window-management.mdx is excluded by !**/*.mdx
  • sdk/typescript/src/generated/contracts.ts is excluded by !**/generated/**, !**/generated/**
  • skills/compozy/SKILL.md is excluded by !**/*.md
  • skills/compozy/references/native-tools.md is excluded by !**/*.md
  • skills/compozy/references/window-management.md is excluded by !**/*.md
  • web/e2e/__tests__/automation.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/automations-detail.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/automations-editor.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/automations-listing.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/jobs-hardening.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/loops.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/os-shell.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/triggers-hardening.spec.ts is excluded by !web/e2e/**
  • web/e2e/fixtures/__tests__/browser-artifact-session.test.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/__tests__/selectors.test.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/artifacts.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/browser-artifact-session.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/navigation.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/scenario-contracts.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/selectors.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/src/generated/compozy-openapi.d.ts is excluded by !**/generated/**, !**/generated/**, !**/*.d.ts
  • web/src/systems/automation/components/stories/automation-delete-action.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/automation-detail-panel.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/automation-editor-dialog.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/automation-job-form.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/automation-run-history.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/automation-trigger-form.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/job-form/cron-builder.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/job-form/job-preview.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/trigger-form/event-catalog.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/trigger-form/filter-conditions.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/trigger-form/trigger-preview.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/components/stories/trigger-inspect-sheet.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/routes/automation-detail.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/routes/automations.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/routes/jobs.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/automation/routes/triggers.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/loops/components/stories/loop-detail.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/os/components/stories/os-window-deck.stories.tsx is excluded by !**/*.stories.tsx
📒 Files selected for processing (380)
  • internal/api/contract/automation.go
  • internal/api/core/automation.go
  • internal/api/core/automation_conversions.go
  • internal/api/core/automation_list_queries.go
  • internal/api/core/automation_scheduler_projection.go
  • internal/api/core/automation_test.go
  • internal/api/core/automation_trigger_handlers.go
  • internal/api/core/cmd_palette.go
  • internal/api/core/cmd_palette_personalization.go
  • internal/api/core/cmd_palette_retired.go
  • internal/api/core/cmd_palette_test.go
  • internal/api/core/cmd_palette_view_sessions.go
  • internal/api/core/cmd_palette_views.go
  • internal/api/core/handlers_internal_test.go
  • internal/api/core/interfaces.go
  • internal/api/httpapi/httpapi_integration_test.go
  • internal/api/spec/automation_values.go
  • internal/api/spec/registry_automation.go
  • internal/api/testutil/automation_stub.go
  • internal/api/udsapi/udsapi_integration_test.go
  • internal/automation/manager_runs.go
  • internal/automation/model/list.go
  • internal/automation/model/list_semantics.go
  • internal/automation/model/list_test.go
  • internal/automation/model/persistence.go
  • internal/automation/store_contract.go
  • internal/cli/automation_client_query_values.go
  • internal/cli/automation_job_output.go
  • internal/cli/automation_last_run_output.go
  • internal/cli/automation_list_commands.go
  • internal/cli/automation_list_queries.go
  • internal/cli/automation_test.go
  • internal/cli/automation_trigger_output.go
  • internal/cli/client_test.go
  • internal/cli/cmd_palette.go
  • internal/cli/cmd_palette_invoke.go
  • internal/cli/cmd_palette_list.go
  • internal/cli/cmd_palette_test.go
  • internal/cli/loop_list.go
  • internal/cli/window_manager_test.go
  • internal/cli/window_manager_window.go
  • internal/cmdpalette/corecmds/apps.go
  • internal/cmdpalette/corecmds/automations.go
  • internal/cmdpalette/corecmds/constants.go
  • internal/cmdpalette/corecmds/domains.go
  • internal/cmdpalette/corecmds/profiles.go
  • internal/cmdpalette/corecmds/provider.go
  • internal/cmdpalette/corecmds/provider_test.go
  • internal/cmdpalette/corecmds/settings.go
  • internal/cmdpalette/corecmds/views.go
  • internal/daemon/boot_resource_graph.go
  • internal/daemon/daemon_test.go
  • internal/daemon/native_automation_list_tools.go
  • internal/daemon/native_automation_tools_test.go
  • internal/daemon/native_automation_trigger_tools.go
  • internal/daemon/window_manager_boot.go
  • internal/daemon/window_manager_deprecation.go
  • internal/daemon/window_manager_repository.go
  • internal/daemon/window_manager_repository_test.go
  • internal/daemon/window_manager_snapshot_migration.go
  • internal/store/globaldb/global_db_automation_catalog_projection.go
  • internal/store/globaldb/global_db_automation_integration_test.go
  • internal/store/globaldb/global_db_automation_job_catalog.go
  • internal/store/globaldb/global_db_automation_latest_runs.go
  • internal/store/globaldb/global_db_automation_test.go
  • internal/store/globaldb/global_db_automation_trigger_catalog.go
  • internal/store/globaldb/global_db_test.go
  • internal/store/globaldb/queries/automation_scheduler_catalog.sql
  • internal/store/globaldb/schema/definitions/30_automation.sql
  • internal/store/globaldb/schema/migrations/00128_automation_latest_runs.sql
  • internal/store/globaldb/schema/migrations/00129_automations_palette.sql
  • internal/store/globaldb/sqlcgen/automation_scheduler_catalog.sql.go
  • internal/store/globaldb/sqlcgen/models.go
  • internal/tools/builtin/automation.go
  • internal/tools/builtin/window_manager_schemas.go
  • internal/windowmanager/commands.go
  • internal/windowmanager/options.go
  • internal/windowmanager/resource_codec.go
  • internal/windowmanager/resource_codec_test.go
  • internal/windowmanager/retired_app_input.go
  • internal/windowmanager/service.go
  • internal/windowmanager/service_contract_test.go
  • internal/windowmanager/service_layout.go
  • internal/windowmanager/service_test.go
  • internal/windowmanager/snapshot_v3.go
  • internal/windowmanager/snapshot_v3_test.go
  • internal/windowmanager/snapshot_v4.go
  • internal/windowmanager/types.go
  • packages/site/next.config.mjs
  • sdk/go/contracts/types_003_gen.go
  • sdk/go/contracts/types_004_gen.go
  • sdk/go/contracts/types_005_gen.go
  • sdk/go/contracts/types_006_gen.go
  • sdk/go/contracts/types_007_gen.go
  • sdk/go/contracts/types_008_gen.go
  • sdk/go/contracts/types_009_gen.go
  • sdk/go/contracts/types_010_gen.go
  • sdk/go/contracts/types_011_gen.go
  • sdk/go/contracts/types_012_gen.go
  • sdk/go/contracts/types_013_gen.go
  • sdk/go/contracts/types_014_gen.go
  • sdk/go/contracts/types_015_gen.go
  • sdk/go/contracts/types_016_gen.go
  • sdk/go/contracts/types_017_gen.go
  • sdk/go/contracts/types_018_gen.go
  • sdk/go/contracts/types_019_gen.go
  • sdk/go/contracts/types_020_gen.go
  • sdk/go/contracts/types_021_gen.go
  • sdk/go/contracts/types_022_gen.go
  • sdk/go/contracts/types_023_gen.go
  • sdk/go/contracts/types_024_gen.go
  • sdk/go/contracts/types_025_gen.go
  • sdk/go/contracts/types_026_gen.go
  • web/.storybook/preview.ts
  • web/src/hooks/routes/loop-bindings-map.ts
  • web/src/hooks/routes/use-loop-bindings.ts
  • web/src/routeTree.gen.ts
  • web/src/routes/_app/-automation-preload.ts
  • web/src/routes/_app/-legacy-automation-redirect.ts
  • web/src/routes/_app/__tests__/-legacy-automation-redirect.test.ts
  • web/src/routes/_app/__tests__/-route-preloading.integration.test.tsx
  • web/src/routes/_app/automations.jobs.$jobId.tsx
  • web/src/routes/_app/automations.triggers.$triggerId.tsx
  • web/src/routes/_app/automations.tsx
  • web/src/routes/_app/jobs.$jobId.tsx
  • web/src/routes/_app/jobs.tsx
  • web/src/routes/_app/settings/-automation-settings-page.tsx
  • web/src/routes/_app/settings/__tests__/-automation-settings-page.test.tsx
  • web/src/routes/_app/triggers.$triggerId.tsx
  • web/src/routes/_app/triggers.tsx
  • web/src/storybook/__tests__/web-storybook-config.test.tsx
  • web/src/storybook/app-route-stories.ts
  • web/src/systems/automation/adapters/__tests__/automation-api.test.ts
  • web/src/systems/automation/adapters/automation-api.ts
  • web/src/systems/automation/components/__tests__/automation-catalog.test.tsx
  • web/src/systems/automation/components/__tests__/automation-detail-panel.test.tsx
  • web/src/systems/automation/components/__tests__/automation-editor-dialog.test.tsx
  • web/src/systems/automation/components/__tests__/automation-job-form.test.tsx
  • web/src/systems/automation/components/__tests__/automation-listing.test.tsx
  • web/src/systems/automation/components/__tests__/automation-run-history.test.tsx
  • web/src/systems/automation/components/__tests__/automation-suggestions-card.test.tsx
  • web/src/systems/automation/components/__tests__/automation-trigger-form.test.tsx
  • web/src/systems/automation/components/__tests__/trigger-detail-panel.test.tsx
  • web/src/systems/automation/components/automation-card.tsx
  • web/src/systems/automation/components/automation-catalog-shell.tsx
  • web/src/systems/automation/components/automation-delete-action.tsx
  • web/src/systems/automation/components/automation-detail-panel.tsx
  • web/src/systems/automation/components/automation-detail-sections.tsx
  • web/src/systems/automation/components/automation-detail-topbar-actions.tsx
  • web/src/systems/automation/components/automation-detail/automation-detail-actions.tsx
  • web/src/systems/automation/components/automation-detail/automation-detail-head.tsx
  • web/src/systems/automation/components/automation-detail/automation-detail-panel.tsx
  • web/src/systems/automation/components/automation-detail/automation-detail-section.tsx
  • web/src/systems/automation/components/automation-detail/automation-detail-states.tsx
  • web/src/systems/automation/components/automation-detail/automation-inspect-sheet.tsx
  • web/src/systems/automation/components/automation-detail/automation-lockbar.tsx
  • web/src/systems/automation/components/automation-detail/automation-next-runs.tsx
  • web/src/systems/automation/components/automation-detail/automation-rail.tsx
  • web/src/systems/automation/components/automation-detail/automation-rule-card.tsx
  • web/src/systems/automation/components/automation-detail/automation-rule-does.tsx
  • web/src/systems/automation/components/automation-detail/automation-run-list.tsx
  • web/src/systems/automation/components/automation-detail/automation-value-badge.tsx
  • web/src/systems/automation/components/automation-detail/automation-webhook-endpoint.tsx
  • web/src/systems/automation/components/automation-editor-dialog.tsx
  • web/src/systems/automation/components/automation-enable-switch.tsx
  • web/src/systems/automation/components/automation-form/automation-choice-cards.tsx
  • web/src/systems/automation/components/automation-form/automation-editor-sentence-bar.tsx
  • web/src/systems/automation/components/automation-form/automation-form-parts.tsx
  • web/src/systems/automation/components/automation-form/automation-form-section.tsx
  • web/src/systems/automation/components/automation-form/automation-form.tsx
  • web/src/systems/automation/components/automation-form/automation-options.tsx
  • web/src/systems/automation/components/automation-form/does/agent-target.tsx
  • web/src/systems/automation/components/automation-form/does/does-section.tsx
  • web/src/systems/automation/components/automation-form/does/task-target.tsx
  • web/src/systems/automation/components/automation-form/only-if/condition-row.tsx
  • web/src/systems/automation/components/automation-form/only-if/only-if-section.tsx
  • web/src/systems/automation/components/automation-form/preview/automation-preview.tsx
  • web/src/systems/automation/components/automation-form/preview/automation-request-payload.tsx
  • web/src/systems/automation/components/automation-form/preview/preview-card.tsx
  • web/src/systems/automation/components/automation-form/preview/rendered-prompt.tsx
  • web/src/systems/automation/components/automation-form/preview/sample-event-card.tsx
  • web/src/systems/automation/components/automation-form/preview/webhook-endpoint-card.tsx
  • web/src/systems/automation/components/automation-form/starts/event-start.tsx
  • web/src/systems/automation/components/automation-form/starts/schedule-readout.tsx
  • web/src/systems/automation/components/automation-form/starts/schedule-start.tsx
  • web/src/systems/automation/components/automation-form/starts/starts-section.tsx
  • web/src/systems/automation/components/automation-form/starts/webhook-start.tsx
  • web/src/systems/automation/components/automation-job-card.tsx
  • web/src/systems/automation/components/automation-job-form.tsx
  • web/src/systems/automation/components/automation-job-row.tsx
  • web/src/systems/automation/components/automation-jobs-catalog.tsx
  • web/src/systems/automation/components/automation-list-filters.tsx
  • web/src/systems/automation/components/automation-request-payload.tsx
  • web/src/systems/automation/components/automation-row-parts.tsx
  • web/src/systems/automation/components/automation-row.tsx
  • web/src/systems/automation/components/automation-run-history.tsx
  • web/src/systems/automation/components/automation-start-views.tsx
  • web/src/systems/automation/components/automation-state-badges.tsx
  • web/src/systems/automation/components/automation-suggestions-card.tsx
  • web/src/systems/automation/components/automation-suggestions-panel.tsx
  • web/src/systems/automation/components/automation-target-details.tsx
  • web/src/systems/automation/components/automation-trigger-card.tsx
  • web/src/systems/automation/components/automation-trigger-form.tsx
  • web/src/systems/automation/components/automation-trigger-row.tsx
  • web/src/systems/automation/components/automation-triggers-catalog.tsx
  • web/src/systems/automation/components/job-form/agent-run-step.tsx
  • web/src/systems/automation/components/job-form/cron-builder.tsx
  • web/src/systems/automation/components/job-form/preview/job-preview.tsx
  • web/src/systems/automation/components/job-form/preview/next-runs-card.tsx
  • web/src/systems/automation/components/job-form/preview/run-digest-card.tsx
  • web/src/systems/automation/components/job-form/preview/summary-card.tsx
  • web/src/systems/automation/components/job-form/reliability-section.tsx
  • web/src/systems/automation/components/job-form/schedule-at.tsx
  • web/src/systems/automation/components/job-form/schedule-every.tsx
  • web/src/systems/automation/components/job-form/task-run-step.tsx
  • web/src/systems/automation/components/reliability-controls.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-detail-actions.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-detail-head.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-detail-lock.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-detail-panel.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-detail-rail.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-detail-states.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-rule-card.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-rule-then.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-run-list.tsx
  • web/src/systems/automation/components/trigger-detail/trigger-webhook-endpoint.tsx
  • web/src/systems/automation/components/trigger-form/agent-prompt-step.tsx
  • web/src/systems/automation/components/trigger-form/event-card.tsx
  • web/src/systems/automation/components/trigger-form/event-catalog.tsx
  • web/src/systems/automation/components/trigger-form/event-sub-config.tsx
  • web/src/systems/automation/components/trigger-form/filter-conditions.tsx
  • web/src/systems/automation/components/trigger-form/filter-row.tsx
  • web/src/systems/automation/components/trigger-form/preview/preview-summary.tsx
  • web/src/systems/automation/components/trigger-form/preview/trigger-preview.tsx
  • web/src/systems/automation/components/trigger-form/prompt-template-field.tsx
  • web/src/systems/automation/components/trigger-form/reliability-section.tsx
  • web/src/systems/automation/components/trigger-form/target-step.tsx
  • web/src/systems/automation/components/trigger-form/variable-bar.tsx
  • web/src/systems/automation/hooks/__tests__/use-automation-editor.test.tsx
  • web/src/systems/automation/hooks/automation-editor-store.ts
  • web/src/systems/automation/hooks/use-automation-editor.ts
  • web/src/systems/automation/hooks/use-automation-form.ts
  • web/src/systems/automation/hooks/use-automation-job-form.ts
  • web/src/systems/automation/hooks/use-automation-options-fold.ts
  • web/src/systems/automation/hooks/use-automation-time-zone.ts
  • web/src/systems/automation/hooks/use-automation-trigger-form.ts
  • web/src/systems/automation/hooks/use-clamp-overflow.ts
  • web/src/systems/automation/index.ts
  • web/src/systems/automation/lib/__tests__/automation-form-schedule.test.ts
  • web/src/systems/automation/lib/__tests__/automation-formatters.test.ts
  • web/src/systems/automation/lib/__tests__/automation-list-filters.test.ts
  • web/src/systems/automation/lib/__tests__/automation-route-search.test.ts
  • web/src/systems/automation/lib/__tests__/automation-run-model.test.ts
  • web/src/systems/automation/lib/__tests__/automation-sentence.test.ts
  • web/src/systems/automation/lib/__tests__/query-keys.test.ts
  • web/src/systems/automation/lib/__tests__/query-options.test.ts
  • web/src/systems/automation/lib/__tests__/trigger-preview.test.ts
  • web/src/systems/automation/lib/automation-detail.ts
  • web/src/systems/automation/lib/automation-entity.ts
  • web/src/systems/automation/lib/automation-form-draft.ts
  • web/src/systems/automation/lib/automation-form-edits.ts
  • web/src/systems/automation/lib/automation-form-events.ts
  • web/src/systems/automation/lib/automation-form-readiness.ts
  • web/src/systems/automation/lib/automation-form-schedule.ts
  • web/src/systems/automation/lib/automation-formatters.ts
  • web/src/systems/automation/lib/automation-inspect-model.ts
  • web/src/systems/automation/lib/automation-list-filters.ts
  • web/src/systems/automation/lib/automation-list-query.ts
  • web/src/systems/automation/lib/automation-redirects.ts
  • web/src/systems/automation/lib/automation-route-search.ts
  • web/src/systems/automation/lib/automation-rule.ts
  • web/src/systems/automation/lib/automation-run-model.ts
  • web/src/systems/automation/lib/automation-sentence.ts
  • web/src/systems/automation/lib/automation-start-icon.ts
  • web/src/systems/automation/lib/automation-view.ts
  • web/src/systems/automation/lib/job-preview.ts
  • web/src/systems/automation/lib/query-keys.ts
  • web/src/systems/automation/lib/trigger-catalog.ts
  • web/src/systems/automation/lib/trigger-filter.ts
  • web/src/systems/automation/lib/trigger-inspect-model.ts
  • web/src/systems/automation/lib/trigger-preview.ts
  • web/src/systems/automation/lib/trigger-run-model.ts
  • web/src/systems/automation/lib/trigger-sentence.ts
  • web/src/systems/automation/lib/trigger-sub-config.ts
  • web/src/systems/automation/lib/trigger-template.ts
  • web/src/systems/automation/lib/workspace-access.ts
  • web/src/systems/automation/mocks/detail-fixtures.ts
  • web/src/systems/automation/mocks/handlers.ts
  • web/src/systems/automation/mocks/index.ts
  • web/src/systems/automation/mocks/story-fixtures.ts
  • web/src/systems/automation/types.ts
  • web/src/systems/loops/components/__tests__/loop-detail.test.tsx
  • web/src/systems/loops/components/__tests__/loop-start-bindings-panel.test.tsx
  • web/src/systems/loops/components/__tests__/loop-target-fields.test.tsx
  • web/src/systems/loops/components/detail/loop-detail.tsx
  • web/src/systems/loops/components/detail/loop-start-bindings-panel.tsx
  • web/src/systems/loops/index.ts
  • web/src/systems/loops/lib/__tests__/loop-bindings.test.ts
  • web/src/systems/loops/lib/loop-bindings.ts
  • web/src/systems/loops/lib/loop-target-availability.ts
  • web/src/systems/os/apps/automation/__tests__/use-automation-detail-page.test.tsx
  • web/src/systems/os/apps/automation/__tests__/use-automation-jobs-page.test.tsx
  • web/src/systems/os/apps/automation/__tests__/use-automation-page-base.test.tsx
  • web/src/systems/os/apps/automation/__tests__/use-automation-trigger-detail-page.test.tsx
  • web/src/systems/os/apps/automation/__tests__/use-automation-triggers-page.test.tsx
  • web/src/systems/os/apps/automation/__tests__/use-automations-page.test.tsx
  • web/src/systems/os/apps/automation/automation-create-seed-store.ts
  • web/src/systems/os/apps/automation/automation-edit-intent-store.ts
  • web/src/systems/os/apps/automation/automation-listing-state.ts
  • web/src/systems/os/apps/automation/automation-pending-store.ts
  • web/src/systems/os/apps/automation/use-automation-detail-page.ts
  • web/src/systems/os/apps/automation/use-automation-detail-parts.ts
  • web/src/systems/os/apps/automation/use-automation-job-detail-page.ts
  • web/src/systems/os/apps/automation/use-automation-jobs-page.ts
  • web/src/systems/os/apps/automation/use-automation-lists.ts
  • web/src/systems/os/apps/automation/use-automation-page-base.ts
  • web/src/systems/os/apps/automation/use-automation-page.ts
  • web/src/systems/os/apps/automation/use-automation-row-actions.ts
  • web/src/systems/os/apps/automation/use-automation-trigger-detail-page.ts
  • web/src/systems/os/apps/automation/use-automation-triggers-page.ts
  • web/src/systems/os/apps/automation/use-automations-editor.ts
  • web/src/systems/os/apps/automation/use-automations-page.ts
  • web/src/systems/os/apps/automations/__tests__/automations-catalog-location.test.tsx
  • web/src/systems/os/apps/automations/automation-detail-location.tsx
  • web/src/systems/os/apps/automations/automations-catalog-location.tsx
  • web/src/systems/os/apps/automations/automations-catalog-parts.tsx
  • web/src/systems/os/apps/automations/automations-window.tsx
  • web/src/systems/os/apps/jobs/__tests__/jobs-catalog-location.test.tsx
  • web/src/systems/os/apps/jobs/job-detail-location.tsx
  • web/src/systems/os/apps/jobs/jobs-catalog-location.tsx
  • web/src/systems/os/apps/jobs/jobs-window.tsx
  • web/src/systems/os/apps/loops/__tests__/use-loop-detail.test.tsx
  • web/src/systems/os/apps/loops/loop-detail-location.tsx
  • web/src/systems/os/apps/loops/use-loop-detail.ts
  • web/src/systems/os/apps/triggers/trigger-detail-location.tsx
  • web/src/systems/os/apps/triggers/triggers-catalog-location.tsx
  • web/src/systems/os/apps/triggers/triggers-window.tsx
  • web/src/systems/os/components/__tests__/os-dock.test.tsx
  • web/src/systems/os/components/__tests__/os-window-deck.test.tsx
  • web/src/systems/os/components/__tests__/os-window.test.tsx
  • web/src/systems/os/components/os-dock-icons.tsx
  • web/src/systems/os/components/os-palette-domain-row.tsx
  • web/src/systems/os/components/os-palette-domain-sections.tsx
  • web/src/systems/os/components/stories/_desktop.tsx
  • web/src/systems/os/components/stories/_shell-fixture.tsx
  • web/src/systems/os/hooks/__tests__/os-interaction-hooks.test.tsx
  • web/src/systems/os/hooks/__tests__/use-os-palette-root.test.tsx
  • web/src/systems/os/hooks/__tests__/use-window-manager-stream.test.tsx
  • web/src/systems/os/hooks/__tests__/window-manager-runtime.test.ts
  • web/src/systems/os/hooks/use-os-palette-entity-sections.ts
  • web/src/systems/os/lib/__tests__/app-registry.test.ts
  • web/src/systems/os/lib/__tests__/group-projection.test.ts
  • web/src/systems/os/lib/__tests__/os-palette-domain-search.test.ts
  • web/src/systems/os/lib/__tests__/routing-coordinator.test.ts
  • web/src/systems/os/lib/__tests__/window-manager-stream-schema.test.ts
  • web/src/systems/os/lib/__tests__/window-manager-view.test.ts
  • web/src/systems/os/lib/app-catalog.ts
  • web/src/systems/os/lib/app-registry.ts
  • web/src/systems/os/lib/os-dock-model.ts
  • web/src/systems/os/lib/os-palette-domain-search.ts
  • web/src/systems/os/lib/os-types.ts
  • web/src/systems/os/lib/palette-view-registry.ts
  • web/src/systems/os/lib/window-manager-schemas.ts
  • web/src/systems/os/lib/window-manager-types.ts
  • web/src/systems/os/mocks/fixtures.ts
  • web/src/systems/settings/components/__tests__/layout-canvas-board-bar.test.tsx
  • web/src/systems/settings/components/__tests__/layout-canvas.test.tsx
  • web/src/systems/settings/components/__tests__/layout-review-bar.test.tsx
  • web/src/systems/settings/hooks/__tests__/use-settings-automation-page.test.tsx
  • web/src/systems/settings/hooks/__tests__/use-window-manager-layout-editor.test.tsx
  • web/src/systems/settings/hooks/__tests__/use-window-manager-layout-profiles.test.tsx
  • web/src/systems/settings/hooks/use-window-manager-layout-editor.ts
  • web/src/systems/settings/lib/__tests__/window-manager-layout-import.test.ts
  • web/src/systems/settings/lib/__tests__/window-manager-layout-profile-key.test.ts
  • web/src/systems/settings/lib/window-manager-layout-import.ts
  • web/src/systems/settings/lib/window-manager-layout-schema.ts
  • web/src/systems/settings/lib/window-manager-layout-types.ts
  • web/src/systems/settings/mocks/fixtures.ts
  • web/src/systems/settings/mocks/window-manager-fixtures.ts
  • web/src/systems/settings/stores/__tests__/window-manager-layout-profile-editor-store.test.ts

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

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 8d419b0.

@greptile-apps

greptile-apps Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High risk] Merges Jobs and Triggers UI into one Automations app.

The reviewed changes appear safe to merge; the imported-filter finding is fixed.

What we checked:

  • Imported filters stay saved: The rewrite keeps supported filters. The importer applies it to both the current route and navigation history.
Summary

This PR combines Jobs and Triggers into one Automations area while keeping both daemon entities.

  • The latest change preserves supported listing filters when importing old detail windows.
  • Shared Go and web examples now cover detail routes with saved filters.
  • The numbered finding is fixed. No actionable new issue or repository-rule violation was established.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A["Version 4 layout"] --> B["Rewrite Jobs and Triggers windows"]
  B --> C["Automations detail route with saved filters"]
  C --> D["Version 5 layout"]
  D --> E["Back restores listing filters"]
Loading

Reviews (4) · Last reviewed commit: "fix: keep listing filters when a legacy ..." · Reviewed by Greptile

Comment thread web/src/systems/settings/lib/window-manager-layout-schema.ts
Comment thread web/src/systems/os/apps/automation/use-automations-page.ts Outdated
Comment thread web/src/systems/automation/components/automation-catalog-shell.tsx
Comment thread web/src/systems/os/apps/automations/automations-catalog-parts.tsx Outdated
Comment thread web/src/systems/automation/lib/automation-sentence.ts Outdated
pedronauck and others added 4 commits October 8, 2026 04:01
React Doctor flagged AutomationForm and useAutomationForm for control-flow
complexity and the condition row for "Field"/"Value" aria-labels.

- AutomationForm keeps the orchestration; the Name section, the error alert
  and the footer move to automation-form-parts, the body to
  AutomationFormFields, the Options fold to useAutomationOptionsFold
- useAutomationForm reads its edit rules from pure helpers
  (automation-form-edits: scheduleForMode, canSwitchStart/Does, destination,
  defaults) and two sub-hooks (schedule clock, Loop target)
- condition inputs are named "Condition field" and "Value for <field>"

Behavior unchanged; the editor suites pass as before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
pedronauck and others added 3 commits October 8, 2026 08:39
Layout files exported before the Automations merge are version 4 and may
name Jobs or Triggers windows. The importer now applies the daemon's
permanent v4 upgrade (retired apps to automations on the rewritten
routes) instead of rejecting them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The daemon titles the task with the job name when the title is blank, so
the saved sentence now reads the same instead of a missing title.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
- The footer only claims 'N on' and the next run once every page is
  loaded; otherwise it reads '60 automations · 50 shown'.
- A failed refresh keeps the cached rows under a retry alert.
- The listing reuses AutomationDeleteAction, so a failed delete shows
  the daemon's reason in the dialog.
- The editor wiring and the two list queries move into their own hooks.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Comment thread web/src/systems/settings/lib/window-manager-layout-import.ts
The daemon's v4 rewrite keeps a detail route's search; the web redirect
table cleared it, so imported layouts and old /jobs/<id>?q=… bookmarks
lost their filters. Both now keep the listing search, pinned by new
shared vectors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@pedronauck
pedronauck merged commit ae8bca8 into main Oct 8, 2026
50 checks passed
@pedronauck
pedronauck deleted the automations branch October 8, 2026 16:25

This branch was successfully deployed

1 active deployment
Preview — 8d419b02 Deployed Oct 8, 2026 by vercel[bot]
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.

1 participant