Commit Graph

1924 Commits

Author SHA1 Message Date
MacRimi
357b2e8ac0 update 1.2.2.2 beta 2026-07-02 20:07:05 +02:00
github-actions[bot]
efa84b0fa1 Update AppImage beta build (2026-07-02 16:24:06) 2026-07-02 16:24:06 +00:00
MacRimi
bc3c771137 update 1.2.2.2 beta 2026-07-02 18:12:13 +02:00
github-actions[bot]
f0e79e93b6 Update AppImage beta build (2026-07-01 18:57:10) 2026-07-01 18:57:10 +00:00
MacRimi
f2b0b1b039 Update notification_templates.py 2026-07-01 20:54:52 +02:00
github-actions[bot]
8235549e4f Update AppImage beta build (2026-07-01 18:19:00) 2026-07-01 18:19:00 +00:00
MacRimi
6b173c42b6 Update 1.2.2.2 beta 2026-07-01 20:13:59 +02:00
github-actions[bot]
d522b9a337 Update AppImage beta build (2026-06-30 16:05:14) 2026-06-30 16:05:14 +00:00
MacRimi
33a8f4baa5 update 1.2.2.2 beta 2026-06-30 17:58:32 +02:00
MacRimi
b2753be204 update 1.2.2.2 beta 2026-06-28 15:17:30 +02:00
MacRimi
51b9285980 update 1.2.2.2 beta 2026-06-28 13:06:40 +02:00
MacRimi
ecfdcf1bac update 1.2.2.2 beta 2026-06-26 11:11:39 +02:00
MacRimi
63b9d69f3f update 1.2.2.2 beta 2026-06-26 10:25:06 +02:00
MacRimi
a56afecccf update 1.2.2.2 beta 2026-06-25 17:29:55 +02:00
MacRimi
484f0ce897 update 1.2.2.2 beta 2026-06-25 17:07:58 +02:00
MacRimi
cdb4522e5f update 1.2.2.2 beta 2026-06-25 00:26:03 +02:00
MacRimi
4f2494e135 Update 1.2.2.2 beta 2026-06-25 00:00:12 +02:00
MacRimi
202068124b update 1.2.2.2 beta 2026-06-24 23:40:22 +02:00
MacRimi
87a29f324b Update 1.2.2.2 beta 2026-06-24 21:58:21 +02:00
MacRimi
61b9fd12bb update 1.2.2.2 beta 2026-06-24 18:23:16 +02:00
MacRimi
cd2a075fab update 1.2.2.2 beta 2026-06-24 16:02:35 +02:00
MacRimi
93553574b3 Update 1.2.2.2 beta 2026-06-23 11:19:04 +02:00
MacRimi
6ab9d4ca27 Update 1.2.2.2 beta 2026-06-22 18:52:26 +02:00
MacRimi
68c8c03642 update 1.2.2.2 pre-beta 2026-06-22 11:38:06 +02:00
MacRimi
c4cab77319 update 1.2.2.2 beta 2026-06-22 01:16:49 +02:00
MacRimi
9d099ba358 Update 1.2.2.2 beta 2026-06-22 00:55:34 +02:00
MacRimi
e5669dd982 update 1.2.2.2 beta 2026-06-22 00:26:31 +02:00
MacRimi
d807c9f085 Update flask_server.py 2026-06-22 00:14:46 +02:00
MacRimi
a9661a71ff update 1.2.2.2 beta 2026-06-21 23:49:41 +02:00
MacRimi
09a67bf4e6 update 1.2.2.2 beta 2026-06-21 22:41:54 +02:00
MacRimi
8e92df5bd7 update 1.2.2.2 beta 2026-06-21 00:35:22 +02:00
MacRimi
57e936785d update 1.2.2.2 beta 2026-06-20 21:59:19 +02:00
MacRimi
3fd7f4b2a4 Update 1.2.2.2 beta 2026-06-19 23:38:57 +02:00
MacRimi
c4447eae5e update 1.2.2.2 beta 2026-06-13 19:05:00 +02:00
MacRimi
7ea9f10d6f Update 1.2.2.2 beta 2026-06-13 18:52:28 +02:00
MacRimi
ed924b67fe update 1.2.2.2 beta 2026-06-11 23:08:56 +02:00
MacRimi
4dc8be7387 Add beta 1.2.2.2 2026-06-10 19:05:13 +02:00
MacRimi
61ff665cec update beta 1.2.2.2 2026-06-09 00:13:24 +02:00
MacRimi
6844406cf7 Update 1.2.2.1 2026-06-07 11:31:50 +02:00
MacRimi
61ff98e830 Update beta 1.2.2.1 2026-06-06 18:30:11 +02:00
MacRimi
66419777d8 Update beta 1.2.2.1 2026-06-06 11:37:54 +02:00
MacRimi
d401e5f7de Add new beta 1.2.2.1 2026-06-05 19:45:46 +02:00
MacRimi
3191f5250d Update 1.2.2.1 beta 2026-06-05 19:22:07 +02:00
MacRimi
3629fe8848 Add beta 1.2.2.1 2026-06-05 17:12:23 +02:00
MacRimi
e855fca0b3 new beta 1.2.2.1 2026-06-03 18:04:58 +02:00
github-actions[bot]
3103b87249 Update AppImage release build (2026-06-02 16:52:21) 2026-06-02 16:52:21 +00:00
MacRimi
5a116e77b9 Discord channel: split oversized digests across embeds (#220)
A mass-backup webhook that exceeded ~2 KB used to be silently
truncated by `desc = message[:MAX_EMBED_DESC]` with MAX_EMBED_DESC
set to 2048 — half of Discord's real description limit and far
below what a multi-VM backup digest produces. The trailing jobs
just vanished from the channel.

Bring the channel up to Discord's actual webhook contract:

* description limit raised to the real 4096-char cap
* if the body still doesn't fit, split it on line boundaries into
  one embed per chunk so every backup entry is preserved
* keep title + fields on the first embed only; attach the footer
  and timestamp to the last embed so the rendered card has the
  normal head/tail framing even when split across many embeds
* enforce Discord's 6000-char-per-embed cap (title + description +
  every field name+value) — only kicks in when many large fields
  combine with a chunk already near the description ceiling
