Add a table view of the UI, with links to the Render Dashboard - #40
Merged
Merged
Conversation
The table view at /table shows the same runs as the classic view at /. Each view has a button in the top bar that opens the other view. The sites table shows the site, its status, its URL, the time that its run took, the time that the run started, and a delete button. The delete button opens the same dialog as the classic view. The stage table tells what each stage does and where it runs, so that a presenter can talk along with it. The row of the stage that runs now has a tint. The status, the link to the live site, and the error summary are above the stage table, so that the table does not push them down. Each stage links to the run of prompt-to-app in the Render Dashboard. The page of that run lists its subtasks. The Render SDK does not give the ID of a subtask run, so a stage cannot link to its own subtask. The stages that use the sandbox of the run also link to the sandbox. The gateway builds the links, and gives null for a link that it cannot make: - The gateway reads the workflow ID once, from a task run and its task, in the background. Until the read is done, the responses have no workflow link. A Blueprint cannot give the ID: fromService has no id property. - prompt-to-app records its sandbox and the sandbox group of the workspace. In the alpha, a workspace has at most one group. With more than one, the group of a sandbox is not known, so there is no sandbox link. - Local task runs are not in the Dashboard, so local development gets no workflow links. A delete changes updated_at, so a new finished_at column records when a run stopped. The migration copies updated_at into finished_at for the runs that stopped before this change. GET /v1/apps/:runId now also gives finishedAt and links. public/runs.js has the parts that both views share: the prompt form, the poll, the run panel, the stage states, and the delete dialog. app.js and table.js render only what differs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 tasks
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.
Summary
A second view of the UI at
/table. It shows the same runs as the classic view at/, and each view has a button in the top bar that opens the other view. The classic view does not change, except for this button.Dashboard links
The gateway builds the links from IDs in Postgres, and gives
nullfor a link that it cannot make./wf/<workflowId>/runs/<taskRunId>workflow_run_id, which exists. The gateway reads the workflow ID once, from the task run and its task, in the background./sandbox-group/<groupId>/sandboxes/<sandboxId>prompt-to-apprecords its sandbox and the sandbox group of the workspace.Limits:
prompt-to-app, which lists its subtasks. The Render SDK does not give the ID of a subtask run.publish-apphas no link: it is not recorded.fromServicehas noidproperty.API and schema
sandbox_id,sandbox_group_id, andfinished_at. A delete changesupdated_at, sofinished_atrecords when a run stopped. The migration copiesupdated_atintofinished_atfor the runs that stopped before this change.GET /v1/apps/:runIdandGET /ui/appsnow also givefinishedAtandlinks.scripts/doctor.tschecks the new columns.Code
public/runs.jshas the parts that both views share: the prompt form, the poll, the run panel, the stage states, and the delete dialog.app.js(classic) andtable.js(table view) render only what differs.AGENTS.md,docs/README.md, anddocs/FAQ.mdtell about the table view.Test plan
npm run check: Biome,tsc, and 388 Vitest tests pass. New tests cover the links, the finish time, the workflow ID read, the record of the sandbox, the Basic Auth of the new routes, and the stage table.mainand old rows: it runs two times with no error, and it copies the time only for runs that stopped./ui/apps: both views, with a running, a deployed, and a failed run; the delete from a row; the selection by a click on a row; the phone width, with no horizontal scroll of the page.🤖 Generated with Claude Code