LTRAC-593: feat(cli) - Show deployment hostnames in project list output#2988
Open
LTRAC-593: feat(cli) - Show deployment hostnames in project list output#2988
Conversation
Extend the projects list schema with a new nullable `deployed_url` field and render it beneath each project so users can recover the hosted storefront URL without having to run a fresh deploy. Previously, `catalyst project list` only printed `Name (uuid)`, and the only path to the `.catalyst-sandbox.store` URL was re-running `catalyst deploy` (which surfaces it via the SSE event stream). Surfacing the URL here also resolves the related feedback that it was unclear where a deploy lands. Projects without a successful deployment show `(not deployed)`. Refs LTRAC-443 Co-Authored-By: Claude <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: d8c3886 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
Bundle Size ReportComparing against baseline from No bundle size changes detected. |
Align the projects list field name with the existing `deployment_url` convention used on the ignition Deployments event stream, per reviewer feedback on bigcommerce/interfaces#3993 (Parth + Chance wanted a single consistent contract, not "either hostname or URL"). Contract is now strictly hostname-only (no scheme) — the CLI unconditionally prepends `https://` for display rather than defensively checking, which matches how the deploy command already handles `deployment_url` from the SSE stream. Refs LTRAC-443 Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
Unlighthouse Performance Comparison — VercelComparing PR preview deployment Unlighthouse scores vs production Unlighthouse scores. Summary ScoreAggregate score across all categories as reported by Unlighthouse.
Category Scores
Core Web Vitals
|
Switch the project list output from a single deployment_url field to an array of deployment_urls, mirroring the proto contract change in bigcommerce/interfaces#3993. Each hostname renders on its own indented line under the project; an empty array still renders "(not deployed)". Future-proofs the CLI for vanity hostnames per project, which the ignition serializer now exposes via domainService.GetDomains. Refs LTRAC-443 Co-Authored-By: Claude <noreply@anthropic.com>
Match the wire contract change in interfaces#3993 (singular `deployment_url` → repeated `deployment_urls`) so the user-facing release note describes the actual rendering: every URL per project is shown, including any vanity hostnames. Filename intentionally preserved — changesets pick up by `*.md` glob, so renaming would just churn git history. Refs LTRAC-593 Co-Authored-By: Claude <noreply@anthropic.com>
Track the proto rename + SSE deprecation in interfaces#3993:
project list — ProjectListItem.deployment_urls -> deployment_hostnames
on the schema and the rendering, matching the renamed proto field.
The visible output is unchanged (still one https://-prefixed line per
hostname, or "(not deployed)" for an empty array).
deploy SSE consumer — extend DeploymentStatusSchema to accept both
the deprecated singular `deployment_url` and the new plural
`deployment_hostnames`. Reading logic prefers the new field and falls
back to the deprecated one so older ignition builds (that haven't
shipped the rename yet) still produce a usable deployment URL during
the migration window.
Drops the defensive `startsWith('https://')` guard on the post-deploy
success message since the contract is now strictly hostname-only and
the CLI unconditionally prepends the scheme.
Mocks (handlers.ts) emit both fields on every SSE chunk so the test
exercises the new path.
Refs LTRAC-443
Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear: LTRAC-593 (sub-ticket of LTRAC-443)
Jira: TRAC-433
What/Why?
`catalyst project list` only printed `Name (uuid)`, so the only way a user could recover the hosted `.catalyst-sandbox.store` URL for an existing project was to re-run `catalyst deploy`. Chris and Ryan flagged this in `#native-hosting-alpha-internal`.
Surface every hostname directly in the list output (canonical + any vanity hostnames):
```
✓ Projects fetched.
Project One (a23f5785-fd99-4a94-9fb3-945551623923)
https://project-one.catalyst-sandbox.store
https://vanity.project-one.example.com
Project Two (b23f5785-fd99-4a94-9fb3-945551623924)
(not deployed)
```
Notes:
Dependencies
Consumer end of the LTRAC-443 chain:
Should land after the proto + ignition + api-proxy PRs merge and propagate.
Testing
Migration
None. Additive on the API response, additive output lines — existing consumers parsing the `Name (uuid)` line are unaffected.