Repository navigation
fix(web): Run on is one list, and every cloud machine has its own name - #376
Conversation
Two connected cloud machines were both registered as "Cloud session", so the menu's label de-duplication folded them into one entry and the second leaked back in as a separate "Ready" row under a second "Cloud" section. The menu is now one list: the machines, one row per cloud machine (its name over what it is doing, selectable once connected), then New cloud session. Cloud environments skip the label de-duplication. A machine is named by what it is for (a caller-given name, else its project's repository) and when it started; the name rides in the dispatch tag, so no workflow change is needed. Settings > Connections shows the same names. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b423ec3bf7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| export function RunOnCloudRow(props: { | ||
| readonly row: Row; | ||
| readonly selectable: boolean; | ||
| readonly connecting: boolean; | ||
| readonly onConnect: (session: CloudSession) => void; | ||
| readonly onDismiss: ((session: CloudSession) => void) | undefined; | ||
| }) { |
There was a problem hiding this comment.
Add Storybook coverage for the new cloud row
The new reusable RunOnCloudRow component has no Storybook story, despite exposing several user-visible states: connected/selectable, ready, connecting, provisioning, and failed/dismissable. Add stories covering these states and their interactions so this reusable t3team UI component meets the repository's required Storybook coverage.
AGENTS.md reference: AGENTS.md:L102-L108
Useful? React with 👍 / 👎.
| const started = session.startedAt === undefined ? null : new Date(session.startedAt); | ||
| if (started === null || Number.isNaN(started.getTime())) return base; | ||
| const sameDay = started.toDateString() === now.toDateString(); | ||
| return `${base} · ${(sameDay ? timeFormat : dayTimeFormat).format(started)}`; |
There was a problem hiding this comment.
Include a collision-proof suffix in machine display names
When two sessions for the same repository start within the same minute—which can happen through consecutive creates or concurrent clients—both format to the exact same name because the timestamp only includes hours and minutes. Their detail text is also normally identical, so the new rows and selected trigger remain indistinguishable even though this formatter is intended to tell machines apart; include seconds or a stable session-derived suffix.
Useful? React with 👍 / 👎.
Thread transfer impact
This comment will update automatically after the next completed run. |
Review finding: BranchToolbar folded the environments before handing them to the selector, so a second connected cloud machine fell out and its row got stuck on Connecting. The selector de-duplicates itself; it now gets the full list. The session name is found by the tag's own shape, not the first bracketed part of the run name. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A machine connected for another project never joins this project's environments, so clicking it hung on Connecting. Such machines are no longer listed; one the user just tried stays, saying it does not have this project. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Two connected cloud machines were both registered as "Cloud session", so the Run-on menu's label de-duplication folded them into one entry and the second leaked back in as a separate "Ready" row under a second "Cloud" section.
nameon create (for the agent tool to come), else the project's repository, else "Cloud session"; plus the start time. The name rides in the dispatch tag, so no workflow change.🤖 Generated with Claude Code