Gmer4Lfe
eda411c0be
Give the PHP layer somewhere to record what it swallowed
2026-08-24 18:51:36 -04:00
Gmer4Lfe
492757ce70
Walk appdata once for the space check, and refuse to export when it cannot be measured
2026-08-24 18:46:26 -04:00
Gmer4Lfe
b58282b3d6
Read a filesystem once where two probes were answering the same question
2026-08-24 18:46:26 -04:00
Gmer4Lfe
9da2760a42
A localStorage guard was covering the layout restore it wrapped
2026-08-24 18:42:34 -04:00
Gmer4Lfe
049f633667
Bound the watchdogs' docker calls — a hung daemon is what they exist to catch
2026-08-24 18:39:59 -04:00
Gmer4Lfe
84946ed0c6
clear_logs previewed on one size basis and cleared on another
2026-08-24 18:36:29 -04:00
Gmer4Lfe
514e13660c
Give the bash side the disk helpers it never had, reporting the same unit as vv_df
2026-08-24 18:36:29 -04:00
Gmer4Lfe
9333334b7b
Bound the two tailscale lookups that were missed when the others were
2026-08-24 18:33:40 -04:00
Gmer4Lfe
367d0203b8
Find guards wired onto a helper that can never return non-zero
2026-08-24 18:22:59 -04:00
Gmer4Lfe
37017882c7
Check the header standard now that it is written down rather than implied
2026-08-24 18:22:59 -04:00
Gmer4Lfe
f116a1584e
Offboard reported a stack cleanup that could not fail and, on one path, had not run
2026-08-24 18:22:59 -04:00
Gmer4Lfe
1a5bacce87
Point the webhook's dependency note at where the handler actually lives
2026-08-24 18:22:59 -04:00
Gmer4Lfe
f6e5f7dcd6
Drop the remote-metrics endpoint nothing called and api/monitor.php already served
2026-08-24 18:22:59 -04:00
Gmer4Lfe
0f0c407458
Arrange and folder saves reported failure on every success, and split a move across two writes
2026-08-24 18:22:59 -04:00
Gmer4Lfe
354992c9e7
Keep a script's arguments and trailing comment when it moves between orchestrators
2026-08-24 18:22:59 -04:00
Gmer4Lfe
28987240aa
Let a sync window take a whole share in one click
...
The window editor is path-first, which is exact but slow for the case that is nearly all of them.
The chips only offer whole shares; a subpath already in the window marks its share partial rather
than offering to widen it, and the path box stays the only way to express a subpath or a profile.
2026-08-23 17:16:24 -04:00
Gmer4Lfe
fbf2b92167
Drop containers that no longer exist from the conf lists, after three days absent
...
A removed container leaves its name behind in every list that named it, and those names go on
being acted upon — a watchdog waiting for a container docker has never heard of. Strikes rather
than a single miss, because a rebuild makes a container vanish for a moment; and the lists naming
containers on the REMOTE are excluded, since pruning those against local docker would empty them.
2026-08-23 16:54:53 -04:00
Gmer4Lfe
206a119a4b
Show each container's fallback tier on the Monitor board
...
The row's left border carries it rather than the status dot, which already means running or
stopped.
2026-08-23 16:38:58 -04:00
Gmer4Lfe
671e7ea5a4
Make fallback coverage something that can actually happen, and say so on the page
...
fallback.sh starts covered containers with docker start and never creates them, so a coverage list
the partner has never been sent is a promise nothing can keep — all twelve were missing. Adds the
push and remove paths, a readiness card that checks rather than infers, and the fallback state the
assistant needs to answer for it.
2026-08-23 16:38:58 -04:00
Gmer4Lfe
d5cf3db2ec
Close every orchestrator the same way, and make skipped work a visible outcome
...
A gated-off section left nothing failed, so the weekly could run for hours and report "all
complete" beside "0 shares synced"; skipped is now derived from what was expected rather than
self-reported, and the verdict degrades to PARTIAL instead of flattering.
2026-08-23 16:38:58 -04:00
Gmer4Lfe
dc8823724d
Let the GPU transform actually run when deploying to a partner
...
The detection pattern starts with --, so grep parsed it as an option and exited 2; the negation
made the early return always true and every XML was deployed untransformed, keeping the owner's
NVIDIA device UUID on hosts that have no such card.
2026-08-23 16:38:58 -04:00
Gmer4Lfe
a392108562
Warn before a transfer when a disk backing the remote share is nearly full
...
Online is not writable: check_remote_disks confirmed each backing disk was mounted and healthy but
never how full it was, and rsync answers a full destination by stalling rather than failing.
2026-08-23 10:15:54 -04:00
Gmer4Lfe
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
2026-08-23 00:44:30 -04:00
Gmer4Lfe
bd13bdc6e1
Revert the Monitor column ladder for now; the layout work is paused, not abandoned
2026-08-22 23:53:27 -04:00
Gmer4Lfe
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
2026-08-22 23:50:13 -04:00
Gmer4Lfe
c5c0477653
Derive Monitor's column count from what the cards actually need, so no width forces a sideways scroll
2026-08-22 23:45:02 -04:00
Gmer4Lfe
76faf0f9f8
Let an installation add its own tabs without the repo having to name them
2026-08-22 16:37:37 -04:00
Gmer4Lfe
879109e55d
Drain the orphan backlog safest-first instead of aborting, so a run over budget still makes progress
2026-08-22 16:37:31 -04:00
Gmer4Lfe
61b7d2a96a
Partnership stacks are the owner's declaration, so a mirror must read them from the owner's conf
2026-08-22 14:03:57 -04:00
Gmer4Lfe
15d802ae3d
Preview mode that survives a reboot, and a fallback log that survives one too
2026-08-22 13:52:34 -04:00
Gmer4Lfe
ac17be2cd9
Say fallback, not failover — the synonym was silently matching nothing in three renderers, plus retrying probes and a 2-minute handback window
2026-08-22 13:43:30 -04:00
Gmer4Lfe
f1ba418aa8
A dry run walked the failover branches and reached notify(), which had no dry-run gate
2026-08-22 09:53:53 -04:00
Gmer4Lfe
b17cc3a09d
Say on each node card whose containers the tiers are, since they are the other host's
2026-08-22 09:49:43 -04:00
Gmer4Lfe
1c38abe1d0
Fallback coverage: colour the wait, group by tier, and lock the stacks the partner already runs
2026-08-22 09:33:06 -04:00
Gmer4Lfe
5d42a28d34
Each assistant card remembers its own conversation instead of every card resuming the newest one
2026-08-22 08:46:35 -04:00
Gmer4Lfe
e5f4ede3f2
Coverage and settings above the chat, tier delays and the probe target alongside them, coverage in three columns
2026-08-22 01:43:07 -04:00
Gmer4Lfe
ce613bcf9d
Rehome the failover coverage picker on the Fallback tab, five days after it was dropped from Partnership for belonging here
2026-08-22 01:32:08 -04:00
Gmer4Lfe
8ce8f0dfbe
The Monitor fallback card described a state file without saying whether anything still writes it
2026-08-22 01:11:00 -04:00
Gmer4Lfe
13c221244e
A partner's conf is in the RAM cache, not CONF_DIR, and a commented-out template entry is not configuration
2026-08-22 01:06:24 -04:00
Gmer4Lfe
a89b704fa1
Watchdog and Monitor looked the partner up by exact key, and the remote probe passed a quote to cut as a filename
2026-08-22 00:59:24 -04:00
Gmer4Lfe
0f228020ef
State-file age is time since the last transition, not staleness, and a preview's state is the one being decided
2026-08-22 00:52:38 -04:00
Gmer4Lfe
8454d3d0a2
A dry run does not refresh live state, so say that rather than showing its age as stale
2026-08-22 00:48:16 -04:00
Gmer4Lfe
da15cc7531
Rebuild the Fallback tab around what the daemon is actually doing, not what its last state file said
2026-08-22 00:44:35 -04:00
Gmer4Lfe
5924aae1c0
Fallback read the peer list by exact key, so a partner whose tailnet name differs by one character rendered as UNREACHABLE
2026-08-22 00:34:33 -04:00
Gmer4Lfe
46239012b4
The dry-run cleanup trap replaced the lock-release trap and orphaned fallback.lock
2026-08-22 00:24:06 -04:00
Gmer4Lfe
f8119f3786
Give the test harness a stop that cannot strand its iptables rule, and clean up the dry-run state copy
2026-08-22 00:20:40 -04:00
Gmer4Lfe
41c0598220
A fallback dry run wrote real reboot-surviving state, and a failed tier writeback reported itself as a dry run
2026-08-22 00:00:56 -04:00
Gmer4Lfe
387382ec9f
Media Stack called every node local, and a host whose watchdogs never ran reported all clear
2026-08-21 22:50:09 -04:00
Gmer4Lfe
20998c8c31
The Streams scope was reset to this host on every page load, on a dashboard that is never reloaded by choice
2026-08-21 21:58:24 -04:00
Gmer4Lfe
f5d6edd9d0
The mirrored folder layout never reached the container card, which reads Varaverk's own store and not folder.view3's
2026-08-21 21:50:22 -04:00