Commit Graph

  • 4accd6b67e Raise the assistant's mark Gmer4Lfe 2026-08-17 18:09:34 -04:00
  • 63ec110177 Place the assistant's mark with a transform, not a background percentage Gmer4Lfe 2026-08-17 18:08:27 -04:00
  • a27bb41b42 Nudge the mark: lower in the assistant, higher in the mesh Gmer4Lfe 2026-08-17 18:06:52 -04:00
  • eaa78452bc Enter asks, Ctrl+Enter breaks the line — in both chat modes Gmer4Lfe 2026-08-17 18:04:13 -04:00
  • 4eb0a9c608 Offer the assistant the same formatting the mesh composer has, and drop the mark lower Gmer4Lfe 2026-08-17 18:01:45 -04:00
  • 2e646f82b4 Sync expand state between the two chat modes, and soften the mark Gmer4Lfe 2026-08-17 17:56:32 -04:00
  • 74bd40ba78 Carry expand/collapse to the mesh chat, same corner and same glyphs Gmer4Lfe 2026-08-17 17:52:57 -04:00
  • 4f99efcf2c Varaverk mark behind every conversation, assistant and mesh, and larger Gmer4Lfe 2026-08-17 17:49:23 -04:00
  • be10e78c7a Swap the banner's checkboxes with the mode, and put the mark behind the mesh transcript Gmer4Lfe 2026-08-17 17:46:29 -04:00
  • b6a677a710 Toggle reads Mesh Chat Gmer4Lfe 2026-08-17 17:41:53 -04:00
  • 53d7784d5d Mesh header mirrors the assistant's three checkboxes; composer controls move below and centre Gmer4Lfe 2026-08-17 17:19:29 -04:00
  • 10f2a0a8a4 Mesh chat: reader-side formatting toggle, poll backoff when hidden, Partnership always opens on mesh Gmer4Lfe 2026-08-17 17:12:27 -04:00
  • eab5cc911c One chat card, two modes: assistant and mesh, with a purple unread badge on the switch Gmer4Lfe 2026-08-17 17:03:35 -04:00
  • d88fe381db Mesh chat: autoscroll toggle, hostname/slot toggle, and a formatting row behind one button Gmer4Lfe 2026-08-17 16:51:17 -04:00
  • ecded4a8a7 Mesh Chat card on the Partnership page Gmer4Lfe 2026-08-17 16:43:22 -04:00
  • 772a3bdce2 Mesh chat store: append-replicated log over the existing SSH trust Gmer4Lfe 2026-08-17 16:41:25 -04:00
  • fbf6a07da9 Measure the link, not rsync: Data Transferred now reads Tailscale per-peer counters Gmer4Lfe 2026-08-17 16:17:11 -04:00
  • 25e055a7ac Merge the partnership settings into one section, arrays and scalars together Gmer4Lfe 2026-08-17 16:11:52 -04:00
  • e024a29157 Conversation list: a collapsible section per AI profile, then a Last N banner over the recents Gmer4Lfe 2026-08-17 16:06:28 -04:00
  • 83f3b7e226 Monitor conversation list: collapsible section for the card's own profile above the full list Gmer4Lfe 2026-08-17 15:45:14 -04:00
  • d3d6f30f72 Load Last checkbox in the chat header, remembered per placement Gmer4Lfe 2026-08-17 15:43:50 -04:00
  • 99c94ffaec Drop Mirror Sync from the Partnership page — rsync gates have one home, on the Rsync page Gmer4Lfe 2026-08-17 15:41:48 -04:00
  • 1a836dac75 Drop the failover and shared-services pickers from the Partnership page Gmer4Lfe 2026-08-17 15:30:52 -04:00
  • 0447fa6f86 Remove point-in-time HOST2 status from the codebase Gmer4Lfe 2026-08-17 15:20:25 -04:00
  • e8ee5b052b Failover Coverage and Shared Services pickers on the Partnership page Gmer4Lfe 2026-08-17 15:10:32 -04:00
  • d7980da35e vv_docker_containers lives in common.php, not docker.php Gmer4Lfe 2026-08-17 15:09:15 -04:00
  • 239e100b44 Partnership page: Varaverk assistant profile, row-2 Actions, and the two container list cards Gmer4Lfe 2026-08-17 15:08:43 -04:00
  • 2216072669 Drop the Host Settings card now the partnership settings card covers HOST1/HOST2 Gmer4Lfe 2026-08-17 14:52:21 -04:00
  • 8cf3ff31db Show the partner's API key and whether it is answering on the remote card Gmer4Lfe 2026-08-17 14:46:19 -04:00
  • b108a6fe62 Report the partner's API key and whether it is actually answering Gmer4Lfe 2026-08-17 14:45:38 -04:00
  • f58ff68ab3 Mesh partnership leg reads this host's own state file, not one named after the remote Gmer4Lfe 2026-08-17 14:43:03 -04:00
  • e7e9d9fecf Green mesh banner on each remote card, naming the failing leg when it is not green Gmer4Lfe 2026-08-17 14:42:15 -04:00
  • d417bd5360 Match the tailnet device name to the conf hostname by unambiguous prefix Gmer4Lfe 2026-08-17 14:41:35 -04:00
  • 90f3b0b7da Put the assistant on the Partnership tab Gmer4Lfe 2026-08-17 14:38:04 -04:00
  • bce3bf61e9 Partnership page: one settings card instead of three, and a Data Transferred card Gmer4Lfe 2026-08-17 14:36:21 -04:00
  • 49372996ac Wire the folder-layout mirroring into onboard Step 12 Gmer4Lfe 2026-08-17 14:13:17 -04:00
  • e3ed5a53f2 Reproduce the owner's docker folder layout on the mirror instead of one lump fallback folder Gmer4Lfe 2026-08-17 14:08:35 -04:00
  • 1231cd69a8 A host with the VM service off is not a host with a broken API key Gmer4Lfe 2026-08-17 13:47:19 -04:00
  • 8e85a67e7b One faint Skip in the corner; the completion card owns the real exits Gmer4Lfe 2026-08-17 13:45:28 -04:00
  • 1badb93331 Make the onboard-in-progress state survive a page reload Gmer4Lfe 2026-08-17 13:06:45 -04:00
  • e23358ea0c Tell the mirror that Phase 2 is running instead of leaving it on a greyed button Gmer4Lfe 2026-08-17 12:25:16 -04:00
  • 73bbae14c1 Stop resolve_remote_scripts_dir silently returning the local path as the partner's Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-17 11:52:33 -04:00
  • 620d7eb6f1 Fix conf_populate.sh sourcing load_config.sh three levels up from Deployment/ Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-17 11:47:01 -04:00
  • ead5d38d7c Hide the seed strip on the mirror — it describes a push the mirror cannot make Gmer4Lfe 2026-08-17 11:42:32 -04:00
  • c4bfa6bdfe Show the mirror it is onboarded, and stop offering it owner-side actions Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-17 11:39:19 -04:00
  • 5fc53948c6 Treat an ACTIVE partnership as phase 2 regardless of the flags Gmer4Lfe 2026-08-17 11:36:00 -04:00
  • 587440b6bc Push partnership state to the path the partner reads, under both names its page looks for Gmer4Lfe 2026-08-17 11:34:54 -04:00
  • fb49eb20e8 chmod authorized_keys after every rewrite, so revoking a key does not disable the file Gmer4Lfe 2026-08-17 11:06:56 -04:00
  • 60e87ba518 Clear the mirror from the blocklist before the provisioning sync, not after it Gmer4Lfe 2026-08-17 11:04:36 -04:00
  • ff94ccb343 Make the setup-state push report whether it worked Gmer4Lfe 2026-08-17 10:57:56 -04:00
  • 42711ff9ac Bring the seed docs in line with Phase 3 Gmer4Lfe 2026-08-17 10:24:41 -04:00
  • 7c957d96be Make seeding Phase 3 — its own operator-triggered phase, not the tail of an onboard Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-17 07:46:51 -04:00
  • ad623353bc Stop the media seed from holding the onboard, and therefore the partnership, open for weeks Gmer4Lfe 2026-08-17 07:40:00 -04:00
  • 9d2610a911 Stop the host card claiming it is waiting for a partner after the onboard was cancelled Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-17 07:04:46 -04:00
  • 7e7d845f61 Read the scripts dir live for the paste command, because choosing appdata moves it mid-wizard Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-17 04:49:32 -04:00
  • 32355e0219 Record the tailscale grace period as a deadline instead of sleeping six hours inside the offboard Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-16 21:49:58 -04:00
  • 5bdf3bff60 Report each teardown and setup step from what it did, not from whether it was attempted Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-16 20:32:14 -04:00
  • f363c6cd55 Match the trigger failure patterns before the success one, since the failures echo a path back Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-16 16:14:23 -04:00
  • f627658567 Read the partner's identity out of master.conf instead of asking for it again Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-16 13:54:05 -04:00
  • 98fab394a1 Resolve the partner through the shared Tailscale resolver, so a shared-tailnet peer is findable Gmer4Lfe 2026-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 Gmer4Lfe 2026-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 Gmer4Lfe 2026-08-16 13:24:26 -04:00