v1.9.0: el sensor tambien anota la inactividad
Cada tramo sin ninguna entrada (mas alla del umbral de 3 min, que sigue contando como trabajo
igual que siempre) queda registrado como {desde, segundos} y viaja en el lote como `idles`,
aparte de los bloques. Sin app, sin titulo, sin contenido: la inactividad no tiene nada que
mirar. La bandeja lo dice: «inactivo (se anota aparte)».
Decisiones que importan, salidas de una revision adversaria previa (11 hallazgos, todos
atendidos):
- Tope de 4 h por tramo: una torre que nunca se suspende, bloqueada toda la noche, anotaba
«14 h inactivo» en el dia anterior. Mas de 4 h sin tocar el equipo es ausencia, no descanso;
pasado el tope no se reabre nada hasta que vuelva la entrada. El servidor ademas rechaza
cualquier tramo de mas de 6 h como red de seguridad.
- La suspension corta el tramo (la noche del portatil es una laguna, no un dato) y al
despertar el reloj queda EN el umbral: sin eso, los despertares automaticos de Windows a las
3 a. m. contaban hasta 3 min de trabajo fantasma y fabricaban jornadas de madrugada.
- El tramo en curso se persiste a disco (rastreador-encurso.json, un latido por minuto): un
apagado, el cierre de la app o la auto-actualizacion —que reinicia a todo el equipo a la
vez— lo cierran en su ultimo latido en vez de perderlo entero.
- La subida se acota a 12 lotes por ciclo y el tiempo de subida no cuenta como suspension:
al volver la red tras dias sin ella, los cientos de POST seguidos bloqueaban el hilo del
sensor y el siguiente tic diagnosticaba un «dormido» falso que cortaba el tramo abierto.
- La cola en disco lee el formato viejo (Vec<Vec<Bloque>>) ademas del nuevo: lo pendiente de
subir en la 1.8 no se pierde al actualizar.
- En pausa no se anota nada, y reanudar no retro-anota la pausa como ocio.
El servidor (labstream-os 453a640) ya acepta `idles` y enseña la columna «Inactivo» en las
jornadas de /rastreo; los sensores 1.8 siguen funcionando sin cambios.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Este commit está contenido en:
16
README.md
16
README.md
@@ -39,12 +39,22 @@ NAS. Esto le da al equipo un cliente nativo de verdad en Windows y Mac:
|
||||
resultado. Es un popup nativo del sistema, igual en Windows y macOS, y vive
|
||||
solo en el shell (la web app no se toca).
|
||||
|
||||
- **Rastreador de trabajo efectivo** (v1.8.0, `src-tauri/src/tracker.rs`): mide
|
||||
cuánto tiempo se trabaja de verdad y en qué aplicación, y lo publica en
|
||||
**Reportes → Equipo** del servidor. Cada 5 s mira la ventana al frente y si
|
||||
- **Rastreador de trabajo efectivo** (v1.9.0, `src-tauri/src/tracker.rs`): mide
|
||||
cuánto tiempo se trabaja de verdad y en qué aplicación, y lo publica en el
|
||||
panel **/rastreo** del servidor. Cada 5 s mira la ventana al frente y si
|
||||
hubo entrada de ratón/teclado; **con 3 minutos sin entrada deja de contar**
|
||||
(eso cubre también pantalla bloqueada y suspensión). Sube lotes cada 5 min a
|
||||
`POST /api/tracker`; sin red, la cola espera en disco y reintenta.
|
||||
- **Desde la 1.9 también ANOTA la inactividad**: cuando se cruza el umbral de
|
||||
3 min, el tramo quieto queda registrado aparte (solo desde/hasta — sin app,
|
||||
sin título, sin contenido) y el panel lo enseña junto a cada jornada. La
|
||||
bandeja lo dice («inactivo (se anota aparte)»). Suspender o apagar el
|
||||
equipo NO cuenta como inactividad: el tramo se corta ahí — la noche con el
|
||||
portátil cerrado es una laguna, no un dato (el tramo en curso se guarda a
|
||||
disco cada minuto, así que un apagado o la auto-actualización lo cierran en
|
||||
su último latido en vez de perderlo). Y un tramo se cierra solo a las 4 h:
|
||||
más que eso sin tocar el equipo es ausencia, no descanso frente a la
|
||||
pantalla. En pausa no se anota nada.
|
||||
- **Qué NO registra, a propósito:** ni qué teclas se pulsan (solo compara una
|
||||
huella de posición del ratón y cuántas teclas hay presionadas), ni
|
||||
pantallazos, ni el contenido de nada, ni los procesos de fondo.
|
||||
|
||||
Referencia en una nueva incidencia
Block a user