Skip to content

feat: add persistent dashboard service#282

Merged
douglasmonsky merged 12 commits into
mainfrom
feature/persistent-dashboard-service
Jul 17, 2026
Merged

feat: add persistent dashboard service#282
douglasmonsky merged 12 commits into
mainfrom
feature/persistent-dashboard-service

Conversation

@douglasmonsky

Copy link
Copy Markdown
Owner

Summary

  • add a macOS LaunchAgent lifecycle for a persistent localhost dashboard
  • reserve 127.0.0.1:47821 by default and refuse unknown port collisions
  • add dashboard-service install, status, and uninstall commands
  • start from the cached aggregate index so the service binds promptly
  • add a lightweight health endpoint, lifecycle rollback coverage, and user documentation

User impact

macOS users can install the dashboard once and reuse a stable local URL across terminal and Codex task lifetimes. The service starts at login, restarts after failure, remains loopback-only, and never opens a browser automatically.

Review

No correctness, security, or privacy blockers found. The service validates its managed plist, refuses occupied ports, rolls back failed updates, and leaves raw-context access behind the existing per-server token boundary.

Residual operational constraint: the LaunchAgent references the Python interpreter used at installation time, so moving or deleting that environment requires reinstalling the service.

Validation

  • python -m pytest -q — 1,114 passed
  • python -m ruff check .
  • python -m mypy
  • python scripts/check_release.py
  • git diff --check origin/main...HEAD
  • live LaunchAgent status and http://127.0.0.1:47821 HTTP 200 probe

@douglasmonsky
douglasmonsky merged commit 75ffe78 into main Jul 17, 2026
23 of 24 checks passed
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