- --extract-ocean-pca runs before the crash supervisor, whose report
window would block setup on a failed (non-zero) extraction
- ocean_pca.convert: install.spawn() pipes are text mode; reading them as
bytes aborted the environment refresh
- test_ocean_pca runs convert through the real spawn() for success and
failure
Verified: refresh rebuilt only the environment group (90 s) and wrote
assets/private/ocean-pca.json.