53d7784d5d
Mesh header mirrors the assistant's three checkboxes; composer controls move below and centre
Gmer4Lfe2026-08-17 17:19:29 -04:00
10f2a0a8a4
Mesh chat: reader-side formatting toggle, poll backoff when hidden, Partnership always opens on mesh
Gmer4Lfe2026-08-17 17:12:27 -04:00
eab5cc911c
One chat card, two modes: assistant and mesh, with a purple unread badge on the switch
Gmer4Lfe2026-08-17 17:03:35 -04:00
d88fe381db
Mesh chat: autoscroll toggle, hostname/slot toggle, and a formatting row behind one button
Gmer4Lfe2026-08-17 16:51:17 -04:00
ecded4a8a7
Mesh Chat card on the Partnership page
Gmer4Lfe2026-08-17 16:43:22 -04:00
772a3bdce2
Mesh chat store: append-replicated log over the existing SSH trust
Gmer4Lfe2026-08-17 16:41:25 -04:00
fbf6a07da9
Measure the link, not rsync: Data Transferred now reads Tailscale per-peer counters
Gmer4Lfe2026-08-17 16:17:11 -04:00
25e055a7ac
Merge the partnership settings into one section, arrays and scalars together
Gmer4Lfe2026-08-17 16:11:52 -04:00
e024a29157
Conversation list: a collapsible section per AI profile, then a Last N banner over the recents
Gmer4Lfe2026-08-17 16:06:28 -04:00
83f3b7e226
Monitor conversation list: collapsible section for the card's own profile above the full list
Gmer4Lfe2026-08-17 15:45:14 -04:00
d3d6f30f72
Load Last checkbox in the chat header, remembered per placement
Gmer4Lfe2026-08-17 15:43:50 -04:00
99c94ffaec
Drop Mirror Sync from the Partnership page — rsync gates have one home, on the Rsync page
Gmer4Lfe2026-08-17 15:41:48 -04:00
1a836dac75
Drop the failover and shared-services pickers from the Partnership page
Gmer4Lfe2026-08-17 15:30:52 -04:00
0447fa6f86
Remove point-in-time HOST2 status from the codebase
Gmer4Lfe2026-08-17 15:20:25 -04:00
e8ee5b052b
Failover Coverage and Shared Services pickers on the Partnership page
Gmer4Lfe2026-08-17 15:10:32 -04:00
d7980da35e
vv_docker_containers lives in common.php, not docker.php
Gmer4Lfe2026-08-17 15:09:15 -04:00
239e100b44
Partnership page: Varaverk assistant profile, row-2 Actions, and the two container list cards
Gmer4Lfe2026-08-17 15:08:43 -04:00
2216072669
Drop the Host Settings card now the partnership settings card covers HOST1/HOST2
Gmer4Lfe2026-08-17 14:52:21 -04:00
8cf3ff31db
Show the partner's API key and whether it is answering on the remote card
Gmer4Lfe2026-08-17 14:46:19 -04:00
b108a6fe62
Report the partner's API key and whether it is actually answering
Gmer4Lfe2026-08-17 14:45:38 -04:00
f58ff68ab3
Mesh partnership leg reads this host's own state file, not one named after the remote
Gmer4Lfe2026-08-17 14:43:03 -04:00
e7e9d9fecf
Green mesh banner on each remote card, naming the failing leg when it is not green
Gmer4Lfe2026-08-17 14:42:15 -04:00
d417bd5360
Match the tailnet device name to the conf hostname by unambiguous prefix
Gmer4Lfe2026-08-17 14:41:35 -04:00
90f3b0b7da
Put the assistant on the Partnership tab
Gmer4Lfe2026-08-17 14:38:04 -04:00
bce3bf61e9
Partnership page: one settings card instead of three, and a Data Transferred card
Gmer4Lfe2026-08-17 14:36:21 -04:00
49372996ac
Wire the folder-layout mirroring into onboard Step 12
Gmer4Lfe2026-08-17 14:13:17 -04:00
e3ed5a53f2
Reproduce the owner's docker folder layout on the mirror instead of one lump fallback folder
Gmer4Lfe2026-08-17 14:08:35 -04:00
1231cd69a8
A host with the VM service off is not a host with a broken API key
Gmer4Lfe2026-08-17 13:47:19 -04:00
8e85a67e7b
One faint Skip in the corner; the completion card owns the real exits
Gmer4Lfe2026-08-17 13:45:28 -04:00
1badb93331
Make the onboard-in-progress state survive a page reload
Gmer4Lfe2026-08-17 13:06:45 -04:00
e23358ea0c
Tell the mirror that Phase 2 is running instead of leaving it on a greyed button
Gmer4Lfe2026-08-17 12:25:16 -04:00
73bbae14c1
Stop resolve_remote_scripts_dir silently returning the local path as the partner's
Gmer4Lfe2026-08-17 12:13:51 -04:00
74e3b8b067
Resolve docker_network_connect.sh on the mirror, and give the wizard poll time to outlast Phase 2
Gmer4Lfe2026-08-17 12:12:10 -04:00
9a1254048e
Match the WebUI template by its XML Name element, and count the final sync on rsync's actual exit
Gmer4Lfe2026-08-17 11:57:46 -04:00
7ae510ed28
Point the WebGUI symlink at the actual install, and report this host's identity rather than HOST1's
Gmer4Lfe2026-08-17 11:52:33 -04:00
620d7eb6f1
Fix conf_populate.sh sourcing load_config.sh three levels up from Deployment/
Gmer4Lfe2026-08-17 11:50:57 -04:00
cd21fca749
Give the wizard an ending: big checkmark plus a way out, and refresh it when the onboard lands
Gmer4Lfe2026-08-17 11:47:01 -04:00
ead5d38d7c
Hide the seed strip on the mirror — it describes a push the mirror cannot make
Gmer4Lfe2026-08-17 11:42:32 -04:00
c4bfa6bdfe
Show the mirror it is onboarded, and stop offering it owner-side actions
Gmer4Lfe2026-08-17 11:42:10 -04:00
d8a77c700b
Stop counting a gated-off critical rsync as an unreachable partner, and report the counter in the unit it is stored in
Gmer4Lfe2026-08-17 11:39:19 -04:00
5fc53948c6
Treat an ACTIVE partnership as phase 2 regardless of the flags
Gmer4Lfe2026-08-17 11:36:00 -04:00
587440b6bc
Push partnership state to the path the partner reads, under both names its page looks for
Gmer4Lfe2026-08-17 11:34:54 -04:00
fb49eb20e8
chmod authorized_keys after every rewrite, so revoking a key does not disable the file
Gmer4Lfe2026-08-17 11:06:56 -04:00
60e87ba518
Clear the mirror from the blocklist before the provisioning sync, not after it
Gmer4Lfe2026-08-17 11:04:36 -04:00
ff94ccb343
Make the setup-state push report whether it worked
Gmer4Lfe2026-08-17 10:57:56 -04:00
42711ff9ac
Bring the seed docs in line with Phase 3
Gmer4Lfe2026-08-17 10:24:41 -04:00
7c957d96be
Make seeding Phase 3 — its own operator-triggered phase, not the tail of an onboard
Gmer4Lfe2026-08-17 10:23:03 -04:00
427a31cdff
Sync the auth stack's appdata to the mirror before the containers that read it are created
Gmer4Lfe2026-08-17 10:12:10 -04:00
51125fa05a
Fix the offboard calling rsync_stop.sh at a path that has never existed, and stop the summary contradicting its own steps
Gmer4Lfe2026-08-17 10:04:08 -04:00
24e347bb2d
Ship MEDIA_SEED_ENABLED off by default so a fresh node never inherits a multi-week transfer
Gmer4Lfe2026-08-17 09:55:40 -04:00
1a47f864f9
Put the media seed behind MEDIA_SEED_ENABLED so a partner filled by other means never starts a multi-week transfer
Gmer4Lfe2026-08-17 07:46:51 -04:00
ad623353bc
Stop the media seed from holding the onboard, and therefore the partnership, open for weeks
Gmer4Lfe2026-08-17 07:40:00 -04:00
9d2610a911
Stop the host card claiming it is waiting for a partner after the onboard was cancelled
Gmer4Lfe2026-08-17 07:23:48 -04:00
bc9692f521
Tighten authorized_keys after installing a key, since sshd ignores a world-writable one and says nothing to the installer
Gmer4Lfe2026-08-17 07:19:46 -04:00
d8e3c09b57
Skip the key step when SSH already works, and read the install path live on both sides
Gmer4Lfe2026-08-17 07:04:46 -04:00
7e7d845f61
Read the scripts dir live for the paste command, because choosing appdata moves it mid-wizard
Gmer4Lfe2026-08-17 06:51:51 -04:00
b83c118c7f
Keep the SSH step visible until the partnership exists, not until the owner says its own phase 1 finished
Gmer4Lfe2026-08-17 06:42:21 -04:00
069815790b
Put the join inside the wizard, send a partner to Partnership when it finishes, and say what is left
Gmer4Lfe2026-08-17 06:16:36 -04:00
366e2a269f
Exclude the Redis AOF and MariaDB binlog from the dirty auth sync, which delivered their index without the file it names
Gmer4Lfe2026-08-17 05:53:37 -04:00
bdc2cdbadb
Clear the onboard phase flags on offboard, and let the mirror signal the owner before revoking the key it signals with
Gmer4Lfe2026-08-17 05:44:35 -04:00
fe58fb7826
File the owner's containers on the mirror during onboard, with the icon resolved where the Emby key is
Gmer4Lfe2026-08-17 05:33:52 -04:00
6dbb076a1e
Name the partner fallback folder from master.conf and give it the closest Emby user's avatar
Gmer4Lfe2026-08-17 05:27:25 -04:00
3676526daf
Remove the Docker tab and stop overwriting folder.view3's file, which destroyed folders made in its own UI
Gmer4Lfe2026-08-17 05:11:00 -04:00
6a15a9d99a
Push INACTIVE to the mirror before revoking the key that push needs, and stop two steps reporting success they did not have
Gmer4Lfe2026-08-17 04:58:15 -04:00
a46317de18
Make tailscale removal opt-in, since it depends on a key that expires and no-ops silently once it has
Gmer4Lfe2026-08-17 04:49:32 -04:00
32355e0219
Record the tailscale grace period as a deadline instead of sleeping six hours inside the offboard
Gmer4Lfe2026-08-17 04:46:01 -04:00
2cbc06a683
Show a launched job's progress, stop a refused rerun from overwriting the live record, and label deployed containers so Unraid owns them
Gmer4Lfe2026-08-17 04:26:32 -04:00
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
Gmer4Lfe2026-08-16 21:56:00 -04:00
39dba3f8ab
Say that the rsync count file is a cache the live-PID scan overwrites, so a stale value stops reading as a leak
Gmer4Lfe2026-08-16 21:49:58 -04:00
5bdf3bff60
Report each teardown and setup step from what it did, not from whether it was attempted
Gmer4Lfe2026-08-16 21:46:26 -04:00
65516ea3ac
Report the Tailscale device as removed only when it was, instead of whenever the toggle was on
Gmer4Lfe2026-08-16 21:38:03 -04:00
27989d066e
Disarm on offboard every sync gate onboard arms, with the same helper, so the two are one operation in both directions
Gmer4Lfe2026-08-16 21:36:46 -04:00
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
Gmer4Lfe2026-08-16 21:20:59 -04:00
662f4f0d53
Create the network and cache partner confs in phase 1, where SSH already works and no plugin is needed on the far side
Gmer4Lfe2026-08-16 21:13:46 -04:00
a02b918ff9
Make the cancel actually remove the key it says it removed, instead of erroring into a swallowed stderr
Gmer4Lfe2026-08-16 21:03:54 -04:00
23825a824d
Create the networks our own pushed templates name, instead of trusting a fresh mirror to have uncommented them
Gmer4Lfe2026-08-16 20:50:10 -04:00
cf67393db6
Read varaverk.cfg the way bash and the PHP side both read it, so a comment on the SCRIPTS_DIR line cannot disable cron suppression
Gmer4Lfe2026-08-16 20:40:23 -04:00
7ed0f5c23b
Send the webhook setup to the path the partner actually uses, and arm the sync gates before the seed that depends on them
Gmer4Lfe2026-08-16 20:32:14 -04:00
f363c6cd55
Match the trigger failure patterns before the success one, since the failures echo a path back
Gmer4Lfe2026-08-16 20:26:46 -04:00
c8a6f58007
Launch owner-side Phase 2 through run_job.sh so it leaves a job record, and only claim it started once one exists
Gmer4Lfe2026-08-16 20:25:54 -04:00
93cdbaac57
Give the mirror the terminal step its half of phase 1 actually needs, instead of a button that cannot answer a password prompt
Gmer4Lfe2026-08-16 20:16:17 -04:00
47ad3b3075
Push the API key to the conf path the partner actually uses, and say so when there is no conf there
Gmer4Lfe2026-08-16 19:59:15 -04:00
1493cf2dcf
Push our conf to partners on the 4-hour cycle too, since the conf-save hook the push half was written for never existed
Gmer4Lfe2026-08-16 19:47:19 -04:00
35e59d2510
Let the plugin read partner vars from the same RAM cache bash reads, so PHP and bash cannot disagree about a partner
Gmer4Lfe2026-08-16 19:40:49 -04:00
4f95cc6d13
Deliver master.conf to a node that has no Varaverk on it yet, which is the node that needs it
Gmer4Lfe2026-08-16 16:14:23 -04:00
f627658567
Read the partner's identity out of master.conf instead of asking for it again
Gmer4Lfe2026-08-16 13:56:09 -04:00
3c24550b19
Derive the pull target from the install location, so master.conf is safe to share between hosts
Gmer4Lfe2026-08-16 13:54:05 -04:00
98fab394a1
Resolve the partner through the shared Tailscale resolver, so a shared-tailnet peer is findable
Gmer4Lfe2026-08-16 13:43:02 -04:00
6fbc2b4125
Stop a missing SSH key making every Tailscale peer look like the Gitea host, and say so when the scripts are absent
Gmer4Lfe2026-08-16 13:31:24 -04:00
64de77c065
Let the setup checklist create the SSH key it is asking for, instead of linking to a guide
Gmer4Lfe2026-08-16 13:24:26 -04:00