Repository navigation
fix(console): show an owner's stop as stopped, not failed - #2473
Merged
Merged
Conversation
A deployment ended by REVISION_STOPPED renders as a neutral Stopped outcome in Agent details and the Agents list. A Stop before the first revision (PROVISIONING_CANCELLED) reads as stopped on the create page and links the kept Agent; the API names whether Stop or deletion cancelled the job.
…urces Agent details and create docs name the neutral stopped outcome and the kept Agent after a Stop before the first revision. The 10-14 token_url notice gains a find-before-upgrade loop over occ namespace and credential-source lists, checked with the CLI against the list response shape.
Pages/Agent detail gains Deployment stopped by the owner; Pages/Create Agent gains Stopped before the first deployment (PROVISIONING_CANCELLED with the kept Agent).
Contributor
|
🦞👀 Pull request received. I will update this pull request when review starts. |
freeqaz
had a problem deploying
to
integration-qa-pr
October 14, 2026 23:14 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 14, 2026 23:14 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 14, 2026 23:15 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 14, 2026 23:15 — with
GitHub Actions
Error
… be read Review follow-up: only a 404 or a deleting Agent counts as gone. Any other read error names both next steps and links the Agent, since a Stop keeps its name. The test now stops the kept Agent through the API and covers the deleting and unreadable cases; doc wording nits.
freeqaz
had a problem deploying
to
integration-qa-pr
October 14, 2026 23:23 — with
GitHub Actions
Failure
freeqaz
had a problem deploying
to
integration-qa-pr
October 14, 2026 23:23 — with
GitHub Actions
Failure
This was referenced Oct 15, 2026
This was referenced Oct 19, 2026
This branch had an error being deployed
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.
Problem
Dogfood round r22b found three gaps around stopping a new Agent and one doc gap:
v1 · Failed, a "recorded as failed" banner, a red "check the recorded error" stage, andv1 · failedin the Agents list. That holds for any deployment the owner stops (REVISION_STOPPED), not only the first.PROVISIONING_CANCELLED). The create page said "Provisioning failed. Provisioning was cancelled. Create a new Agent to provision again." with no link. The stopped Agent keeps its name, so creating it again is refused as a duplicate.token_urlnotice has no way to find affected sources. It explains the refusals but not how to find affected sources before an upgrade.Change
REVISION_STOPPEDnow renders like fix(console): show a superseded deployment as superseded, not failed #2446's superseded outcome. It shows asv1 · Stopped/v1 · stoppedwith neutral stages and no failure banner. It drops the "probably down" serving claim and the diagnostics "resolve that first" hint, and adds a "deploy a new version when you want it running" next step.REPOSITORY_REVISION_STOPPEDstays a failure, because it can also mean the Namespace is not ready (see fix(console): clarify a stopped initial deployment #2459's review). Real failures still render red. The two neutral endings share one map,NEUTRAL_DEPLOYMENT_OUTCOMESinlist.mjs.PROVISIONING_CANCELLEDcode, in place of the fixed "Create a new Agent to provision again." Jobs cancelled before this change keep their stored "cancelled by Stop/deletion." text. The codePROVISIONING_CANCELLEDdoes not change.PROVISIONING_CANCELLEDthe page reads the job's Agent. Stop and Delete are the only operations that cancel provisioning, so an Agent that still exists and is notdeletingwas stopped. In that case the page says "Provisioning stopped.", adds "Open this Agent and deploy a version when you want it running.", and links Open Agent. If the Agent is gone (404) ordeleting, the page keeps the generic text and offers Create Agent. Any other read error means the page can't tell a Stop from a deletion, so it names both next steps and still links the Agent. The stopped guidance for both stop cases no longer uses the error colour (r22b nit).token_urlbreaking-change notice gains a find-before-upgrade loop that uses existing commands only:occ namespace list -o jsonandocc credential-source list --namespace NS -o json, piped throughjqto print each source'stoken_urlandhost.Pages/Agent detail/Deployment stopped by the owner(deploymentStopped) andPages/Create Agent/Stopped before the first deployment(createProvisioningStopped).Verification
console-agent-state: "Agent detail and list show a deployment stopped by its owner as neutral, not failed". Also checks thatREPOSITORY_REVISION_STOPPEDstill renders failed.console-agents-2: "Dedicated Agent creation reports a stop before the first deployment and links the kept Agent". It stops a real fixture Agent through the API, and also covers a deleting Agent and an unreadable Agent.console-agents-2: the fix(console): clarify a stopped initial deployment #2459 stopped test now also checks that the stopped guidance is not in the error colour.tests/browser/console-agent-state.test.mjs,console-agents-2.test.mjs,console-agents.test.mjs: 64/64 pass locally. The new and changed tests passed 20/20 runs pinned to 2 CPUs.postgres-agent-provisioning"Stop and Delete cancel failed pre-handoff provisioning Agents..." now asserts both cancel messages. It runs in CI only; there was no local PostgreSQL.tsc --build, eslint and prettier pass on the touched files.token_urlfind loop: I builtoccfrom this branch and ran the loop, extracted verbatim from the doc, against a loopback stub serving the documentedGET /namespacesandGET /namespaces/{id}/credential-sourcesshapes. It printed one TSV row per source that has atoken_urlorhost. It has not been run against a live Installation with a Credential Gateway, and the doc says so.Media (Storybook, simulated UI proof)
Captured from Storybook fixtures on this branch (
prepare-assets.mjs+ headless Chromium). "Before" uses main's console source with this branch's story fixtures. These show UI states only. They don't verify a live deployment, a real Stop, or the PostgreSQL-backed cancel messages.Stories:
Pages/Agent detail/Deployment stopped by the owner(deploymentStopped) andPages/Create Agent/Stopped before the first deployment(createProvisioningStopped).Agent details, before (main) and after:
Agents list, after:
Create page after a Stop before the first revision, before (main) and after:
Walkthrough video: Agent details, refresh, Agents list, create page, Open Agent
The media commit
d0d51c109is removed again in077bc2847, so the squash adds no files.Risks
PROVISIONING_CANCELLEDjob. A cleaner follow-up would be for the API to return a structured cancel reason, so the console needs no inference.REVISION_STOPPEDon a deployment that was already selected now reads as neutral. The Agent is stopped, so it isn't serving; the Stop panel already says that a new deployment starts it again.