Feature 1 - Update Detection: Query Gitea releases API on startup (3s
delay) and every 24h, compare patch versions by platform, show pulsing
"Update" button in TopBar with dialog for release notes/downloads.
Settings: auto-check toggle, manual check, dismiss per-version.
Feature 2 - Multi-Folder Projects: Replace single `path` with
`paths: Vec<ProjectPath>` (host_path + mount_name). Each folder mounts
to `/workspace/{mount_name}`. Auto-migrate old single-path JSON on load.
Container recreation via paths-fingerprint label. AddProjectDialog and
ProjectCard support add/remove/edit of multiple folders.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
38 lines
926 B
Rust
38 lines
926 B
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
/// Info returned to the frontend about an available update.
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct UpdateInfo {
|
|
pub version: String,
|
|
pub tag_name: String,
|
|
pub release_url: String,
|
|
pub body: String,
|
|
pub assets: Vec<ReleaseAsset>,
|
|
pub published_at: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct ReleaseAsset {
|
|
pub name: String,
|
|
pub browser_download_url: String,
|
|
pub size: u64,
|
|
}
|
|
|
|
/// Gitea API release response (internal).
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct GiteaRelease {
|
|
pub tag_name: String,
|
|
pub html_url: String,
|
|
pub body: String,
|
|
pub assets: Vec<GiteaAsset>,
|
|
pub published_at: String,
|
|
}
|
|
|
|
/// Gitea API asset response (internal).
|
|
#[derive(Debug, Clone, Deserialize)]
|
|
pub struct GiteaAsset {
|
|
pub name: String,
|
|
pub browser_download_url: String,
|
|
pub size: u64,
|
|
}
|