• v0.4.0 3d03838292

    brian released this 2026-07-15 17:49:44 +00:00 | 0 commits to main since this release

    New Features

    ###Local Images Management

    • Upload images from your local machine to any Incus system
    • Download images from Incus systems to your local machine
    • Delete images with confirmation
    • View image details (aliases, size, properties, creation date)
    • Remote image server management (create, list, delete remotes)

    Native VGA Console (SPICE)

    • Open a full graphical console for virtual machines directly in the browser
    • Uses the SPICE protocol via spice-client for near-native display performance
    • Keyboard and mouse input forwarded in real-time
    • Fullscreen mode and Ctrl+Alt+Del toolbar
    • Containers are greyed out with tooltip (VGA only available for VMs)
    • Short-lived JWT tokens (60s expiry) for secure WebSocket connections
    • Per-channel WebSocket proxy with essential channel filtering (rejects playback, record, port, webdav channels)

    Instance Templates

    • Auto-system selection when creating instances from templates

    Backend Changes

    • Image upload/download streaming with progress tracking
    • VGA console token endpoint (POST /api/console/vga-token)
    • Per-channel SPICE WebSocket proxy (WS /api/console/vga/{systemId}/{name})
    • Image remote management endpoints
    • Certificate helpers for system connections
    • Settings defaults for image management

    Frontend Changes

    • LocalImagesView — full CRUD UI for images with upload modal, detail drawer
    • VgaConsoleView — SPICE client rendering with fullscreen and toolbar
    • VGA console launch from instance menus (admin and non-admin)
    • Router: /console/vga/:systemId/:name route
    • Updated profiles and instances views

    Infrastructure

    • Upgraded Docker base images: node:22-alpine, python:3.13-slim, nginx:alpine
    • Added spice-client npm dependency

    Test Coverage

    • 15 new backend console API tests (token creation, validation, expiry, role gating)
    • New backend image management API tests
    • Frontend VGA console unit tests
    • E2E tests for image management and VGA console navigation

    Docker Image

    docker pull bmcgonag/incus-commander:0.4.0
    docker pull bmcgonag/incus-commander:latest

    Downloads
  • 0.3.13 a48e0eeb16

    brian released this 2026-06-28 18:51:39 +00:00 | 1 commits to main since this release

    v0.3.13 — Local Images Filters & Full Actions

    Features

    • Added filter bar to Local Images view: filter by alias text, type (container/VM), system, and created by — all client-side computed with matching pagination
    • Incus-native images (those existing on hosts, not published through the app) now have full action support: Info modal (OS, release, arch, aliases, etc.), Refresh, Add Alias, Delete
    • New backend endpoints for Incus-native image management: GET/DELETE /images/by-system/{id}/{fingerprint}, alias CRUD, and refresh

    v0.3.12 — Incus-Native Image Management

    Features

    • Changed GET /images to aggregate from all Incus systems, not just the local_images DB table — images already on your hosts now appear in the list
    • Actions dropdown for Incus-native images: Info, Refresh, Add Alias, Delete
    • Info modal shows full Incus image metadata (fingerprint, type, size, architecture, OS, release, serial, auto-update, aliases with removable tags)

    v0.3.11 — Template & Destroy Confirmation Fixes

    Fixes

    • Template images now properly populate in instance creation dropdown (was blocked by a prop mismatch visible→open and Promise.all rejection on system API failure)
    • Instance creation from template no longer fails with "Image not provided" — backend resolves fingerprint/alias from the template record unconditionally
    • Destroy confirmation dialog added to SystemInstancesView (requires typing the instance name, matching the InstancesView pattern)

    v0.3.10–v0.3.4 — (Build iteration releases)

    v0.3.3 — Production Build Cache Fix

    Fixes

    • Resolved "stale frontend build" issue where lazy-loaded chunks returned 404 with wrong MIME type — rebuilt Docker image with --no-cache to ensure fresh vite build output
    Downloads