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.
This commit is contained in:
+1
-1
@@ -206,6 +206,6 @@ _summary="AI token sync complete — pulled $PULLED"
|
||||
info "$_summary"
|
||||
|
||||
# Only a partner that answered and then failed the transfer is worth an exit code. An absent
|
||||
# partner is the normal state while HOST2 is being rebuilt.
|
||||
# partner is the normal state whenever a partner is not yet onboarded.
|
||||
[[ "$FAILED" -gt 0 ]] && exit 1
|
||||
exit 0
|
||||
|
||||
@@ -632,7 +632,7 @@
|
||||
# Fine grained control — disable specific orchestrators while keeping others
|
||||
# Use when: rebuilding secondary, testing, per-window bandwidth management
|
||||
#
|
||||
# Example — HOST2 data rebuild:
|
||||
# Example — rebuilding a partner's data:
|
||||
# RSYNC_ENABLED=true ← rsync works, individual scripts run fine
|
||||
# CRITICAL_RSYNC_ENABLED=true ← 30min auth stack sync still runs
|
||||
# INTERMEDIATE_RSYNC_ENABLED=false ← skip 4h arr/mid-day rsync during rebuild
|
||||
|
||||
@@ -314,7 +314,7 @@ if [[ "$EUID" -ne 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# FALLBACK_ENABLED gate — exits cleanly when disabled (e.g. HOST2 being rebuilt).
|
||||
# FALLBACK_ENABLED gate — exits cleanly when disabled.
|
||||
# Fail-closed: anything that isn't exactly "true" disables fallback. Matching only the
|
||||
# literal "false" would let a typo ("no", "0", "FALSE") hand this script DDNS authority
|
||||
# and cross-server container control on a toggle nobody meant to set.
|
||||
|
||||
@@ -211,7 +211,7 @@ SKIP_SERVICES_STACK=false
|
||||
SKIP_ARR_SYNC=false
|
||||
SKIP_WEBHOOK_SETUP=false
|
||||
SKIP_WEBHOOK_LISTENER=false
|
||||
PHASE1_ONLY=false # OWNER: SSH + conf push only (HOST2 not yet installed)
|
||||
PHASE1_ONLY=false # OWNER: SSH + conf push only (mirror not yet installed)
|
||||
# MIRROR: SSH key install only, no owner notification
|
||||
PHASE2_ONLY=false # OWNER: containers/arr/onboard only (triggered by HOST2 after it onboards)
|
||||
PHASE3_ONLY=false # OWNER: media seed only — a separate decision, see the PHASE 3 block
|
||||
@@ -757,7 +757,7 @@ if [[ "$PHASE1_ONLY" == true ]]; then
|
||||
#
|
||||
# Push always; pull only if the mirror actually has a conf yet. Before HOST2 installs Varaverk
|
||||
# there is nothing to pull, and an unconditional pull would count a failure and notify about
|
||||
# a condition that is simply "HOST2 is not installed". The pull lands on the re-run after the
|
||||
# a condition that is simply "the mirror is not installed". The pull lands on the re-run after the
|
||||
# install — the same --phase1-only --skip-ssh the operator uses to push conf again.
|
||||
echo ""
|
||||
echo "━━━ Phase 1 — Partner Conf Cache ━━━"
|
||||
|
||||
@@ -149,7 +149,7 @@ vv_cache_write('arrs', $arrs);
|
||||
|
||||
// ── Watchdog payload ──────────────────────────────────────────────────────────
|
||||
// Here for the same reason as the other two: vv_wd_all() SSHes to every partner, which cost 8.3s
|
||||
// on this host with HOST2 down, and the Watchdog tab polls every 30 seconds. Collected off the
|
||||
// on this host with the partner unreachable, and the Watchdog tab polls every 30 seconds. Collected off the
|
||||
// request path it is paid once a minute by cron instead of by whoever has the tab open.
|
||||
require_once $_base . '/include/watchdog.php';
|
||||
vv_cache_write('watchdog', vv_wd_all());
|
||||
|
||||
@@ -150,7 +150,7 @@ $history = [];
|
||||
// cleanup, docker updates — and run on their schedule whether or not RSYNC_ENABLED is true. So the
|
||||
// page could report a healthy 56-minute "daily sync" for a subsystem that had not run in a month,
|
||||
// which is exactly what it was doing: the last entry here is 2026-07-16, the day the global gate
|
||||
// was closed for the HOST2 rebuild.
|
||||
// was closed.
|
||||
//
|
||||
// Deliberately outside the 30-day cutoff. The last transfer is 29 days old as this is written and
|
||||
// would have dropped out of the window within days, taking the page from a wrong answer to no
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
//
|
||||
// Served from cache, collected only on a miss.
|
||||
// vv_wd_all() SSHes to every configured partner, so its cost is set by the slowest node
|
||||
// rather than by how much data there is. Measured at 8.3s on this host with HOST2 down —
|
||||
// rather than by how much data there is. Measured at 8.3s on this host with the partner unreachable —
|
||||
// paid by every visitor, every 30 seconds, because the tab polls. The cache check happens
|
||||
// before the heavy include, so a hit costs one file read and no SSH at all.
|
||||
//
|
||||
|
||||
@@ -194,7 +194,7 @@ function vv_ai_mem_append(string $text): array {
|
||||
// Takes one line back out of the learned slot. The counterpart to vv_ai_mem_append(), and the
|
||||
// reason a decided proposal can be changed at all: without this, "accepted" was a one-way door
|
||||
// and the only way out was editing mem_learned.md by hand. An accepted line joins every future
|
||||
// prompt, and a fact that is true today — HOST2 is offline — becomes actively wrong the day it
|
||||
// prompt, and a fact that is true today — a host is unreachable — becomes actively wrong the day it
|
||||
// stops being true, with nothing to expire it.
|
||||
//
|
||||
// Matched on the line this file wrote: "- <text> (<date>)". A line the operator has since edited
|
||||
|
||||
@@ -470,7 +470,7 @@ vv_ai_chat_markup('vv-ai', [
|
||||
<span id="vv-ai-mem-count" style="margin-left:auto;font-size:10px;color:#3a3a3a;font-family:monospace;"></span>
|
||||
</div>
|
||||
<textarea id="vv-ai-mem-text" class="vv-ai-input" rows="10" spellcheck="false"
|
||||
placeholder="Who you are, how this install is set up, decisions already made, things it should stop asking. e.g. - HOST2 (unRAID-Jayred36) is being rebuilt and is offline. Do not suggest syncing to it. - RSYNC_ENABLED is deliberately false until HOST2 is onboarded. - I verify everything before trusting it. Show your sources."></textarea>
|
||||
placeholder="Who you are, how this install is set up, decisions already made, things it should stop asking. e.g. - Media lives on the array, never on the cache pool. Do not suggest moving it. - RSYNC_ENABLED is deliberately false right now. Do not suggest turning it on. - I verify everything before trusting it. Show your sources."></textarea>
|
||||
<div style="display:flex;gap:8px;align-items:center;margin-top:7px;">
|
||||
<span id="vv-ai-mem-status" style="font-size:10px;color:#4a4a4a;"></span>
|
||||
<button class="vv-ai-btn ghost" style="margin-left:auto" id="vv-ai-mem-cancel" type="button">Close</button>
|
||||
@@ -967,7 +967,7 @@ vv_ai_chat_markup('vv-ai', [
|
||||
// of ordinary suggestions read as a card of problems.
|
||||
//
|
||||
// A decision is not final. An accepted line joins every future prompt and nothing expires it,
|
||||
// so a fact that is true today — HOST2 is offline — needs a way back out on the day it stops
|
||||
// so a fact that is true today — a gate is off, a host is unreachable — needs a way back out on the day it stops
|
||||
// being true. Retract is that way; Keep is the same door in the other direction.
|
||||
const B = (act, cls, label, tip) =>
|
||||
`<button class="vv-ai-btn${cls}" data-mem-act="${act}" data-id="${esc(r.id)}" `
|
||||
|
||||
@@ -1256,7 +1256,7 @@ Saved into `master.conf`, which does not need to be opened by hand.
|
||||
|
||||
| Setting | Control | Where | What it does |
|
||||
|---|---|---|---|
|
||||
| `CONF_SYNC_ENABLED` | a switch | in this section | HOST2 rebuild in progress — re-enable when HOST2 is back online |
|
||||
| `CONF_SYNC_ENABLED` | a switch | in this section | partner conf caching — armed by onboard Step 1d |
|
||||
|
||||
## Critical Containers
|
||||
|
||||
|
||||
@@ -77,8 +77,8 @@ and tested but currently switched off:
|
||||
```
|
||||
FALLBACK_ENABLED=true ← running
|
||||
PARTNERSHIP_ENABLED=true ← running
|
||||
RSYNC_ENABLED=false ← off until HOST2 is back
|
||||
CONF_SYNC_ENABLED=false ← off until HOST2 is back
|
||||
RSYNC_ENABLED=false ← global rsync gate
|
||||
CONF_SYNC_ENABLED=false ← partner conf caching
|
||||
```
|
||||
|
||||
Everything here is built and audited. The two-server half is waiting on the second server.
|
||||
|
||||
Reference in New Issue
Block a user