TRANSPORT HUBRevision documental

IMPLEMENTATION_LOG

Correccion prioritaria del menu 88 - 06/11/2026

Alcance exclusivo: presentacion y seleccion de la navegacion administrativa. Se conservan las seis categorias, los 28 enlaces del administrador, las rutas, el filtrado por rol y la autorizacion de operaciones. Sin cambios de negocio.

El HTML anterior agrupaba enlaces directamente dentro de details. El grid de nav ordenaba categorias, pero no los enlaces interiores. El servidor ya servia una regla reciente display:block en el CSS general sin versionar; no se obtuvo el cache del navegador afectado y no se atribuye su incidente a cache como hecho probado. Se verifico localmente que un CSS anterior dejaba esos enlaces en linea. La seleccion tambien era exacta y no cubria paginas hijas.

Correccion: listas semanticas ul/li dentro de details/summary nativos; estilos especificos reutilizables en admin-navigation.css con version basada en SHA-256. Una fila por enlace, sangria uniforme, ajuste de textos, foco visible, separacion entre grupos y scroll vertical propio. La coincidencia de ruta mas especifica marca un solo enlace y abre su categoria al cargar la pagina. No se anade JS.

Validacion: 389 pruebas correctas, incluidas las 15 nuevas del menu. Chromium comprobo las seis categorias y 28 enlaces en cuatro resoluciones, con el CSS actual y con una version anterior simulada. Capturas con contenido sintetico. Siete GET autenticados sobre el servicio desplegado: 200 y seleccion correcta. La sesion tecnica fue temporal, solo en memoria, sin persistir su token.

Despliegue de cinco archivos con backup y rollback preparado; reinicio breve solo de transport-hub.service. El primer preflight auxiliar se detuvo antes de modificar archivos por usar el usuario root para PostgreSQL; se corrigio para consultar con el usuario de servicio habitual. Health/ready 200; servicios 80, 85 y 88 activos. Sin migraciones, impresiones ni conexiones GLS. Contadores sin cambios: iClientes PRODUCCION 13, TEST 6, REST registrado 5; historico TEST/laboratorio 11 y total 24. Bloqueos operativos conservados.

Prueba real limitada de lectura - 06/11/2026

Backup reciente restaurado y verificado, comprobacion de cuenta 2004/35, identidad de PRODUCCION separada de TEST, ausencia previa de los tres casos y presupuesto suficiente. Control de un solo uso validado con cinco tests mock. Un trabajo acotado, tres GetExpCli, tres HTTP 200 de 432 bytes con Error de negocio y cero nodos exp. Duraciones: 207, 126 y 129 ms. Sin reintentos.

La evidencia original quedo cifrada antes de normalizar. No hubo datos que persistir como expediciones; se conservaron errores, auditoria y tres cargos de cuota. Permisos temporales restaurados. GET autenticado Buscar 80: cero filas, coherente con PG. Verificacion en proceso nuevo e integridad correctas.

Incidencia posterior del canal QMP; acceso recuperado por SSH con identidad existente y host key verificada por lectura RO. No cambios de claves en VM, reinicios, proxy ni configuracion de red. No nuevas llamadas GLS por este motivo. Se publican resultados negativos; no se modifica la integracion para falsearlos.

Registro anterior

Etapa D - 06/11/2026

1. Inventario fresco: 54 tablas, 17 migraciones y 21 peticiones externas. 2. Contraste local de manual y ejemplo oficial GetExpCli, sin conexiones GLS. 3. Adaptador sobre serializador, proveedor de identidad y transporte validados. 4. Correccion de clasificacion de escritura HTTP parcial como resultado incierto. 5. Centros remitentes cifrados, asociaciones y snapshot por borrador. 6. Trabajador GetExpCli acotado, recibos/checkpoints y replay local. 7. Cuotas por cuenta, prioridad, reserva y estimacion del importador. 8. Navegacion seis areas, permisos por operacion y rutas antiguas conservadas. 9. Migracion incremental 018 probada con cuatro migradores simultaneos. 10. Backup PostgreSQL restaurado: 54 tablas y 111 indices coinciden en filas/hash. 11. Pruebas completas sobre base temporal, sin credenciales reales ni red externa. 12. Despliegue controlado con bloqueos de creacion/lectura y sin iniciar workers.

Primera pasada: 364 correctas y dos fallos del nuevo mapeo de creacion, identificados y corregidos antes del despliegue. Segunda: 366 correctas. La bateria final ampliada queda registrada en TEST_RESULTS. Revision final: 374 correctas en 83,27 segundos. Selector global restringido para lectura y Retry-After conservado/aplicado en consultas iClientes.

Registro historico anterior

Etapa C - implementacion y despliegue

