Skip to content

feat!: support auto start on boot#53

Merged
jdx merged 3 commits into
jdx:mainfrom
gaojunran:push-tulnywvwxslk
Oct 20, 2025
Merged

feat!: support auto start on boot#53
jdx merged 3 commits into
jdx:mainfrom
gaojunran:push-tulnywvwxslk

Conversation

@gaojunran

@gaojunran gaojunran commented Oct 19, 2025

Copy link
Copy Markdown
Contributor

Now we finally have this feature, which means a giant step towards our goal - a daemon manager.

auto-launch crate is forked and maintained by myself, as it lacks launching methods for non-desktop environment on Linux.

And it is hard to test this feature. I manually tested macOS and Linux on my machine.


Note

Adds start-on-boot via a new BootManager (auto-launch), pitchfork boot subcommands, supervisor --boot that auto-starts boot_start daemons, plus log range flags and docs.

  • Core/Runtime:
    • Introduces BootManager (uses forked auto-launch) to register the supervisor for start-on-boot.
    • Supervisor.start accepts --boot mode and auto-starts daemons configured with boot_start = true.
    • PitchforkTomlDaemon adds optional boot_start field.
  • CLI:
    • New pitchfork boot command with enable, disable, and status subcommands.
    • pitchfork supervisor run adds --boot flag.
    • pitchfork logs adds --from and --to time filters.
  • Docs:
    • Adds “Start on Boot” guide and CLI docs; updates sidebar and supervisor/logs usage.
  • Deps/Build:
    • Adds auto-launch (git fork) and updates related crates in lockfile.
  • Tests:
    • Updates TOML tests to accommodate new boot_start field.
  • Misc:
    • Removes renovate.json.

Written by Cursor Bugbot for commit 1a5d894. This will update automatically on new commits. Configure here.

Comment thread renovate.json
@@ -1,6 +0,0 @@
{

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was this intentional?

Comment thread Cargo.toml Outdated
path = "src/lib.rs"

[dependencies]
auto-launch = { git = "https://github.com/gaojunran/auto-launch.git", version = "0.5.0" }

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this won't work when we try to cut a release, you'll need to publish it

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👌🏻. I got it!

@jdx

jdx commented Oct 19, 2025

Copy link
Copy Markdown
Owner

bugbot run

Comment thread src/env.rs
Now we finally have this feature, which means a giant step towards our goal - a daemon manager.

`auto-launch` crate is forked and maintained by myself, 
as it lacks launching methods for non-desktop environment on Linux.
Comment thread docs/cli/supervisor.md
## Subcommands

- [`pitchfork supervisor run [-f --force]`](/cli/supervisor/run.md)
- [`pitchfork supervisor run [-f --force] [--boot]`](/cli/supervisor/run.md)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is such a different thing I think it should be a dedicated command

@gaojunran gaojunran Oct 20, 2025

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jdx Well this flag is only for system-level daemon, such as systemd and LaunchAgent, and users should not use them. The system-level daemon run pf sup run --boot on boot, and all registered daemons will run. I think it's better to hide them from the document, so that user won't use it?

The logic of launching between pf sup run and pf sup run --boot is alike, except that the --boot launches the registered daemons together.

If you mean pf boot status | disable | enable, they are dedicated commands for users.

Hope to learn about your idea!

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah ok that makes sense

@jdx jdx merged commit 6901314 into jdx:main Oct 20, 2025
1 check passed
@github-actions github-actions Bot mentioned this pull request Jan 18, 2026
jdx pushed a commit that referenced this pull request Jan 18, 2026
## 🤖 New release

* `pitchfork-cli`: 0.2.1 -> 0.3.0

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.3.0](v0.2.1...v0.3.0) -
2026-01-18

### Added

- *(web)* add devilish pitchfork theming to web UI
([#115](#115))
- *(web)* add web UI for daemon management
([#112](#112))
- show startup logs on successful daemon start
([#111](#111))
- add HTTP ready check for daemon startup
([#110](#110))
- delay autostopping daemons when leaving directory
([#108](#108))
- *(logs)* clear all logs when no daemon specified
([#109](#109))
- *(list)* show error messages in daemon list output
([#107](#107))
- refactor the code structure of `start` and `run`, allowing for
parallel starting daemons
([#56](#56))
- [**breaking**] support auto start on boot
([#53](#53))
- print logs when failed on `pf start|run`
([#52](#52))
- [**breaking**] support global system/user config
([#46](#46))
- *(test)* refactor tests and add tests for `interval_watch` and
`cron_watch` ([#45](#45))

### Fixed

- add timeouts to IPC operations to prevent shell hook hangs
([#106](#106))
- *(deps)* update rust crate toml to 0.9
([#50](#50))
- replace panics with proper error handling
([#90](#90))
- *(deps)* update rust crate notify to v8
([#78](#78))
- *(deps)* update rust crate duct to v1
([#72](#72))
- *(deps)* update rust crate dirs to v6
([#64](#64))
- *(deps)* update rust crate cron to 0.15
([#48](#48))
- *(deps)* update rust crate sysinfo to 0.37
([#49](#49))
- *(deps)* update rust crate itertools to 0.14
([#33](#33))
- *(deps)* update rust crate strum to 0.27
([#35](#35))
- *(deps)* update rust crate console to 0.16
([#32](#32))
- give a user-friendly error when the work fails
([#44](#44))

### Other

- *(cli)* add long_about with examples to CLI commands
([#91](#91))
- fix documentation issues and inconsistencies
([#89](#89))
- *(deps)* lock file maintenance
([#88](#88))
- *(deps)* update rust crate serde_json to v1.0.149
([#87](#87))
- *(deps)* lock file maintenance
([#85](#85))
- *(deps)* update rust crate serde_json to v1.0.148
([#84](#84))
- *(deps)* update rust crate tempfile to v3.24.0
([#82](#82))
- *(deps)* update rust crate rmp-serde to v1.3.1
([#80](#80))
- *(deps)* update rust crate serde_json to v1.0.147
([#81](#81))
- *(deps)* lock file maintenance
([#79](#79))
- *(deps)* update rust crate shell-words to v1.1.1
([#77](#77))
- *(deps)* lock file maintenance
([#76](#76))
- *(deps)* update rust crate log to v0.4.29
([#75](#75))
- *(deps)* lock file maintenance
([#73](#73))
- *(deps)* lock file maintenance
([#68](#68))
- *(deps)* lock file maintenance
([#65](#65))
- *(deps)* lock file maintenance
([#62](#62))
- *(deps)* update rust crate clap to v4.5.51
([#60](#60))
- *(deps)* lock file maintenance
([#59](#59))
- *(deps)* update rust crate clap to v4.5.50
([#57](#57))
- Update README ([#55](#55))
- *(deps)* lock file maintenance
([#54](#54))
- *(deps)* lock file maintenance
([#47](#47))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@jdx jdx mentioned this pull request Jan 18, 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.

2 participants