Skip to content

install.sh: cold-start fixes (non-systemd/headless) + GET STARTED walkthrough#132

Merged
Alexgodoroja merged 2 commits into
mainfrom
fix/agent-onboarding-injection
Jul 17, 2026
Merged

install.sh: cold-start fixes (non-systemd/headless) + GET STARTED walkthrough#132
Alexgodoroja merged 2 commits into
mainfrom
fix/agent-onboarding-injection

Conversation

@Alexgodoroja

Copy link
Copy Markdown
Collaborator

Agent-onboarding installer fixes + GET STARTED walkthrough

Served-copy (public/install.sh) counterpart to the pilotprotocol PR (on the
feat/next-steps-self-heal branch, PR #399). Fixes the cold-start install
failures found in the shakedown study.

Installer robustness

  • Gate the systemd block on a booted system ([ -d /run/systemd/system ]), not
    just the systemctl binary, and guard daemon-reload with || true. On
    containers/WSL/CI, daemon-reload returned non-zero and set -e aborted the
    install ~200 lines before the skill-injection first pass — so injection fired
    in 0/12 shakedown runs. Adds a non-systemd fallthrough printing the portable
    pilotctl daemon start.
  • Prompt for email only when a TTY is present; otherwise continue and let the
    daemon auto-synthesize a <fingerprint>@nodes.pilotprotocol.network identity.
    Headless installs previously died rc=2 at read … < /dev/tty. Documents
    PILOT_EMAIL.
  • Correct per-tool skill paths (skills/pilotctl, the real entrypoint), fix
    PicoClaw/OpenClaw heartbeat filenames, list Goose.

GET STARTED walkthrough

  • Replace the four-line get-started hint with a numbered walkthrough: the
    send---wait/read-newest-inbox idiom, pilot-director, list-agents, app store,
    and peers/trust — with copy-paste examples.

Verification: shellcheck clean; Docker e2e on the failing profile
(systemctl present, systemd not PID 1, passwordless sudo) — old installer aborts
rc=2 with no injection; this one completes rc=0, injection fires, daemon
registers, handshake list-agents + query return live data.

Note: the terse-vs-served copies have drifted (this file is 831→954 lines; the
live pilotprotocol.network/install.sh currently matches the release repo copy
at 1000→1123 lines). Both are updated identically.

Alexgodoroja added 2 commits July 16, 2026 16:35
Served copy of the installer fix. On hosts with systemctl but no booted systemd
(containers/WSL/CI), 'sudo systemctl daemon-reload' aborted the script under
set -e before the skill-injection first-pass; headless installs also died at the
/dev/tty email prompt.

- Gate systemd on [ -d /run/systemd/system ]; guard daemon-reload with || true;
  add a non-systemd fallthrough printing 'pilotctl daemon start'.
- Prompt for email only when a TTY is present; otherwise continue and let the
  daemon auto-synthesize a <fingerprint>@nodes.pilotprotocol.network identity.
  Document PILOT_EMAIL for headless installs.
- Correct per-tool skill paths (skills/pilotctl), fix PicoClaw/OpenClaw heartbeat
  files, and list Goose.
…ough

The post-install hint was four lines (PATH, daemon start, info, ping) and never
showed an agent the two things it actually needs on a fresh node: the send-with
--wait / read-newest-inbox idiom, and the three ways to get value (pilot-director
for live data, list-agents for known specialists, appstore for local
capabilities), plus the peers/trust half. Replace it with a numbered GET STARTED
block covering all of it, with copy-paste examples. Ends by pointing at the full
operator manual (the injected SKILL.md).
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Preview deployed to Cloudflare Pages

  • Commit deploy URL: https://7c8dd62e.pilotprotocol.pages.dev
  • Branch alias: https://fix/agent-onboarding-injection.pilotprotocol.pages.dev (may take ~30s to propagate)
  • Commit: b3e0984bb9441551b7cad1efa1c74aa87a751f88

@Alexgodoroja
Alexgodoroja merged commit 3348f01 into main Jul 17, 2026
3 checks passed
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.

1 participant