JobCache participant UI
The scraping pill is a compact status and consent control in the right side of CareerVector's workspace action band. It projects a participant owned by the application root. Mounting, opening, closing, or navigating away from the pill must not create or destroy the participant session.
This surface does not expose the tensor or ask a person to choose capabilities. The device reports current circumstances, tries feasible work, protests what it cannot do, and lets the orchestrator reshape later routing.
Runtime bargain
| Runtime | Participation | Control shown |
|---|---|---|
| Browser | Off by default; explicit opt-in persists for this browser | Enable/stop contribution |
| CareerVector Desktop | Automatic while the installed app is open | Status only; closing the app stops participation |
One browser-origin tab holds the participant lock. Other opted-in tabs show
Other tab active and do not ask for duplicate leases.
Collapsed pill
The trigger reads Scraping · <state> and stays in the normal shared header
status-control shape. While working it may append the source. The dot and text
carry the same state so color is never the only signal.
| State | Tone | Meaning |
|---|---|---|
| Off | neutral | Browser contribution is disabled |
| Connecting | info | Establishing the participant session |
| Ready | success | Connected and waiting for feasible work |
| Working | warning + gentle pulse | Trying one lease locally |
| Rerouted | warning | The target did not fit locally and was returned with evidence |
| Offline | neutral | Paused for local network loss |
| Other tab active | info | An origin-local leader is already contributing |
| Needs attention | error | Participant/orchestrator failure, not a target refusal |
Rerouted is a successful routing reaction. An actual CORS/firewall/extractor
attempt becomes DEVICE evidence and may be projected to SOURCE/SESSION. A fresh
DEVICE-local reachability or capacity fact can instead protest the optimistic
offer before execution; that releases the lease without projecting another
class failure. Neither case appears as a red participant error.
Expanded panel
The panel contains, in order:
- Shared JobCache heading and Browser/Desktop runtime badge.
- A short explanation of direct local attempts and reactive rerouting.
- Current state card.
- Session totals for completed and rerouted work.
- Last source and last result.
- Orchestrator tensor decision, participant-local realization, and the honest
feedback path (
deviceonly ordevice → source → session). - Browser consent action, or the desktop automatic-participation notice.
- A credential and workspace-data boundary statement.
Raw exception text appears only when the participant itself needs attention. Normal portal protest is summarized in plain language.
Interaction and layout
- The trigger is a native button with dialog state exposed to assistive tech.
- Enter/Space opens it; outside click closes it; Escape closes it and restores focus to the trigger.
- Status changes use a polite live region. Labels remain meaningful without color or animation.
- The panel is right-aligned on desktop and becomes a viewport-bounded fixed panel on narrow screens.
- Only
Workinganimates, andprefers-reduced-motiondisables that pulse. - The control uses workspace semantic color tokens. Error red is reserved for failures requiring attention.
Data boundary
The participant receives only scoped leases and expiring deposit grants. It never receives workspace, database, queue, or object-store credentials. Browser execution deposits extracted job facts only; encrypted raw evidence remains a native-worker concern.