Skip to content

feat: auto-pull, rebuild, and restart Symphony from GitHub - #2

Merged
silas-dsc merged 1 commit into
mainfrom
claude/auto-pull-rebuild-github-0qjLZ
May 11, 2026
Merged

feat: auto-pull, rebuild, and restart Symphony from GitHub#2
silas-dsc merged 1 commit into
mainfrom
claude/auto-pull-rebuild-github-0qjLZ

Conversation

@silas-dsc

Copy link
Copy Markdown
Owner

Summary

  • Symphony now polls its own git remote on a configurable interval; when new commits land on the tracked branch it fast-forward pulls, runs install (only when manifests changed) and the build command, then exits with code 75.
  • New bin/symphony-supervisor.sh wrapper (also npm run start:watch) relaunches Symphony on exit 75 so hands-off upgrades work without an external process manager. Existing node dist/index.js users still get the pull + rebuild but exit instead of restarting.
  • New auto_update: block in WORKFLOW.md controls enabled, interval_ms, remote, branch, repo_root, build_command, install_command. Defaults: every 5 min on origin/<current branch> of the Symphony checkout.

Safety

  • Refuses to pull when the working tree is dirty, the local branch is ahead of the remote, or HEAD is detached without an explicit auto_update.branch.
  • Install/build failures keep the previous build running — no restart is signalled.

Test plan

  • npm run build clean.
  • Drove SelfUpdater against a local bare repo: detected new commit, pulled, ran build, fired restart callback.
  • Supervisor restart loop tested independently (3 runs, exit 75 twice, exit 0 once).
  • Dirty-tree guard confirmed: skips with a clear warning.

https://claude.ai/code/session_01Bs7f7nqtcieCeknu9vuWys


Generated by Claude Code

Symphony now polls its own git remote on a configurable interval. When new
commits land on the tracked branch it fast-forward pulls, runs install (only
when manifests changed) and the build command, then exits with code 75.
A new bin/symphony-supervisor.sh wrapper (also exposed as
`npm run start:watch`) relaunches Symphony on that exit code so hands-off
upgrades work without an external process manager.

Guards refuse to pull a dirty tree, a detached HEAD, or a branch ahead of
the remote, so operator edits and local commits are preserved.
@silas-dsc
silas-dsc merged commit 12bba67 into main May 11, 2026
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