feat: complete MENTORING round config form (§A)
Surfaces every MentoringConfigSchema field on the round Config tab: - Adds "Mentoring Request Window" card with mentoringRequestDeadlineDays numeric input (1-90 days, default 14) and passThroughIfNoRequest toggle (default ON; OFF holds projects PENDING until manual mentor assignment). - Adds inline help-text for the Eligibility dropdown explaining each option's effect on auto-PASS behavior. - Hides the General Settings card on MENTORING rounds (it only renders Advancement Targets, which don't apply to a pass-through round). - Relaxes the Launch Readiness "File requirements set" gate for MENTORING rounds without filePromotionEnabled + a target window — file requirements only matter when files will be promoted to a downstream submission window. Spec: docs/superpowers/specs/2026-04-28-mentor-round-readiness-design.md §A Plan: docs/superpowers/plans/2026-04-28-pr3-mentoring-config-completeness.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,11 @@ export function MentoringConfig({ config, onChange }: MentoringConfigProps) {
|
||||
<SelectItem value="admin_selected">Admin Selected</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<ul className="text-xs text-muted-foreground space-y-1 mt-2">
|
||||
<li><strong>All Advancing Projects</strong> — every project that enters this round is paired with a mentor.</li>
|
||||
<li><strong>Requested Only</strong> — only projects that explicitly request mentoring participate (default).</li>
|
||||
<li><strong>Admin Selected</strong> — admin manually picks which projects get a mentor.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center justify-between">
|
||||
@@ -56,6 +61,46 @@ export function MentoringConfig({ config, onChange }: MentoringConfigProps) {
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">Mentoring Request Window</CardTitle>
|
||||
<CardDescription>How long teams have to request a mentor, and what happens to non-requesters</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="mentoringRequestDeadlineDays">Request deadline (days from round opening)</Label>
|
||||
<p className="text-xs text-muted-foreground">After this many days, teams can no longer submit a mentoring request. Default: 14.</p>
|
||||
<Input
|
||||
id="mentoringRequestDeadlineDays"
|
||||
type="number"
|
||||
min={1}
|
||||
max={90}
|
||||
className="w-32"
|
||||
value={(config.mentoringRequestDeadlineDays as number) ?? 14}
|
||||
onChange={(e) => {
|
||||
const v = parseInt(e.target.value, 10)
|
||||
if (!Number.isNaN(v) && v >= 1 && v <= 90) update('mentoringRequestDeadlineDays', v)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<Label htmlFor="passThroughIfNoRequest">Auto-pass non-requesters</Label>
|
||||
<p className="text-xs text-muted-foreground">
|
||||
When ON, projects that don't request mentoring auto-PASS to the next round (default).
|
||||
When OFF, all projects are held in PENDING until the admin decides — useful when mentoring is mandatory.
|
||||
</p>
|
||||
</div>
|
||||
<Switch
|
||||
id="passThroughIfNoRequest"
|
||||
checked={(config.passThroughIfNoRequest as boolean | undefined) ?? true}
|
||||
onCheckedChange={(v) => update('passThroughIfNoRequest', v)}
|
||||
/>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle className="text-base">Communication & Files</CardTitle>
|
||||
|
||||
Reference in New Issue
Block a user