fix(config): warn on ambiguous gate.enabled without gate.checkMode#5375
Merged
Conversation
…5355) gate.enabled is a legacy boolean that only controls whether the "Gittensory Orb Review Agent" check-run publishes -- it has no effect on gate evaluation, spend, comments, labels, audit, or autonomous merge/close, and it silently loses to gate.checkMode whenever both are set. This ambiguity caused a real incident: restoring gate.enabled to recover unrelated behavior unexpectedly republished the check-run as a required CI status on all 3 self-hosted repos. Add a parse-time manifest warning whenever gate.enabled is set without an explicit gate.checkMode, so the ambiguity surfaces to a maintainer via the existing private-config-aware /focus-manifest API route instead of silently doing the wrong thing. Fix the one starter template that itself carried the ambiguous pattern, correct the self-contradicting "gate master switch" documentation across the full reference template and both docs pages, and clarify that the legacy "Gittensory Gate" check-run name is intentional upgrade-migration infrastructure, not dead code.
Contributor
|
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 | c014770 | Commit Preview URL Branch Preview URL |
Jul 12 2026, 03:31 PM |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5375 +/- ##
==========================================
- Coverage 94.41% 94.37% -0.04%
==========================================
Files 551 551
Lines 44168 44170 +2
Branches 14632 14633 +1
==========================================
- Hits 41702 41687 -15
- Misses 1791 1808 +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:
|
This was referenced Jul 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gate.enabledis a legacy boolean shorthand forgate.checkMode(true→required,false→disabled) that controls only whether the "Gittensory Orb Review Agent" check-run publishes to GitHub -- it has zero effect on gate evaluation, spend, comments, labels, audit, or autonomous merge/close, and it silently loses togate.checkModewhenever both are set. This exact ambiguity caused a real incident: restoringgate.enabled: trueon 2026-07-09 to recover unrelated behavior unexpectedly republished the check-run as a required CI status across all 3 self-hosted repos.gate.enabledis set without an explicitgate.checkMode, so this reaches a maintainer through the existing private-config-awareGET /v1/repos/:owner/:repo/focus-manifestAPI route instead of silently doing the wrong thing again.gittensory.minimal.yml, both copies) that itself carried the ambiguous pattern, and corrects the self-contradicting "gate master switch" documentation in the full reference template and bothdocs.tuning/docs.self-hosting-configurationpages."Gittensory Gate"check-run name is intentional upgrade-migration infrastructure (finalizes any pre-rename check-run still pending for a self-hoster upgrading mid-flight), not dead code.Fixes #5355.
Test plan
npm run typechecknpm run docs:drift-checknpm run ui:typechecknpm run ui:lintfocus-manifest.test.ts(warning fires only whencheckModeis absent, regardless ofenabled's value; does not fire when paired or when both are unset)focus-manifest-loader.test.ts(the warning survives the private-config loader path end to end, proving delivery via the maintainer-gated API route)config-templates.test.ts,selfhost-config-lint.test.ts(stale ambiguous-pattern fixtures now paircheckModeexplicitly)npm run test:ci) green, twice, aside from two transient timeout flakes under local CPU contention from a concurrent sibling-worktree run (unrelated tests, both reproduce as passing cleanly in isolation)