You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
firstTimeContributorGrace is RESERVED / currently INERT (#2266) per its own src/types.ts:830-834 doc — the gate evaluator (evaluateGateCheckCore) never reads it anywhere in its blocker/conclusion logic. PR #2411 (commit 6ecacecef) already fixed the config-as-code half of this exact problem: it added a parse-time warning (focus-manifest.ts:1358-1359) and rewrote .gittensory.yml.example and docs.self-hosting-configuration.tsx:579-582 to correctly disclose inertness. But #2411 never touched the dashboard/API surface — the live maintainer-dashboard toggle (apps/gittensory-ui/src/components/site/app-panels/maintainer-settings.tsx:184-188) still reads "First-time-contributor grace" / "Soften a newcomer's block to advisory" with zero inert/reserved disclosure, and the field remains writable in maintainerSettingsSchema (src/api/routes.ts:740, duplicated in src/openapi/schemas.ts:700,883) and is DB-backed (first_time_contributor_grace column). This is exactly the misleading belief #2411's own commit message set out to prevent — still live on the one surface a non-technical maintainer is most likely to actually use.
Note: gate.copycat is a related, correctly-caveated field (config-as-code-only, no DB column, no dashboard toggle) — needs no action here beyond an optional docs-completeness mention.
Minimal/lowest-risk: remove firstTimeContributorGrace from maintainerSettingsSchema (src/api/routes.ts:740) and the two openapi/schemas.ts sites (:700,883), and remove or disable the toggle in maintainer-settings.tsx:184-188 (or gray it out with a "reserved, no effect yet" note replacing the misleading hint).
A maintainer using the dashboard can no longer believe this toggle does anything, matching the disclosure already shipped on the yml surface via #2411.
Context
firstTimeContributorGraceisRESERVED / currently INERT (#2266)per its ownsrc/types.ts:830-834doc — the gate evaluator (evaluateGateCheckCore) never reads it anywhere in its blocker/conclusion logic. PR #2411 (commit6ecacecef) already fixed the config-as-code half of this exact problem: it added a parse-time warning (focus-manifest.ts:1358-1359) and rewrote.gittensory.yml.exampleanddocs.self-hosting-configuration.tsx:579-582to correctly disclose inertness. But #2411 never touched the dashboard/API surface — the live maintainer-dashboard toggle (apps/gittensory-ui/src/components/site/app-panels/maintainer-settings.tsx:184-188) still reads "First-time-contributor grace" / "Soften a newcomer's block to advisory" with zero inert/reserved disclosure, and the field remains writable inmaintainerSettingsSchema(src/api/routes.ts:740, duplicated insrc/openapi/schemas.ts:700,883) and is DB-backed (first_time_contributor_gracecolumn). This is exactly the misleading belief #2411's own commit message set out to prevent — still live on the one surface a non-technical maintainer is most likely to actually use.Note:
gate.copycatis a related, correctly-caveated field (config-as-code-only, no DB column, no dashboard toggle) — needs no action here beyond an optional docs-completeness mention.Requirements
Deliverables
firstTimeContributorGracefrommaintainerSettingsSchema(src/api/routes.ts:740) and the twoopenapi/schemas.tssites (:700,883), and remove or disable the toggle inmaintainer-settings.tsx:184-188(or gray it out with a "reserved, no effect yet" note replacing the misleading hint).evaluateGateCheckCoreas originally intended in feat(github-app): first-time-contributor-aware gating #552.Expected Outcome
A maintainer using the dashboard can no longer believe this toggle does anything, matching the disclosure already shipped on the yml surface via #2411.
Links & Resources
src/types.ts:830-834;src/rules/advisory.ts:561-640(evaluateGateCheckCorenever readsfirstTimeContributorGrace);apps/gittensory-ui/src/components/site/app-panels/maintainer-settings.tsx:184-188;src/api/routes.ts:740;src/openapi/schemas.ts:700,883;src/db/schema.ts:83Part of #5270 (roadmap epic).