Repository navigation
Conversation
|
Revisión de la PR #47 (commit Qué está verificado y qué faltaComprobé en una copia aislada Correcciones de comportamiento y procedimiento
Relación con las issuesSí corresponde referenciar esta PR como avance parcial, por ejemplo con La descripción actual dice |
Revisión actualizada de #47: guía para adaptarla al MVP@facu030 revisé esta PR contra Conclusión: hay trabajo backend aprovechable, pero todavía no está apta para mergear. No hay que desecharla ni implementar el MVP entero aquí: hay que convertirla en un incremento compatible, acotado y verificable. Esta guía actualiza la revisión anterior según los avances posteriores. Lo aprovechable
1. Actualizar sobre main sin recuperar lo retirado — bloqueanteGitHub informa Dónde: solución/proyectos, Corrección: incorporar main y portar sólo el delta útil a Conservar API de appointments, SQLite/migraciones/seed, cupos/transiciones, frontend React/Vite y CI. No recrear 2. Corregir las contradicciones documentales — bloqueanteDónde:
Corregir también escenarios, diseño, tareas y referencias que repitan estas reglas, no sólo el resumen. La prioridad por corte/flota/orden de solicitud sirve; no introducir el redondeo a minuto del desempate sin decisión explícita. Los defaults antiguos de esta draft no prevalecen sobre las decisiones consolidadas. Coordinar con B00 #7, respetar ADR-FE-006 depende de un BFF de Next.js: replantear sesión/custodia de credenciales para la arquitectura elegida, sin imponer una alternativa de seguridad no acordada. 3. Integrar maestros con la persistencia real de turnos — bloqueante funcionalDónde: antiguo #47 guarda maestros en SQL Server heredado; los turnos leen SQLite/
No activar WAL sin las pruebas/procedimientos de ADR-006 ni retirar 4. Impedir dos transportistas activos por camión — bloqueanteDónde: La consulta y el índice de #47 sólo evitan duplicar el mismo par Consultar cualquier asociación activa del camión en alta y reactivación, excluyendo la propia cuando corresponda. Preservar el índice real de main: Probar: segundo transportista, reactivación con otro vínculo activo, carreras de alta/reactivación, recursos inactivos/ajenos y turnos históricos intactos. Corregir también el comentario XML antiguo de 5. Corregir roles e integrar Identity — bloqueante de seguridad/usoDónde:
Probar por HTTP: operador/supervisor permitidos, roles no autorizados, token ausente/expirado, usuario inactivo, claim ausente/ambiguo y accesos cruzados por ID con dos ingenios. Los tests del contexto no sustituyen estas pruebas. 6. Adaptar conflictos, idempotencia y auditoría a SQLiteDónde: El detector sólo reconoce errores SQL Server 2601/2627 y nombres de sus índices. Adaptarlo al proveedor real, distinguiendo unicidad, FK, concurrencia y bloqueo, sin convertir carreras esperables en La transacción es aprovechable, pero aprobar con B00/B05 la política de clave, alcance, hash, replay, vigencia y conflictos antes de imponer
Conservar que el registro idempotente no guarda cuerpos personales completos. Coordinar eventos/correlación con OD-009/B05: insertar un evento no demuestra auditoría completa. 7. Ampliar el OpenAPI actual, sin degradar turnos — bloqueanteDónde: #47 propone Los paths Preservar Los listados filtran/ordenan en DB, pero no paginan: agregar paginación antes de materializar, según B11 #15 y equivalentes, con parámetros/orden acordados. Para B38 #43, el listado genérico de UUIDs no cubre camiones de un transportista con patente/flota/estado: agregar la proyección acordada sin N+1 o mantener B38 fuera del incremento, sin declararla cumplida. 8. Documentar continuidad frontend, no una reconstrucciónDónde: README frontend, ADRs/documentos frontend y planificación añadidos. Usar como base real Esta PR no agrega frontend ejecutable: no se le exige construir todas las pantallas para aceptar un incremento backend acotado. Sí reformular documentación incompatible. TanStack Query/Zustand y otra topología de sesión requieren evaluación, no son obligaciones heredadas de esta rama. 9. Evidencia y alcance antes de pasar a ReadyEn #47 sólo figura el check de etiquetas, no la CI actual. Las 41 pruebas declaradas son de la base antigua: La CI de main pasó con 112 tests backend y 37 frontend. Conservar esas suites y sumar las del incremento, sin reducirlas a los 41 antiguos. Ejecutar: Además, validaciones OpenSpec/OpenAPI/enlaces de Actualizar título/cuerpo/tareas con resultado entregado, evidencia y dependencias. Mantener Orden de corrección recomendado
Recomendación: rescatar #47 como incremento backend de maestros compatible o dividir el delta en porciones revisables sobre main. No fusionar el baseline obsoleto ni reemplazar lo que ya funciona. Con estas correcciones y evidencia podrá reevaluarse; la cabeza revisada todavía no se aprueba. |
Preserve the AgroFlow appointments demo, SQLite migrations, React/Vite frontend and CI while porting the useful master-data foundation. Keep catalog HTTP routes disabled pending B00/B02/B03/B05 and align planning with ADR-004/005/006. Verified: 206 backend tests, 37 frontend tests, strict OpenSpec 17/17, OpenAPI lint and local Markdown links. Unrelated local runtime ignores and tracking artifacts are excluded.
Record the original PR47 history alongside the verified AgroFlow/SQLite foundation after a per-file audit and normal merge resolution. Legitimate backend and documentation work is already ported; superseded platform choices and duplicate legacy sources remain retired. The complete tree is identical to 15fb3a0. Verified again: 206 backend tests, 37 frontend tests, OpenSpec 17/17, OpenAPI lint and local links. Catalog endpoints remain disabled pending the documented MVP dependencies.
Actualización de PR #47 según la guía MVP@agustinvallante, gracias por la guía actualizada. Conservamos el trabajo aprovechable y lo adaptamos a Se eligió la alternativa de fundación compatible, todavía no habilitada. Esta actualización no presenta CRUD de maestros operativo ni aceptación del MVP completo. La rama está publicada en Respuesta a los puntos 1–9
Siguiente revisiónLa PR continúa Draft, con trazabilidad parcial mediante La descripción inicial aún contiene Next/SQL y cifras anteriores; este comentario registra el estado actual, no modifica ese texto. La matriz documental inicial también contiene un snapshot intermedio de pruebas, no el resultado final anterior. ¿Puedes reevaluar este incremento como fundación compatible no habilitada y señalar las dependencias que deben quedar en los siguientes slices? No estoy solicitando aprobación del MVP completo ni merge. |
Revisión del candidato actualizado — aún requiere correcciones puntuales@facu030 revisé Avances que sí quedaron bien
Evidencia de esta revisiónEjecuté nuevamente La suite verde no cubre los dos casos siguientes, que reproduje adicionalmente con el adaptador compilado: 1. [P2] Listado de asociaciones ordena por una propiedad ignorada por EFDónde:
Corrección: mientras B02 no migre esos metadatos, ordenar por columnas realmente persistidas con desempate estable —por ejemplo Prueba a agregar: ejecutar 2. [P2] La proyección permite datos de un camión de otro ingenioDónde: La consulta comprueba al transportista y filtra el ingenio de la asociación, pero el join sólo usa Hoy no constituye una filtración HTTP porque el controlador no está habilitado, pero sí es un defecto del fundamento de lectura que luego reutilizaremos. Corrección: filtrar también el ingenio del camión en el join/where; si la consulta puede reutilizarse sin la comprobación previa, conservar igualmente el alcance del transportista. Dejar las FK compuestas/integridad completa como parte de B02, sin alterar a ciegas las migraciones demo para resolver este filtro. Prueba a agregar: asociación inconsistente A→camión B debe devolver cero filas; las asociaciones válidas de A siguen devolviendo patente/flota/actividad y el transportista ajeno sigue sin revelar datos. El test existente sólo usa asociaciones consistentes y no detecta este caso. 3. Reconciliar descripción y evidencia documental del candidatoDónde: título/cuerpo de esta PR; El comentario nuevo aclara correctamente la entrega, pero el cuerpo principal todavía describe Next.js, SQL Server, rutas maestras operativas, nombres DSW y 41 pruebas. Los documentos también presentan el snapshot intermedio de 177/205, 28 fallas y lock excluido sin distinguirlo claramente del candidato final.
Qué puede quedar para los próximos incrementosSchema/migraciones de auditoría e idempotencia y metadatos, unicidades globales y migración segura (B02); usuarios activos, sujeto estable de Identity, ingenio efectivo y recorrido autenticado real (B03/B10); política durable de reintentos/auditoría (B00/B05); rutas/DTO/paginación/CRUD público y B38. Estos pendientes no bloquean por sí solos una fundación explícitamente deshabilitada; no registrar servicios ni quitar Resultado: no apruebo ni integro esta cabeza todavía. Corregidos los dos casos reproducidos y la coherencia documental, puede reevaluarse como incremento técnico acotado; no hace falta reconstruir el trabajo ya corregido. |
Objetivo
Dejar revisable el baseline de comportamiento aprobado para el MVP AgroFlow, la fundación backend y API de datos maestros, y la definición arquitectónica del frontend. Esta PR funciona como tracker en Draft para la Feature Branch Chain; no está lista para merge.
Trazabilidad
Refs #<número>): Refs [MVP][Épica] Entrega integral de AgroFlow (React/Vite + .NET + n8n) #46mvp-baseline,frontend-foundation,frontend-auth-readonly-sliceResumen de lo implementado
Baseline y comportamiento
openspec/specs/.Backend y API
AgroFlowUser, claim/contexto efectivo de ingenio fail-closed, rechazo genérico de credenciales y políticas para los cuatro roles aprobados.Frontend
Archivos y áreas incluidas
openspec/changes/mvp-baseline/,frontend-foundation/yfrontend-auth-readonly-slice/.backend/Dsw2025Tpi.Domain/,Application/MasterData/,Data/(modelos/contexto/repositorio),Api/yTests/.docs/contracts/openapi.yamly documentación de frontend, planificación y ADRs.frontend/README.mdúnicamente; no hay código frontend ejecutable.Exclusiones y limitaciones
.gitignore(cambio previo),.codegraph/,docs/contexto/yodd/(artefactos locales).Verificación ejecutada
dotnet test backend/Dsw2025Tpi.Tests/Dsw2025Tpi.Tests.csproj --configuration Release: 41 aprobadas, 0 fallidas, 0 omitidas.dotnet build backend/Dsw2025Tpi.sln --configuration Release: 0 warnings, 0 errores.docs/contracts/openapi.yamlválido.Tamaño y cadena de revisión
El diff actual es de 75 archivos, 5.794 inserciones y 138 eliminaciones. Se solicita
size:exceptional mantenedor; la excepción no está aprobada. Esta PR permanece en Draft y no debe mergearse hasta que el tamaño sea aceptado y la cadena de implementación/aceptación esté completa.mainmain683dfa6,a74d3ba,4866ed5,98e9622Revisión
openspec/changes/mvp-baseline/, luego los modelos/servicios/endpoints de datos maestros y finalmente los ADR/alcance frontend.