The server's Chromium as a full-window takeover: the page fills the window
under a slim client bar, and the bar carries the hand-off's actions and the profile's tab
picker. No window, no browser tab strip and no browser chrome - the page is the surface. A
hand-off's Open and the strip's browser row both open it; the sessions drive the same
tabs while it is closed.
engine: the server's CEF hostone host per org profilethe host owns the tabsthe phone and the web are viewers too
The takeover
live - the page under the bar, the whole window
back to chatbrowser hand-off · tab 2CmdOptDown to focus the bar2 · Senior Rust engineer · Busytools/forge/lead
▾take controlDoneNot now
The CV form is showing a CAPTCHA. Solve it, then pick Upload CV again.
hiring cafe
Senior Rust engineer
Remote, India. Apply with your CV and a short note on the systems you have shipped.
Apply nowform
Upload CVpdf, docx
Save for latersaved
the picker moves this surface to another tab of the same profile; a tab
is created by the session whose calls drive it and closes with that session, never from here.
take control makes this surface the one viewer whose clicks, keys, wheel
and history arrows reach the page; a watcher's arrows are drawn disabled, and the server
refuses a move from anyone but the holder. The server pushes who holds the role, so another
surface says take control rather than guessing. The gestures land as trusted input, and the person's own cursor is
drawn by the page, not by the client. The two arrows are the page's own history: back was
enabled by the link that reached this page, forward has nowhere to go yet, and Cmd+[ and
Cmd+] are their keys. The ask's own words sit under the bar because the hand-off's card is
drawn in the chat behind this page; a page moved to another tab keeps the ask's name in the
bar and offers none of its answers, and a page raised for another seat is lowered when that
seat is left, so it never covers the seat whose ask is waiting.
The phone
the same page on the phone - the same bar, a canvas instead of a native layer
back to chatbrowser hand-off · tab 22 ▾take controlDoneNot now
The CV form is showing a CAPTCHA. Solve it, then pick Upload CV again.
example domain
This domain is for use in documentation examples
The server encoded this frame; the phone painted it
on a canvas at the phone's own size.
the phone's shell has no native overlay, so each relayed frame is a WebP still
the page draws on a canvas. The picture keeps its own shape - a wide page in a portrait phone is
letterboxed, and taking control lays it out at the phone's shape. The bar over it is the same
bar, and a hand-off's row is wider than the phone in portrait: its actions wrap to a line of
their own, so Done, send feedback once the note has words and Not now stay on screen
and under the finger at the narrowest width. take control makes the phone the one viewer whose
taps, keys and swipes reach the page, the bar clears the status band with its own safe-area
padding, and the newest frame is kept for a canvas that mounts after it arrived.
The web
the same page in a browser tab - the page owns the overlay, the canvas is the picture
https://forge.hub/session/Busytools/job-hunt/lead
back to chatbrowser hand-off · tab 22 ▾take controlDoneNot now
The CV form is showing a CAPTCHA. Solve it, then pick Upload CV again.
hiring cafe
Senior Rust engineer
The server encoded this frame; the page drew it on a
canvas sized to the tab.
a plain browser tab has no shell, so the page draws the whole takeover itself:
a fixed overlay over the viewport, the bar at its top and a canvas under it. Attaching, listing
the tabs, lowering, taking control, moving through history and laying the page out are the
socket's own messages rather than the shell's invokes, and there is no rect to report - the
overlay's own box is the surface. Back to chat lowers it and leaves the hand-off parked, and
the chat is still under it, so the tab never leaves the app.
The bar's other two doors
the note line - the words ride whichever answer is picked
back to chatbrowser hand-off · tab 22 · Senior Rust engineer · Busytools/forge/lead
▾Donesend feedbackNot now
The CV form is showing a CAPTCHA. Solve it, then pick Upload CV again.
the note rides whichever answer is picked: Done approves,
send feedback asks for a revision and Not now defers the ask. For feedback the
words go as a prompt and the session addresses them before handing the page off again. The
mic is the composer's own, so a take here is the same capture the dock draws. Back to chat
closes the takeover and leaves the hand-off parked, the session still waiting.
a take in the note line - the field gives its line up to the card
back to chatbrowser hand-off · tab 22 · Senior Rust engineer · Busytools/forge/lead
▾
0:12612 fr382.0 KB31 KB/s✕
a take replaces the field with the dock's own card, and the card takes
the line: it grows to everything the mic leaves and its graph takes that room, so what the
take is doing is the row's meter rather than a pill in an otherwise empty row. The mic is
the press that ends the take, and the card's ✕ abandons it without sending.
a take still opening - the press landed, and nothing else would say so
back to chatbrowser hand-off · tab 22 · Senior Rust engineer · Busytools/forge/lead
▾
opening the microphone…
the card draws from this page's own take, which exists only once the
capture has opened; until then the row keeps its field and mic, and nothing says the take is
running, so a slow open reads as a dead press. The line is drawn only once the open outlasts
a quick one - a fast press is not a state to flash - and it goes when the card arrives.
an answer that did not leave - the words stay, and the bar says why
back to chatbrowser hand-off · tab 22 · Senior Rust engineer · Busytools/forge/lead
▾Donesend feedbackNot now
Not sent - the connection is down.
the socket was gone before the frame crossed, so the bar names the loss
in its own line and the field keeps the words: the hand-off is not answered, and an answer
can be pressed again when the connection is back. An answer that does leave clears no line
here and ends the park.
Before Open, and the strip
the hand-off's card
▸ browser hand-off · tab 2
The Apply form needs your CV uploaded, and the upload only takes your own files.
Open browser shows the page the session prepared, exactly as it stands. The session waits, with no timeout, for your answer.
Open browserDoneNot now
once the takeover is up the card leaves the actions to the bar.
browser3 tabsBusytools/work · connected · closing in 27m
Busytools/work · connectedclosing in 27m
tab 1Senior Rust engineerBusytools/job-hunt/lead · in useshow
the strip's row opens the same takeover outside a hand-off; its panel lists
the profile's tabs with each one's owner and state, and show raises that tab. Hide returns to
the chat and the sessions keep driving the tabs. The row only exists while the profile has
a tab: with none, the segment draws nothing at all rather than an empty "0 tabs"
row.
The states before a frame
opening - drawn in the page area
back to chatbrowser hand-off · tab 2
opening the browser…
failed - the shell's sentence, the hand-off still parked
back to chatbrowser hand-off · tab 22 · Senior Rust engineer · Busytools/forge/lead
▾try againDoneNot now
the browser did not start in time - try again
a failure draws the shell's own sentence - the port, the profile, the
framework, or a page area that could not be placed - and the hand-off stays parked until
Done, Not now or send feedback once the note has words; try again asks the shell for
the surface once more. The tab picker is drawn only when the last list it read or was pushed
still has tabs.