Skip to content

Add Latest Version optional column to Deployments list (DT-4174)#3625

Merged
rossnelson merged 2 commits into
dt-4174-connection-statusfrom
dt-4174-latest-version-column
Jul 2, 2026
Merged

Add Latest Version optional column to Deployments list (DT-4174)#3625
rossnelson merged 2 commits into
dt-4174-connection-statusfrom
dt-4174-latest-version-column

Conversation

@rossnelson

@rossnelson rossnelson commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

What

Second half of DT-4174. Adds a Latest Version column to the Worker Deployments list as an opt-in, hidden-by-default column, toggled via the table's configurable-columns control (the same gear + drawer used by the Workflows, Schedules, and Activities tables).

Stacked on #3618 (the connection-status / Current Version work). Base is dt-4174-connection-status, so the diff here is only the Latest Version work.

Changes

  • Store: extend configurable-table-columns with a DEPLOYMENTS table type. Default visible columns are Deployment, Current Version, Created At; Latest Version is hidden by default and offered in the drawer's Available Columns. Namespace-scoped persistence via namespace-deployment-table-columns.
  • List page: columns are sourced from the store; a footer gear opens the reused ConfigurableTableHeadersDrawer for deployments.
  • Latest Version cell: build ID (monospace link) + lifecycle badge (Ramping / Draining / Drained / etc.) + compute provider. No connection indicator (connection stays on the Current Version cell). Shows "Same as Current" when the latest version equals the current one, and an em dash when there is no latest version.
  • The drawer's Custom Search Attributes section is gated off for deployments (workflows / schedules / activities are unaffected).

Why

Per the DT-4174 decision log, the list defaults to showing the Current version, with Latest available as an optional column for users who want to see the newest deployed version alongside it.

Testing

  • pnpm check: 0 errors
  • pnpm lint: clean
  • pnpm test --run: 2148 passed / 1 skipped (new store tests cover default-hidden plus add/remove toggle and persistence)

Notes

The second half of DT-4174. Latest Version is an opt-in, hidden-by-default
column on the Worker Deployments list, toggled via the table's
configurable-columns drawer (the same control Workflows/Schedules/Activities
use).

- Extend the configurable-table-columns store with a DEPLOYMENTS table type:
  DEFAULT_DEPLOYMENTS_COLUMNS (Deployment, Current Version, Created At) with
  Latest Version as an available/hidden column, a namespace-scoped
  persistStore, and availableDeploymentColumns.
- Source the deployments list columns from the store, translate labels for
  the header, and add the footer gear + reused drawer.
- The Latest Version cell renders build ID, lifecycle status, and compute
  provider, with no connection indicator (connection stays on Current
  Version). Shows 'Same as Current' when the latest version equals the
  current one, and an em dash when there is no latest version.
- Gate the drawer's custom search attributes section off for deployments so
  it does not show an irrelevant empty section (workflows/schedules/
  activities are unaffected).
@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment Jul 2, 2026 4:06pm

Request Review

Match the design for the Current and Latest Version cells on the deployments
list:

- Remove the min-w-32 on the build-ID container so the compute badge sits
  next to the build ID instead of leaving a large gap for short IDs.
- Drop the copy button from the build-ID cells (not shown in the design); the
  deployment name keeps its copy button.
