fix(deploy): a source deploy of a private service no longer exits 1
What
insta deploy <dir> (archive/source lane) exits 1 with "the deploy finished but the platform returned no image or URL" after a successful deploy of a private-only HTTP service. Two customer tickets (SUP2-536, SUP2-543): both deploys were live, new image active, CLI said failure.
Cause: the platform's insta-compute adapter deliberately returns url: '' for a service with public access off (repos/platform/src/adapters/insta-compute.ts, privateOnly). The poller in src/deploy-archive.ts only accepted an empty URL for --port 0 or a returned endpointHost.
Change
src/deploy-archive.ts: an emptyurlis accepted. Still rejected: missing/empty image, non-string url, and a deploy that asked for a v6 endpoint (--endpoint tcp|udp|tcp+udp) but got neither a URL nor a host.src/commands/deploy.tsdeployedTarget: with no URL, prints(no URL: a worker)for port 0,(no public URL: a private service ā ...)for a real port, and "a worker or a private service" when a redeploy passed no--port. The image lane uses the same function, so it stops calling private services workers too.- Tests: private HTTP case accepted; missing image / non-string url still rejected; tcp control now passes
endpoint: 'tcp'; threedeployedTargetcases.
Testing
npm run typecheck, npx vitest run: 106 files, 2248 tests pass.
Handoff
Intent: Stop the CLI from reporting a successful private-service source deploy as a failure (exit 1).
Rejected: Platform-side change to return a public:false/private-host hint ā the CLI can be fixed alone; a hint can follow.
Constraints: An empty URL must still be refused for a v6-endpoint deploy with no host, and a missing image must still fail.
Known gaps: The result line doesn't print the private host itself (the poll response doesn't carry it).
š¤ Generated with Claude Code