Post-creation custom domain management for services. All three flags
require --domains with a comma-separated list. Calls PUT /services/{id}/domains
with add, remove, or custom_domains action. CLI_SPEC.md updated.
Add --golden-image and -f/--file CLI args to service command.
Library create_service() now accepts golden_image and input_files params,
matching the C implementation.
SCIENTIFIC INTEGRITY: Tests now retry transient errors (429, 5xx,
timeouts) with exponential backoff instead of falsely passing.
Prior to this fix, ~35% of 'passing' tests were masked failures.
Now tests will PASS (verified), FAIL (couldn't verify), or SKIP.
Add CLI support for toggling the show_freeze_page service setting,
which controls whether frozen services display an HTML payment page
or return a JSON error response.
Updated 18 SDK implementations + CLI_SPEC.md documentation.
Updated Python, JavaScript, Go, Rust, Ruby, Java, and TypeScript SDKs:
- Add unfreeze_on_demand field to Service struct/class
- Add setUnfreezeOnDemand function to toggle setting via PATCH /services/:id
- Add unfreeze_on_demand parameter to createService function
Change key validation endpoint from portal to API across all clients:
- C: Update PORTAL_BASE to API_BASE in validate_api_key()
- Python (sync/async): Change PORTAL_BASE to API_BASE
- Perl: Change $PORTAL_BASE to $API_BASE
- Rust (sync/async): Change hardcoded URL to api.unsandbox.com
All other languages (Go, Java, Kotlin, C#, Ruby, PHP, JavaScript) already
use their makeRequest() function with API_BASE, so no changes needed.
The key subcommand already exists and continues to work with the new endpoint.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>