Skip to content

v0.21.5

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Aug 05:09
· 22 commits to main since this release

What's new

Added

  • "Restart to finish" is a button now (#23).

Fixed

  • The "Update installed" toast no longer says the app is restarting when it isn't.
Full notes

Added

  • "Restart to finish" is a button now (#23).
    Installing an update by hand from the dashboard leaves the daemon serving the OLD build until
    something restarts it — only the opt-in unattended update restarts on its own — so the version row
    correctly changed to Restart to finish and then stopped there. That is a statement of what has
    to happen next, shown on the one screen that could not make it happen: an installed PWA on a phone
    has no system tray and no terminal beside it, which is the setup this row exists for in the first
    place. In practice the freshly-downloaded build just sat on disk, sometimes for hours, waiting for
    the owner to reach a real computer.
    Tapping the badge now relaunches the daemon through the auto-updater's existing handoff rather
    than a second restart mechanism: a detached successor is spawned carrying the port this daemon is
    bound to, this one shuts down gracefully to release it, and the successor binds the same port — so
    the page you tapped from reconnects to the new version instead of hunting for a port that moved.
    That handoff already had to get three win32 traps right (WMI drops the environment block, so both
    the relaunch signal and the port ride as command-line flags; a non-detached child dies with the
    tray's taskkill /T), and a parallel implementation would have been a second place to get all
    three right. It is deliberately not POST /api/shutdown, which means stop the whole application
    and drops the sentinel telling the tray host to dispose its icon and exit.
    The restart is refused, with a reason, while work is in flight: an agent waiting on an MCP
    approval, a git operation running, or an update still installing (that one restarts itself when it
    lands). Those are the same guards the unattended updater uses, minus its starvation cap — that cap
    exists because a loop nobody watches must not be starved into never updating at all, whereas here
    the owner is the retry, so refusing every time is safe as long as the refusal says why. Every
    connected dashboard, not just the one that asked, is told over SSE, so the disconnect that follows
    reads as the restart it is rather than a fault.
    New route: POST /api/updates/restart, owner-only (a share-link guest can never restart someone
    else's machine), 409 BUSY while work is in flight.

Fixed

  • The "Update installed" toast no longer says the app is restarting when it isn't. A manual
    update reported Restarting to finish. while nothing was restarting — the daemon kept serving the
    old build. It now says Restart to finish, which is both true and the name of the badge that does
    it.

Install

Download the bundle for your platform, extract the whole folder, and run the RepoYeti executable.
No install step or runtime is required; keep the bundled web folder beside the executable.

Platform Asset
Linux (x64) repoyeti-linux-x64.tar.gz
macOS (Apple silicon) repoyeti-macos-arm64.tar.gz
Windows (x64) repoyeti-windows-x64.zip

Source checkouts can update in-app. Portable-bundle installs update by downloading and extracting
the newer archive; nothing is installed without your say-so.
Full history: CHANGELOG.md

Full Changelog: v0.21.4...v0.21.5