Skip to content

Offer to restart a daemon older than the window - #119

Merged
quanticstudios merged 1 commit into
mainfrom
restart-older-daemon
Oct 16, 2026
Merged

quanticstudios merged 1 commit into
mainfrom
restart-older-daemon

Conversation

@quanticstudios

Copy link
Copy Markdown
Owner

BLUF

After an update that only raises the protocol level, the old daemon keeps serving the new window, and the new daemon-side features (pinned tabs, the remote-control mark) silently do nothing. The sidebar's update button now reads Restart to finish while a local daemon is behind. Clicking it asks first, then restarts the daemon. Users no longer have to find a PID and kill it.

Changes

  • cmd/pitwall/main.go: dialOrStart with restart also replaces a daemon of this Version at a lower Level. Without restart it connects as before.
  • internal/ui/app/restart.go: daemonBehind is true for a local, connected daemon at a lower Level. updateLabel falls back to "Restart to finish". The click opens a confirm dialog (Later / Restart now) that calls Linker.Restart. --host windows don't offer it, because the restart would start that machine's own pitwall, which may be just as old.
  • docs/troubleshooting.md and a CHANGELOG line.

Linear

None.

Verification

  • gofmt, go vet ./..., go test ./... (-tags=novulkan).
  • TestDialOrStartRestartsOlderLevel: a fake daemon at Level-1 serves dialOrStart(restart=false) and stays up. With restart=true it's stopped and the replacement answers.
  • TestRestartOlderDaemon: the label and the dialog show for an older local daemon, and not for a current one, a dropped link, or --host.

🤖 Generated with Claude Code

An update that only raises proto.Level keeps the old daemon serving the
new window, and what the new Levels added that needs the daemon (pinned
tabs, the remote control mark) quietly does nothing. A local window now
shows Restart to finish on the update button while its daemon is behind;
the click asks first, since programs in panes stop, then restarts it.

dialOrStart's restart now also replaces a daemon of this Version at a
lower Level. A --host window does not offer it: the restart would start
that machine's own pitwall, which may be just as old.
@quanticstudios
quanticstudios enabled auto-merge (squash) October 16, 2026 16:00
@quanticstudios
quanticstudios merged commit 9755b6a into main Oct 16, 2026
9 checks passed
@quanticstudios
quanticstudios deleted the restart-older-daemon branch October 16, 2026 16:04
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