Mobile supervision
Mobile supervision
The Holaryn pocket console is an installable mobile web app for watching and safely steering
work while you are away from the desktop. It shows active and recent chat, subagent, coding, and
task-graph runs; progress and recent tool activity; usage, cost, and budgets when available;
waiting approvals/questions; artifacts; and terminal outcomes.
It supervises the existing Holaryn host. It does not run an agent or arbitrary tools on your phone.
The separate Device capability nodes feature can expose a few
explicit OS-mediated actions without changing that boundary.
Before you pair
Mobile supervision is off by default. Use it only through a trusted private network path.
Non-loopback mobile requests require HTTPS, and Holaryn never creates a public tunnel. If the host
is not already available through HTTPS, put it behind a trusted private reverse proxy or VPN and
keep the normal Holaryn operator authentication enabled.
Open /mobile from the authenticated desktop browser. In Desktop setup:
- Select Enable mobile supervision.
- Select Create one-time pairing link.
- Open or copy that link to the phone within ten minutes.
- Name the phone and select Pair phone.
- In the phone browser, choose Install app or Add to Home Screen if available.
The pairing link works once. Its secret is in the URL fragment and is removed from the address
bar after the PWA reads it.
What the phone stores
The phone keeps a revocable device credential and the last minimal supervision snapshot encrypted
with a non-extractable browser-local AES-GCM key. A short-lived session token stays only in
memory. The console locks that token after five minutes in the background and requests a new
15-minute session when it resumes.
Browser encryption protects against accidental storage disclosure; it is not equivalent to a
native secure enclave. Use the desktop device list to revoke a lost phone immediately.
Runs
The Runs tab shows state, type, session ID, update time, usage/cost/budget, progress, outcome,
and the latest privacy-bounded tool/run events. Task graphs show node counts by state.
Available controls depend on the owning runtime:
- active chat and subagent runs: Stop and Steer;
- running coding jobs: Stop and Steer when the coding backend supports steering;
- task graphs: Pause, Resume, and Stop according to their current state;
- completed runs: read-only outcome and usage.
Steering is queued for the next safe step. Stop ends the Holaryn run, but work already written to
an external system may not be reversible. Every control carries a stable idempotency key so a
manual retry after an ambiguous network failure cannot apply the action twice.
Decision inbox
The Inbox tab contains approvals, operator questions, and interrupted-run recovery choices.
An approval shows the exact tool name, session, consequence category, reversibility, and complete
structured request. Expand and scroll the evidence before deciding; paths, recipients, and diffs
wrap rather than disappear on a small screen.
Selecting an action opens a confirmation sheet. The server binds the response to the displayed
request digest/version and idempotency key. If the desktop already resolved it, or its evidence
changed while the phone was offline, Holaryn rejects the stale response and asks you to refresh.
High-impact account, credential, production deployment, financial, identity, purchase, admin, or
security approvals remain desktop-only. The PWA says so and does not display an Approve button,
because this release does not claim browser-generated biometric assurance without a verified
WebAuthn challenge.
Device capabilities
The Device tab can register this paired phone for camera capture, one location snapshot,
notification delivery, and a file you explicitly select. OS permission and Holaryn grants are
separate, and the phone shows the exact request before it acts. See
Device capability nodes for setup, invocation, transfer recovery,
revocation, and a real-device release smoke test.
Alerts and artifacts
In Alerts & device, enable Web Push if the browser supports it. You can independently enable:
- approvals;
- questions;
- failures;
- budget thresholds;
- completion.
Quiet hours use the phone's current timezone offset. Hide sensitive notification previews is
on by default. Even when previews are enabled, lock-screen messages do not contain prompt text,
tool arguments, paths, recipients, artifact bytes, or credentials.
Recent artifacts are available as bounded authenticated downloads. The phone does not cache
artifact bodies for offline use.
Offline and reconnect
The service worker caches the PWA shell. If the host is unavailable, the trust rail says
Offline and Cached view, and the last encrypted summary remains readable. All action
controls are disabled while the snapshot is stale. Reconnecting remints a short session,
continues from the monotonic cursor, and refreshes authoritative state before actions become
available again.
An action interrupted after it reached the server can be retried manually; the PWA reuses the
same idempotency key until it receives the durable receipt. It never persists or silently
submits a queue of offline approvals.
Lost-device recovery and diagnostics
From an authenticated desktop /mobile page, the Desktop setup card lists active and revoked
devices with their last-seen time. Select Revoke beside a lost device. Revocation immediately
invalidates its sessions and device credential, removes its Push subscriptions, and cancels
queued delivery. The phone can also select Revoke this phone.
If Push delivery reaches its retry limit or a provider returns an error, Notification delivery
diagnostics shows the category, state, attempt count, and bounded error to the authenticated
desktop operator. A permanently gone endpoint is removed automatically.
Accessibility checks
The pocket console supports keyboard and screen-reader navigation, live status announcements,
visible focus, color-independent state, reduced motion, safe-area insets, both orientations,
minimum 44-pixel controls, and dynamic-text/reflow layouts. For a release smoke test:
- Navigate Runs, Inbox, and Alerts using only the keyboard or screen-reader gestures.
- Confirm every run state and consequence is spoken without relying on color.
- Enlarge browser text to at least 125% and rotate the device.
- Expand a long path/diff and confirm the page does not scroll horizontally.
- Confirm focus enters and returns from every confirmation sheet.
Troubleshooting
- “Mobile supervision requires HTTPS outside loopback” — open the private HTTPS endpoint,
not the host's plain HTTP LAN address. - Pairing code rejected — create a new link; invitations expire after ten minutes and work
only once. - Console shows Cached view — do not act on the snapshot; reconnect and refresh.
- Session expired — reopen the PWA. It can mint another short session only while the device
remains active. - Push unavailable — verify HTTPS, service-worker and Push API support, notification
permission, and the desktop delivery diagnostics. - High-impact approval has no controls — decide it on the desktop; this is an intentional
assurance boundary.