5fa7750046
Sonarr and Lidarr had the same deadlock and the same missing confirmation as Radarr, so give them the same budget and strikes
main
Gmer4Lfe2026-08-26 21:20:05 -04:00
1838eed855
Give AI_ASSIST_CLEANUP the consumer it has never had: it describes the shape of a classification and decides nothing, so switching it off changes no deletion
Gmer4Lfe2026-08-26 18:03:17 -04:00
96d8a5e3f0
Make a file earn its deletion over consecutive runs, so a partial classification failure too small to trip the tracked-count gate cannot remove anything
Gmer4Lfe2026-08-26 17:58:42 -04:00
0431e720de
A cap that aborts cannot drain a backlog bigger than itself, so make it a per-run budget and let the queue clear over consecutive nights
Gmer4Lfe2026-08-26 17:55:21 -04:00
7f4921de49
Give the wizard an assistant scoped to the step you are actually stuck on, so a first-run question can say "this" and mean something
Gmer4Lfe2026-08-26 17:31:52 -04:00
d4c19baa32
Folding the Scheduler dock into the shared chat left its scope behind, so the troubleshooter has been diagnosing without the log tail for whatever was open
Gmer4Lfe2026-08-26 17:25:28 -04:00
d444fd8036
A path with an apostrophe broke the remote shell quoting and a big file outran the connect timeout, so intact backups were reported corrupt and absent
Gmer4Lfe2026-08-25 21:30:57 -04:00
d42b1e2dda
ffprobe exit 0 with a chapter-track warning is not corruption; guard the delete path against a detector that is wrong at scale
Gmer4Lfe2026-08-25 18:29:43 -04:00
9492dc4c39
dig names the resolver it could not reach in its error text, so a DNS timeout was scraped as the answer and restarted DDNS over nothing
Gmer4Lfe2026-08-25 18:29:43 -04:00
172beca3c5
A state key is a file path, not a regex — a release tag like [Bluray-1080p] holds an invalid range, so grep bailed and the tempfile swap wiped every other entry
Gmer4Lfe2026-08-25 18:29:43 -04:00
f0c1289519
Let the file own why the row cap is conditional; the README states that it is
Gmer4Lfe2026-08-25 17:21:20 -04:00
128172d3a8
The row counts below four columns were the naive division, not what the board does
Gmer4Lfe2026-08-25 17:21:20 -04:00
820e8325a6
Docs: the row-height cap is conditional now, and the board's narrow-screen behaviour was nowhere in the page help
Gmer4Lfe2026-08-25 17:15:20 -04:00
74c6a0f5eb
Monitor: hold the System card to the Network card's height below eight columns, where the two stop sharing a row
Gmer4Lfe2026-08-25 17:07:18 -04:00
d289a9101c
Monitor: cap the System card's Varaverk block so the host figures set the card's height, not the sum of both
Gmer4Lfe2026-08-25 17:01:52 -04:00
9553ecb16a
The two functions the row-overflow hatch added were not in EXPORTS
Gmer4Lfe2026-08-25 17:01:10 -04:00
fb104bf05a
Monitor: a rung taller than one screen sizes rows to content, since the page scrolls there anyway and the cap only clipped cards
Gmer4Lfe2026-08-25 16:54:19 -04:00
f4adc31215
Close the last four headers, and say what the destructive tools refuse to do
Gmer4Lfe2026-08-25 16:51:14 -04:00
c6254f2342
The dev checkers documented themselves under headings nothing else uses
Gmer4Lfe2026-08-25 16:45:39 -04:00
d25b147a56
A CLI tool has runtime modes, not a request
Gmer4Lfe2026-08-25 16:42:39 -04:00
1f9915f074
Fill the single missing section in three scripts that had everything else
Gmer4Lfe2026-08-25 16:41:06 -04:00
c0e7a97a56
Document what the cert and auth sweeps will not do
Gmer4Lfe2026-08-25 16:39:01 -04:00
68c835f33b
Document what the proxy and cert collectors guarantee
Gmer4Lfe2026-08-25 16:37:25 -04:00
6b9fda76db
Say how the spawned tools are actually invoked
Gmer4Lfe2026-08-25 16:34:02 -04:00
1be259b66d
Two AI includes documented themselves under names nothing else uses
Gmer4Lfe2026-08-25 16:31:43 -04:00
2c3c88d067
Say what the include layer exports and what it reads from conf
Gmer4Lfe2026-08-25 16:29:57 -04:00
3fc14d16bf
A worker that is spawned has arguments, not runtime modes
Gmer4Lfe2026-08-25 16:25:55 -04:00
4cc50889d6
Document the api layer's operational models, and fix two headers that had gone stale against the code
Gmer4Lfe2026-08-25 16:25:55 -04:00
63e68740b6
Put the header sections back in the order the other 116 scripts use
Gmer4Lfe2026-08-25 16:19:19 -04:00
f2fddeb87d
The reboot path's container stops were unbounded, and stopped a different list than it restored
Gmer4Lfe2026-08-24 20:22:55 -04:00
eda411c0be
Give the PHP layer somewhere to record what it swallowed
Gmer4Lfe2026-08-24 18:51:36 -04:00
492757ce70
Walk appdata once for the space check, and refuse to export when it cannot be measured
Gmer4Lfe2026-08-24 18:46:26 -04:00
b58282b3d6
Read a filesystem once where two probes were answering the same question
Gmer4Lfe2026-08-24 18:46:26 -04:00
9da2760a42
A localStorage guard was covering the layout restore it wrapped
Gmer4Lfe2026-08-24 18:42:34 -04:00
049f633667
Bound the watchdogs' docker calls — a hung daemon is what they exist to catch
Gmer4Lfe2026-08-24 18:39:59 -04:00
84946ed0c6
clear_logs previewed on one size basis and cleared on another
Gmer4Lfe2026-08-24 18:36:29 -04:00
514e13660c
Give the bash side the disk helpers it never had, reporting the same unit as vv_df
Gmer4Lfe2026-08-24 18:36:29 -04:00
9333334b7b
Bound the two tailscale lookups that were missed when the others were
Gmer4Lfe2026-08-24 18:33:40 -04:00
367d0203b8
Find guards wired onto a helper that can never return non-zero
Gmer4Lfe2026-08-24 18:22:59 -04:00
37017882c7
Check the header standard now that it is written down rather than implied
Gmer4Lfe2026-08-24 18:22:59 -04:00
f116a1584e
Offboard reported a stack cleanup that could not fail and, on one path, had not run
Gmer4Lfe2026-08-24 18:22:59 -04:00
1a5bacce87
Point the webhook's dependency note at where the handler actually lives
Gmer4Lfe2026-08-24 18:22:59 -04:00
f6e5f7dcd6
Drop the remote-metrics endpoint nothing called and api/monitor.php already served
Gmer4Lfe2026-08-24 18:22:59 -04:00
0f0c407458
Arrange and folder saves reported failure on every success, and split a move across two writes
Gmer4Lfe2026-08-24 18:22:59 -04:00
354992c9e7
Keep a script's arguments and trailing comment when it moves between orchestrators
Gmer4Lfe2026-08-24 18:22:59 -04:00
28987240aa
Let a sync window take a whole share in one click
Gmer4Lfe2026-08-23 17:16:24 -04:00
fbf2b92167
Drop containers that no longer exist from the conf lists, after three days absent
Gmer4Lfe2026-08-23 16:54:53 -04:00
206a119a4b
Show each container's fallback tier on the Monitor board
Gmer4Lfe2026-08-23 16:38:58 -04:00
671e7ea5a4
Make fallback coverage something that can actually happen, and say so on the page
Gmer4Lfe2026-08-23 16:38:58 -04:00
d5cf3db2ec
Close every orchestrator the same way, and make skipped work a visible outcome
Gmer4Lfe2026-08-23 16:38:58 -04:00
dc8823724d
Let the GPU transform actually run when deploying to a partner
Gmer4Lfe2026-08-23 16:38:58 -04:00
a392108562
Warn before a transfer when a disk backing the remote share is nearly full
Gmer4Lfe2026-08-23 10:15:54 -04:00
fd1ab58598
Declare the Monitor board in one place, so a card's width and position stop living in eighteen inline styles and four media queries
Gmer4Lfe2026-08-23 00:44:30 -04:00
bd13bdc6e1
Revert the Monitor column ladder for now; the layout work is paused, not abandoned
Gmer4Lfe2026-08-22 23:53:27 -04:00
bdf1bce4be
Place the storage and array cards by span, not by column index, so they follow the grid instead of forcing it back to eight
Gmer4Lfe2026-08-22 23:50:13 -04:00
c5c0477653
Derive Monitor's column count from what the cards actually need, so no width forces a sideways scroll
Gmer4Lfe2026-08-22 23:45:02 -04:00
76faf0f9f8
Let an installation add its own tabs without the repo having to name them
Gmer4Lfe2026-08-22 16:37:37 -04:00
879109e55d
Drain the orphan backlog safest-first instead of aborting, so a run over budget still makes progress
Gmer4Lfe2026-08-22 16:37:31 -04:00
61b7d2a96a
Partnership stacks are the owner's declaration, so a mirror must read them from the owner's conf
Gmer4Lfe2026-08-22 14:03:57 -04:00
15d802ae3d
Preview mode that survives a reboot, and a fallback log that survives one too
Gmer4Lfe2026-08-22 13:52:34 -04:00
ac17be2cd9
Say fallback, not failover — the synonym was silently matching nothing in three renderers, plus retrying probes and a 2-minute handback window
Gmer4Lfe2026-08-22 13:43:30 -04:00
f1ba418aa8
A dry run walked the failover branches and reached notify(), which had no dry-run gate
Gmer4Lfe2026-08-22 09:53:53 -04:00
b17cc3a09d
Say on each node card whose containers the tiers are, since they are the other host's
Gmer4Lfe2026-08-22 09:49:43 -04:00
1c38abe1d0
Fallback coverage: colour the wait, group by tier, and lock the stacks the partner already runs
Gmer4Lfe2026-08-22 09:33:06 -04:00
5d42a28d34
Each assistant card remembers its own conversation instead of every card resuming the newest one
Gmer4Lfe2026-08-22 08:46:35 -04:00
e5f4ede3f2
Coverage and settings above the chat, tier delays and the probe target alongside them, coverage in three columns
Gmer4Lfe2026-08-22 01:43:07 -04:00
ce613bcf9d
Rehome the failover coverage picker on the Fallback tab, five days after it was dropped from Partnership for belonging here
Gmer4Lfe2026-08-22 01:32:08 -04:00
8ce8f0dfbe
The Monitor fallback card described a state file without saying whether anything still writes it
Gmer4Lfe2026-08-22 01:11:00 -04:00
13c221244e
A partner's conf is in the RAM cache, not CONF_DIR, and a commented-out template entry is not configuration
Gmer4Lfe2026-08-22 01:06:24 -04:00
a89b704fa1
Watchdog and Monitor looked the partner up by exact key, and the remote probe passed a quote to cut as a filename
Gmer4Lfe2026-08-22 00:59:24 -04:00
0f228020ef
State-file age is time since the last transition, not staleness, and a preview's state is the one being decided
Gmer4Lfe2026-08-22 00:52:38 -04:00
8454d3d0a2
A dry run does not refresh live state, so say that rather than showing its age as stale
Gmer4Lfe2026-08-22 00:48:16 -04:00
da15cc7531
Rebuild the Fallback tab around what the daemon is actually doing, not what its last state file said
Gmer4Lfe2026-08-22 00:44:35 -04:00
5924aae1c0
Fallback read the peer list by exact key, so a partner whose tailnet name differs by one character rendered as UNREACHABLE
Gmer4Lfe2026-08-22 00:34:33 -04:00
46239012b4
The dry-run cleanup trap replaced the lock-release trap and orphaned fallback.lock
Gmer4Lfe2026-08-22 00:24:06 -04:00
f8119f3786
Give the test harness a stop that cannot strand its iptables rule, and clean up the dry-run state copy
Gmer4Lfe2026-08-22 00:20:40 -04:00
41c0598220
A fallback dry run wrote real reboot-surviving state, and a failed tier writeback reported itself as a dry run
Gmer4Lfe2026-08-22 00:00:56 -04:00
387382ec9f
Media Stack called every node local, and a host whose watchdogs never ran reported all clear
Gmer4Lfe2026-08-21 22:50:09 -04:00
20998c8c31
The Streams scope was reset to this host on every page load, on a dashboard that is never reloaded by choice
Gmer4Lfe2026-08-21 21:58:24 -04:00
f5d6edd9d0
The mirrored folder layout never reached the container card, which reads Varaverk's own store and not folder.view3's
Gmer4Lfe2026-08-21 21:50:22 -04:00
4808a57289
Monitor's partner card read phase flags that only ever describe the mirror, so the owner rendered as not provisioned on the mirror
Gmer4Lfe2026-08-21 21:43:00 -04:00
96b907acbc
Say what Varaverk itself is using on the System card
Gmer4Lfe2026-08-21 09:39:52 -04:00
d9c37ac763
Add a checker for the two JS faults this plugin has actually shipped
Gmer4Lfe2026-08-21 09:32:04 -04:00
146be2d0ad
Report every failed fetch instead of discarding it
Gmer4Lfe2026-08-21 09:23:51 -04:00
906375dc23
Share the font map with the function that renders it
Gmer4Lfe2026-08-21 09:05:21 -04:00
e1cdf03d40
Say why mesh chat failed instead of retrying a minute later
Gmer4Lfe2026-08-21 09:00:19 -04:00
8041da5424
Stop starting Unraid's Node CLI on every Partnership render
Gmer4Lfe2026-08-21 08:53:29 -04:00
7c4f881b57
Render an answer in full instead of folding it behind a control
Gmer4Lfe2026-08-21 08:44:08 -04:00
81abc5adee
Add a mesh scope to the Streams card
Gmer4Lfe2026-08-21 08:38:37 -04:00
331b7b6b13
Resolve a peer from tailscale status before falling back to DNS
Gmer4Lfe2026-08-21 08:38:37 -04:00
fe23c59e0c
Stop the process-list pipeline writing broken-pipe noise to stderr
Gmer4Lfe2026-08-21 08:26:28 -04:00
666e1ebab2
Silence the sampler pipeline's broken-pipe chatter
Gmer4Lfe2026-08-21 08:24:55 -04:00
3d05276312
Reach the integrated-graphics check on a box with no nvidia-smi
Gmer4Lfe2026-08-21 08:24:20 -04:00
00fdee5649
Detect Intel integrated graphics, which nvidia-smi cannot see
Gmer4Lfe2026-08-21 08:23:14 -04:00
4a29e7bc99
Read the CPU temperature instead of the alarm threshold beside it
Gmer4Lfe2026-08-21 08:17:36 -04:00
a07019e3aa
Fix the parity card referencing a variable the previous commit removed
Gmer4Lfe2026-08-21 08:11:19 -04:00
aa16fbaa8b
Stop calling an empty parity slot an emulated disk
Gmer4Lfe2026-08-21 08:07:38 -04:00
9c15df8e22
Report the owner's model and index on a mirror's Monitor card
Gmer4Lfe2026-08-21 07:59:50 -04:00
111c70d6b4
Bill a turn to the node that asked, not the node that generated
Gmer4Lfe2026-08-20 20:04:08 -04:00
0621f66889
Share one AI across the mesh instead of confining it to the owner
Gmer4Lfe2026-08-20 19:53:28 -04:00