Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .gittensory.yml.example
Original file line number Diff line number Diff line change
Expand Up @@ -668,13 +668,6 @@ settings:
# Bool. Default: false.
agentDryRun: false

# Per-repo override of the GLOBAL DB-backed agent freeze (the operator kill-switch an operator flips with
# one row, no redeploy): when true, THIS repo's actions execute even while the global freeze is on, so an
# operator can re-activate one repo at a time without lifting the fleet-wide brake. Never overrides the
# AGENT_ACTIONS_PAUSED env var (that hard stop always wins), and agentPaused above on this same repo still
# wins over this too. Bool. Default: false.
agentGlobalFreezeOverride: false

# Four independent label families, none of which gates or silently disables another (#label-decoupling,
# #label-scoping):
# 1. Context label (`gittensorLabel`, gated by `autoLabelEnabled` above) — the base per-PR marker shown
Expand Down
7 changes: 0 additions & 7 deletions config/examples/gittensory.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -681,13 +681,6 @@ settings:
# Bool. Default: false.
agentDryRun: false

# Per-repo override of the GLOBAL DB-backed agent freeze (the operator kill-switch an operator flips with
# one row, no redeploy): when true, THIS repo's actions execute even while the global freeze is on, so an
# operator can re-activate one repo at a time without lifting the fleet-wide brake. Never overrides the
# AGENT_ACTIONS_PAUSED env var (that hard stop always wins), and agentPaused above on this same repo still
# wins over this too. Bool. Default: false.
agentGlobalFreezeOverride: false

# Four independent label families, none of which gates or silently disables another (#label-decoupling,
# #label-scoping):
# 1. Context label (`gittensorLabel`, gated by `autoLabelEnabled` above) — the base per-PR marker shown
Expand Down
3 changes: 1 addition & 2 deletions packages/gittensory-engine/src/focus-manifest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,6 @@ export type FocusManifestSettings = Partial<
| "autoMaintain"
| "agentPaused"
| "agentDryRun"
| "agentGlobalFreezeOverride"
| "commandAuthorization"
| "contributorBlacklist"
| "blacklistLabel"
Expand Down Expand Up @@ -1660,7 +1659,7 @@ function parseSettingsOverride(value: JsonValue | undefined, warnings: string[])
}
const publicSurface = normalizeOptionalEnum(r.publicSurface, "settings.publicSurface", ["off", "comment_and_label", "comment_only", "label_only"] as const, warnings);
if (publicSurface !== null) out.publicSurface = publicSurface;
for (const key of ["aiReviewByok", "aiReviewAllAuthors", "closeOwnerAuthors", "autoLabelEnabled", "typeLabelsEnabled", "badgeEnabled", "publicQualityMetrics", "createMissingLabel", "includeMaintainerAuthors", "requireLinkedIssue", "backfillEnabled", "agentPaused", "agentDryRun", "agentGlobalFreezeOverride"] as const) {
for (const key of ["aiReviewByok", "aiReviewAllAuthors", "closeOwnerAuthors", "autoLabelEnabled", "typeLabelsEnabled", "badgeEnabled", "publicQualityMetrics", "createMissingLabel", "includeMaintainerAuthors", "requireLinkedIssue", "backfillEnabled", "agentPaused", "agentDryRun"] as const) {
const flag = normalizeOptionalBoolean(r[key], `settings.${key}`, warnings);
if (flag !== null) out[key] = flag;
}
Expand Down
8 changes: 3 additions & 5 deletions test/unit/focus-manifest.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,6 @@ describe(".gittensory.yml.example field-exhaustiveness (#1670)", () => {
autoMaintain: "autoMaintain:",
agentPaused: "agentPaused:",
agentDryRun: "agentDryRun:",
agentGlobalFreezeOverride: "agentGlobalFreezeOverride:",
commandAuthorization: "commandAuthorization:",
contributorBlacklist: "contributorBlacklist:",
blacklistLabel: "blacklistLabel:",
Expand Down Expand Up @@ -1856,11 +1855,10 @@ describe("parseFocusManifest settings override + resolveEffectiveSettings", () =
includeMaintainerAuthors: true,
requireLinkedIssue: true,
backfillEnabled: false,
agentGlobalFreezeOverride: true,
});
// #4372: the yml override wins over the DB value via resolveEffectiveSettings's spread, same as every
// other generic settings: field.
expect(resolveEffectiveSettings({ agentGlobalFreezeOverride: false } as unknown as RepositorySettings, m).agentGlobalFreezeOverride).toBe(true);
// Operator-only freeze overrides are deliberately not config-as-code fields; a maintainer-owned
// manifest must not be able to bypass the DB-backed global freeze.
expect(resolveEffectiveSettings({ agentGlobalFreezeOverride: false } as unknown as RepositorySettings, m).agentGlobalFreezeOverride).toBe(false);
});

it("drops invalid settings values with warnings and keeps the valid ones", () => {
Expand Down