Skip to content

feat(docker)!: Phase 7 - full-cutover rename Docker/k8s/systemd manifests to loopover-* - #5733

Merged
JSONbored merged 4 commits into
mainfrom
rebrand-phase7-docker-k8s
Jul 14, 2026
Merged

feat(docker)!: Phase 7 - full-cutover rename Docker/k8s/systemd manifests to loopover-*#5733
JSONbored merged 4 commits into
mainfrom
rebrand-phase7-docker-k8s

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

Phase 7 of the gittensory -> loopover rebrand epic (#5705): renames Docker/k8s/systemd manifests, the operator-mounted config directory convention, and the self-host config-lint script to the loopover-* naming convention.

  • Root Dockerfile: comment fixes, DATABASE_PATH=/data/loopover.sqlite, stale GITTENSORY_REPO_CONFIG_DIR comment fixed to match the already-correct LOOPOVER_REPO_CONFIG_DIR env var.
  • k8s/miner-deployment.yaml, k8s/miner-secret.example.yaml, k8s/README.md: StatefulSet/labels/image/secret names, kubectl scale example, registry image tag.
  • systemd/gittensory-miner.service.example -> systemd/loopover-miner.service.example, systemd/gittensory-miner-ui.service.example -> systemd/loopover-miner-ui.service.example (git mv, content fully renamed: User=, state paths, EnvironmentFile path, description).
  • docker-compose.yml, .gitignore: ./gittensory-config -> ./loopover-config bind-mount convention (3 occurrences + ignore patterns).
  • config/examples/global.loopover.yml, config/examples/TEMPLATES.md, .env.example: targeted gittensory-config reference fixes (unrelated .env.example prose left for a later phase).
  • scripts/gittensory-config-lint.ts -> scripts/loopover-config-lint.ts (git mv), package.json script path, test/unit/gittensory-config-lint-script.test.ts -> test/unit/loopover-config-lint-script.test.ts (git mv, import path fixed).
  • 6 self-hosting doc routes under apps/gittensory-ui/src/routes/ and their corresponding drift/hygiene tests: gittensory-config/ code examples and prose.
  • Follow-up commit: fixed 3 stale systemd cross-references (test/unit/miner-ui-systemd-launcher.test.ts, apps/gittensory-miner-ui/README.md, packages/gittensory-miner/DEPLOYMENT.md) that the initial sweep missed, caught by the full test suite.

BREAKING CHANGE: the self-host operator-mounted config directory is now ./loopover-config (was ./gittensory-config), and the systemd unit files are renamed. No dual-read/alias, per the epic's full-cutover mandate.

Advances #5705

Test plan

  • npx vitest run — 835 passed | 2 skipped, 16218 tests passed | 12 skipped, 0 failed
  • npm run typecheck
  • npm run docs:drift-check
  • npm run manifest:drift-check
  • npx tsx scripts/write-ui-openapi.ts --check

…ests to loopover-*

Phase 7 of the gittensory -> loopover rebrand (#5705): renames every
Docker/k8s/systemd resource identifier and the operator-mounted
gittensory-config/ directory convention, full cutover.

- Root Dockerfile: comments, DATABASE_PATH default (gittensory.sqlite ->
  loopover.sqlite).
- k8s/miner-deployment.yaml, k8s/miner-secret.example.yaml, k8s/README.md:
  StatefulSet/label/service/secret names, image tag, kubectl examples.
- systemd/gittensory-miner.service.example -> loopover-miner.service.example,
  systemd/gittensory-miner-ui.service.example -> loopover-miner-ui.service.example
  (renamed to match the existing loopover-docker-prune.*.example
  convention): unit descriptions, User=, host paths, install steps.
- docker-compose.yml + .gitignore + config/examples/: the operator-mounted
  ./gittensory-config -> ./loopover-config bind-mount convention, plus the
  stale ~/.config/gittensory-miner AMS-ledger-export doc-drift left behind
  by the config-directory rename in #5721.
- scripts/gittensory-config-lint.ts -> scripts/loopover-config-lint.ts
  (git mv, its own error-message prefix, and every reference: package.json,
  docs, tests).
- scripts/selfhost-update.sh, scripts/selfhost-post-update-check.sh: the
  same directory-convention comments.
- 6 apps/gittensory-ui self-hosting docs pages (operations, quickstart,
  configuration, release-checklist, docs-audit, maintainer-self-hosting):
  every gittensory-config/ code example and prose reference.

Explicitly NOT touched: .env.example's Sentry/OTEL/domain-example/hosted-
collector-URL prose (Phase 8 scope, unrelated to Docker/k8s) and
apps/gittensory-*/packages/gittensory-* directory names themselves
(Phase 5).

BREAKING CHANGE: the self-host operator-mounted config directory is now
./loopover-config (was ./gittensory-config); systemd unit filenames
changed; k8s StatefulSet/Secret/label names changed. No dual-read/alias,
per the epic's full-cutover mandate. Self-host operators must rename
their existing ./gittensory-config directory (and any k8s/systemd units
built from the old examples) to match.
test/unit/miner-ui-systemd-launcher.test.ts, apps/gittensory-miner-ui/README.md,
and packages/gittensory-miner/DEPLOYMENT.md still pointed at the pre-rename
systemd/gittensory-miner{,-ui}.service.example filenames after those files were
git mv'd to systemd/loopover-miner{,-ui}.service.example earlier in this branch.
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 14, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
loopover-ui 58f4c56 Jul 14 2026, 09:58 AM

@codecov

codecov Bot commented Jul 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.06%. Comparing base (f2ee2ad) to head (58f4c56).
⚠️ Report is 3 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #5733   +/-   ##
=======================================
  Coverage   95.06%   95.06%           
=======================================
  Files         581      581           
  Lines       46179    46179           
  Branches    14811    14811           
=======================================
  Hits        43902    43902           
  Misses       1516     1516           
  Partials      761      761           
Flag Coverage Δ
shard-1 43.96% <ø> (ø)
shard-2 35.71% <ø> (ø)
shard-3 32.27% <ø> (ø)
shard-4 33.55% <ø> (+0.54%) ⬆️
shard-5 31.17% <ø> (-0.59%) ⬇️
shard-6 44.47% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 14, 2026
@loopover-orb

loopover-orb Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Warning

🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨

⏸️ LoopOver review result - manual review recommended

Review updated: 2026-07-14 10:04:12 UTC

29 files · 1 AI reviewer · 2 blockers · readiness 93/100 · CI pending · unknown

⏸️ Suggested Action - Manual Review

Review summary
This is a mechanical, git-mv-heavy rename pass (Docker/k8s/systemd manifests, config-lint script, self-host config-dir convention) that renames gittensory→loopover consistently across manifests, docs routes, and their corresponding tests. The scope matches its stated intent (Phase 7 of the #5705 rebrand epic) and the renamed systemd unit files, k8s manifests, and docker-compose bind-mount conventions read as coherent renames. One stale cross-reference slipped through in packages/gittensory-miner/DEPLOYMENT.md despite the PR explicitly claiming a follow-up sweep for exactly this kind of miss.

Nits — 5 non-blocking
  • packages/gittensory-miner/DEPLOYMENT.md: the line `sudo $EDITOR /etc/systemd/system/gittensory-miner.service # set User / WorkingDirectory / ExecStart / secrets` still references the old `gittensory-miner.service` path even though the `cp` line right above it now installs to `/etc/systemd/system/loopover-miner.service` — fix to `loopover-miner.service` so the doc doesn't tell an operator to edit a file that doesn't exist.
  • test/unit/mcp-cli-basics.test.ts: the tmpdir prefix renames (`gittensory-config-secret-` → `loopover-config-secret-`, etc.) are cosmetic-only string literals for temp directories unrelated to the actual `GITTENSORY_REPO_CONFIG_DIR`/`loopover-config` bind-mount convention this PR is renaming — confirm this is in scope or drop it to keep the diff tight.
  • scripts/loopover-config-lint.ts:59 retains a `console.error` call, which is expected for a CLI script but worth a quick note since it was flagged as a 'debug leftover' by static scanning — this one is legitimate user-facing CLI output, not a debug leftover.
  • Grep the repo for any remaining literal `gittensory-miner.service` / `gittensory-config` strings outside the files touched here (e.g. via `git grep -n gittensory-miner.service`) to catch the DEPLOYMENT.md miss and any other stragglers before merging this as the 'full-cutover' phase.
  • Consider whether apps/gittensory-ui/src/routes/docs.self-hosting-operations.tsx and docs.self-hosting-release-checklist.tsx (already 1200+ and 680+ lines) should be split in a follow-up — not blocking for a rename-only diff, but the size will make future renames/reviews increasingly costly.

Concerns raised — review before merging

  • No linked issue detected — If this PR is intended to solve an issue, link it explicitly in the PR body.
  • Maintainer requires a linked issue — Link the relevant issue (for example Closes #123) before opening the PR.
📋 Copy for AI agents — paste into your coding agent
Fix the following blocker(s) from this PR review:

1. No linked issue detected — If this PR is intended to solve an issue, link it explicitly in the PR body.

2. Maintainer requires a linked issue — Link the relevant issue (for example `Closes #123`) before opening the PR.
Signal Result Evidence
Code review ❌ 2 blockers 1 reviewer
Linked issue ⚠️ Missing No linked issue or no-issue rationale found.
Related work ✅ No active overlap found No same-issue or scoped active PR overlap found.
Change scope ✅ 20/20 Low review scope from cached public metadata (no linked issue context).
Validation posture ✅ 25/25 PR body includes validation/test evidence.
Contributor workload ✅ 10/10 Author activity: 45 registered-repo PR(s), 37 merged, 310 issue(s).
Contributor context ✅ Confirmed Gittensor contributor JSONbored; Gittensor profile; 45 PR(s), 310 issue(s).
Gate result ❌ Blocking Repo-configured hard blocker found.
Improvement ✅ Minor risk: clean · value: minor — Code changes are accompanied by test evidence.
Review context
  • Author: JSONbored
  • Role context: owner (maintainer lane)
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: not available
  • Official Gittensor activity: 45 PR(s), 310 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Treat this as maintainer-lane context rather than normal contributor-lane activity.
  • Explain no-issue PR.
  • Link the issue being solved, or explicitly explain why this is a no-issue PR.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.
[BETA] Chat with Gittensory

Ask Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.

  • @gittensory ask &lt;question&gt; answers contribution-quality Q&A with source citations and freshness.
  • @gittensory chat &lt;question&gt; answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @gittensory mention with a real question is routed to the closest matching read-only command automatically -- no exact syntax required.

Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands

Visual preview
Route Viewport Before (production) After (this PR's preview) Diff
/docs/maintainer-self-hosting desktop before /docs/maintainer-self-hosting after /docs/maintainer-self-hosting
/docs/maintainer-self-hosting mobile before /docs/maintainer-self-hosting (mobile) after /docs/maintainer-self-hosting (mobile)
/docs/self-hosting-configuration desktop before /docs/self-hosting-configuration after /docs/self-hosting-configuration
/docs/self-hosting-configuration mobile before /docs/self-hosting-configuration (mobile) after /docs/self-hosting-configuration (mobile)

Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy.

🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed


💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →.

Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.

  • Re-run LoopOver review

Phase 7's .gittensory.yml -> .loopover.yml text substitution changed line
lengths enough to trip prettier's wrap rules; auto-fixed via eslint --fix.
@loopover-orb loopover-orb Bot added the manual-review Gittensor contributor context label Jul 14, 2026
…chain

The prior formatting commit ran against an incomplete local node_modules
(prettier wasn't actually installed), producing multi-line union-type
wraps that CI's pinned prettier 3.9.4 disagrees with. Re-running lint --fix
after a clean npm ci reverts those 5 files to the correct single-line form.
@JSONbored
JSONbored merged commit 9410302 into main Jul 14, 2026
19 of 20 checks passed
@JSONbored
JSONbored deleted the rebrand-phase7-docker-k8s branch July 14, 2026 10:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. manual-review Gittensor contributor context

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant