Skip to content

#42: Add Schedules page — launchd/cron visibility with health report overlay#47

Closed
johnwaldo wants to merge 2 commits intomainfrom
feature/schedules-page
Closed

#42: Add Schedules page — launchd/cron visibility with health report overlay#47
johnwaldo wants to merge 2 commits intomainfrom
feature/schedules-page

Conversation

@johnwaldo
Copy link
Owner

Summary

  • New page: Schedules — shows all com.aidevops.* and sh.aidevops.* launchd services plus # aidevops: crontab entries with real-time status, logs, and controls
  • Health report overlay: Scans ~/.aidevops/.agent-workspace/health/*.json and matches reports to launchd jobs by project name convention, showing pass/fail test results inline
  • Wired into all navigation: Sidebar, MobileNav overflow menu, and Command Palette (Cmd+K)

New files

File Purpose
server/collectors/schedule-collector.ts Reads launchd plists via plutil, queries launchctl list, parses crontab, loads health reports
server/routes/schedules.ts 4 endpoints: list, log viewer, toggle (load/unload), run now — all with security guards
client/src/pages/SchedulesPage.tsx Card-based UI with status dots, badges, expandable log viewer, health overlay, confirmation dialogs

Integration changes

  • server/index.ts — register 4 new routes
  • client/src/App.tsx — add schedules to Page type and pages map
  • client/src/components/layout/Sidebar.tsx — add Clock icon nav item
  • client/src/components/layout/MobileNav.tsx — add to overflow menu
  • client/src/components/layout/CommandPalette.tsx — add to Cmd+K pages

Security

  • Only com.aidevops.* / sh.aidevops.* labels can be toggled or kicked
  • Log viewer restricted to ~/.aidevops/logs/ paths only
  • All write actions require confirmation dialogs

Verified

  • bun run build passes cleanly (tsc + vite)

Closes #42

AI DevOps added 2 commits March 2, 2026 17:31
Read and display tasks from multiple project repos, not just aidevops.
Each repo's TODO.md is parsed independently with per-repo caching,
composite task IDs (repo:tNNN) to avoid collisions, and a repo
selector dropdown in the kanban UI.

New server endpoints:
- GET /api/repos - list tracked repos
- GET /api/repos/discover - scan ~/Git for repos with TODO.md
- POST /api/actions/repos/sync - sync discovered repos to settings
- POST /api/actions/repos/toggle - enable/disable a repo

Existing endpoints updated:
- GET /api/tasks?repo=name - filter by repo (merged view by default)
- POST /api/actions/tasks/* - accept composite task IDs and repo param

Client changes:
- RepoSelector dropdown in kanban header
- Repo badge on task cards in merged view
- Repo selector in task create dialog
- Selection persisted in localStorage

Closes #45
…rt overlay

- Add schedule-collector.ts: reads launchd plists (com.aidevops.*/sh.aidevops.*),
  parses crontab for aidevops entries, and scans health/*.json for structured
  health reports matched to launchd jobs by project name convention
- Add schedules.ts routes: list, log viewer, toggle (load/unload), run now
  with security guards (only aidevops services, only aidevops log paths)
- Add SchedulesPage.tsx: card-based UI showing status dots, interval badges,
  PID, exit codes, expandable log viewer, confirmation dialogs for all writes,
  health report overlay with pass/fail test results and expandable test list
- Wire into server/index.ts (4 routes), App.tsx (page type + component),
  Sidebar.tsx, MobileNav.tsx, CommandPalette.tsx

Closes #42
@johnwaldo
Copy link
Owner Author

Closing — this PR bundled two features (Schedules page #42 + multi-repo kanban #45). Splitting into separate PRs.

@johnwaldo johnwaldo closed this Mar 5, 2026
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.

feat: Schedules page — launchd/cron visibility with status, logs, and controls

1 participant