})
export interface IssueMonitorSurfaceProps {
issue: Issue;
+ hasActiveRun?: boolean;
onCheckNow?: (() => void) | null;
checkingNow?: boolean;
workProducts?: IssueWorkProduct[] | null;
@@ -268,6 +285,7 @@ export interface IssueMonitorSurfaceProps {
*/
export function IssueMonitorBanner({
issue,
+ hasActiveRun = false,
onCheckNow = null,
checkingNow = false,
workProducts,
@@ -275,7 +293,7 @@ export function IssueMonitorBanner({
onCancelMonitor,
}: IssueMonitorSurfaceProps) {
const reviews = getIssuePullRequests(workProducts).filter(pullRequestNeedsReview);
- const copy = useMonitorSurfaceCopy(issue, reviews.length);
+ const copy = useMonitorSurfaceCopy(issue, reviews.length, hasActiveRun);
if (!copy) return null;
// A busy workspace is a transient system wait the user cannot act on. It stays
@@ -309,6 +327,7 @@ export function IssueMonitorBanner({
*/
export function IssueMonitorComposerStrip({
issue,
+ hasActiveRun = false,
onCheckNow = null,
checkingNow = false,
workProducts,
@@ -316,7 +335,7 @@ export function IssueMonitorComposerStrip({
className,
}: IssueMonitorSurfaceProps & { className?: string }) {
const reviews = getIssuePullRequests(workProducts).filter(pullRequestNeedsReview);
- const copy = useMonitorSurfaceCopy(issue, reviews.length);
+ const copy = useMonitorSurfaceCopy(issue, reviews.length, hasActiveRun);
if (!copy) return null;
return (
@@ -338,9 +357,11 @@ export function IssueMonitorComposerStrip({
{!copy.automaticChecksPaused ? (
- {copy.pullRequestReview
+ {copy.pullRequestReview && copy.executionWait
+ ? "Review on GitHub while the current run finishes saving its work."
+ : copy.pullRequestReview
? "Review on GitHub, then check status to have the agent verify the result."
- : copy.workspaceWait
+ : copy.workspaceWait || copy.executionWait
? "You can keep sending instructions while the agent waits."
: "Sending a reply wakes the agent now — before the scheduled check."}
diff --git a/ui/src/pages/IssueDetail.tsx b/ui/src/pages/IssueDetail.tsx
index d125987d019..4306f6fb770 100644
--- a/ui/src/pages/IssueDetail.tsx
+++ b/ui/src/pages/IssueDetail.tsx
@@ -8048,6 +8048,7 @@ export function TaskDetailSurface({ conversation, tasksTab }: { tasksTab?: TaskS
cancelIssueMonitor.mutateAsync()}
issue={issue}
workProducts={workProducts}
@@ -8629,6 +8630,7 @@ export function TaskDetailSurface({ conversation, tasksTab }: { tasksTab?: TaskS
hasVisibleMonitorSurface(issue) ? (
checkIssueMonitorNow.mutate()}