Commit Graph
2554 Commits
Author SHA1 Message Date
ProxMenuxBot 81cc746e19 chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: aa4adc3
Triggered by: push
2026-10-30 21:59:48 +00:00
MacRimi aa4adc34a9 fix(monitor): place the Secure Gateway template on an active storage 2026-10-30 22:58:12 +01:00
ProxMenuxBot dc823bc21b chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: 72908e5
Triggered by: push
2026-10-30 20:50:19 +00:00
ProxMenuxBot 297a41d58a chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: 668b557
Triggered by: push
2026-10-30 20:47:44 +00:00
MacRimiandGitHub 72908e55aa Merge pull request #562 from DrOwl/feature/disk-controller-mapping
Map storage devices to their PCI storage controller
2026-10-30 21:39:07 +01:00
MacRimiandGitHub 668b557fd5 Merge pull request #561 from DrOwl/feature/zfs-pool-details
Show ZFS pool layout, scrub status and device health in Storage view
2026-10-30 21:38:12 +01:00
MacRimi 89531bbab8 fix(monitor): record kernel I/O errors on the right disk 2026-10-30 18:51:55 +01:00
MacRimi bd42df3ead fix(monitor): keep the LVM filter when the scan names its devices 2026-10-30 17:32:25 +01:00
MacRimi cf7b8363da fix(monitor): serve the bundled PWA manifest and service worker 2026-10-30 16:59:02 +01:00
DrOwlandClaude Opus 5.5 72491b2445 Show ZFS pool layout, scrub status and device health in Storage view
/api/storage now runs a single `zpool status -j --json-int -P` (OpenZFS
2.3+) for all pools and returns, per pool:
- top-level vdevs with type, raidz/draid parity, class (data, special,
  dedup, log, cache, spare), state and read/write/checksum errors
- member devices with path, resolved base disk, state, error counters,
  slow I/Os, and the spare-N/replacing-N they sit under while swapping
- scrub/resilver status (progress only while running), the pool's
  status/action text and data-error count
- fragmentation, capacity and dedup ratio from `zpool list`

This replaces the per-pool `zpool status` text loop whose result
(zfs_disks) was never used. Member paths (by-id, by-partlabel, wwn) are
resolved to base disks via sysfs rather than an lsblk call per device.
On ZFS without `-j`, pools report details_available: false and the UI
falls back to the existing basic card.

