Skip to content

feat: one-line installer + configurable reconnect attempts#33

Merged
ysyneu merged 1 commit intomainfrom
feat/knowledge-pack-tasks
Apr 24, 2026
Merged

feat: one-line installer + configurable reconnect attempts#33
ysyneu merged 1 commit intomainfrom
feat/knowledge-pack-tasks

Conversation

@ysyneu
Copy link
Copy Markdown
Collaborator

@ysyneu ysyneu commented Apr 24, 2026

Summary

  • New install.sh (Linux + macOS): one-line curl | sudo bash install / update / uninstall with SHA256 verification, hardened systemd unit, and env-file preservation across updates.
  • Runner now accepts --max-attempts / FLASHDUTY_RUNNER_MAX_ATTEMPTS (0 = unlimited, default 30).
  • READMEs lead with the one-liner above the manual install block. Design doc at docs/superpowers/specs/2026-04-23-install-script-design.md.

Test plan

  • shellcheck -s sh install.sh clean
  • 12-scenario smoke suite in ubuntu:22.04: install / no-op / env preservation / .bak on update / uninstall-keeps-config / --purge wipes / exit 4 (checksum) / exit 5 (missing version) / exit 6 (no token on non-tty) / STATE_DIR symlink refused
  • CI workflow at .github/workflows/install-sh.yml (shellcheck + parse + docker smoke on push/PR)
  • Manual verification on a real systemd host (daemon-reload + enable --now)
  • macOS binary-only path sanity check on a fresh box
  • Max-attempts flag exercised against a flapping upstream

🤖 Generated with Claude Code

install.sh handles install, update, and uninstall in a single curl | sudo
bash. SHA256-verifies the release tarball against checksums.txt, creates
a dedicated flashduty service user and hardened systemd unit on Linux,
and falls back to a binary-only install on macOS / non-systemd hosts.
Env file is never overwritten on re-install. Matching CI workflow runs
shellcheck, parse checks, and a 10-scenario Docker smoke test.

Separately, wire --max-attempts / FLASHDUTY_RUNNER_MAX_ATTEMPTS through
the WebSocket client so operators can raise or uncap the reconnect limit
(0 = unlimited, default 30).

READMEs lead with the one-liner above the manual install block; full
design spec is checked in at docs/superpowers/specs/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ysyneu ysyneu merged commit 6a295cb into main Apr 24, 2026
11 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