Skip to content

fix(fleet): substitute the tunnel ssh alias in install.sh; refresh deploy receipt - #1034

Merged
jeonghun-jj-lee merged 1 commit into
mainfrom
fleet/install-alias-substitution
Sep 12, 2026
Merged

fix(fleet): substitute the tunnel ssh alias in install.sh; refresh deploy receipt#1034
jeonghun-jj-lee merged 1 commit into
mainfrom
fleet/install-alias-substitution

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

Problem

tools/fleet/install.sh copied the tunnel plist template verbatim, shipping a literal FLEET_SSH_ALIAS placeholder where the ssh alias belongs. Observed live (2026-09-12, MacBook rejoin): launchd retried every 10s on ssh: Could not resolve hostname fleet_ssh_alias while install.sh --check reported all ok — the check greps for the keepalive flags and port but never the alias.

The user-visible chain: the panel hung "booting" on a dead tunnel → the extension's 10-second "fleet tunnel down — Go Standalone?" dialog fired → the destructive one-tap exit silently reverted fleet.json and ate the rejoin. The placeholder was the root cause; the trap dialog amplified it.

Changes

  • install.sh (both copies — root + packaged, now byte-identical):
    • reads canonical.sshAlias from fleet.json
    • substitutes alias and port into the plist at install time
    • refuses to install a tunnel when no alias is configured (a tunnel that cannot resolve its host must not ship)
    • --check now fails on an unsubstituted placeholder or a wrong alias (previously a silent all-ok on a broken tunnel)
  • Reconciles a parallel uncommitted fix in packages/extension/tools/fleet/install.sh (same intent, written twice, diverging) — the duplicate is now identical to the root copy.
  • Regenerates packages/extension/agents/.deploy-receipt.json for the current 7-card source set — the committed receipt still named the retired autodev/autoresearch cards, flagging the agent-cards surfaces stale on every fleet machine.

Verification

  • install.sh --check green on the live MacBook (guard in sync, settings ok, tunnel ok — alias erlich, port 4096)
  • synthetic-placeholder test: replacing erlich with the placeholder in the installed plist makes --check exit 1 with a named failure
  • end-to-end rejoin after the fix: tunnel up, hub 200 through it, panel attached
  • amico doctor: agent-cards surfaces current on both fleet machines that ran the receipt
  • the card set is byte-identical across the MacBook and erlich checkouts, so one receipt serves both

…ploy receipt

The installer copied the tunnel plist template verbatim, shipping a literal
FLEET_SSH_ALIAS placeholder — launchd looped forever on 'could not resolve
hostname fleet_ssh_alias' while --check reported all-ok (it never checked the
alias). Now:

- install.sh (both copies — root + packaged) reads canonical.sshAlias from
  fleet.json, substitutes it (and the port) into the plist at install,
  refuses to install a tunnel with no alias, and --check fails loudly on an
  unsubstituted placeholder or a wrong alias
- reconciles the parallel uncommitted fix in the packaged copy (same intent,
  written twice — the duplicate is now byte-identical to the root)
- regenerates the agent-cards deploy receipt for the current 7-card source
  set (the committed receipt still named the retired autodev/autoresearch
  cards, flagging agent-cards surfaces stale on every fleet machine)
@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: a545aecb-fdbf-4873-93c9-c514c24d6b5d


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jeonghun-jj-lee
jeonghun-jj-lee merged commit 072fdb0 into main Sep 12, 2026
10 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.

2 participants