The ZFS pool card shows a layout summary (e.g. "RAIDZ2 | 5 disks |
Scrub finished ...") and opens a details dialog with the vdev tree,
per-device error counts, scrub/resilver progress, and links from each
member disk to its disk details dialog.

Tested against `zpool status -j` output from PVE 9 / OpenZFS 2.4.4:
mirror, raidz2, striped mirrors, single-disk pool, and a file-backed
degraded raidz1 with log, cache and spare devices.

Tests cover the `zpool status -j` -> Storage view shape against real
output from PVE 9 / OpenZFS 2.4.4 hosts (serials and WWNs replaced):
mirror, raidz2, single-disk pool, slow I/Os, and a degraded raidz1 with
log, cache and spare devices; plus a synthetic resilver with a spare
swapping in. Member path -> base disk resolution is tested against a
stubbed sysfs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 11:55:02 +00:00
DrOwlandClaude Opus 5.5 30034e7aa3 Map storage devices to their PCI storage controller
Each disk in /api/hardware now carries a controller_slot, resolved from
the disk's sysfs device path: the deepest PCI address in that path is the
controller (bridges sit above it), normalised to lspci's slot format so it
matches pci_devices[].slot directly. NVMe falls back to the controller's
own sysfs link when the namespace resolves to a subsystem with no PCI
parent; zvols and other virtual devices get None.

Hardware page:
- The disk dialog shows its storage controller (click through to the
  controller), and the PCI device dialog lists the disks attached to it.
- Storage controllers in the PCI Devices list get a badge with the
  number of attached disks.

Storage view:
- /api/storage returns controller_slot on each physical disk plus a
  controllers map (slot -> class, vendor, device, subsystem name,
  driver), built from the cached `lspci -vmm` output so the Storage view
  doesn't need the heavier /api/hardware enumeration.
- "Physical Disks & SMART Status" can group disks under their storage
  controller, with a header showing the controller name, slot, driver
  and disk count. Groups follow PCI slot order; disks with no resolvable
  controller are listed last. USB disks keep their own section.
- The disk details dialog shows the storage controller on the Overview
  tab.
- Grouping is opt-in via a new Storage Display card in Settings, stored
  per browser (localStorage) and synced across open views, following the
  existing nav-tab-order preference pattern. Off by default.

Also:
- Treat "IDE interface" as a storage controller, so SATA controllers left
  in BIOS IDE mode (e.g. Intel 7 Series, ata_piix) appear in pci_devices
  and disks behind them can be mapped.
- lspci prints "Device xxxx" when it has no subsystem name; that
  placeholder is ignored so the chip name is shown instead.
- Add the missing sdevice field to the PCIDevice type.

Tests cover the sysfs path -> controller slot rule against real paths
from two PVE 9 hosts (SAS HBA, AHCI SATA, SATA in BIOS IDE mode, USB
behind a hub, NVMe behind chipset bridges), the non-zero PCI domain case
(Intel VMD), the NVMe multipath fallback, and get_storage_controllers'
lspci parsing including the "Device xxxx" placeholder and driver lookup.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 11:47:00 +00:00
ProxMenuxBot 5db3ae9c92 chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: 581eed6
Triggered by: push
2026-10-28 22:32:09 +00:00
VAIO73 bdf9075639 fix: distinguish the waiting unattended upgrades shutdown helper 2026-10-28 17:30:44 +00:00
VAIO73 65b10cea09 ui: compact the current ProxMenux version status 2026-10-28 17:30:44 +00:00
VAIO73 9147ec2f52 fix: keep reboot actions blocked during health recovery 2026-10-28 17:30:44 +00:00
VAIO73 ba3fb1197f fix: read completed update results without a live terminal 2026-10-28 17:30:44 +00:00
VAIO73 889409de8d fix: preserve dated health results while update cache refreshes 2026-10-28 17:30:44 +00:00
VAIO73 43973e1d06 fix: clarify system update action and package plan 2026-10-28 17:30:44 +00:00
VAIO73 e1be5c22c8 fix: include host update controls in AppImage assembly 2026-10-28 17:30:44 +00:00
VAIO73 79cdf814ed fix: keep restart controls disabled while request is pending 2026-10-28 17:30:44 +00:00
VAIO73 707a45e639 fix: guard host reboot with native package locks 2026-10-28 17:30:44 +00:00
VAIO73 52cd21dcb1 feat: add guarded host restart and read-only ProxMenux version status 2026-10-28 17:30:44 +00:00
VAIO73 503a946d85 fix: retain translated reboot summary in cached health responses 2026-10-28 17:30:44 +00:00
VAIO73 ac9565fa19 fix: refresh reboot evidence after external host updates 2026-10-28 17:30:44 +00:00
VAIO73 f40e0a53e1 Preserve host updates across sign-out and report pending kernel activation 2026-10-28 17:30:44 +00:00
github-actions[bot] 52d44a7435 Update AppImage beta build (2026-10-28 10:51:01) 2026-10-28 10:51:01 +00:00
MacRimi fc8c23fd66 feat(monitor): VM disk thresholds in Settings 2026-10-27 22:22:05 +01:00
MacRimiandGitHub 6173c012e6 Merge pull request #539 from f3rs3n/fix/overview-chart-axis-clipping
fix(monitor): keep overview Y-axis titles inside charts
2026-10-27 19:53:01 +01:00
MacRimi 4cefc0484b feat(post-install): rebuild Log2RAM with the journal and task logs kept on disk 2026-10-27 19:48:26 +01:00
MacRimi 085bb084eb fix(monitor): show quiet rotational disks by their identity after a restart 2026-10-27 17:20:44 +01:00
martino e6d39f6015 fix(monitor): keep overview Y-axis titles inside charts 2026-10-27 02:48:25 +01:00
github-actions[bot] 6feb11ffb9 Update AppImage beta build (2026-10-26 23:09:48) 2026-10-26 23:09:48 +00:00
MacRimi 28d9ff1c9e New version 1.2.7 2026-10-26 23:37:27 +01:00
MacRimi 6dc2c1f13c Merge remote-tracking branch 'origin/main' into develop 2026-10-26 23:18:22 +01:00
MacRimi 96a388d1e7 New version 1.2.7 2026-10-26 23:07:32 +01:00
MacRimiandGitHub 05cf4a40c3 Merge pull request #535 from f3rs3n/fix/italian-release-delta
fix(i18n): refine final Italian OCI and update messages
2026-10-26 22:36:24 +01:00
martino 01584b974a fix(i18n): refine final Italian OCI and update messages 2026-10-26 21:48:59 +01:00
VAIO73 80456679f1 i18n: polish the Slovak OCI release note 2026-10-26 19:03:00 +00:00
MacRimiandGitHub 617d85e427 Merge pull request #532 from MaEscalanteHe/feature/update-openai-models
fix: update OpenAI models and send supported reasoning parameters
2026-10-26 19:37:01 +01:00
Manuel Escalante e9b8fd28db test: cover chat contract for classic OpenAI models 2026-10-26 19:02:32 +01:00
MacRimi 85e5c5f29b Merge branch 'develop' of https://github.com/MacRimi/ProxMenux into develop 2026-10-26 18:47:12 +01:00
MacRimi 7b1736fe3e fix: name the guest in VM/CT health alerts, refresh AI models, propose the recipe's volume choice
- A health problem of a VM or CT names the guest in its title and in the
  Quiet Hours summary; a recovery shows its category by name in the
  reader's language.
- AI model lists reviewed against each provider: Gemini adds 3.6/3.7/3.8
  Flash, Groq adds gpt-oss-120b, and Groq/OpenRouter models no longer
  served are removed.
- OCI installer proposes the volume choice the recipe declares, so a path
  meant for a host directory is proposed as one; Duplicati /source is
  proposed on a host directory.
2026-10-26 18:47:09 +01:00
Manuel Escalante acbe53ad4a chore: update verified OpenAI models to current lineup 2026-10-26 18:35:47 +01:00
Manuel Escalante 542ff12890 fix: send supported reasoning parameters to gpt-5.1 and gpt-6 models 2026-10-26 18:35:47 +01:00
MacRimiandGitHub 55e830904d Merge pull request #528 from jcastro/feature/oci-input-review
Support owner-aware OCI tmpfs mounts and enable Input
2026-10-26 18:17:48 +01:00
MacRimi b6500c147e Monitor: forget the App tab of a destroyed guest 2026-10-26 18:02:30 +01:00
Jonatan 0d063d519c Merge develop into OCI input review 2026-10-26 17:44:52 +01:00
MacRimi be6ef0069b 1.2.7: IT-Tools installable, catalog categories and release notes
- IT-Tools has the template the menu installs from, so it is offered
  like the rest of the catalog.
- Every curated application is listed in categories.json, and OpenTask's
  template matches its recipe.
- The texts of the LXC update jobs read correctly in Spanish, German,
  French, Italian, Portuguese and Swedish.
- The release notes count 514 applications and credit PRs #526, #527,
  #529 and #530.
2026-10-26 17:21:24 +01:00
ProxMenuxBot ae809142f6 chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: ba6f691
Triggered by: push
2026-10-26 15:58:38 +00:00
MacRimiandGitHub 3e1729a262 Merge pull request #530 from MaEscalanteHe/feature/update-anthropic-models
fix: update Anthropic models and handle thinking/refusal responses
2026-10-26 16:57:18 +01:00