- DEFAULT_TIMEOUT_MS: 40_000 -> 120_000 (1000 features with full geometry
from Feleacu regularly exceed 40s on the eTerra server)
- Add timeoutMs option to syncLayer() for caller override
- syncLayer now passes timeoutMs through to EterraClient.create()
Fixes 'timeout of 40000ms exceeded' on TERENURI_ACTIVE sync.
2 bugs:
1. After Magic/base download completes, progress bar stayed stuck at
77% because exportProgress was never updated to 'done' client-side.
Fix: set progress to 'Finalizat' + 100% after successful blob download.
2. syncLayer overwrote the export route's weighted percentages (0-100)
with raw feature counts (50/200), causing progress bar to jump.
Fix: when isSubStep=true, sync writes phase/note/phaseCurrent/phaseTotal
but preserves the parent route's downloaded/total weighted values.
3 bugs fixed:
- syncLayer was called without jobId -> user saw no progress duringSync
- syncLayer set status:'done' prematurely -> client stopped polling before GPKG phase
- syncLayer errors were silently ignored -> confusing 'no features in DB' error
Added isSubStep option to syncLayer: when true, keeps status as 'running'
and doesn't schedule clearProgress. Export routes now pass jobId + isSubStep
so the real sync progress (Descărcare features 50/200) is visible in the UI.