chore(config): retire the .gittensory.yml config-filename dual-read shim - #5651
Conversation
The config-filename grace period from the LoopOver rebrand has elapsed: drop legacy .gittensory.yml/.yaml/.json support from every reader now that the new .loopover.yml name is the only one read. - src/selfhost/private-config.ts: collapse CONFIG_BASENAMES/CONFIG_EXTENSIONS to the 3 .loopover.* entries, drop the 3 legacy .gittensory.* entries, rewrite the module-header comment. - src/signals/focus-manifest-loader.ts: drop the 4 legacy entries from MANIFEST_FILE_CANDIDATES, strip dual-brand language from the doc comments. - src/review/guardrail-config.ts and its hand-duplicated engine twin (packages/gittensory-engine/src/review/guardrail-config.ts): drop the 6 legacy globs from CONFIG_AS_CODE_GUARDRAIL_GLOBS. - packages/gittensory-engine/src/objective-anchor.ts: drop the legacy entry from the CONFIG_FILENAMES classification set. - packages/gittensory-engine/src/predicted-gate.ts: drop the legacy filename from the predictor's public-facing note text; regenerate the engine-parity golden fixtures to match. - src/queue/processors.ts: drop the legacy filename from the E2E-test-gen-not-enabled comment posted to contributors. - Renames this repo's own root config file (.gittensory.yml -> .loopover.yml, .gittensory.yml.example -> .loopover.yml.example) to dogfood the new-only behavior. - Updates every affected test: removes/collapses the dual-brand describe blocks, and fixes stub fetch-URL matchers and expected-string assertions that were still keyed on the old filename (several of these were silent regressions -- a stale ".gittensory.y" URL matcher meant a test's manifest stub was never hit, and it was instead falling through to a real bundled fallback manifest). - Updates docs: config/examples/, CONTRIBUTING.md, README.md, the self-hosting doc pages, and the contributing-to-loopover skill. Part of #4777.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
loopover-ui | ee81b1a | Commit Preview URL Branch Preview URL |
Jul 13 2026, 08:33 PM |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5651 +/- ##
==========================================
- Coverage 95.03% 95.03% -0.01%
==========================================
Files 577 577
Lines 45920 45920
Branches 14695 14695
==========================================
- Hits 43640 43638 -2
Misses 1528 1528
- Partials 752 754 +2
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-13 20:39:59 UTC
⏸️ Suggested Action - Manual Review Review summary Nits — 4 non-blocking
Concerns raised — review before merging
📋 Copy for AI agents — paste into your coding agent
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.
|






Summary
.gittensory.yml/.yaml/.jsonconfig-filename dual-read shim:.loopover.yml(and its.yaml/.json/.github/-nested variants, depending on the reader) is now the only config filename read anywhere in the app, the engine package, the MCP CLI, and the miner package..gittensory.yml->.loopover.yml,.gittensory.yml.example->.loopover.yml.example) to dogfood the new-only behavior.gittensory_predict_gateMCP tool's note text, and the "E2E test generation is not enabled" PR comment), and regenerates the engine-parity golden fixtures that pinned the old text..gittensory.y-substring URL matcher meant a test's manifest stub was never actually hit anymore, so the load silently fell through to a real fallback manifest instead (caught by a full localtest:cirun, not by inspection).config/examples/,CONTRIBUTING.md,README.md, the self-hosting doc pages, thecontributing-to-loopoverskill) to stop mentioning the retired legacy filename.Part of #4777.
Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally (full unsharded run, twice — first pass caught 17 real test regressions across 7 files from the filename retirement, all fixed and reverified)npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateAlso ran the full
npm run test:cigate end to end (the exacttest:ciscript), which additionally coversdb:migrations:check,db:schema-drift:check,selfhost:env-reference:check,miner:env-reference:check,selfhost:validate-observability,cf-typegen:check,test:engine-parity,test:live-gate-parity,test:driver-parity, the@loopover/engineworkspace's own test run,build:miner,test:miner-pack,rees:test,ui:openapi:settings-parity,ui:version-audit,docs:drift-check,manifest:drift-check,engine-parity:drift-check, andcommand-reference:check— all green.Safety
gittensory_validate_config/loopover_validate_configMCP tool description and CLI help text no longer mention the retired filename).UI Evidencesection below with screenshots. Skipped: everyapps/gittensory-uichange in this PR is a documentation-copy edit removing a stale "(legacy.gittensory.ymlalso still works)" clause from existing doc-page prose — no layout, styling, or component change, so there is nothing a screenshot would show differently.CHANGELOG.mdtouched — historical entries describing the filename as it was at the time are left as-is, since they're a historical record, not current documentation.)UI Evidence
N/A — see the Safety section above. This PR's only
apps/gittensory-uichanges are prose edits on existing doc pages (removing a now-false "legacy filename also works" clause); no visible layout/styling/component difference exists to screenshot.Notes
config/examples/*.gittensory.yml(and the root.gittensory.minimal.yml) intentionally keep their illustrative filenames unchanged — they are copy-source templates, not files ever read directly by the app (their own doc comments already say "copy this to.loopover.yml"). Renaming those is a separate, broader asset-rebrand concern outside this PR's scope (the config-filename dual-read shim)..gittensory.ymlas a general "where this setting lives" reference (e.g. severalsrc/settings/**,src/review/**, andpackages/gittensory-engine/src/**modules, plus historicalCHANGELOG.mdentries). None of these are part of the dual-read shim itself — they're documentation prose scattered across otherwise-unrelated modules — and updating all of them here would make this PR far larger than the "config-filename dual-read" subsystem this issue tracks; leaving them for a follow-up sweep.