You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The gateway serves its OpenAI-compatible API at http://<host>:<port>/v1 with its own console page, Models → OpenAI API: status and base URL, your API key (your gateway token, masked with reveal
and copy), access settings for admins (Protected or Open, and who can connect: this machine, your
network, your tailnet or anywhere), a per-account OpenAI API switch, example requests, and a log
of recent requests that opens to the recorded request and response. Structured outputs
(response_formatjson_object and json_schema) work for every provider the gateway routes to.
The gateway web and terminal consoles share one layout: Accounts (users and entities in one list,
archive and unarchive), Workflows, Skills & MCP, Runtimes, Apps, Providers (local engines included),
OpenAI API, Models (one list with downloads not in the catalog; delete a downloaded model), Multimodal,
Resources, Sandbox, Network (every detected address, Tailscale included) and About.
Code Web: Automations and Conversations drawers with compact cards, archive and unarchive for
conversations and automations (Archived · N), and a right-hand rail (Activity, Files, Model,
Workflow, Workspace, Tools, Skills, Voice) whose settings follow the selected conversation or
automation. The Code terminal client offers the same panels, cards, archive and voice.
Voice everywhere through the gateway: the shared Voice settings show the gateway's own default
engines, let you pick the output device and the microphone, and test both; Code (web and terminal),
Observer and Entity speak replies and take dictation through the gateway.
One About card in every app and console (app, AbstractFramework and gateway versions, links), and a
shared audio player for audio files.
A hung gateway restarts: when its event loop has not run for --watchdog-seconds (default 30, 0
turns it off), abstractgateway serve exits with code 75 and its supervisor starts it again; /api/health reports the watchdog.
Workspaces in two dimensions (AbstractGateway 0.13.0, AbstractRuntime 0.9.0, UI Kit 0.8.1): the
admin chooses a posture, Deny everything, allow listed workspaces (the default) or Allow
everything, refuse listed workspaces (with a Read-only or Read & write default for everything
else), one Shared workspace (always Read & write) and workspaces that are Read-only, Read &
write or Refused, in one modal at the top of Accounts. Each account can only narrow them, from
its Workspace row action or the Workspace settings of AbstractCode, Observer, Flow and the
Assistant, which share one chooser and one wording with the gateway's one-line summary.
The agent is told its workspaces: every tool-using call lists its working directory, the shared
workspace and each allowed workspace with its mode. A file it writes without a full path lands in
the conversation's private folder, never in the shared workspace.
Shell commands are held to the run's workspaces by the operating system (AbstractCore 2.25.0,
AbstractRuntime 0.9.0, AbstractAgent 0.3.18, AbstractGateway 0.13.0): execute_command, the
persistent shell session, local helpers and execute_python run inside an OS sandbox built from the
same workspaces the file tools get (macOS sandbox-exec; Linux bubblewrap, or Landlock for Deny
everything, allow listed workspaces), with the gateway's environment stripped of tokens and keys.
A host with no sandbox refuses commands with one sentence and the run continues; abstractgateway serve --unsandboxed-commands allows them again (audited). The run ledger records
the sandbox and the enforced paths of every command; the Assistant and Code tool settings show the
state (Sandboxed to this run's workspaces), and the Observer and Code run views show one Sandbox: … line per command. The Linux sandbox is verified in CI (bubblewrap on Ubuntu).
The console's top bar shows memory used, GPU load and the number of loaded models (refreshed every
5 seconds, a click opens Resources); every address, with Copy, is on Network.
The tray's Workflows submenu lists running runs first, then runs waiting for a person or an event,
then the runs finished in the last 24 hours, each opening in Observer.
Themed tooltips on every icon button of the consoles and apps (UI Kit 0.8.1).
Sound effects and music take a length in seconds: AbstractCore's /v1/audio/musicseconds, the
gateway Sandbox's Length (seconds) field and the Assistant's media requests ("a 3 s laser
sound"); a sound effect runs the Stable Audio 3 SFX checkpoint and lasts 5 seconds by default,
music 30.
AbstractAssistant 0.13.0: New automation opens the same schedule form as AbstractCode and
Observer; Settings → Workflow is its own page (Gateway default first, Open in
AbstractFlow); Settings → Tools groups tools in collapsible categories; Settings → Appearance
shows the Accessibility permission with Configure; the Voice page shows the gateway's engines
read-only with Change under Models.
Changed
A gateway upgraded from 0.12 converts its workspace settings once at its first start: the old access
modes, per-user allow and deny lists, launch-folder trust and "Any folder (old clients)" become the
posture and rows above; the old settings keys and routes are refused afterwards. A fresh gateway's
shared workspace is <data dir>/workspace; an existing install keeps its current one.
The gateway terminal console's Workspaces page says workspaces are managed from Accounts in the
web console for this release.
Apps → Assistant reports, opens and watches the same Assistant: the installed package, else the
app bundle. When the other one is running, the card and the tray say so.
Apps shows an available update on every row: the browser apps and the Assistant offer Update
to x.y.z (the Assistant is quit and opened again on the new version when the gateway started it);
an app started elsewhere or installed from a source checkout shows Latest x.y.z with where to
update it. An update whose version did not land fails and restarts nothing. The web and terminal
consoles (u) show the same labels; new releases appear within 10 minutes without a restart.
Workspace nesting: the most specific workspace wins. Refusing a folder and allowing a folder inside
it is valid (the inner folder is reachable, the rest stays refused); a refused folder inside an
allowed one refuses its subtree; built-in protected folders stay refused whatever is listed inside.
The gateway, the agent's file tools and the command sandbox apply the same rule.
/core/v1 answers with a 308 redirect to /v1 for this release and is deprecated: point clients at /v1.
Pin AbstractGateway 0.13.0, AbstractCore 2.25.0, AbstractRuntime 0.9.0, AbstractAgent 0.3.18
(execute_python inside the command sandbox), AbstractVoice 0.14.0, AbstractMusic 0.1.16 (the
sound-effect checkpoint and length fix) and AbstractAssistant 0.13.0;
the installers install Code Web 0.11.0, Observer 0.7.0, Flow 0.8.0, Continuum 0.7.0 and Entity
0.7.0 (built with UI Kit 0.8.1 and Panel Chat 0.4.0 from AbstractUIC), the gateway terminal
console 0.15.0 and AbstractCode 0.9.0.