From 9c065f003dd81ee5d0931a5fbf69de69701bea58 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 30 Aug 2026 22:50:01 +0000 Subject: [PATCH] docs: fix stale enviar_plan() docstring (revision_reforzada claim) Said "never for revision_reforzada" while the inline comment 30 lines below already documented the direct-send reversal calling it for both verdicts. Found during this week's engineering-health review. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01YT24vMVCQaCPaTXpZGyYP3 --- mcp/gmail_client.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mcp/gmail_client.py b/mcp/gmail_client.py index a5166fd..1f3cf56 100644 --- a/mcp/gmail_client.py +++ b/mcp/gmail_client.py @@ -655,9 +655,15 @@ def enviar_plan( PDFs, the trainer's own generated content) with no draft/review step at all. Confirmed directly with the project owner before being built, same as every other exception to "TrainFitter always drafts, never - sends" -- ui/app.py only calls this for a plan whose validator - verdict is "aprobado_automatico" (no reason for a human to look - first), never for "revision_reforzada". See docs/decisiones.md. + sends" -- ui/app.py calls this for a plan whose validator verdict is + "aprobado_automatico" (no reason for a human to look first, zero-click + when APPROVAL_PASSWORD is unset) AND, since the "direct send" reversal + for "revision_reforzada" (see docs/decisiones.md), for a + "revision_reforzada" plan too -- there the trainer's own review already + happened in the approval panel itself (edit controls + the Approve + click, both password-gated when APPROVAL_PASSWORD is set), so this + function's caller changed but its own behavior and safety boundary + (password gate, email validation) didn't. Args: same as crear_borrador().