centralize the Monitor version and prepare the 1.2.4.2-beta

- centralize the app version in a new `AppImage/lib/version.ts` — the dashboard footer, SMART report footer and release-notes modal all read from a single export, so a future bump only has to touch version.ts, package.json and beta_version.txt
- roll `package.json` and `package-lock.json` to `1.2.4.2-beta` (the lockfile was still stuck on the stale `1.2.2.2-beta` marker)
- move the previous `1.2.4.1-beta` feature list into the modal's historical CHANGELOG under its August 17, 2026 date so navigating "Anterior/Próximo" still walks through the complete history
- write the four new What's New entries for the ongoing 1.2.4.2 cycle: smarter LXC app detection (Docker promoted as parent workload during cold start, unregistered suggestions cached at startup, on-demand catalog scan), end-to-end Docker updates (Engine + per-image tracking on the 24h cycle with a "Check now" action), the 380+ workload detection catalog built from the live community-scripts source, and Pushover joining Telegram/Gotify/Discord/Email/Apprise as a native notification channel
- add the four new i18n keys (appDetection, dockerUpdates, appCatalog, pushover) to all eight bundled locales — en and es curated, the six remaining kept in English until the docs-i18n workflow retranslates them
This commit is contained in:
MacRimi
2026-08-27 08:53:04 +02:00
parent c2a6db38a8
commit 4b14dfa47e
14 changed files with 77 additions and 104 deletions
+2 -1
View File
@@ -52,6 +52,7 @@ import {
DropdownMenuTrigger,
} from "./ui/dropdown-menu"
import { useT } from "../lib/i18n/provider"
import { APP_VERSION } from "../lib/version"
interface SystemStatus {
status: "healthy" | "warning" | "critical"
@@ -854,7 +855,7 @@ export function ProxmoxDashboard() {
</Tabs>
<footer className="mt-8 md:mt-12 pt-4 md:pt-6 border-t border-border text-center text-xs md:text-sm text-muted-foreground">
<p className="font-medium mb-2">ProxMenux Monitor v1.2.4.1-beta</p>
<p className="font-medium mb-2">ProxMenux Monitor v{APP_VERSION}</p>
<p>
<a
href="https://ko-fi.com/macrimi"
+27 -27
View File
@@ -6,8 +6,7 @@ import { Dialog, DialogContent, DialogTitle } from "./ui/dialog"
import { X, Sparkles, Thermometer, Activity, HardDrive, Shield, Globe, Cpu, Zap, Sliders, Wrench, RefreshCw, Server, BellOff, Bell, Calendar, DatabaseBackup, Smartphone, Languages } from "lucide-react"
import { Checkbox } from "./ui/checkbox"
import { useT } from "../lib/i18n/provider"
const APP_VERSION = "1.2.4.1-beta" // Sync with AppImage/package.json
import { APP_VERSION } from "../lib/version"
interface ReleaseNote {
date: string
@@ -19,6 +18,22 @@ interface ReleaseNote {
}
export const CHANGELOG: Record<string, ReleaseNote> = {
"1.2.4.1-beta": {
date: "August 17, 2026",
changes: {
added: [
"The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
"New App tab inside the VM & LXC modal — especially for LXCs. Register the apps installed in a container, capture their weblinks, and get notifications when a new upstream version ships.",
"Reworked Updates tab for LXCs: apply OS packages and registered-app updates from a single button, and schedule a recurring auto-update job that checks the container's OS and its tracked app on every run.",
"First-time visitors on Android and iOS Safari now see an in-app install prompt with clear steps for adding the Monitor to their home screen as a PWA.",
],
changed: [
"Faster page loads and smoother navigation across the dashboard. Overview opens instantly and the VMs & LXCs page never flashes 'Loading…' between guest modals again.",
"Long backup jobs no longer time out. VM and LXC backups launched from the Monitor now run in the background until they naturally finish, so a 30-minute PBS backup completes the same as a 10-second local one.",
"VMs running the QEMU Guest Agent (qemu-guest-agent) now report real used / total disk figures on the dashboard, instead of the '0 GB' that PVE returns for guest-managed filesystems.",
],
},
},
"1.2.3": {
date: "July 15, 2026",
changes: {
@@ -237,40 +252,25 @@ export const CHANGELOG: Record<string, ReleaseNote> = {
// build-i18n-messages workflow feeds to Google Translate for locales
// that haven't been curated by hand.
const CURRENT_VERSION_FEATURES = [
{
icon: <Languages className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.i18n",
text: "The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
},
{
icon: <Zap className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.pageSpeed",
text: "Faster page loads and smoother navigation across the dashboard. Overview opens instantly and the VMs & LXCs page never flashes 'Loading…' between guest modals again.",
},
{
icon: <Sparkles className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.appTab",
text: "New App tab inside the VM & LXC modal — especially for LXCs. Register the apps installed in a container, capture their weblinks, and get notifications when a new upstream version ships.",
key: "releaseNotes.currentFeatures.appDetection",
text: "Smarter app detection in the App tab: Docker is correctly promoted as the parent workload during cold start (Portainer/SearXNG no longer briefly show up as native apps), unregistered suggestions live in the startup cache, and 'Find applications' runs a fresh catalog-backed scan on demand.",
},
{
icon: <RefreshCw className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.updatesTab",
text: "Reworked Updates tab for LXCs: apply OS packages and registered-app updates from a single button, and schedule a recurring auto-update job that checks the container's OS and its tracked app on every run.",
key: "releaseNotes.currentFeatures.dockerUpdates",
text: "The Updates tab now covers Docker end-to-end: Docker Engine and per-image update tracking follow the same 24-hour rolling cycle as OS packages, with a 'Check now' action for on-demand digest comparison — no more waiting for the daily collector.",
},
{
icon: <DatabaseBackup className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.backupNoTimeout",
text: "Long backup jobs no longer time out. VM and LXC backups launched from the Monitor now run in the background until they naturally finish, so a 30-minute PBS backup completes the same as a 10-second local one.",
icon: <Zap className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.appCatalog",
text: "New application detection catalog with over 380 tracked workloads, built from the live community-scripts source with independent script evidence. Primary and fallback detectors (file, binary, dpkg, apk, Python, Docker exec, Docker label) cover both new and historical LXC layouts.",
},
{
icon: <HardDrive className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.vmDiskUsage",
text: "VMs running the QEMU Guest Agent (qemu-guest-agent) now report real used / total disk figures on the dashboard, instead of the '0 GB' that PVE returns for guest-managed filesystems.",
},
{
icon: <Smartphone className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.pwaInstall",
text: "First-time visitors on Android and iOS Safari now see an in-app install prompt with clear steps for adding the Monitor to their home screen as a PWA.",
icon: <Bell className="h-5 w-5" />,
key: "releaseNotes.currentFeatures.pushover",
text: "Pushover joins Telegram, Gotify, Discord, Email and Apprise as a native notification channel — user/API key, device and sound selectors, priority 0 for regular messages, optional priority 1 for CRITICAL events. Suggested by @benginx (#308).",
},
]
+2 -1
View File
@@ -12,6 +12,7 @@ import { formatStorage as sharedFormatStorage } from "../lib/utils"
import { DiskTemperatureDetailModal } from "./disk-temperature-detail-modal"
import { DiskTemperatureCard } from "./disk-temperature-card"
import { getDiskType as resolveDiskType } from "../lib/disk-type"
import { APP_VERSION } from "../lib/version"
import { useT } from "@/lib/i18n/provider"
import {
useDiskTempThresholds,
@@ -3764,7 +3765,7 @@ ${observationsHtml}
<!-- Footer -->
<div class="rpt-footer">
<div>${tSmart("footer.generatedBy")}</div>
<div>ProxMenux Monitor v1.2.4.1-beta</div>
<div>ProxMenux Monitor v${APP_VERSION}</div>
</div>
</body>