Commit Graph
556 Commits
Author SHA1 Message Date
Gmer4Lfe 25e055a7ac Merge the partnership settings into one section, arrays and scalars together
They were two sections drawing the same endpoint, split on whether a value happened to be a list — with two Save buttons for one subject.
2026-08-17 16:11:52 -04:00
Gmer4Lfe e024a29157 Conversation list: a collapsible section per AI profile, then a Last N banner over the recents
Profile order comes from the registry so sections keep their places as threads move, and the recents are capped to the same N rather than repeating everything above them.
2026-08-17 16:06:28 -04:00
Gmer4Lfe 83f3b7e226 Monitor conversation list: collapsible section for the card's own profile above the full list
A flat list buries 'where was I in General Chat' under whatever the tabs have been doing, since the busiest profile takes the top regardless of which card you are looking at.
2026-08-17 15:45:14 -04:00
Gmer4Lfe d3d6f30f72 Load Last checkbox in the chat header, remembered per placement
Defaults on and is read before the resume fetch — an unchecked box has to prevent the load, not undo it once the thread is already on screen.
2026-08-17 15:43:50 -04:00
Gmer4Lfe 99c94ffaec Drop Mirror Sync from the Partnership page — rsync gates have one home, on the Rsync page 2026-08-17 15:41:48 -04:00
Gmer4Lfe 1a836dac75 Drop the failover and shared-services pickers from the Partnership page
They describe what the partner runs during an outage, which is the Fallback tab's subject, not this page's.
2026-08-17 15:30:52 -04:00
Gmer4Lfe 0447fa6f86 Remove point-in-time HOST2 status from the codebase
Comments asserting a partner is down, being rebuilt or not yet installed are true on the day they are written and wrong afterwards, and nothing prompts anyone to revisit them. Behaviour is described generically; current state belongs in operator memory, not in tracked files.
2026-08-17 15:20:25 -04:00
Gmer4Lfe e8ee5b052b Failover Coverage and Shared Services pickers on the Partnership page
Coverage edits FALLBACK_<me>_TIER1-4 directly — the array fallback.sh reads during an outage — rather than a parallel list that could drift from it.
2026-08-17 15:10:32 -04:00
Gmer4Lfe d7980da35e vv_docker_containers lives in common.php, not docker.php 2026-08-17 15:09:15 -04:00
Gmer4Lfe 239e100b44 Partnership page: Varaverk assistant profile, row-2 Actions, and the two container list cards 2026-08-17 15:08:43 -04:00
Gmer4Lfe 2216072669 Drop the Host Settings card now the partnership settings card covers HOST1/HOST2
It existed to render two fields that live in master.conf's HOST IDENTITIES group, which the shared renderer now includes — one settings surface for the page rather than two both editing the same file.
2026-08-17 14:52:21 -04:00
Gmer4Lfe 8cf3ff31db Show the partner's API key and whether it is answering on the remote card 2026-08-17 14:46:19 -04:00
Gmer4Lfe b108a6fe62 Report the partner's API key and whether it is actually answering 2026-08-17 14:45:38 -04:00
Gmer4Lfe f58ff68ab3 Mesh partnership leg reads this host's own state file, not one named after the remote 2026-08-17 14:43:03 -04:00
Gmer4Lfe e7e9d9fecf Green mesh banner on each remote card, naming the failing leg when it is not green 2026-08-17 14:42:15 -04:00
Gmer4Lfe d417bd5360 Match the tailnet device name to the conf hostname by unambiguous prefix
master.conf says unRAID-Jayred36 and the tailnet device is unraid-jayred365, so the exact-key lookup found nothing and every remote card rendered with no IP, no online state and no containers.
2026-08-17 14:41:35 -04:00
Gmer4Lfe 90f3b0b7da Put the assistant on the Partnership tab
A partnership question gets asked while looking at this page; sending someone to another tab to ask it loses the context they are looking at.
2026-08-17 14:38:04 -04:00
Gmer4Lfe bce3bf61e9 Partnership page: one settings card instead of three, and a Data Transferred card
Windows with runs but no bytes say 'no data moved' rather than 0.00 GB, and rows before the byte-parser fix are excluded rather than summed into a false total.
2026-08-17 14:36:21 -04:00
Gmer4Lfe e3ed5a53f2 Reproduce the owner's docker folder layout on the mirror instead of one lump fallback folder
Step 12 filed all thirteen deployed containers under <Owner>-Fallback, which says whose they are and nothing about what they do — and they are not failover coverage, they run there continuously.
2026-08-17 14:08:35 -04:00
Gmer4Lfe 1231cd69a8 A host with the VM service off is not a host with a broken API key
The API answered and simply had no vms node, but that was recorded as an API fallback, and the monitor reads any fallback with a key present as 'Unraid API unreachable — check API key in host conf.'
2026-08-17 13:47:19 -04:00
Gmer4Lfe 8e85a67e7b One faint Skip in the corner; the completion card owns the real exits
The wizard had a Skip beside Create API Key and a second link that renamed itself Go to Scheduler/Partnership, so leaving early and finishing looked like the same action.
2026-08-17 13:45:28 -04:00
Gmer4Lfe 1badb93331 Make the onboard-in-progress state survive a page reload
It was a browser flag set on click, and refreshing is the first thing anyone does when a page looks stuck — which put them back on the phase-1 panel the state exists to replace.
2026-08-17 13:06:45 -04:00
Gmer4Lfe e23358ea0c Tell the mirror that Phase 2 is running instead of leaving it on a greyed button
The mirror's own job ends in seconds while Phase 2 runs for minutes on the owner, so the screen sat unchanged on the phase-1 panel — which reads as a hang, and the reasonable response to a hang is to start clicking.
2026-08-17 12:25:16 -04:00
Gmer4Lfe 74e3b8b067 Resolve docker_network_connect.sh on the mirror, and give the wizard poll time to outlast Phase 2
Step 1b ran the owner's SCRIPTS_ROOT path over SSH on the mirror, so it failed on every appdata install; the wizard poll expired at 5 minutes against a Phase 2 that takes over 4.
2026-08-17 12:12:10 -04:00
Gmer4Lfe 9a1254048e Match the WebUI template by its XML Name element, and count the final sync on rsync's actual exit
The lookup grepped for a quoted container name that appears in no Unraid template, so every offboard reported four WebUIs it could not reconfigure. The final sync counted a share synced whenever Tier 1 was on, ignoring rsync.sh's status entirely.
2026-08-17 11:57:46 -04:00
Gmer4Lfe 7ae510ed28 Point the WebGUI symlink at the actual install, and report this host's identity rather than HOST1's
The .plg hardcoded the flash path and runs every boot, so an appdata node served a stale copy that never receives pulls — fixes appeared to do nothing, indefinitely.
2026-08-17 11:52:33 -04:00
Gmer4Lfe cd21fca749 Give the wizard an ending: big checkmark plus a way out, and refresh it when the onboard lands
With nothing blocking but optional keys unfilled the banner rendered an empty string, so a finished onboard showed a blank panel beside a Join button still greyed at Running.
2026-08-17 11:47:01 -04:00
Gmer4Lfe ead5d38d7c Hide the seed strip on the mirror — it describes a push the mirror cannot make 2026-08-17 11:42:32 -04:00
Gmer4Lfe c4bfa6bdfe Show the mirror it is onboarded, and stop offering it owner-side actions
The phase-2 branch of the mirror panel returned the same Join partnership / Onboard block as the not-started state, so a finished onboard read as one that never ran.
2026-08-17 11:42:10 -04:00
Gmer4Lfe d8a77c700b Stop counting a gated-off critical rsync as an unreachable partner, and report the counter in the unit it is stored in
The guard tested Tier 1 only, so onboard Step 1d's posture — Tier 1 open, every Tier 2 closed — made a healthy partner climb toward auto-offboard every 30 minutes. The counter holds intervals, not days, and was rendered raw.
2026-08-17 11:39:19 -04:00
Gmer4Lfe 5fc53948c6 Treat an ACTIVE partnership as phase 2 regardless of the flags
HOST<n>_PHASE*_DONE only ever describe the mirror, so on the mirror the owner's card computed phase 0 and offered to onboard the host that had just onboarded it.
2026-08-17 11:36:00 -04:00
Gmer4Lfe ff94ccb343 Make the setup-state push report whether it worked
It was documented 'Always returns 0', so the offboard's new 'Phase flags pushed' check was testing a constant and ticking regardless.
2026-08-17 10:57:56 -04:00
Gmer4Lfe 42711ff9ac Bring the seed docs in line with Phase 3 2026-08-17 10:24:41 -04:00
Gmer4Lfe 7c957d96be Make seeding Phase 3 — its own operator-triggered phase, not the tail of an onboard
Onboard now ends at Phase 2: connected, running, and saying so. Phase 3 sets the seeding gate posture and dispatches the seed. With MEDIA_SEED_ENABLED false there is no Phase 3 and the model is two phases.
2026-08-17 10:23:03 -04:00
Gmer4Lfe 1a47f864f9 Put the media seed behind MEDIA_SEED_ENABLED so a partner filled by other means never starts a multi-week transfer
Tier 2 beside the per-orchestrator gates. Unset reads as on — the toggle postdates the seed.
2026-08-17 07:46:51 -04:00
Gmer4Lfe ad623353bc Stop the media seed from holding the onboard, and therefore the partnership, open for weeks
A first seed is ~28 TB behind a 12.5 MB/s bwlimit, and it ran inline as Step 9d, so the
phase-2 flag every status reader depends on was written only after it finished.
2026-08-17 07:40:00 -04:00
Gmer4Lfe 9d2610a911 Stop the host card claiming it is waiting for a partner after the onboard was cancelled 2026-08-17 07:23:48 -04:00
Gmer4Lfe d8e3c09b57 Skip the key step when SSH already works, and read the install path live on both sides 2026-08-17 07:04:46 -04:00
Gmer4Lfe 7e7d845f61 Read the scripts dir live for the paste command, because choosing appdata moves it mid-wizard 2026-08-17 06:51:51 -04:00
Gmer4Lfe b83c118c7f Keep the SSH step visible until the partnership exists, not until the owner says its own phase 1 finished 2026-08-17 06:42:21 -04:00
Gmer4Lfe 069815790b Put the join inside the wizard, send a partner to Partnership when it finishes, and say what is left 2026-08-17 06:16:36 -04:00
Gmer4Lfe fe58fb7826 File the owner's containers on the mirror during onboard, with the icon resolved where the Emby key is 2026-08-17 05:33:52 -04:00
Gmer4Lfe 6dbb076a1e Name the partner fallback folder from master.conf and give it the closest Emby user's avatar 2026-08-17 05:27:25 -04:00
Gmer4Lfe 3676526daf Remove the Docker tab and stop overwriting folder.view3's file, which destroyed folders made in its own UI 2026-08-17 05:11:00 -04:00
Gmer4Lfe a46317de18 Make tailscale removal opt-in, since it depends on a key that expires and no-ops silently once it has 2026-08-17 04:49:32 -04:00
Gmer4Lfe 2cbc06a683 Show a launched job's progress, stop a refused rerun from overwriting the live record, and label deployed containers so Unraid owns them 2026-08-17 04:26:32 -04:00
Gmer4Lfe cce1e25c2b Let a non-blocking checklist item be dismissed with a recorded decision, and run discovery on the mirror once there is something to discover 2026-08-16 21:56:00 -04:00
Gmer4Lfe 5bdf3bff60 Report each teardown and setup step from what it did, not from whether it was attempted 2026-08-16 21:46:26 -04:00
Gmer4Lfe 3ae6298656 Let a partner adopt the owner's custom networks from the conf phase 1 already cached, instead of asking for a value it cannot know 2026-08-16 21:20:59 -04:00
Gmer4Lfe 23825a824d Create the networks our own pushed templates name, instead of trusting a fresh mirror to have uncommented them 2026-08-16 20:50:10 -04:00