par-term-update 0.2.5

Self-update and update-check system for par-term terminal emulator
Documentation

par-term-update

Self-update and update-check system for the par-term terminal emulator.

This crate handles GitHub release polling, in-place binary replacement for standalone installs, installation type detection, SHA256 asset verification, and bundled asset manifest tracking for shaders and shell integration scripts.

What This Crate Provides

  • update_checker — polls the GitHub releases API to detect available updates, with configurable check frequency (daily, weekly, manual) and cooldown enforcement
  • self_updater — in-place binary replacement for standalone installs; downloads the platform-appropriate asset, verifies its SHA256 checksum, and replaces the running binary
  • install_methods — detects whether par-term is installed via Homebrew, cargo install, a macOS .app bundle, or as a standalone binary; provides platform-specific upgrade paths
  • binary_ops — asset name resolution, download URL construction, and SHA256 verification
  • manifest — tracks installed bundled assets (shaders, shell integration scripts) for upgrade and rollback
  • http — shared HTTP utilities for release API and asset download requests

Key Types

Type Purpose
UpdateChecker Polls GitHub releases API with frequency control
UpdateCheckResult Outcome: UpToDate, UpdateAvailable, Disabled, Skipped, Error
UpdateCheckInfo Available update details: version, release notes, URL

These types are also available via par-term-settings-ui re-exports used by the settings UI to display update status and trigger installation.

Security Note

SHA256 checksums are verified against .sha256 release assets before installation. When no checksum asset is present, installation proceeds with a warning. See SECURITY.md for the full security policy on self-updates.

Workspace Position

Layer 2 in the dependency graph. Depends on par-term-config for update frequency and skipped-version settings. Used directly by the root par-term crate.

Related Documentation