feat(miner)!: rename GITTENSORY_MINER_*/GITTENSORY_* env vars to LOOPOVER_MINER_*/LOOPOVER_* - #5707
Conversation
…OVER_MINER_*/LOOPOVER_* Phase 1 of the gittensory -> loopover rebrand epic (#5705). Full cutover, no dual-read: GITTENSORY_MINER_* (499 occurrences, 130 files -- the miner's entire env-var namespace, plus the self-host AMS-reporting family GITTENSORY_API_TOKEN_FILE/GITTENSORY_MCP_TOKEN_FILE/ GITTENSORY_MEM_LIMIT/GITTENSORY_REPORTING_*) all rename to their LOOPOVER_ equivalent. Regenerated packages/gittensory-miner/docs/env-reference.md last, per this repo's documented generator gotcha. BREAKING CHANGE: every GITTENSORY_MINER_*/GITTENSORY_API_TOKEN_FILE/ GITTENSORY_MCP_TOKEN_FILE/GITTENSORY_MEM_LIMIT/GITTENSORY_REPORTING_* env var an existing self-hosted AMS/miner deployment sets must be renamed to its LOOPOVER_ equivalent -- the old names are no longer read. Refs #5705
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
loopover-ui | 6ddf44e | Commit Preview URL Branch Preview URL |
Jul 14 2026, 06:18 AM |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5707 +/- ##
=======================================
Coverage 95.05% 95.05%
=======================================
Files 580 580
Lines 46127 46127
Branches 14793 14793
=======================================
Hits 43845 43845
Misses 1523 1523
Partials 759 759
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 LoopOver review result - fixes requiredReview updated: 2026-07-14 06:26:24 UTC
🛑 Suggested Action - Manual Review Review summary Nits — 5 non-blocking
Why this is blocked
📋 Copy for AI agents — paste into your coding agentCI checks failing
Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk 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.
Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands Visual preview
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.
|
…heus metric names to loopover-miner/loopover_miner_ Phase 1 (#5707) renamed GITTENSORY_MINER_*/GITTENSORY_* env vars but missed two things that env var still fell back to when unset: - The default local-store config directory (~/.config/gittensory-miner, used by governor-state/ledger/plan/prediction/portfolio-queue/run-state/ claim-ledger/event-ledger/ranked-candidates stores, laptop-init, status, repo-clone, and worktree-allocator) via local-store.js's shared resolveLocalStoreDbPath() helper -- now ~/.config/loopover-miner. - 8 Prometheus textfile-exporter metric names (gittensory_miner_events_total, gittensory_miner_portfolio_queue_{items,oldest_in_progress_lease_age_seconds}, gittensory_miner_governor_{rate_limit_remaining_ratio,cap_usage_ratio}, gittensory_miner_prediction{s,_correct,_incorrect}_total) and their matching prometheus/rules/alerts.yml expressions -- left unrenamed, the alert rules would have silently queried metric names that no longer exist. Also renames the miner-ui's own local dev-server auth cookie (gittensory_miner_ui_token -> loopover_miner_ui_token, apps/gittensory-miner-ui) -- a localhost-only dev cookie, not the core product's production session cookie (that one is tracked separately, out of scope here). BREAKING CHANGE: the miner's default config directory and every gittensory_miner_* Prometheus metric name changed; no dual-read/alias, per the epic's full-cutover mandate (#5705). A self-hoster's existing ~/.config/gittensory-miner state does not migrate automatically. Explicitly NOT touched (separate, larger, higher-risk scopes): - packages/gittensory-miner/bin/gittensory-miner-mcp.js's gittensory_miner_* MCP tool names and packages/gittensory-mcp's own tool names (Phase 4: MCP server + 96 tool names, external-client breaking change). - The .gittensory-miner.yml per-repo config filename and its ~30 references across the miner's goal-spec/config-precedence system (new, separate gap discovered while investigating this fix; needs its own dedicated pass, mirroring the .gittensory.yml -> .loopover.yml rename already done for the core product). - packages/gittensory-miner/ as a directory/package name, and the gittensory-miner CLI binary name (Phase 3/5).
…heus metric names (#5721) * fix(miner)!: full-cutover rename gittensory-miner config dir + Prometheus metric names to loopover-miner/loopover_miner_ Phase 1 (#5707) renamed GITTENSORY_MINER_*/GITTENSORY_* env vars but missed two things that env var still fell back to when unset: - The default local-store config directory (~/.config/gittensory-miner, used by governor-state/ledger/plan/prediction/portfolio-queue/run-state/ claim-ledger/event-ledger/ranked-candidates stores, laptop-init, status, repo-clone, and worktree-allocator) via local-store.js's shared resolveLocalStoreDbPath() helper -- now ~/.config/loopover-miner. - 8 Prometheus textfile-exporter metric names (gittensory_miner_events_total, gittensory_miner_portfolio_queue_{items,oldest_in_progress_lease_age_seconds}, gittensory_miner_governor_{rate_limit_remaining_ratio,cap_usage_ratio}, gittensory_miner_prediction{s,_correct,_incorrect}_total) and their matching prometheus/rules/alerts.yml expressions -- left unrenamed, the alert rules would have silently queried metric names that no longer exist. Also renames the miner-ui's own local dev-server auth cookie (gittensory_miner_ui_token -> loopover_miner_ui_token, apps/gittensory-miner-ui) -- a localhost-only dev cookie, not the core product's production session cookie (that one is tracked separately, out of scope here). BREAKING CHANGE: the miner's default config directory and every gittensory_miner_* Prometheus metric name changed; no dual-read/alias, per the epic's full-cutover mandate (#5705). A self-hoster's existing ~/.config/gittensory-miner state does not migrate automatically. Explicitly NOT touched (separate, larger, higher-risk scopes): - packages/gittensory-miner/bin/gittensory-miner-mcp.js's gittensory_miner_* MCP tool names and packages/gittensory-mcp's own tool names (Phase 4: MCP server + 96 tool names, external-client breaking change). - The .gittensory-miner.yml per-repo config filename and its ~30 references across the miner's goal-spec/config-precedence system (new, separate gap discovered while investigating this fix; needs its own dedicated pass, mirroring the .gittensory.yml -> .loopover.yml rename already done for the core product). - packages/gittensory-miner/ as a directory/package name, and the gittensory-miner CLI binary name (Phase 3/5). * test(miner): cover resolveDenyHookSynthesisDbPath's home-default fallback Every sibling local-store resolver (governor-ledger, laptop-init, plan-store, prediction-ledger, etc.) already has this exact "env override, config dir, XDG, then home default" test; deny-hook-synthesis.js was missing it, which is why the config-dir rename's line 75 touch dropped patch coverage below the gate's 99% target.


Summary
Phase 1 of #5705 (the gittensory -> loopover rebrand epic). Full cutover, no dual-read per explicit maintainer decision.
GITTENSORY_MINER_*->LOOPOVER_MINER_*across every file that reads/sets/documents it:packages/gittensory-miner/lib/**,packages/gittensory-engine/src/governor/{action-mode,kill-switch}.ts,k8s/miner-deployment.yaml,docker-compose.yml,systemd/*.service.example,grafana/provisioning/datasources/ams-ledgers.yml, allpackages/gittensory-miner/docs/*.md, the CLI's own--helptext options section, the miner extension's test-mode global flag.GITTENSORY_API_TOKEN_FILE,GITTENSORY_MCP_TOKEN_FILE,GITTENSORY_MEM_LIMIT,GITTENSORY_REPORTING_SOURCE_DB,GITTENSORY_REPORTING_DIR,GITTENSORY_REPORTING_DB,GITTENSORY_AMS_REPORTING_EXPORT_INTERVAL_SECONDS..env.example'sLOOPOVER_REPORTING_SOURCE_DBcomment illustrated the old/appdb/gittensory.sqlitevalue even thoughdocker-compose.yml's own real default was already/appdb/loopover.sqlite.(?:GITTENSORY_MINER|MINER)_— the literalGITTENSORY_MINER_substring never appears contiguously in that alternation) inpackages/gittensory-miner/lib/deployment-docs-audit.jsand its test.packages/gittensory-miner/docs/env-reference.mdlast, per this repo's own documented generator gotcha (regenerating early then adding more var changes re-breaks the file).Out of scope for this PR (tracked separately in #5705): directory names, the CLI binary name, the
@gittensorymention command, MCP server/tool names, internal code identifiers, Docker/k8s resource names, and doc prose — those are stillgittensory-branded pending their own phases.Breaking change
Every
GITTENSORY_MINER_*/GITTENSORY_API_TOKEN_FILE/GITTENSORY_MCP_TOKEN_FILE/GITTENSORY_MEM_LIMIT/GITTENSORY_REPORTING_*env var an existing self-hosted AMS/miner deployment sets today must be renamed to itsLOOPOVER_equivalent — the old names are no longer read anywhere. No dual-read period, per explicit decision (this repo already has precedent for dual-read env migrations from #4774, deliberately not used here).Test plan
node --checkon every changed.jsfile, JSON schema validatednpx tsc --noEmit --incremental falsecleannpm run miner:env-reference(regenerated) +:checkcleannpm run selfhost:env-reference:checkclean (confirms zero unintended overlap with the main worker's own env-var family)npm run test:coverage(unsharded): 831/831 test files, 16146/16146 tests pass, exit 0selfhost-ai.test.ts, untouched by this PR) confirmed passing 165/165 in isolated retryRefs #5705