Skip to content

installer: re-sync install.sh with canonical (release#43) - #433

Merged
TeoSlayer merged 1 commit into
mainfrom
fix/resync-installer-906deea
Jul 28, 2026
Merged

installer: re-sync install.sh with canonical (release#43)#433
TeoSlayer merged 1 commit into
mainfrom
fix/resync-installer-906deea

Conversation

@TeoSlayer

Copy link
Copy Markdown
Collaborator

The canonical-drift job added in #432 went red on main immediately after that PR merged. That's the guard doing exactly its job on its first real run.

pilot-protocol/release#43 landed overnight — "fix empty -email flag breaking the default install, and make re-runs safe" — so canonical moved 988ddeb906deea while this repo's copy stayed at 988ddeb.

Why that follow-up existed

It's a direct consequence of #432 / release#42. Once the installer actually started the services instead of only writing the unit files, a unit generated with an empty -email flag became a real failure rather than dead config.

release#43 therefore:

  • adds a privilege gate (CAN_PRIV / PILOT_SUDO) that never prompts — sudo only when sudo -n already succeeds, and no prefix at all when already root, since minimal containers often ship no sudo binary
  • recovers an existing email from account.json / config.json on every run, not just fresh installs, so a re-run can't silently drop the address the operator configured
  • deliberately skips synthesised @nodes.pilotprotocol.network placeholders, so one can't harden into an override that outranks the account file and defeats a later pilotctl set-email

This PR

install.sh is now byte-identical to release@51894f1 (sha256 906deea1…), which is also what the live URL serves.

bash -n and sh -n both clean. The canonical-drift job should go green, and with it main.

🤖 Generated with Claude Code

The canonical-drift job added in #432 went red on main immediately after that
PR merged, which is the guard doing exactly its job on its first real run.

pilot-protocol/release#43 landed overnight — "fix empty -email flag breaking
the default install, and make re-runs safe" — so canonical moved from 988ddeb
to 906deea while this repo's copy stayed at 988ddeb.

That follow-up is a direct consequence of #432/release#42: once the installer
actually started the services instead of only writing the unit files, a unit
generated with an empty `-email ` flag became a real failure rather than dead
config. release#43 adds a privilege gate (CAN_PRIV / PILOT_SUDO, never
prompting), recovers an existing email from account.json/config.json on every
run so re-runs don't drop the operator's address, and skips synthesised
@nodes.pilotprotocol.network placeholders so they can't harden into an
override that defeats a later `pilotctl set-email`.

install.sh here is now byte-identical to release@51894f1 (sha256 906deea1…),
which is also what the live URL serves.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@TeoSlayer
TeoSlayer enabled auto-merge (squash) July 28, 2026 10:37
@TeoSlayer
TeoSlayer merged commit af1abc7 into main Jul 28, 2026
17 checks passed
@TeoSlayer
TeoSlayer deleted the fix/resync-installer-906deea branch July 28, 2026 11:18
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