Chuck and Claude Opus 5
4f24e2aa42
feat(web): show available memory in Tools diagnostics
...
System Diagnostics reported memory as used-percent plus used/total GB.
Neither distinguishes a healthy board from one about to fail, because
page cache counts as used and is reclaimable on demand -- a Pi can read
70% used and be fine, or read the same and be minutes from trouble.
MemAvailable is the kernel's own estimate of what a new allocation can
actually obtain, and it is the number that tracked the failure on a 1GB
Pi 3B+: healthy running sat above 500MB, and the crash came at 73MB. By
that point fork() was failing, so sshd could not spawn a session and
systemd could not respawn the display, while the kernel carried on
answering pings at 0% loss. Used-percent gave no warning at any point on
the way there; available memory fell steadily for hours.
/api/v3/system/status now returns memory_available_mb from
psutil.virtual_memory().available, and Tools renders it as its own tile,
coloured against the thresholds that failure implies: red under 150MB,
amber under 300MB, green above.
The existing memory tile is left alone -- used/total is still what you
want when sizing a workload; this answers the different question of how
much room is left right now.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-24 12:47:16 -04:00
..
2026-08-07 10:17:30 -04:00
2026-08-07 10:17:30 -04:00
2026-08-23 11:43:08 -04:00
2026-03-20 15:06:58 -04:00
2026-08-21 11:16:52 -04:00
2026-07-13 08:59:41 -04:00
2026-07-12 10:38:52 -04:00
2026-07-12 10:38:52 -04:00
2026-05-24 09:38:15 -04:00
2026-08-07 16:17:11 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-08-23 11:44:23 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-07-14 08:08:51 -04:00
2026-05-24 09:38:15 -04:00
2026-08-07 13:02:59 -04:00
2026-08-11 16:10:56 -04:00
2026-08-07 16:17:11 -04:00
2026-08-12 08:42:56 -04:00
2026-08-19 12:28:22 -04:00
2026-08-12 08:40:07 -04:00
2026-08-11 14:14:25 -04:00
2026-08-19 17:40:52 -04:00
2026-08-07 10:17:30 -04:00
2026-08-07 16:17:11 -04:00
2026-07-14 08:49:43 -04:00
2026-08-21 14:30:29 -04:00
2026-08-07 16:17:11 -04:00
2026-08-06 14:04:23 -04:00
2026-05-15 10:19:55 -04:00
2026-05-15 10:19:55 -04:00
2026-08-04 13:46:28 -04:00
2026-05-24 09:38:15 -04:00
2026-08-07 10:17:30 -04:00
2026-06-01 11:58:21 -04:00
2026-08-23 11:43:39 -04:00
2026-08-07 16:17:11 -04:00
2026-08-07 10:17:30 -04:00
2026-08-07 16:17:11 -04:00
2026-07-13 10:31:20 -04:00
2026-08-07 16:17:11 -04:00
2026-08-12 09:40:48 -04:00
2026-08-06 14:04:23 -04:00
2026-08-07 16:17:11 -04:00
2026-08-02 12:01:56 -04:00
2026-08-07 13:27:20 -04:00
2026-05-15 10:19:55 -04:00
2026-05-15 10:19:55 -04:00
2026-08-07 10:17:30 -04:00
2026-05-24 09:38:15 -04:00
2026-08-21 14:30:29 -04:00
2026-08-10 08:17:57 -04:00
2026-07-12 10:38:52 -04:00
2026-05-24 09:38:15 -04:00
2026-08-21 15:50:55 -04:00
2026-08-12 14:58:05 -04:00
2026-08-12 14:58:05 -04:00
2026-08-23 11:42:51 -04:00
2026-08-03 16:52:42 -04:00
2026-08-21 15:50:55 -04:00
2026-07-12 10:38:52 -04:00
2026-08-23 11:44:00 -04:00
2026-05-24 09:38:15 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 15:50:55 -04:00
2026-08-11 16:10:56 -04:00
2026-08-19 12:49:46 -04:00
2026-07-11 08:55:50 -04:00
2026-08-17 15:35:02 -04:00
2026-08-04 13:46:05 -04:00
2026-08-21 16:19:33 -04:00
2026-08-19 12:28:22 -04:00
2026-07-11 08:55:50 -04:00
2026-05-15 10:19:55 -04:00
2026-08-23 11:43:39 -04:00
2026-07-09 07:54:18 -04:00
2026-08-02 10:40:12 -04:00
2026-08-05 19:38:11 -04:00
2026-08-07 13:02:59 -04:00
2026-08-21 15:50:55 -04:00
2026-08-07 16:17:11 -04:00
2026-08-21 16:22:48 -04:00
2026-08-07 10:17:30 -04:00
2026-05-15 10:19:55 -04:00
2026-07-31 09:40:38 -04:00
2026-05-24 09:38:15 -04:00
2026-08-07 16:17:11 -04:00
2026-08-07 10:17:30 -04:00
2026-07-13 09:28:30 -04:00
2026-08-02 12:39:33 -04:00
2026-08-07 16:17:11 -04:00
2026-08-02 12:39:33 -04:00
2026-08-02 12:39:33 -04:00
2026-08-21 16:24:15 -04:00
2026-08-02 12:39:33 -04:00
2026-08-07 16:17:11 -04:00
2026-06-11 18:18:28 -04:00
2026-07-13 09:32:37 -04:00
2026-08-21 14:29:45 -04:00
2026-08-21 14:28:23 -04:00
2026-08-21 11:16:52 -04:00
2026-08-24 12:47:16 -04:00
2026-08-21 14:29:45 -04:00
2026-08-21 14:29:45 -04:00
2026-08-06 14:04:23 -04:00
2026-07-14 08:33:08 -04:00
2026-05-15 10:19:55 -04:00
2026-04-08 12:33:54 -04:00
2026-08-17 13:28:40 -04:00
2026-08-21 14:30:29 -04:00
2026-08-21 14:30:29 -04:00
2026-05-24 09:38:15 -04:00
2026-05-24 09:38:15 -04:00
2026-07-31 09:40:38 -04:00
2026-08-10 09:41:25 -04:00
2026-08-23 11:42:33 -04:00
2026-08-12 14:06:32 -04:00
2026-07-31 09:40:38 -04:00
2026-08-13 17:02:36 -04:00
2026-08-21 15:50:55 -04:00
2026-07-08 09:43:13 -04:00
2026-07-12 10:40:34 -04:00
2026-08-07 10:17:30 -04:00
2026-08-03 15:21:47 -04:00
2026-08-07 10:17:30 -04:00
2026-08-11 13:56:16 -04:00
2026-07-09 09:22:24 -04:00
2026-07-16 20:32:07 -04:00
2026-07-16 20:32:07 -04:00
2026-08-06 14:04:23 -04:00
2026-07-14 11:22:37 -04:00
2026-05-03 08:25:20 -04:00