diff --git a/app/src/components/computer/computer-view.tsx b/app/src/components/computer/computer-view.tsx index e6120c59..49352d37 100644 --- a/app/src/components/computer/computer-view.tsx +++ b/app/src/components/computer/computer-view.tsx @@ -1,15 +1,15 @@ import { useEffect, useRef, useState } from "react"; import { createPortal } from "react-dom"; -import { LiveScreen } from "./live-screen"; -import { ComputerPlaceholder } from "./placeholder"; import { + type ControlState, readControl, releaseControl, supplySecret, takeControl, - type ControlState, } from "@/lib/computers/control"; import { readScreenshot, type Screenshot } from "@/lib/computers/screen"; +import { LiveScreen } from "./live-screen"; +import { ComputerPlaceholder } from "./placeholder"; /** Explicit blank-browser URLs use placeholder artwork; missing URL fields are treated as real pages. */ function isBlankBrowser(shot: Screenshot): boolean { @@ -312,11 +312,37 @@ export function ComputerView({ ) : null} - {control?.requested && !driving ? ( -
+ {/* + * The wheel is offered whether or not the Bot asked for it. + * + * It only used to appear once the Bot called `computer_request_help`, which made the button + * depend on the Bot getting one instruction right. It does not always: asked to open a page + * behind a sign-in, a Bot answered "If you'd like, I can prompt you to take control … would + * you like to proceed with signing in?" and called nothing. The person was told to take + * control, and there was no control to take. The prompt already forbids that sentence in as + * many words, so the answer is not more prose: it is that a person who wants their own + * browser should not have to be offered it first. + * + * The amber row stays the Bot ASKING, which is a different thing and still worth its own + * colour and its reason. Without a request this is a quiet control that says who is driving. + */} + {!driving ? ( +
- The assistant needs you.{" "} - {control.reason} + {control?.requested ? ( + <> + + The assistant needs you. + {" "} + {control.reason} + + ) : ( + "The assistant is driving. You can take over whenever you want." + )} @@ -377,7 +407,8 @@ export function ComputerView({ > Hand back to the assistant - ) : control?.requested ? ( + ) : ( + /* Offered here too, and for the same reason: see the inline card above. */ - ) : null} + )} {driving ? "Press Escape to close"