Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Keeps chat endpoints selectable during revision rollouts by excluding only terminated deployments.
Changes:
- Replaces ready/created allowlists with destroying/destroyed exclusions.
- Removes obsolete version checks and the unused lifecycle filter prop.
- Documents the future replica traffic-status filtering approach.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
react/src/pages/ChatPage.tsx |
Updates default endpoint filtering. |
react/src/components/Chat/EndpointSelect.tsx |
Updates selector filtering and removes obsolete configuration. |
Contributor
Coverage Report for react-coverage (./react)
File Coverage
|
||||||||||||||||||||||||||||||||||||||||||||
The Playground chat endpoint selector filtered endpoints on lifecycle_stage == "ready" | "created", which only matches a completed deployment. While a new revision was rolling out (e.g. deploying/pending), the endpoint dropped out of the chat menu even though a previous revision's replica was still alive and serving traffic. Filter out only terminated endpoints (destroying/destroyed) instead, so a deployment whose replica is still serving stays selectable. This also drops the now-unnecessary endpoint-lifecycle-ready-stage feature-flag branching and the dead lifecycleStageFilter prop on EndpointSelect. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
Author
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has required the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
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.

Resolves #8235 (FR-3303)
Problem
In a model deployment, when a new revision is being applied and its inference session is still pending (e.g. resource-constrained), the previous revision's replica is still running and serving traffic — but the deployment disappears from the Playground Chat menu, so the user cannot chat against the still-alive replica.
Cause
The chat endpoint selector filtered endpoints with
lifecycle_stage == "ready" | lifecycle_stage == "created", which only matches a completed deployment. While a new revision rolls out, the endpoint'slifecycle_stagemoves todeploying/pending/scaling, so it was filtered out even though a replica was still serving.Fix
Filter out only terminated endpoints (
destroying/destroyed) instead of matchingready/created. A deployment whose replica is still serving stays selectable while a new revision rolls out.ChatPage.tsx(useDefaultEndpointId) andEndpointSelect.tsxnow uselifecycle_stage != "destroyed" & lifecycle_stage != "destroying".endpoint-lifecycle-ready-stagefeature-flag branching and the dead, always-overriddenlifecycleStageFilterprop onEndpointSelectare removed.Verification
bash scripts/verify.sh:src/components/FluentEmojiIcon.tsx:17(CUSTOM_CDN_URL) — pre-existing onmain, unrelated to this change (confirmed by re-running verify with the changes stashed). No new type errors in the touched files.🤖 Generated with Claude Code