lmjtfy.git / pitchfork.toml
1#:schema https://pitchfork.jdx.dev/schema.json
2#
3# The development process, supervised by pitchfork (jdx/pitchfork), as in
4# ~/aifleet:
5#   pitchfork start --local     the dev server, on http://localhost:8787/
6#   pitchfork status / logs worker / tui / stop --local
7#
8# Every daemon runs inside `nix develop .#owner` (the shell with the
9# credentialed tools), so it gets the devshell's tools no
10# matter which shell happened to start the pitchfork supervisor.
11
12# Keeps the devshell out of nix's garbage collection (see the script).
13[daemons.devshell-root]
14run = ["tools/devshell-root"]
15oneshot = true
16
17# The Worker under `wrangler dev`. `op-env-run` puts the Jev key in its
18# environment, and `lmjtfy-wrangler` reads the Cloudflare token for Workers
19# AI, which has no local emulation.
20#
21# wrangler rebuilds the Worker itself when a source changes. Its watcher can
22# start two builds off one save, which collide in build/ and take wrangler
23# down (2026-10-02). tools/wrangler-dev reports any exit pitchfork did not ask
24# for as a failure, and `retry` starts it again.
25[daemons.worker]
26run = "exec op-env-run -- nix develop .#owner --command tools/wrangler-dev"
27depends = ["devshell-root"]
28ready_http = { url = "http://127.0.0.1:8787/", timeout = "10m" }
29retry = true