Skip to content

Show container version lag#36

Merged
falkoro merged 1 commit into
masterfrom
feat/container-version-lag
Jun 3, 2026
Merged

Show container version lag#36
falkoro merged 1 commit into
masterfrom
feat/container-version-lag

Conversation

@falkoro
Copy link
Copy Markdown
Owner

@falkoro falkoro commented Jun 3, 2026

Summary

  • add best-effort Docker Hub semver tag checks for local and remote container rows
  • show compact badges like 6 behind plus host summaries like 1 update · 6 versions behind
  • keep unsupported containers quiet: local builds, digest-pinned images, private registries, latest, stable, and non-semver tags are not guessed

Verification

  • bun run build:frontend
  • bun run check
  • cargo test
  • cargo build --release
  • restarted local ShellDeck and verified /api/remote-hosts returns cloudflare/cloudflared:2026.1.1 as 6 behind, latest 2026.5.2
  • Playwright desktop + mobile screenshots of the live remote container panel; the GL502VS summary and 6 behind badge render without overlap
  • browser console has 0 errors; existing warning only for deprecated apple-mobile-web-app-capable meta

Copilot AI review requested due to automatic review settings June 3, 2026 18:10
@falkoro falkoro merged commit 66e061a into master Jun 3, 2026
@falkoro falkoro deleted the feat/container-version-lag branch June 3, 2026 18:10
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a best-effort “version lag” signal for Docker Hub semver-tagged container images by enriching container API responses with version metadata and rendering compact “X behind” badges + aggregated host summaries in the UI.

Changes:

  • Introduces src/image_versions.rs to parse supported image refs, query Docker Hub tags with timeouts, and cache results.
  • Extends ContainerInfo with an optional version field and annotates both local and remote container lists.
  • Updates UI rendering (TS + built JS + CSS) to show per-container version badges and roll-up “updates / versions behind” summaries.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/remote.rs Annotates remote containers with version info during SSH probe flow.
src/main.rs Registers the new image_versions module.
src/image_versions.rs Implements Docker Hub tag fetching, semver-ish parsing, comparison, and caching.
src/containers.rs Adds version to ContainerInfo and annotates the local running container list.
public/metrics.js Renders version badges and summary strings in the shipped UI JS bundle.
public/app.css Adds styling/layout for version badges in normal + compact container rows.
frontend/metrics.ts Updates frontend types and rendering logic for version badges and summaries.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/image_versions.rs
Comment on lines +156 to +161
let rest = parts.collect::<Vec<_>>().join("/");
if rest.split('/').count() == 1 {
format!("library/{rest}")
} else {
rest
}
Comment thread src/image_versions.rs
Comment on lines +214 to +225
fn remember(image: String, info: Option<ContainerVersionInfo>) {
let cache = CACHE.get_or_init(|| Mutex::new(HashMap::new()));
if let Ok(mut cache) = cache.lock() {
cache.insert(
image,
CacheEntry {
checked_at: Instant::now(),
info,
},
);
}
}
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