feat!: remove the gateCheckMode field from RepositorySettings entirely - #5459
Conversation
#5373) Final stage of the #5373 staged removal: gateCheckMode is gone from RepositorySettings (src/types.ts), its canonical derivation site (applyGateConfigOverrides in src/signals/focus-manifest.ts), the DB layer's default/read population (src/db/repositories.ts), and the last OpenAPI schema occurrence (RepositorySettingsSchema) -- the field no longer exists anywhere in the main app's type system. All prior stages (internal passthroughs, the DB column, registration- readiness/settings-preview responses, the maintainer-activation surface) already merged, so this lands the field's last remaining uses: it can now only ever exist as raw JSON request-body noise (silently ignored, same as any other unknown key) or as the gittensory-engine package's own separate .gittensory.yml back-compat parser (packages/gittensory-engine/**, untouched -- a distinct, published npm package with its own removal timeline). Updates every test that read/wrote the field directly: deletes the now-compile-time-impossible "gateCheckMode is a no-op write input" assertions (repository-settings-review-check-mode.test.ts, gate-check-policy.test.ts), replaces "unrelated settings preserved" checks with the real reviewCheckMode value (routes-ai-byok.test.ts, integration/api.test.ts), and updates stale comments referencing a field that no longer exists. This is an atomic, must-land-together change (removing the field breaks every remaining reference at once) -- cannot be split further without a temporary compatibility shim.
|
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 |
gittensory-ui | 538f59a | Commit Preview URL Branch Preview URL |
Jul 12 2026, 08:26 PM |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5459 +/- ##
==========================================
- Coverage 94.48% 94.44% -0.04%
==========================================
Files 554 554
Lines 44453 44451 -2
Branches 14662 14660 -2
==========================================
- Hits 42002 41983 -19
- Misses 1776 1793 +17
Partials 675 675
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-12 20:31:55 UTC
⏸️ Suggested Action - Manual Review Review summary Nits — 5 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 Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
…pat parsing (#5373) (#5463) Final stage of the gateCheckMode removal (stage 2.10/2.10): the RepositorySettings field itself was removed in #5459, but @jsonbored/gittensory-engine's own .gittensory.yml parser still recognized a bare settings.gateCheckMode key and derived reviewCheckMode from it for back-compat. Remove that derivation, the FocusManifestSettings type entry, and the deprecated field on manifest-deps-types.ts's RepositorySettings mirror. settings.gateCheckMode is now an unrecognized key: it parses into nothing and derives nothing. settings.reviewCheckMode remains the sole, unambiguous publish-authority key. Blast radius: parseFocusManifest/parseFocusManifestContent are the only public exports touched. @jsonbored/gittensory-mcp doesn't reference this code path at all; @jsonbored/gittensory-miner calls parseFocusManifestContent but never reads gateCheckMode/ reviewCheckMode from the result, and isn't itself published to npm. publish-engine.yml is workflow_dispatch-only, so merging this does not itself publish anything. The package.json version is already 1.0.0 (#4686, merged, not yet published -- npm still serves 0.2.0) -- bundling this breaking removal into that not-yet-shipped 1.0.0 is the right time to shed this back-compat parsing before the package commits to a stable surface, rather than requiring a separate future major bump for the same change. Also drops a now-dead SETTINGS_ALIAS_MANIFEST row in check-docs-drift.mjs left over from the RepositorySettings-level removal in #5459 (gateCheckMode is no longer iterated as a field to alias-check at all).


Summary
Final stage of #5373's staged removal plan.
gateCheckModeis gone fromRepositorySettings(src/types.ts), its canonical derivation site (applyGateConfigOverridesinsrc/signals/focus-manifest.ts), the DB layer's default/read population (src/db/repositories.ts), and the last OpenAPI schema occurrence (RepositorySettingsSchema) -- the field no longer exists anywhere in the main app's type system.All prior stages already merged (internal passthroughs #5440, the DB column #5446, registration-readiness/settings-preview responses #5454, the maintainer-activation surface #5455), so this lands the field's last remaining uses. Going forward it can only ever exist as raw JSON request-body noise (silently ignored, same as any other unknown key) or inside
gittensory-engine's own separate.gittensory.ymlback-compat parser (packages/gittensory-engine/**, deliberately untouched -- a distinct, published npm package with its own removal timeline, tracked as the final #5373 stage).Updates every test that read/wrote the field directly:
repository-settings-review-check-mode.test.ts,gate-check-policy.test.ts) -- the type system enforces this more strongly than a runtime test ever could.reviewCheckModevalue (routes-ai-byok.test.ts,integration/api.test.ts).This is an atomic, must-land-together change (removing the field breaks every remaining reference at once) -- cannot be split further without a temporary compatibility shim, consistent with this repo's own precedent for a comparable mechanical field removal (#4012, 27 files in one shot).
Test plan
npm run typechecknpm run ui:typechecknpm run docs:drift-check(103 RepositorySettings fields, down from 104)npm run ui:openapi:settings-parityfocus-manifest.test.ts,gate-check-policy.test.ts,maintainer-activation.test.ts,repository-settings-review-check-mode.test.ts,routes-ai-byok.test.ts,queue-4.test.ts-- 878/878integration/api.test.ts,integration/maintainer-activation.test.ts-- 53/53backfill,queue/queue-2/queue-3/queue-5,queue-lifecycle-guards,registration-readiness,settings-preview,self-dogfood-registration-pack,signals-coverage) -- 1131/1131gateCheckModereferences outsidepackages/gittensory-engine/**(its own separate, intentionally-untouched copy) and inert request-body/comment mentions