.changelog/3423.md
get-modules.sh now records the active platform (ios/tvos) to modules/active_platform.txt after each successful extraction. On subsequent builds, if the platform, pin, and timestamp are all unchanged and ≥80% of expected dylibs are already present, extraction is skipped entirely — eliminating the unnecessary purge+re-extract cycle that occurred on every same-platform build. When switching platforms, stale dylibs (including platform-neutral ones) are removed and re-extracted with overwrite, so switching back to a previously-built platform only re-extracts from locally cached zips rather than re-downloading