@rossnelson
rossnelson marked this pull request as ready for review July 2, 2026 16:20
@rossnelson
rossnelson requested a review from a team as a code owner July 2, 2026 16:20
@rossnelson
rossnelson merged commit f93e5a3 into dt-4174-connection-status Jul 2, 2026
5 checks passed
@rossnelson
rossnelson deleted the dt-4174-latest-version-column branch July 2, 2026 16:20
rossnelson added a commit that referenced this pull request Jul 7, 2026
…ts (DT-4174) (#3618)

* Add connection status types, util, and ConnectionBadge (DT-4174)

Phase 1-2 of DT-4174 (connection status on Deployments/Versions).

- Add ProviderValidation/ComputeStatus types + computeStatus on VersionSummaryNew
- Add deriveConnectionStatus + formatConnectionCheckTime pure utils with tests
- Add ConnectionBadge component (dot + word + tooltip) and i18n keys

State is derived client-side from compute_status.provider_validation
(error_message + last_check_time): pending / connected / failed. The
failure message from the API is rendered directly (no client-side code map).

These phases are API-independent and degrade to Pending until the backend
(temporalio/api#810, temporalio/temporal#10778) lands. List/details wiring
and the configurable Latest Version column are follow-ups.

* Wire connection status into deployments list and versions table (DT-4174)

Phase 3-4 of DT-4174.

List page: replace the Latest Version column with a composite Current
Version cell (build ID + compute + connection badge); show No Current
Version when there is no current version. Latest Version as an optional
column is a follow-up.

Details page: add a Connection column to the versions table, shown for
Current/Ramping/Draining versions and an em dash otherwise. All new UI is
behind the serverScaledDeployments capability; the validate-connection
flow is unchanged.

* Only show connection status when a compute config is present (DT-4174)

Self-managed (non-serverless) deployments have no compute provider, so a
connection indicator is meaningless for them. Gate the ConnectionBadge on
the compute provider being present: the list Current Version cell shows it
alongside the compute badge, and the versions table shows an em dash when
there is no compute config. Found via local testing against a self-managed
worker deployment.

* Match designs: connection inside compute pill, Lifecycle header (DT-4174)

- List Current Version cell renders the connection dot + word inside the
  compute pill (Lambda • Connected) instead of as a separate badge, per design
- ComputeBadge accepts children so the connection can be composed inside it
- Rename the versions-table lifecycle column header to Lifecycle

* Refine connection dot: smaller/centered in pill, hidden in details column (DT-4174)

- Shrink the in-pill status dot (size-2 -> size-1.5) and shrink-0 so it stays
  small and vertically centered next to the label, matching the design
- Add showDot prop to ConnectionBadge (default off); the list pill opts in, the
  details Connection column renders the word only

* Flatten connection into the compute pill layout (DT-4174)

Move the connection rendering into ComputeBadge via a computeStatus prop so
the icon, label, status dot, and status word are direct flex children of one
pill (Lambda • Connected), with the tooltip on the pill. ConnectionBadge is
now the word-only badge used by the details Connection column.

* Add Storybook story showing all connection/compute scenarios (DT-4174)

Showcases the composite pill across providers x Connected/Failed/Pending,
compute-only (self-managed), and the details word-only ConnectionBadge.

* Use design-system status colors + story render tests (DT-4174)

- Connection colors use design tokens (text-success/text-danger/text-subtle)
  instead of raw green/red; the in-pill dot uses bg-current so it matches
- Add Storybook play() render assertions for each connection scenario
  (Lambda/Cloud Run x Connected/Failed/Pending, compute-only), runnable via
  pnpm stories:test

* Drop misleading Validate Connection hint from Pending tooltip (DT-4174)

The on-demand Validate Connection API is a dry-run and does not persist to
compute_status, so it does not update the connection badge. Remove the
implication that it does.

* Extract shared connection presentation helpers (DT-4174)

Both ComputeBadge (list pill) and ConnectionBadge (details column) duplicated
the state->color map, state->label, and tooltip-text logic. Move them to
connection-status.ts (connectionStateColor, connectionStateLabel,
connectionTooltip) so there is a single source of truth; the components are
now thin presentational shells.

* Consolidate duplicate connection tooltip i18n key (DT-4174)

connection-tooltip-connected and connection-tooltip-failed-checked were the
same string ('Checked {{ time }}'). Replace both with a single state-neutral
connection-tooltip-checked key used by connectionTooltip for the connected
and failed states.

* Route connection freshness text through i18n (DT-4174)

formatConnectionCheckTime previously returned hardcoded English (date-fns
output + a literal 'less than an hour ago'). Replace with translate keys
(connection-checked-recently/-hour/-hours) and a manual hour calc, dropping
the date-fns dependency from this helper. Output is unchanged for the
existing states.

* Add Latest Version optional column to Deployments list (DT-4174) (#3625)

* Add Latest Version optional column to Deployments list (DT-4174)

The second half of DT-4174. Latest Version is an opt-in, hidden-by-default
column on the Worker Deployments list, toggled via the table's
configurable-columns drawer (the same control Workflows/Schedules/Activities
use).

- Extend the configurable-table-columns store with a DEPLOYMENTS table type:
  DEFAULT_DEPLOYMENTS_COLUMNS (Deployment, Current Version, Created At) with
  Latest Version as an available/hidden column, a namespace-scoped
  persistStore, and availableDeploymentColumns.
- Source the deployments list columns from the store, translate labels for
  the header, and add the footer gear + reused drawer.
- The Latest Version cell renders build ID, lifecycle status, and compute
  provider, with no connection indicator (connection stays on Current
  Version). Shows 'Same as Current' when the latest version equals the
  current one, and an em dash when there is no latest version.
- Gate the drawer's custom search attributes section off for deployments so
  it does not show an irrelevant empty section (workflows/schedules/
  activities are unaffected).

* Tighten deployment list version cells (DT-4174)

Match the design for the Current and Latest Version cells on the deployments
list:

- Remove the min-w-32 on the build-ID container so the compute badge sits
  next to the build ID instead of leaving a large gap for short IDs.
- Drop the copy button from the build-ID cells (not shown in the design); the
  deployment name keeps its copy button.

* Remove compute-badge Storybook story (DT-4174)

Drop the compute-badge story to check whether it is the source of the
Chromatic UI Tests failure.

* Revert "Remove compute-badge Storybook story (DT-4174)"

This reverts commit e07018c.

* Address review nits (DT-4174)

- formatConnectionCheckTime: guard against NaN diff (invalid dates) and use
  Math.floor so elapsed hours are not overstated. Add an invalid-date test.
- Remove the now-unused 'build-status' i18n key (replaced by 'lifecycle').
- Configurable-columns MOVE reducer: fall back to the table-aware
  defaultColumns instead of hardcoded DEFAULT_WORKFLOWS_COLUMNS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant