Skip to content

feat(server): server-side scheduled tasks — start agent runs automatically - #7986

Open
ImBIOS wants to merge 2 commits into
pingdotgg:mainfrom
ImBIOS:feat/scheduled-tasks-upstream
Open

feat(server): server-side scheduled tasks — start agent runs automatically#7986
ImBIOS wants to merge 2 commits into
pingdotgg:mainfrom
ImBIOS:feat/scheduled-tasks-upstream

feat(server): gate scheduled tasks behind a settings switch

d9b0640
Select commit
Loading
Failed to load commit list.
MacroscopeApp / Macroscope - UI Consistency failed Aug 25, 2026 in 1m 36s

UI Consistency: 5 findings (4 outstanding)

apps/web/src/components/settings/ScheduledTasksSection.tsx still carries the four findings raised in the previous review of this PR (the file is byte-identical at d9b0640), plus one new layout finding posted inline.

New finding

  • apps/web/src/components/settings/ScheduledTasksSection.tsx (lines 149, 219, 224): free-standing paragraphs and the task <ul> omit the px-3 sm:px-4 gutter that SettingsRow applies, so they render flush to the panel edge and misalign with the rows above (compare ProjectSettingsPanel.tsx's section-level paragraph).

Outstanding from the prior review (not re-posted)

  • Line 161: bare SelectValue with inline items prints the raw stored value (env-id:thread-id) instead of the thread title; pass the label as children as IntegrationsSettings.tsx documents.
  • Line 182: same issue — the trigger shows the raw preset key (tomorrow-9) rather than PRESET_LABELS[preset].
  • Lines 160/181/199: triggers and the prompt Input lack the aria-label and w-full sm:w-* responsive width used by every other settings select/input (SettingsRow's title is an h3, not a label, so the input has no accessible name).
  • Line 210: the Schedule button stays enabled when anchorThread is undefined (initial threadKey is captured before threads load and is never reconciled), so submit() returns silently with no feedback.

No issues found in the other in-scope changed web files (IntegrationsSettings.tsx, ProjectSettingsPanel.tsx, SettingsPanels.tsx, settingsSearch.ts, state/entities.ts, state/orchestration.ts) — the new switch reuses Switch/SettingsRow/SettingResetButton and registers a search item consistently with existing settings.

Details

Note

Your check run agent prompt is: .macroscope/check-run-agents/ui-consistency.md
More information about how Check Run Agents work can be found in our Help Center.

Scope: only files matching apps/web/src/**/*.{ts,tsx,css} were targeted; server, contracts, and docs changes were read for context only.

Verification performed:

  • Compared ScheduledTasksSection.tsx at head against the version reviewed in the prior run — unchanged, so prior comments were deliberately not duplicated (the prior head commit is no longer reachable after a rebase/force-push, so the comparison was done on file contents).
  • Confirmed SelectValue semantics in apps/web/src/components/ui/select.tsx and the documented workaround in IntegrationsSettings.tsx (viewportSelectLabel, zoomLabel, APPEARANCE_LABELS all pass explicit children plus aria-label and w-full sm:w-*).
  • Confirmed padding ownership in settingsLayout.tsx: SettingsSection children wrapper is relative space-y-1 (no gutter); SettingsRow applies rounded-xl px-3 sm:px-4; SettingsRow title renders as h3, not a <label>.
  • Confirmed the sibling precedent for section-level text padding in ProjectSettingsPanel.tsx (px-3 py-2 ... sm:px-4).

🔍 Agent activity — 8 tool calls

💭 I already reviewed at commit 6f33ca5 and left 4 comments. The head is now at d9b0640, so I should check whether the changes addressed my feedback by diffing between those two commits.

1. git_tools6f33ca5..d9b0640

💭 That earlier commit was probably force-pushed away, so I should just check the current content of the web files in scope instead.

2. browse_code — apps/web/src/components/settings/ScheduledTasksSection.tsx

💭 Since the file is unchanged from the prior run, the previously flagged issues remain but I've already noted them, so I shouldn't repost duplicate comments. I need to decide whether to still report failure given unresolved findings, and quickly verify the SelectValue claim and check other files for any new changes since the last run.

3. browse_code — apps/web/src/components/ui/select.tsx

💭 Since the code is unchanged, I shouldn't repost duplicate comments on the same findings, but the check should still report failure since the issues remain unaddressed. Let me verify the SelectValue claim by checking another consumer, like IntegrationsSettings' viewportSelectLabel, before finalizing.

4. git_tools — SelectValue

💭 Since the code hasn't changed since the last run, the findings still hold and there's nothing new to comment on, so I'll report failure with a summary of outstanding findings and note that no duplicates were posted. I also want to double-check whether SettingsRow actually supports a "title" prop as used in ScheduledTasksSection, since IntegrationsSettings uses description/control/resetAction instead—worth a quick look at the settings layout definition to confirm.

5. git_tools — export function SettingsRow|export function SettingsSection

💭 I'm noticing that the description paragraph inside SettingsSection lacks the horizontal padding that rows carry, so it would sit flush against the panel edge and misalign with the rest of the content—a layout consistency issue worth flagging.

6. git_tools — text-sm text-muted-foreground

💭 I'm checking ProjectSettingsPanel near line 1027 to see how padding is applied to a section-level paragraph.

7. browse_code — apps/web/src/components/settings/ProjectSettingsPanel.tsx

💭 I noticed that other SettingsSection paragraphs use horizontal padding to align with row gutters, but ScheduledTasksSection's paragraphs and list lack that padding, so they'd sit flush against the panel edge rather than aligning with rows—a real layout inconsistency worth flagging. I'll post a single inline comment on the paragraph line with a suggested fix, noting that the other paragraph and the list need the same gutter applied since this hasn't been flagged before and isn't a duplicate.

8. modify_pr — Re-reviewed at d9b0640. apps/web/src/components/settings/ScheduledTasksSection.tsx is unchanged since my previous review, so the four findings from that review still stand (raw SelectValue printing the stored value on both triggers, missing aria-label/responsive width on the triggers and prompt input, and the Schedule button staying enabled when no anchor thread resolves). I have not re-posted them. One additional layout finding is noted inline.


Agent Credits: 112 credits