- Elimina recordProgressUpdate (quedó huérfano al quitar la pestaña Fases;
el progreso se edita vía feature.update) y initialPull (redundante).
- ProjectsScreen: al abrir un proyecto siempre runSync — su fase de pull ya
resuelve snapshot (sin cursor) y delta (con cursor), y el outbox está vacío
la primera vez. Menos ramas, misma semántica.
- client.ts: AbortController con timeout (30s JSON / 120s multipart) y
NetworkError que distingue timeout de error de red genérico.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>