From ea5d4023589b8595ec2a51223d61430835cc0152 Mon Sep 17 00:00:00 2001 From: Matthew Goodwin Date: Thu, 29 Oct 2026 08:18:40 -0500 Subject: [PATCH 1/2] settings: register review.ruleSelector Co-Authored-By: Claude Opus 5.5 --- apps/console/src/app/settings/groups.ts | 7 +++++++ packages/rt-client/src/settings/registry-defs.ts | 8 ++++++++ packages/rt-client/src/settings/registry-schemas.ts | 1 + packages/rt-client/src/settings/schema.lock.json | 7 +++++++ 4 files changed, 23 insertions(+) diff --git a/apps/console/src/app/settings/groups.ts b/apps/console/src/app/settings/groups.ts index a1f40838c..5635fed90 100644 --- a/apps/console/src/app/settings/groups.ts +++ b/apps/console/src/app/settings/groups.ts @@ -69,6 +69,13 @@ export const GROUPS: Group[] = [ blurb: 'How rt lays out the MR and PR descriptions it writes.', match: prefix('rt.evidence.'), }, + { + id: 'review', + label: 'Reviews', + tier: 'rt', + blurb: 'How the team pack runs its reviews.', + match: prefix('review.'), + }, { id: 'notifications', label: 'Notifications & gates', diff --git a/packages/rt-client/src/settings/registry-defs.ts b/packages/rt-client/src/settings/registry-defs.ts index 634b2d536..3629bef15 100644 --- a/packages/rt-client/src/settings/registry-defs.ts +++ b/packages/rt-client/src/settings/registry-defs.ts @@ -306,6 +306,14 @@ const ROWS: readonly SettingDef[] = [ repoScoped: true, description: "Fold each case's screenshots in the evidence section rt writes into an MR or PR description, behind a summary that names the case, so reviewers scroll past them to the approvals and pipeline.", }, + { + key: "review.ruleSelector", + type: "boolean", + scopes: ["org", "team", "user", "machine"], + default: false, + merge: "replace", + description: "Turns on the team pack's review rule selector. The pack's rule-selector fill reads it on every review.", + }, { key: "rt.logLevel", type: "string", diff --git a/packages/rt-client/src/settings/registry-schemas.ts b/packages/rt-client/src/settings/registry-schemas.ts index 60cd960e0..09a29e5a6 100644 --- a/packages/rt-client/src/settings/registry-schemas.ts +++ b/packages/rt-client/src/settings/registry-schemas.ts @@ -122,6 +122,7 @@ const sdmResourceEntry = z.looseObject({ export const SCHEMAS = { "rt.roles": z.record(z.string(), role), + "review.ruleSelector": z.boolean(), "rt.intercepts": z.array(z.looseObject({ command: z.string().min(1), matches: z.array(interceptMatch) })), "rt.worktrees": z.looseObject({ onDeck: z.number().optional(), diff --git a/packages/rt-client/src/settings/schema.lock.json b/packages/rt-client/src/settings/schema.lock.json index d951d9447..0bd0fa67e 100644 --- a/packages/rt-client/src/settings/schema.lock.json +++ b/packages/rt-client/src/settings/schema.lock.json @@ -1162,6 +1162,13 @@ "additionalProperties": {} } }, + "review.ruleSelector": { + "storeVersion": 1, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "boolean" + } + }, "rt.branchNaming": { "storeVersion": 1, "schema": { From b035dee6f431d15ec2ba7cd0325007044db999d4 Mon Sep 17 00:00:00 2001 From: Matthew Goodwin Date: Thu, 29 Oct 2026 08:31:00 -0500 Subject: [PATCH 2/2] settings: review.ruleSelector review fixes Co-Authored-By: Claude Opus 5.5 --- .../src/settings/__tests__/registry-console-ready.test.ts | 1 + packages/rt-client/src/settings/__tests__/registry.test.ts | 3 ++- packages/rt-client/src/settings/registry-defs.ts | 2 +- packages/rt-client/src/settings/registry-schemas.ts | 1 - packages/rt-client/src/settings/schema.lock.json | 7 ------- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/rt-client/src/settings/__tests__/registry-console-ready.test.ts b/packages/rt-client/src/settings/__tests__/registry-console-ready.test.ts index d1592e68b..7913f8738 100644 --- a/packages/rt-client/src/settings/__tests__/registry-console-ready.test.ts +++ b/packages/rt-client/src/settings/__tests__/registry-console-ready.test.ts @@ -66,6 +66,7 @@ const NO_SCHEMA_YET: readonly string[] = [ "rt.gates.escalationTtlMinutes", "rt.logLevel", "rt.logRetentionDays", + "review.ruleSelector", "rt.runsPruneDays", "rt.ui.background", "rt.worktreeMergeCleanupNotice", diff --git a/packages/rt-client/src/settings/__tests__/registry.test.ts b/packages/rt-client/src/settings/__tests__/registry.test.ts index a6a25d84b..1c839ca42 100644 --- a/packages/rt-client/src/settings/__tests__/registry.test.ts +++ b/packages/rt-client/src/settings/__tests__/registry.test.ts @@ -418,8 +418,9 @@ describe("settings/registry", () => { "telemetry.enabled", "rt.evidence.foldScreenshots", "rt.notify.sounds", + "review.ruleSelector", ]; - expect(suiteKeys).toHaveLength(101); + expect(suiteKeys).toHaveLength(102); expect(allDefs().map((d) => d.key).sort()).toEqual( [...migratedFalseKeys, ...migratedTrueKeys, ...suiteKeys].sort(), diff --git a/packages/rt-client/src/settings/registry-defs.ts b/packages/rt-client/src/settings/registry-defs.ts index 3629bef15..2f14c1c75 100644 --- a/packages/rt-client/src/settings/registry-defs.ts +++ b/packages/rt-client/src/settings/registry-defs.ts @@ -309,7 +309,7 @@ const ROWS: readonly SettingDef[] = [ { key: "review.ruleSelector", type: "boolean", - scopes: ["org", "team", "user", "machine"], + scopes: ["team", "user", "machine"], default: false, merge: "replace", description: "Turns on the team pack's review rule selector. The pack's rule-selector fill reads it on every review.", diff --git a/packages/rt-client/src/settings/registry-schemas.ts b/packages/rt-client/src/settings/registry-schemas.ts index 09a29e5a6..60cd960e0 100644 --- a/packages/rt-client/src/settings/registry-schemas.ts +++ b/packages/rt-client/src/settings/registry-schemas.ts @@ -122,7 +122,6 @@ const sdmResourceEntry = z.looseObject({ export const SCHEMAS = { "rt.roles": z.record(z.string(), role), - "review.ruleSelector": z.boolean(), "rt.intercepts": z.array(z.looseObject({ command: z.string().min(1), matches: z.array(interceptMatch) })), "rt.worktrees": z.looseObject({ onDeck: z.number().optional(), diff --git a/packages/rt-client/src/settings/schema.lock.json b/packages/rt-client/src/settings/schema.lock.json index 0bd0fa67e..d951d9447 100644 --- a/packages/rt-client/src/settings/schema.lock.json +++ b/packages/rt-client/src/settings/schema.lock.json @@ -1162,13 +1162,6 @@ "additionalProperties": {} } }, - "review.ruleSelector": { - "storeVersion": 1, - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "boolean" - } - }, "rt.branchNaming": { "storeVersion": 1, "schema": {