Work on several boxes in one app
In the VCode app on app.fezu.dev, every box on your account opens at once. Their tabs share one strip, each tab works with its own box, and you pick the box when you start a new tab.
Why you would use it
You run agents on more than one workstation: a desktop, a laptop, a server. You want to watch and steer all of them from one phone without switching between boxes, and you want a box that is off to leave the others alone.
How to use it
Open app.fezu.dev. Every box on the account connects at start. Its tabs join the strip (
#tabstrip), in the order you last left them on this device.To start a tab, tap the plus (
#new-tab). The New thread card starts with a box pick (.new-box), above the Folder box (.new-cwd). It readsWorkstationand the active tab's box. Tap it and pick another box from its menu (.new-box-menu). The agents and the folder list in the form are then that box's.
Tap Start thread (
.new-thread). The tab is made on the picked box.To add a box, tap the box pick and then Add or pair a workstation (
.add-box), the menu's last entry. The box list opens over VCode. Tapping a box linked since the page loaded adds its tabs to the strip without a reload; one that asks for pairing shows its pair screen (use-the-app). To add a new workstation, follow the link under the list, Add a workstation on fezu.dev (#rs-boxes-site), to fezu.dev/account (add-a-workstation). Close (#rs-close) returns to VCode as you left it.Drag a tab to move it anywhere in the strip, next to tabs of any box (reorder-tabs).
What you see
The box name on each tab (
.fmachine), after its folder:• dev-box. Every tab, in the strip and the drawer, names its box, with one box or several.
An unavailable tab (
.tab.unavailable) belongs to a box the app cannot use right now. It stays in the strip and opens from the transcript cached on this device. It fades when the box refused, or when nobody has seen the box for over an hour; a box that is only reconnecting keeps its tabs as they were. Its title says why:Connecting to the box…while the app opens the box for the first time.This box is offline.once that first open has failed, for a box that is off when the app starts, and when the box was open and dropped. The app keeps trying.- The box's refusal:
This box asks for pairing. On the box, run v-code box pair and type the code it shows.,This box's key changed. Pair it again.,This box runs an older version. It updates itself within the hour.orReload the app to talk to this box.
In an offline or connecting box's tab the banner reads
offline · thread served from cache, and what you send waits in that box's own outbox (N queued) until the box is back. The tab comes back to life without a reload.
Closing an unavailable tab works like closing any tab: the cross, the drawer row's close, Ctrl+W. The tab leaves the strip at once. The close is kept on this device only, and sent to the box when it answers again; then the tab is in that box's Closed list. Until then it is in no Closed list, and other devices still show it open: close it on each. A close the box refuses (the thread is gone) is dropped.
The tab comes back when its box answers more than 24 hours after you closed it: the close is not sent, and you decide again. It also comes back when the close fails three times, 30 seconds apart at least. A box removed from the account on fezu.dev takes its kept closes with it.
In a refusing box's tab the banner shows the refusal, and send and attach are off. Enter, a pasted file and
/newshow the refusal as a toast; your text stays in the composer. A slash command the page answers itself, such as a bare/model, still works.The box menu marks a box that has not opened yet, with
Connecting to the box…or, after a failed open,This box is offline., and one that refused this device, with its reason. These are disabled. A box that was open and is offline now saysoffline.While a box opens for the first time a read that cannot reach it yet, such as the file explorer's folder list on the wide layout, says nothing: the app reads again once the box opens. The
Connecting to the box…toast shows only if the box is still not open 10 seconds after the app started, or its first open failed.Everything that is not a tab follows the active tab's box: the settings sheet, the usage meters, the shell panel, the file explorer, dictation (the mic shows when that box has a transcription service). Each tab names its own box (machine-name). On a box that refused this device the banner above the composer gives the reason; tap it and that box's screen opens: its pair screen, key screen or version screen.
Agent logins belong to a workstation. The settings sheet's Agents group picks which workstation's logins it shows (
#agents-box), and a logged-out tab logs in on its own workstation (log-in-to-an-agent).
Options and settings
None. The strip order and the closes waiting for an unavailable box are kept on this device only. Each box is still told the order of its own tabs.
Limits and known gaps
- The box is chosen when the tab is made. A tab cannot move to another box.
- A folder typed in the form belongs to the box picked while you typed it.
Start on another box refuses it:
that folder is on <box>, not <box>: pick it again. - A lapsed plan or an expired login still covers the whole page; only a box's own refusals stay on its tabs.
- A box removed from the account is not connected, and its tabs are not shown.
- Every box on the account is opened while the app is open: one channel per box over the app's one socket to the router, and one replica per box on the device.
Related
- use-the-app: log in and pair the first box
- add-a-phone: the pairing code on each box
- add-a-workstation: add another workstation on fezu.dev/account
- start-a-thread: the rest of the New thread form
- reorder-tabs: dragging tabs in the strip
- machine-name: each tab names its box
- log-in-to-an-agent: each workstation's agent logins
- synced-settings: the boxes share one set of settings