1. Inventario fresco de codigo, 53 tablas, 16 migraciones y contadores. 2. JSON 85 implementado sobre copias sanitizadas fijadas por hash. Indice, lectura completa, bundle y fragmentos UTF-8 con offset/hash propios. 3. Primera ronda: 341 pruebas correctas. Backup previo restaurado y validado. 4. Se activo primero JSON 85 sin cambiar interruptor, politica ni proxy. Cliente HTTPS ordinario: 200; PROJECT_STATUS inicial 6074 bytes JSON, contenido Markdown 5522 bytes con hash correcto; bundle de tres informes 65466 bytes; indice 3944 bytes (release B existente en ese momento). 5. Se implementaron borradores, auth de 80 y flujo local simulado usando el contrato, coordinador, diario, repositorio y cuotas existentes. 6. Se implementaron busqueda local combinable, paginacion y ficha documental. 7. Se prepararon importador de texto revisado, trabajos pausados y cuotas en 88, sin worker. Inventario: 90 rutas, 36 plantillas y menu principal intacto. 8. Segunda ronda: 345 correctas. Se ampliaron casos de SOAP Fault, timeout, commit fallido y conciliacion sin segundo sender. Revision final ampliada: 349 correctas en 58,29 segundos, datos sinteticos y llamadas/UID GLS prohibidos en tests C; cuota desactivada antes de claim no bloquea borrador. 9. El primer script auxiliar de despliegue se detuvo por sintaxis antes de ejecutar cambios. Se corrigio y compilo antes de su ejecucion efectiva. 10. Se detuvo brevemente solo 88, se instalaron 38 ficheros y se aplico 017. Todas las filas anteriores quedaron preservadas, verificadas por PK/hash. 11. Servicio local 80 habilitado e iniciado; health/ready 200. 85/88 y PostgreSQL activos. Privadas sin sesion: 303 a login. No se crearon usuarios de prueba ni se falsifico una sesion de administrador en la aplicacion activa. 12. Informes completos y representacion documental de administracion preparados para release revisado C, manteniendo los formatos y el interruptor.

No se realizaron altas, consultas, OAuth, cancelaciones, etiquetas, POD ni ninguna otra peticion a GLS. No hubo impresiones ni cambios del proxy. La navegacion principal del 88 se conserva byte a byte; solo hay accesos secundarios a las herramientas nuevas desde la pantalla Plataforma.

Registro historico: etapa B

Etapa B - trabajo ejecutado

1. Se consultaron DNS publicos, certificado/SNI, HTTP/HTTPS, dos User-Agent, IPv4/IPv6 y todos los documentos publicados. Cero llamadas GLS. 2. Se capturo el codigo, esquema y contadores en modo lectura. Se revisaron las 39 tablas y las 13 migraciones antes de introducir cambios. 3. Se implementaron modelos y repositorio neutrales respecto al proveedor. Las claves privadas siguen en el mecanismo anterior: solo se referencia el secreto desde carrier_accounts. 4. Se implementaron observaciones cifradas, eventos versionados, documentos privados y busqueda local acotada, sin invocar conectores. 5. Se implemento el coordinador de un solo intento y el diario duradero. Recibos cifrados independientes de la transaccion de negocio, fallback cifrado en PostgreSQL y replay exclusivamente local. 6. Se reutilizo synchronizations para trabajos administrativos de lectura, sin activar scheduler/worker ni importar datos reales. 7. Se implemento el nucleo de reservas de cuota, no una promesa de cuota ilimitada. Se conserva el ledger anterior y su agregacion diaria. 8. Primera ronda: 311 correctas, dos fallos. Se corrigio el control de cuenta al deduplicar documentos y el empaquetado de la herramienta documental. 9. Rondas posteriores: 318 correctas; ronda final ampliada: 319 correctas en 36,59 segundos, incluyendo coste de excepciones fuera de horario. Se comprobo ademas upgrade 13 a 16, conservacion de datos sinteticos y serializacion con cuatro migradores concurrentes. 10. Se genero backup fresco y se restauro realmente antes de migrar. 11. Se detuvo brevemente solo 88, se verificaron hashes para no pisar cambios, se instalaron 23 ficheros y se aplicaron 014-016. Se compararon todas las columnas anteriores antes de arrancar el servicio. 12. health/ready HTTP 200. PostgreSQL, 88 y 85 activos. Se verificaron rutas privadas sin sesion: redireccion a login, no acceso anonimo. 13. Se prepararon los informes sanitizados y un release documental aprobado expresamente. El cambio de politica respeta el interruptor del operador bajo bloqueo compartido con el control administrativo.

No se han creado/modificado/anulado expediciones. No hay impresiones, descargas de etiquetas/POD, importaciones masivas, cierre, cambios de UID o solicitudes OAuth. Contadores originales conservados.

Registro historico: etapa A

06/11/2026 - preparacion A

1. Leida la orden operativa y fijado el primer hito independiente del resto. 2. Capturado inventario de codigo, tests y contadores antes de editar. 3. Backup PostgreSQL en formato custom con snapshot consistente. 4. Restauracion real en base temporal: 39 tablas y 59 indices, filas/huellas identicas. 5. Eliminada exclusivamente la base temporal de verificacion. 6. Backup privado de aplicacion/configuracion y activos locales; permisos restrictivos. 7. Implementado servicio documental minimo, sin dependencias de la aplicacion ni PostgreSQL. 8. Implementado control exclusivo de administradores en el puerto 88 con CSRF y registro. 9. Preparada lista explicita de informes completos con sanitizacion, revision e integridad.

La primera preparacion del backup encontro un problema de permisos en el directorio temporal y se corrigio antes de cualquier despliegue. No se modifico la base operativa ni se utilizo un backup sin verificar.

No se han ejecutado operaciones GLS, impresiones ni migraciones de negocio.

Despliegue y aceptacion tecnica

La preparacion v2 incorpora esta evidencia sin modificar los informes originales ni exponer el dump/configuracion privados. El responsable publica el HTTPS externo.