- feature_types: nueva tabla local + tipo FeatureType + upsert en applyBundle
+ getFeatureTypes(); FeatureDetail muestra badge del tipo con su color.
- feature: columnas feature_type_id + is_active (migración BD v3);
feature.update acepta ambas; toggle "Activa" en el detalle con badge
"inactiva" cuando corresponde.
- templates: ahora catálogo global asignado por pivot — getTemplates() ya no
filtra por project_id (informativo); phase_id eliminado del tipo y del pick.
- Formulario de inspección: soporta fields[].group (secciones), question
(etiqueta principal), help (texto de ayuda) y required (validación al
guardar con aviso de campos faltantes).
- Bundle: tipa issue_tasks correctamente como IssueTask[].
- docs/: sincronizados openapi.yaml y MOBILE_APP_BRIEF.md v1.1 del backend.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Capa API tipada de los 8 endpoints, BD local espejo del bundle + outbox
(operaciones y media) + cursor de sync, motor runSync (PUSH /sync ->
PUSH /media -> PULL bundle?since) con idempotencia por uuid y last-write-wins,
mutaciones de alto nivel (write local + encolar), sesion con token en
SecureStore, conectividad NetInfo y UI minima (Login -> Proyectos -> Detalle).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>