diff --git a/apps/loopover-ui/src/routes/docs.self-hosting-operations.tsx b/apps/loopover-ui/src/routes/docs.self-hosting-operations.tsx
index bcd9442e4f..b5cebcec0e 100644
--- a/apps/loopover-ui/src/routes/docs.self-hosting-operations.tsx
+++ b/apps/loopover-ui/src/routes/docs.self-hosting-operations.tsx
@@ -408,9 +408,9 @@ DISCORD_REPO_WEBHOOKS={"owner/repoA":"https://discord.com/api/webhooks/...","own
expected steady state, not a leak — this instance runs{" "}
scripts/deploy-selfhost-prebuilt.sh, which rebuilds the image from the current
git checkout on every deploy and intentionally keeps prior layers around in the build cache
- for faster rebuilds. The loopover-docker-safe-prune systemd timer (below)
- already runs daily against this exact instance and reclaims it on a schedule, so this is not
- a number to chase down manually.
+ for faster rebuilds. The loopover-docker-prune systemd timer (below) already
+ runs daily against this exact instance and reclaims it on a schedule, so this is not a
+ number to chase down manually.
When a compose default might need to change
diff --git a/packages/loopover-miner/terraform/main.tf b/packages/loopover-miner/terraform/main.tf
index 1f5ce29feb..1474622b8c 100644
--- a/packages/loopover-miner/terraform/main.tf
+++ b/packages/loopover-miner/terraform/main.tf
@@ -5,7 +5,7 @@
#
# This is the CLI-worker profile — it exposes NO public endpoints by default (unlike the root terraform/ module,
# which provisions the multi-tenant ORB server behind Caddy on 80/443). After `terraform apply`: SSH in, drop your
-# secrets into a .gittensory-miner.env, and start the miner container against /data/miner. See README.md and
+# secrets into a .loopover-miner.env.example, and start the miner container against /data/miner. See README.md and
# ../docker-compose.miner.yml / ../DEPLOYMENT.md for the run step.
terraform {
diff --git a/src/review/repo-agnostic-capability-audit.md b/src/review/repo-agnostic-capability-audit.md
index 3dce457624..34db8ce8c7 100644
--- a/src/review/repo-agnostic-capability-audit.md
+++ b/src/review/repo-agnostic-capability-audit.md
@@ -5,7 +5,7 @@ or implicitly gittensory-specific assumptions that would need to become per-tena
the review/merge authority model can be handed to an arbitrary rented repository. This is the checklist
deliverable for **#5744**; a follow-up implementation issue would turn each open item below into config,
gittensory's own values surviving only as the default. It mirrors the shape of the miner-side audit in
-[`packages/gittensory-miner/docs/repo-agnostic-capability-audit.md`](../../packages/gittensory-miner/docs/repo-agnostic-capability-audit.md)
+[`packages/loopover-miner/docs/repo-agnostic-capability-audit.md`](../../packages/loopover-miner/docs/repo-agnostic-capability-audit.md)
(the #4780 audit that #4784 resolved). Audit-and-document only — no code changes here.
## Summary
diff --git a/test/unit/self-host-ops-rename-residue.test.ts b/test/unit/self-host-ops-rename-residue.test.ts
new file mode 100644
index 0000000000..090b8f6323
--- /dev/null
+++ b/test/unit/self-host-ops-rename-residue.test.ts
@@ -0,0 +1,36 @@
+import { readFileSync } from "node:fs";
+import { join } from "node:path";
+import { describe, expect, it } from "vitest";
+
+// Regression for #5937: three self-host/ops docs still referenced pre-rename `gittensory-*` names that no
+// longer exist (a dead timer name, a dead cross-repo link, a stale env filename). Each file is grepped for
+// the exact stale string and the verified-correct replacement, following the config-drift pattern in
+// test/unit/miner-docker-compose.test.ts.
+const SELF_HOSTING_OPS_DOC = join(
+ process.cwd(),
+ "apps/loopover-ui/src/routes/docs.self-hosting-operations.tsx",
+);
+const TERRAFORM_MAIN = join(process.cwd(), "packages/loopover-miner/terraform/main.tf");
+const CAPABILITY_AUDIT_DOC = join(process.cwd(), "src/review/repo-agnostic-capability-audit.md");
+
+describe("self-host ops docs rename residue (#5937)", () => {
+ it("names the real loopover-docker-prune timer, not the dead loopover-docker-safe-prune one", () => {
+ const doc = readFileSync(SELF_HOSTING_OPS_DOC, "utf8");
+ expect(doc).not.toContain("loopover-docker-safe-prune");
+ expect(doc).toContain("loopover-docker-prune");
+ });
+
+ it("points the terraform module's header comment at the real env filename, not .gittensory-miner.env", () => {
+ const tf = readFileSync(TERRAFORM_MAIN, "utf8");
+ expect(tf).not.toContain(".gittensory-miner.env");
+ expect(tf).toContain(".loopover-miner.env.example");
+ });
+
+ it("links the capability audit doc at the real post-rename packages/loopover-miner path", () => {
+ const audit = readFileSync(CAPABILITY_AUDIT_DOC, "utf8");
+ expect(audit).not.toContain("packages/gittensory-miner/");
+ expect(audit).toContain(
+ "packages/loopover-miner/docs/repo-agnostic-capability-audit.md",
+ );
+ });
+});