Skip to content

Retire or correctly disclose the inert firstTimeContributorGrace dashboard toggle #5292

Description

@JSONbored

Context

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.

Requirements

Deliverables

  • 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).
  • Heavier alternative (pick one, not both): wire it into evaluateGateCheckCore as 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

  • Evidence: src/types.ts:830-834; src/rules/advisory.ts:561-640 (evaluateGateCheckCore never reads firstTimeContributorGrace); 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:83
  • Precedent: fix(review): mark gate.firstTimeContributorGrace as reserved/inert #2411 (yml-surface fix for this exact problem)

Part of #5270 (roadmap epic).

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions