Admin action: agregar participante omitido a una practica fuera de la ventana de 48h
GAP FOUND VIA SOP-VENUS-18 (2026-08-16): a creator who omits a participant at load time has NO app path to add one after 48h. MEASURED, not inferred: - /corregir CANNOT do it at all, at any time. correction-fields.ts:11 lists 'participantes' as an explicitly EXCLUDED cascade field; CORRECTION_FIELDS is 17 scalar practicas columns; correction-actions.ts gate 9 states apply is 'practica-ROW-only'. participantes live in practicaParticipations (child table). - /editar (editarPractica) DOES handle participantes (soft-delete + resurrect), but is gated by EDIT_WINDOW_HOURS=48 from COALESCE(editWindowOpenedAt, createdAt) and MAX_EDITS=3. - No admin override exists: editWindowOpenedAt appears only in practica-actions.ts, correction-actions.ts (G5 forbids touching it) and db/queries.ts; admin-actions.ts has no practica-edit surface. So the only remedy today is a manual UPDATE of editWindowOpenedAt by the DB lane (done once for SOP-VENUS-18 under pm-venus-cc GO, actor+reason recorded in practicasArchive). That does not scale and puts a support desk on a bare row patch. PROPOSED: an approver-gated (administrador/bedelia) server action to add a MISSING participant to a practica, writing practicaParticipations directly, inside a txn with setArchiveContext, honouring trg_participations_operador_unique (<=1 operador) and the soft-delete/resurrect semantics editarPractica already implements. Should NOT touch editCount/editWindowOpenedAt (same independence the correction path keeps, G5). Consider whether removal needs the same treatment or add-only is the safe scope. Ref: mem:reference_archive_trigger_guc. Not urgent per pm-venus-cc.