* batch up to 10 embeds per webhook POST (Discord's per-message
  limit) and POST additional messages sequentially with a 0.4 s
  gap so a >10-embed digest doesn't trip the 5/2 s webhook rate
  limit

Verified with synthetic mass-backup payloads:
* 14 KB / 200 jobs → 4 embeds, 1 POST
* 60 KB / 60 lines → 15 embeds, 2 POSTs (10 + 5)

New AppImage SHA-256:
  16ad59ea63a64e5be460cd73f87315e8b39b756bf1c61f3cb2019e9fa3e76361

Closes #220.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 17:30:59 +02:00
MacRimi
17cae5d3a4 Refresh AppImage binary + sha256 after NVMe-obs-count fix
New build picks up the get_disks_observation_counts NVMe-rename fix.

SHA-256:
  3b44eb1172b4b1b7e6a36d1c9f1cd5a237ec04d52543bb791358525b0653a402

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 23:52:39 +02:00
MacRimi
642bd8ecae health_persistence: stop leaking obs counts across NVMe device renames
`get_disks_observation_counts` maps each serial's count to that
serial's "most recent" device_name (so renames like ata8 -> sdh keep
the badge attached). When several physical disks have passed through
the same kernel name across reboots — common with NVMe, the kernel
probes in a different order depending on which slots are populated —
disk_registry keeps a row per (device_name, serial) seen and the
"most recent" device_name for a serial can now be in use by an
entirely different disk.

Concrete case from the wild: serial 211716800490 was nvme0n1 during
the previous boot and earned a real I/O observation. After removing
four of five NVMes, the surviving disk (serial 243332800236) booted
into nvme0n1. The badge layer mirrored 211716800490's count onto
nvme0n1 — which is now a different physical disk — and showed
"1 obs." on the wrong drive, while the modal (which scopes by the
current (device_name, serial) registry row) found nothing and
rendered an empty history.

Only mirror a serial's count onto its device_name when that
device_name is currently owned by the same serial, determined from
the freshest disk_registry row. The serial-keyed entry stays
unconditional so observations remain reachable when the disk is
re-plugged under another device name.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 23:52:11 +02:00
MacRimi
92385f44b0 Drop stale ProxMenux-1.2.0.AppImage binary
The v1.2.0 binary lingered in the repo after later releases. Remove
it so AppImage/ holds only the current shipping artefact.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 23:22:13 +02:00