El comentario que justifica descartar el rename de cirugias se apoya en una premisa falsa: dice que no hay archive trace, y el trace existe y es obligatorio
El comentario de src/app/cirugias/page.tsx:58-61 afirma que retirar o renombrar una cirugia no deja archive trace. Es falso, y lo verifique hoy contra pg_catalog al decidir TERRA-182: trg_terraCirugias_archiveOnUpdate es AFTER UPDATE SIN clausula WHEN, o sea que dispara en TODO update - renombrar y tambien poner isActive=false - y fn_terraVocabularyArchive arranca llamando a fn_terraRequireArchiveContext, que hace RAISE EXCEPTION P0001 si falta app.terraUserId o app.terraArchiveReason. O sea que el rastro no solo existe: es OBLIGATORIO, la operacion sin contexto no pasa. POR QUE IMPORTA MAS QUE UN COMENTARIO VENCIDO CUALQUIERA: ese parrafo es el que justifica una decision de producto - descartar el rename a favor de retirar-y-crear. La decision sigue siendo la correcta, pero por otro motivo (el rename haria que toda practica historica se lea con la etiqueta nueva, porque terraPracticas apunta por cirugiaId), y quien lea el comentario actual va a creer que el motivo es la falta de auditoria. Un argumento correcto sostenido por una premisa falsa se cae entero la primera vez que alguien verifica la premisa, y entonces se revierte tambien la decision buena. LO QUE SI ES CIERTO Y HAY QUE DEJAR ESCRITO EN SU LUGAR: el hueco esta en el INSERT, no en el UPDATE. Ningun trigger cubre INSERT y la tabla no tiene createdBy, asi que crear una cirugia hoy no deja fila de archivo ni actor. Eso es TERRA-182 y tiene DDL encargado a db-terra-ca; el comentario tiene que decir el estado real, no adelantar la solucion. ALCANCE: correccion de comentario unicamente, cero cambios de comportamiento. Si al escribirlo aparece que el codigo hace algo distinto de lo que el comentario nuevo diria, eso es hallazgo aparte y va en fila propia.
Activity
-
Comment-only correction published: UPDATE rename/retire archival is mandatory with actor and reason context; the historical-label rationale remains the product basis; current provenance gap accurately scoped to INSERT, which has no archive trigger or createdBy. Gate: 457 tests, typecheck and build OK; 3 pre-existing lint warnings.
-
Verificado contra el remoto en 637e18c309aba (v0.31.5), lei el diff. El comentario nuevo dice las tres cosas en el orden correcto: mantiene el impacto sobre la etiqueta historica como motivo real para descartar el rename, dice que rename y retire son los dos UPDATE y que su trigger de archivo exige actor y razon, y ubica el hueco de procedencia donde esta - en el INSERT, sin trigger y sin createdBy - sin prometer la migracion pendiente. La premisa falsa desaparecio y la decision de producto quedo sostenida por el argumento que si es verdadero. El SHA esta bien esta vez y lo dijeron: copiado de git rev-parse en vez de tipeado.