Skip to content

Commit 1eb714c

Browse files
TeoSlayerteovlclaude
authored
fix(pilotctl,install): stop claiming pilot-gateway ships with the install (#355)
pilot-gateway was extracted to the sibling pilot-protocol/gateway repo and no longer ships in release tarballs (BINS=daemon/pilotctl/updater since #186), but several surfaces still told users it was installed: - pilotctl --help and the machine-readable catalog described it as a 'separate binary installed alongside pilotctl' — now marked optional with a pointer to github.com/pilot-protocol/gateway - 'pilotctl extras gateway <cmd>' died with a bare internal error when the binary was absent — now a not_found error explaining where to get it - install.sh printed the 'Bridge IP traffic' get-started hint unconditionally, telling fresh installs to run a command that cannot work — now gated on the binary actually existing - docs/cli-reference.md regenerated Fresh-install abort itself (cp: pilot-gateway: No such file) was fixed in the canonical installer (pilot-protocol/release + R2 asset). Reported by Christopher Powroznik (Bowmark AI) via Slack, 2026-07-06. Co-authored-by: Teodor Calin <teodor@vulturelabs.io> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 25241c2 commit 1eb714c

3 files changed

Lines changed: 25 additions & 14 deletions

File tree

cmd/pilotctl/main.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1567,9 +1567,11 @@ Config file: ~/.pilot/config.json
15671567
15681568
Companion binaries:
15691569
daemon start / start --foreground exec the separately-shipped
1570-
pilot-daemon binary; gateway start / map exec pilot-gateway. They
1571-
are discovered (in order): $PILOT_DAEMON_BIN / $PILOT_GATEWAY_BIN,
1572-
next to the pilotctl executable, then $PATH.
1570+
pilot-daemon binary; gateway start / map exec pilot-gateway
1571+
(optional — no longer ships in release tarballs; build it from
1572+
github.com/pilot-protocol/gateway). Both are discovered (in order):
1573+
$PILOT_DAEMON_BIN / $PILOT_GATEWAY_BIN, next to the pilotctl
1574+
executable, then $PATH.
15731575
`)
15741576
os.Exit(2)
15751577
}
@@ -2095,7 +2097,7 @@ func cmdConfig(args []string) {
20952097
func contextCatalog() map[string]interface{} {
20962098
return map[string]interface{}{
20972099
"version": "1.4",
2098-
"note": "Core commands cover everything an agent needs. 'app_store' lists the 'pilotctl appstore <sub>' command family (install + call local capability apps). Use 'pilotctl extras <cmd>' for operator/admin operations. 'pilot-gateway' is a separate installed binary.",
2100+
"note": "Core commands cover everything an agent needs. 'app_store' lists the 'pilotctl appstore <sub>' command family (install + call local capability apps). Use 'pilotctl extras <cmd>' for operator/admin operations. 'pilot-gateway' is an optional companion binary (not shipped in release tarballs; build from github.com/pilot-protocol/gateway).",
20992101

21002102
// ── Core agent commands ──────────────────────────────────────────────
21012103
"commands": map[string]interface{}{
@@ -2361,7 +2363,7 @@ func contextCatalog() map[string]interface{} {
23612363
// ── pilot-gateway binary ─────────────────────────────────────────────
23622364
"pilot_gateway": map[string]interface{}{
23632365
"binary": "pilot-gateway",
2364-
"description": "IP gateway — bridges standard TCP/IP applications to Pilot Protocol addresses. Separate binary installed alongside pilotctl.",
2366+
"description": "IP gateway — bridges standard TCP/IP applications to Pilot Protocol addresses. Optional companion binary: not shipped in release tarballs, build from github.com/pilot-protocol/gateway.",
23652367
"commands": map[string]interface{}{
23662368
"start": map[string]interface{}{
23672369
"args": []string{"[--subnet <cidr>]", "[--ports <list>]", "[<pilot-addr>...]"},
@@ -2597,7 +2599,9 @@ func daemonBinaryPath() string {
25972599
func gatewayBinaryPath() string {
25982600
path, err := findCompanionBinary("pilot-gateway", "PILOT_GATEWAY_BIN")
25992601
if err != nil {
2600-
fatalCode("internal", "%v", err)
2602+
fatalHint("not_found",
2603+
"pilot-gateway no longer ships in release tarballs — build it from github.com/pilot-protocol/gateway, place it next to pilotctl or on $PATH, or set PILOT_GATEWAY_BIN",
2604+
"%v", err)
26012605
}
26022606
return path
26032607
}

docs/cli-reference.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,9 @@ Config file: ~/.pilot/config.json
121121
122122
Companion binaries:
123123
daemon start / start --foreground exec the separately-shipped
124-
pilot-daemon binary; gateway start / map exec pilot-gateway. They
125-
are discovered (in order): $PILOT_DAEMON_BIN / $PILOT_GATEWAY_BIN,
126-
next to the pilotctl executable, then $PATH.
124+
pilot-daemon binary; gateway start / map exec pilot-gateway
125+
(optional — no longer ships in release tarballs; build it from
126+
github.com/pilot-protocol/gateway). Both are discovered (in order):
127+
$PILOT_DAEMON_BIN / $PILOT_GATEWAY_BIN, next to the pilotctl
128+
executable, then $PATH.
127129
```

install.sh

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -708,11 +708,16 @@ echo " pilotctl daemon start --hostname my-agent # email already saved"
708708
echo " pilotctl info"
709709
echo " pilotctl ping <other-agent>"
710710
echo ""
711-
echo "Bridge IP traffic (requires root for ports < 1024):"
712-
echo ""
713-
echo " sudo ${BIN_DIR}/pilotctl gateway start --ports 80,3000 <pilot-addr>"
714-
echo " curl http://10.4.0.1:3000/status"
715-
echo ""
711+
# pilot-gateway no longer ships in release tarballs (extracted to the
712+
# sibling pilot-protocol/gateway repo) — only show the bridge hint when
713+
# the binary actually exists on this host.
714+
if [ -f "$BIN_DIR/pilot-gateway" ]; then
715+
echo "Bridge IP traffic (requires root for ports < 1024):"
716+
echo ""
717+
echo " sudo ${BIN_DIR}/pilotctl gateway start --ports 80,3000 <pilot-addr>"
718+
echo " curl http://10.4.0.1:3000/status"
719+
echo ""
720+
fi
716721
echo "Agent skill auto-injection:"
717722
echo ""
718723
echo " The daemon scans every 15 minutes and injects the Pilot Protocol"

0 commit comments

Comments
 (0)