- new render_progress() draws ████████░░░░░░░░ 42% (1m23s / ~3m18s) bar - runtime_lookup/save persist step durations in tmp/.deploy-runtimes (gitignored — auto-learns from successful runs) - first run = spinner mode (no baseline yet), subsequent runs show real % - still shows live xcodebuild action (Compiling X.swift) as subtitle - format_duration helper: 45s / 1m23s readable output