feat(supervisor): allow disabling client auto-start - #678
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds ChangesSupervisor auto-start control
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Client
participant IpcClient
participant Settings
participant Supervisor
Client->>IpcClient: Request connection
IpcClient->>Settings: Read supervisor.auto_start
alt Enabled
IpcClient->>Supervisor: Start if not running
Supervisor-->>IpcClient: Connection available
else Disabled
IpcClient-->>Client: Return actionable connection error
end
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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. Comment |
Greptile SummaryAdds an opt-out for automatic supervisor startup while preserving explicit supervisor commands.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (3): Last reviewed commit: "Merge branch 'main' into agent/add-super..." | Re-trigger Greptile |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/guides/boot-start.md`:
- Around line 83-91: Update the global configuration example in “Prevent
fallback supervisor starts” to use the top-level [supervisor] table instead of
the project-specific [settings.supervisor] namespace, while preserving
auto_start = false.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Central YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: dac1423a-fa81-4d0d-a580-20102661d245
📒 Files selected for processing (9)
docs/guides/boot-start.mddocs/public/schema.jsondocs/reference/environment-vars.mdsettings.tomlsrc/cli/settings.rssrc/ipc/client.rssrc/settings.rstest/errors.batstest/settings.bats
## 🤖 New release * `pitchfork-cli`: 2.19.0 -> 2.20.0 <details><summary><i><b>Changelog</b></i></summary><p> <blockquote> ## [2.20.0](v2.19.0...v2.20.0) - 2026-08-02 ### Added - *(supervisor)* expand ~ in daemon dir using effective user's home ([#708](#708)) - *(boot)* auto-heal stale boot registration on supervisor startup ([#707](#707)) - *(web)* structured log display with filters in webui ([#630](#630)) - *(supervisor)* allow disabling client auto-start ([#678](#678)) - *(supervisor)* add --json flag to supervisor status ([#601](#601)) - *(config)* expand home-relative paths ([#675](#675)) - *(logs)* let the sink serve on_output hooks ([#668](#668)) - *(usage)* declare what each command does to the world ([#666](#666)) - *(logs)* let the sink decide ready_output ([#667](#667)) ### Fixed - deterministic IPC response attribution and whole-group stop wait ([#606](#606)) - *(config)* include registries in schema ([#671](#671)) ### Other - *(deps)* update rust crate libc to v0.2.189 ([#703](#703)) - *(deps)* update rust crate clap to v4.6.4 ([#702](#702)) - *(deps)* update rust crate glob to v0.3.4 ([#701](#701)) - *(deps)* update rust crate tokio-util to v0.7.19 ([#699](#699)) - *(deps)* update rust crate libc to v0.2.188 ([#698](#698)) - *(deps)* update rust crate syn to v3 ([#697](#697)) - *(deps)* update rust crate hyper to v1.11.0 ([#695](#695)) - *(deps)* update rust crate tokio to v1.53.1 ([#692](#692)) - *(deps)* update rust crate thiserror to v2.0.19 ([#691](#691)) - *(deps)* update rust crate serde to v1.0.229 ([#689](#689)) - *(deps)* update rust crate quote to v1.0.47 ([#687](#687)) - *(deps)* update rust crate serde_json to v1.0.151 ([#690](#690)) - *(deps)* update rust crate libc to v0.2.187 ([#685](#685)) - *(deps)* update rust crate proc-macro2 to v1.0.107 ([#686](#686)) - *(deps)* update rust crate clx to v3.0.2 ([#684](#684)) - *(deps)* update rust crate clap to v4.6.3 ([#683](#683)) - *(deps)* use rust-aware cargo resolver ([#677](#677)) - *(deps)* update clx ([#672](#672)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Metadata-only release bump and changelog; no behavioral changes in the diff itself. > > **Overview** > Bumps **pitchfork-cli** from **2.19.0** to **2.20.0** in `Cargo.toml`, `Cargo.lock`, and generated CLI metadata (`pitchfork.usage.kdl`, `docs/cli/commands.json`, `docs/cli/index.md`). > > Adds a **CHANGELOG** section for **2.20.0** that records what shipped since 2.19.0 (supervisor path expansion, boot auto-heal, web UI log filters, IPC/stop fixes, config schema, dependency updates, etc.). This PR does not implement those features—it only publishes the release notes and version strings for tagging/publishing. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit d7d9c08. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
Summary
supervisor.auto_startwith a backwards-compatible default oftrueRoot cause
Clients currently call
start_if_not_running()before connecting to IPC. Duringsystem startup, a shell hook or another client can therefore spawn an unmanaged
supervisor before a systemd- or launchd-managed instance is ready. The unmanaged
process then wins ownership of the supervisor state and socket but lacks any
capabilities configured on the service.
Validation
mise run ci-devSummary by CodeRabbit
settings.supervisor.auto_startoption to control whether client commands automatically start the supervisor.PITCHFORK_SUPERVISOR_AUTO_STARTsupport for configuring this behavior via environment variable.