diff --git a/apps/gittensory-ui/public/openapi.json b/apps/gittensory-ui/public/openapi.json
index 058ceb7fdb..7e8bf011c6 100644
--- a/apps/gittensory-ui/public/openapi.json
+++ b/apps/gittensory-ui/public/openapi.json
@@ -8732,8 +8732,7 @@
"type": "string",
"enum": [
"minimal",
- "standard",
- "deep"
+ "standard"
]
},
"gateCheckMode": {
@@ -10138,8 +10137,7 @@
"type": "string",
"enum": [
"minimal",
- "standard",
- "deep"
+ "standard"
]
},
"gateCheckMode": {
@@ -10655,8 +10653,7 @@
"type": "string",
"enum": [
"minimal",
- "standard",
- "deep"
+ "standard"
]
}
},
diff --git a/apps/gittensory-ui/src/components/site/app-panels/maintainer-panel.tsx b/apps/gittensory-ui/src/components/site/app-panels/maintainer-panel.tsx
index f7c38c0c2c..42a182d19a 100644
--- a/apps/gittensory-ui/src/components/site/app-panels/maintainer-panel.tsx
+++ b/apps/gittensory-ui/src/components/site/app-panels/maintainer-panel.tsx
@@ -716,7 +716,7 @@ export function PreviewResult({
{preview.checkRun?.willCreate ? (
) : null}
diff --git a/apps/gittensory-ui/src/components/site/app-panels/maintainer-settings.tsx b/apps/gittensory-ui/src/components/site/app-panels/maintainer-settings.tsx
index 0ec52cfa6f..5c71d9d2f7 100644
--- a/apps/gittensory-ui/src/components/site/app-panels/maintainer-settings.tsx
+++ b/apps/gittensory-ui/src/components/site/app-panels/maintainer-settings.tsx
@@ -20,7 +20,7 @@ type MaintainerSettings = {
publicSignalLevel: "minimal" | "standard";
publicSurface: "off" | "comment_and_label" | "comment_only" | "label_only";
checkRunMode: "off" | "enabled";
- checkRunDetailLevel: "minimal" | "standard" | "deep";
+ checkRunDetailLevel: "minimal" | "standard";
// #4618: gateCheckMode is deprecated (a computed read-back value only) -- reviewCheckMode is the real,
// writable authority for whether the review-agent check-run publishes.
reviewCheckMode: "required" | "visible" | "disabled";
@@ -266,7 +266,6 @@ const SURFACE_FIELDS: FieldDef[] = [
options: [
["minimal", "minimal"],
["standard", "standard"],
- ["deep", "deep"],
],
},
{ key: "includeMaintainerAuthors", label: "Include maintainer-authored PRs", kind: "toggle" },
diff --git a/apps/gittensory-ui/src/components/site/check-run-readiness-model.ts b/apps/gittensory-ui/src/components/site/check-run-readiness-model.ts
index f1a6cf74fb..e826da18d7 100644
--- a/apps/gittensory-ui/src/components/site/check-run-readiness-model.ts
+++ b/apps/gittensory-ui/src/components/site/check-run-readiness-model.ts
@@ -2,7 +2,7 @@
// details slice — mirrors the public-safe band shape from buildExtensionPrStatus (src/signals/
// extension-contributor-context.ts) so the UI never renders raw readiness scores.
-export type CheckRunDetailLevel = "minimal" | "standard" | "deep";
+export type CheckRunDetailLevel = "minimal" | "standard";
export type ReadinessComponentBand = "met" | "partial" | "unmet";
diff --git a/apps/gittensory-ui/src/components/site/check-run-readiness-table.test.tsx b/apps/gittensory-ui/src/components/site/check-run-readiness-table.test.tsx
index 5335f1dc10..438296ac35 100644
--- a/apps/gittensory-ui/src/components/site/check-run-readiness-table.test.tsx
+++ b/apps/gittensory-ui/src/components/site/check-run-readiness-table.test.tsx
@@ -22,10 +22,9 @@ const SAMPLE: CheckRunReadinessTableData = {
};
describe("shouldShowCheckRunReadinessTable", () => {
- it("shows at standard and deep, hides at minimal", () => {
+ it("shows at standard, hides at minimal", () => {
expect(shouldShowCheckRunReadinessTable("minimal")).toBe(false);
expect(shouldShowCheckRunReadinessTable("standard")).toBe(true);
- expect(shouldShowCheckRunReadinessTable("deep")).toBe(true);
});
});
@@ -34,10 +33,9 @@ describe("resolveCheckRunReadinessView", () => {
expect(resolveCheckRunReadinessView({ detailLevel: "minimal", readiness: SAMPLE })).toBeNull();
});
- it("returns null for an empty readiness component set at standard (both gate-off and gate-on shapes)", () => {
+ it("returns null for an empty readiness component set at standard", () => {
const empty: CheckRunReadinessTableData = { readinessBand: "early", components: [] };
expect(resolveCheckRunReadinessView({ detailLevel: "standard", readiness: empty })).toBeNull();
- expect(resolveCheckRunReadinessView({ detailLevel: "deep", readiness: empty })).toBeNull();
});
it("returns the readiness payload at standard when components are present", () => {
diff --git a/packages/gittensory-engine/src/focus-manifest.ts b/packages/gittensory-engine/src/focus-manifest.ts
index 7dfc4bc9b8..217f8fd314 100644
--- a/packages/gittensory-engine/src/focus-manifest.ts
+++ b/packages/gittensory-engine/src/focus-manifest.ts
@@ -1712,7 +1712,7 @@ function parseSettingsOverride(value: JsonValue | undefined, warnings: string[],
if (publicSignalLevel !== null) out.publicSignalLevel = publicSignalLevel;
const checkRunMode = normalizeOptionalEnum(r.checkRunMode, "settings.checkRunMode", ["off", "enabled"] as const, warnings);
if (checkRunMode !== null) out.checkRunMode = checkRunMode;
- const checkRunDetailLevel = normalizeOptionalEnum(r.checkRunDetailLevel, "settings.checkRunDetailLevel", ["minimal", "standard", "deep"] as const, warnings);
+ const checkRunDetailLevel = normalizeOptionalEnum(r.checkRunDetailLevel, "settings.checkRunDetailLevel", ["minimal", "standard"] as const, warnings);
if (checkRunDetailLevel !== null) out.checkRunDetailLevel = checkRunDetailLevel;
// #4618: gateCheckMode is deprecated (a computed read-back value everywhere else) but this yml key still
// parses for back-compat with existing `.gittensory.yml` files. A manifest setting ONLY gateCheckMode
diff --git a/packages/gittensory-engine/src/types/manifest-deps-types.ts b/packages/gittensory-engine/src/types/manifest-deps-types.ts
index b180147d66..a85ce8f85a 100644
--- a/packages/gittensory-engine/src/types/manifest-deps-types.ts
+++ b/packages/gittensory-engine/src/types/manifest-deps-types.ts
@@ -143,7 +143,7 @@ export type RepositorySettings = {
publicAudienceMode: "oss_maintainer" | "gittensor_only";
publicSignalLevel: "minimal" | "standard";
checkRunMode: "off" | "enabled";
- checkRunDetailLevel: "minimal" | "standard" | "deep";
+ checkRunDetailLevel: "minimal" | "standard";
gateCheckMode: "off" | "enabled";
/** Scheduled re-gate sweep candidate ordering (#3815). `staleness` (default) picks whichever open PR the
* sweep has gone longest WITHOUT re-gating (see selectRegateCandidates), which is what gives the sweep its
diff --git a/src/api/routes.ts b/src/api/routes.ts
index a076a56d62..d7397fc360 100644
--- a/src/api/routes.ts
+++ b/src/api/routes.ts
@@ -667,7 +667,7 @@ const repositorySettingsSchema = z.object({
// Matches repository_settings.check_run_detail_level's own column default (#2907) -- the Context check's
// public output is intentionally minimal by design (see formatCheckRunOutput's doc comment), so a caller of
// this full-replace route that omits this field must land on the same safe default as a never-configured row.
- checkRunDetailLevel: z.enum(["minimal", "standard", "deep"]).default("minimal"),
+ checkRunDetailLevel: z.enum(["minimal", "standard"]).default("minimal"),
regateSweepOrderMode: z.enum(["staleness", "oldest-first"]).default("staleness"),
// #4618: gateCheckMode dropped from this write schema -- it is a computed read-back value only (see its
// doc comment on RepositorySettings). Set reviewCheckMode directly.
@@ -720,7 +720,7 @@ const maintainerSettingsSchema = z
publicSignalLevel: z.enum(["minimal", "standard"]),
publicSurface: z.enum(["off", "comment_and_label", "comment_only", "label_only"]),
checkRunMode: z.enum(["off", "enabled"]),
- checkRunDetailLevel: z.enum(["minimal", "standard", "deep"]),
+ checkRunDetailLevel: z.enum(["minimal", "standard"]),
regateSweepOrderMode: z.enum(["staleness", "oldest-first"]),
reviewCheckMode: z.enum(["required", "visible", "disabled"]),
gatePack: z.enum(["gittensor", "oss-anti-slop"]),
diff --git a/src/db/repositories.ts b/src/db/repositories.ts
index 2dcf58f482..80e687b920 100644
--- a/src/db/repositories.ts
+++ b/src/db/repositories.ts
@@ -7344,8 +7344,9 @@ function parseCheckRunMode(value: string): RepositorySettings["checkRunMode"] {
}
function parseCheckRunDetailLevel(value: string): RepositorySettings["checkRunDetailLevel"] {
- if (value === "minimal" || value === "deep") return value;
- return "standard";
+ // #4620: a pre-#4620 row persisted as "deep" degrades to "standard" here -- the two were always
+ // behaviorally identical (see the type's own doc comment), so this is a display-only fallback.
+ return value === "minimal" ? "minimal" : "standard";
}
function parseRegateSweepOrderMode(value: string): RepositorySettings["regateSweepOrderMode"] {
diff --git a/src/github/app.ts b/src/github/app.ts
index 799b3ffaac..e8a426ea71 100644
--- a/src/github/app.ts
+++ b/src/github/app.ts
@@ -697,7 +697,7 @@ export async function createOrUpdateCheckRun(
installationId: number,
repoFullName: string,
advisory: Advisory,
- detailLevel: "minimal" | "standard" | "deep" = "minimal",
+ detailLevel: "minimal" | "standard" = "minimal",
annotationContext?: CheckRunAnnotationContext,
mode: AgentActionMode = "live",
): Promise {
diff --git a/src/openapi/schemas.ts b/src/openapi/schemas.ts
index 599297a7f9..334292f216 100644
--- a/src/openapi/schemas.ts
+++ b/src/openapi/schemas.ts
@@ -669,7 +669,7 @@ export const RepositorySettingsSchema = z
publicAudienceMode: z.enum(["oss_maintainer", "gittensor_only"]),
publicSignalLevel: z.enum(["minimal", "standard"]),
checkRunMode: z.enum(["off", "enabled"]),
- checkRunDetailLevel: z.enum(["minimal", "standard", "deep"]),
+ checkRunDetailLevel: z.enum(["minimal", "standard"]),
gateCheckMode: z.enum(["off", "enabled"]),
regateSweepOrderMode: z.enum(["staleness", "oldest-first"]),
reviewCheckMode: z.enum(["required", "visible", "disabled"]),
@@ -848,7 +848,7 @@ export const RepoSettingsPreviewSchema = z
publicAudienceMode: z.enum(["oss_maintainer", "gittensor_only"]),
publicSignalLevel: z.enum(["minimal", "standard"]),
checkRunMode: z.enum(["off", "enabled"]),
- checkRunDetailLevel: z.enum(["minimal", "standard", "deep"]),
+ checkRunDetailLevel: z.enum(["minimal", "standard"]),
gateCheckMode: z.enum(["off", "enabled"]),
regateSweepOrderMode: z.enum(["staleness", "oldest-first"]),
reviewCheckMode: z.enum(["required", "visible", "disabled"]),
@@ -943,7 +943,7 @@ export const RepoSettingsPreviewSchema = z
.object({
willCreate: z.boolean(),
title: z.string(),
- detailLevel: z.enum(["minimal", "standard", "deep"]),
+ detailLevel: z.enum(["minimal", "standard"]),
})
.nullable(),
checkRunReadiness: z
diff --git a/src/rules/advisory.ts b/src/rules/advisory.ts
index 72dc281bbf..281004b7bf 100644
--- a/src/rules/advisory.ts
+++ b/src/rules/advisory.ts
@@ -382,7 +382,7 @@ function annotatablePullRequestFiles(files: PullRequestFileRecord[]): PullReques
export function buildCheckRunAnnotations(
advisoryResult: Advisory,
annotationContext: CheckRunAnnotationContext | undefined,
- detailLevel: "minimal" | "standard" | "deep" = "minimal",
+ detailLevel: "minimal" | "standard" = "minimal",
): CheckRunAnnotationBuildResult {
if (detailLevel === "minimal" || !annotationContext) {
return { annotations: [], omittedCount: 0 };
@@ -462,7 +462,7 @@ export function buildCheckRunAnnotations(
export function formatCheckRunOutput(
advisoryResult: Advisory,
- detailLevel: "minimal" | "standard" | "deep" = "minimal",
+ detailLevel: "minimal" | "standard" = "minimal",
annotationContext?: CheckRunAnnotationContext,
): CheckRunOutput {
const title = advisoryResult.conclusion === "success" ? "Gittensory context checked" : "Gittensory context posted";
diff --git a/src/types.ts b/src/types.ts
index f1cf7a05d6..167bf71dc0 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -704,7 +704,9 @@ export type RepositorySettings = {
publicAudienceMode: "oss_maintainer" | "gittensor_only";
publicSignalLevel: "minimal" | "standard";
checkRunMode: "off" | "enabled";
- checkRunDetailLevel: "minimal" | "standard" | "deep";
+ // #4620: "deep" removed -- it was never wired to any different behavior than "standard" (formatCheckRunOutput
+ // and buildCheckRunAnnotations in rules/advisory.ts both branch only on `=== "minimal"` vs not).
+ checkRunDetailLevel: "minimal" | "standard";
/** Legacy shadow of {@link reviewCheckMode} (#2852), deprecated (#4618): a computed read-back value only,
* for API/dashboard back-compat display. `"enabled"` when `reviewCheckMode !== "disabled"`, else `"off"`
* -- see getRepositorySettings/upsertRepositorySettings in db/repositories.ts. No write path accepts this
diff --git a/test/integration/routes-errors.test.ts b/test/integration/routes-errors.test.ts
index 3cfe12e8ea..0432ee896a 100644
--- a/test/integration/routes-errors.test.ts
+++ b/test/integration/routes-errors.test.ts
@@ -1170,14 +1170,14 @@ describe("api route guards and error branches", () => {
body: JSON.stringify({
commentMode: "all_prs",
publicSignalLevel: "minimal",
- checkRunDetailLevel: "deep",
+ checkRunDetailLevel: "standard",
backfillEnabled: false,
}),
},
env,
);
expect(updated.status).toBe(200);
- await expect(updated.json()).resolves.toMatchObject({ commentMode: "all_prs", checkRunDetailLevel: "deep", backfillEnabled: false });
+ await expect(updated.json()).resolves.toMatchObject({ commentMode: "all_prs", checkRunDetailLevel: "standard", backfillEnabled: false });
});
});
diff --git a/test/unit/focus-manifest.test.ts b/test/unit/focus-manifest.test.ts
index daef0de5ce..01eb25d330 100644
--- a/test/unit/focus-manifest.test.ts
+++ b/test/unit/focus-manifest.test.ts
@@ -1933,7 +1933,7 @@ describe("parseFocusManifest settings override + resolveEffectiveSettings", () =
publicAudienceMode: "gittensor_only",
publicSignalLevel: "minimal",
checkRunMode: "enabled",
- checkRunDetailLevel: "deep",
+ checkRunDetailLevel: "standard",
gateCheckMode: "enabled",
linkedIssueGateMode: "block",
duplicatePrGateMode: "off",
@@ -1955,7 +1955,7 @@ describe("parseFocusManifest settings override + resolveEffectiveSettings", () =
publicAudienceMode: "gittensor_only",
publicSignalLevel: "minimal",
checkRunMode: "enabled",
- checkRunDetailLevel: "deep",
+ checkRunDetailLevel: "standard",
gateCheckMode: "enabled",
// #4618: gateCheckMode is deprecated -- setting it alone (no explicit reviewCheckMode) still derives
// reviewCheckMode, so its historical effect on the actual publish authority is preserved.
diff --git a/test/unit/policy-sanitizer.test.ts b/test/unit/policy-sanitizer.test.ts
index abb70c6e83..cf5661da79 100644
--- a/test/unit/policy-sanitizer.test.ts
+++ b/test/unit/policy-sanitizer.test.ts
@@ -563,7 +563,7 @@ describe("validation guidance sanitizer", () => {
const preview = buildRepoSettingsPreview({env: {},
repoFullName: repo.fullName,
repo,
- settings: settingsFor(repo.fullName, { checkRunMode: "enabled", checkRunDetailLevel: "deep" }),
+ settings: settingsFor(repo.fullName, { checkRunMode: "enabled", checkRunDetailLevel: "standard" }),
installation: previewHealthyInstall,
issues: [],
pullRequests: [],
diff --git a/test/unit/rules.test.ts b/test/unit/rules.test.ts
index 2060b9f74a..39fcce4ac0 100644
--- a/test/unit/rules.test.ts
+++ b/test/unit/rules.test.ts
@@ -777,10 +777,6 @@ describe("advisory rules", () => {
const standard = formatCheckRunOutput(advisory, "standard");
expect(standard.text).not.toContain("No detailed findings are published");
expect(standard.text).toMatch(/⚠️|ℹ️/);
-
- const deep = formatCheckRunOutput(advisory, "deep");
- expect(deep.text).not.toContain("No detailed findings are published");
- expect(deep.text).toMatch(/⚠️|ℹ️/);
});
it("formatCheckRunOutput sanitizes forbidden terms at every detail level", () => {
@@ -798,7 +794,7 @@ describe("advisory rules", () => {
},
],
};
- for (const level of ["minimal", "standard", "deep"] as const) {
+ for (const level of ["minimal", "standard"] as const) {
const out = formatCheckRunOutput(poisoned, level);
expect(out.title).not.toMatch(/rewards?|wallets?|hotkeys?|trust score|score estimate|reviewability|scoreability|farming/i);
expect(out.summary).not.toMatch(/rewards?|wallets?|hotkeys?|trust score|score estimate|reviewability|scoreability|farming/i);
@@ -829,7 +825,7 @@ describe("advisory rules", () => {
},
],
},
- "deep",
+ "standard",
);
expect(output.text).toContain("Safe public repo context");
@@ -1147,7 +1143,7 @@ describe("advisory rules", () => {
],
};
- const { annotations } = buildCheckRunAnnotations(advisory, { files, collisions, pullNumber: 15 }, "deep");
+ const { annotations } = buildCheckRunAnnotations(advisory, { files, collisions, pullNumber: 15 }, "standard");
expect(annotations.some((entry) => entry.annotation_level === "notice" && entry.title === "Configured lane")).toBe(true);
expect(annotations.some((entry) => entry.annotation_level === "warning" && entry.title === "Queue pressure")).toBe(true);
expect(annotations.some((entry) => entry.title === " ")).toBe(false);
@@ -1171,11 +1167,11 @@ describe("advisory rules", () => {
clusters: [],
};
- const { annotations, omittedCount } = buildCheckRunAnnotations(advisory, { files, collisions, pullNumber: 99 }, "deep");
+ const { annotations, omittedCount } = buildCheckRunAnnotations(advisory, { files, collisions, pullNumber: 99 }, "standard");
expect(annotations).toHaveLength(CHECK_RUN_ANNOTATION_LIMIT);
expect(omittedCount).toBe(5);
- const output = formatCheckRunOutput(advisory, "deep", { files, collisions, pullNumber: 99 });
+ const output = formatCheckRunOutput(advisory, "standard", { files, collisions, pullNumber: 99 });
expect(output.annotations).toHaveLength(CHECK_RUN_ANNOTATION_LIMIT);
expect(output.text).toContain("…5 more hotspot annotation(s) omitted from inline check output.");
});