rossoctl / rossoctl/cortex

feature: verified macOS install and launchd service lifecycle

Open
#944 0 comments 0 reactions 1 assignee View on GitHub

@huang195 is already working on this.

Since Sep 10, 2026.

enhancement high priority
Dominant language
Go
Stars
13
Forks
40
Avg merge
12h 17m
Merged PRs (30d)
156

Description

Feature Description

The install path is the first thing anyone touches and the easiest place to lose a user. macOS
is its own code path — launchd, plist rendering, launchctl bootstrap — and it is verified ad
hoc today on whatever machine the author had.

Proposed Solution
  • Fresh install via curl | sh on a machine that has never run Cortex, arm64 and amd64
  • Upgrade over an older install: service restarted, config preserved
  • Uninstall leaves no launchd registration, no ~/.cortex, no modified agent settings
  • Re-running install is idempotent
  • Service survives logout/login and a crash
  • abctl service status | start | stop | restart accurate in every state
  • stop tolerates the proxy's ~15s drain — returning before the port is released makes
    the next start fail
  • Plist rendering safe for $HOME and --config paths containing XML metacharacters
Additional Context

Part of the Cortex v0.9.0 release. Gates exit criterion 1 (install works cold). Automated by
the macOS release smoke test.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.