Repository navigation
AbstractFramework 0.6.0
Remote and headless machines work like a Mac: one address and one SSH tunnel reach the console, the
API and every browser app; every client finds the local gateway on its own; AbstractCode creates and
runs automations; history replay keeps whole messages up to 50,000 tokens and never cuts one.
Added
- Browser apps open through the gateway at
/apps/<app>/(AbstractGateway 0.7.0). Flow, Code,
Observer, Continuum and Entity are served on the gateway's own address (HTTP, server-sent events
and WebSocket), signed in with the app's gateway session, so a LAN address, a reverse proxy or one
SSH tunnel reaches them all. The apps listen on127.0.0.1by default. The installer summary's
Apps:line and the docs point to<gateway>/apps/<app>/; the console's Apps page installs
and opens them. Running an app on its own withnpx … --gateway-url <url>is the advanced
alternative (Standalone:line). - Local gateway pointer. After the health check the installer writes
~/.abstractframework/gateway.json(Windows:%USERPROFILE%\.abstractframework\gateway.json),
mode 0600: the gateway's loopback URL, port and data directory, never a token. The Assistant (the
macOS app included), both terminal consoles, AbstractCode's terminal client and the browser apps'
servers read it to find a gateway on a port other than 8080, and follow it when the gateway moves.
The installer writes it for the install it just made, a custom--data-dirincluded (replacing a
pointer that names another data directory);abstractgateway servethen keeps it current under
its ownership rule. The uninstaller deletes it when it names the uninstalled data directory. - Automations in AbstractCode (
abstractcode0.7.0,@abstractframework/code0.6.0). In the
terminal client,/automationslists and opens automations (runs as chat pairs, waits that need
you, the folder, pause/resume, run now, stop, revise, archive, Discuss) and/schedulecreates
one; the browser client has the same in its Automations sidebar section. See
Automations. - Start at login from the consoles. Both the web console (Gateway card, last setup step) and the
terminal console (F3, the Finish step) have a Start at login switch that changes the login item
without restarting the gateway. - The terminal console on a headless machine (
abstractgateway-console0.11.0): a Network
screen that shows the saved and the running setting and offers the restart, Apps that give the link
and the tunnel command instead of opening a browser, voice and engine states, and the local
gateway pointer. Neither terminal console tries to open a browser on a machine without a display. --ask-wait SECONDS(Windows:-AskWait) sets how long a timed question waits (default 25, at
most 25).--console-waitremains as an alias.
Changed
- One flag for the gateway address:
--gateway-urlin every app and terminal client
(--urlfor the gateway terminal console and--gatewayfor AbstractCode remain as aliases). The
installer summary and the docs use it; with--with-appsthe installer prints
npx -y @abstractframework/<app>@<version> --gateway-url <gateway>for all five apps. - Start at login is asked whenever a person is at a terminal, not only with
--interactive:
curl … | shasks it on your terminal (/dev/tty), Enter = yes. Nobody answering within
--ask-wait, an install without a terminal (a script, CI, a provisioning tool) and--yeskeep
the previous choice on a re-run and leave start at login off on a first install (it was on);
the summary then says how to turn it on: the Start at login switch in either console, or
abstractgateway service enable. A re-run reads the login item's own state, so a change made
with a console's switch is kept.install.ps1asks the same question on an interactive console
(it registered the login entry without asking).--interactivewaits for answers without a time
limit;--no-servicestill asks nothing. - On a remote or headless session (SSH, or Linux without a display) with a terminal, the
installer offers the terminal console at the end ("Press Enter within 25 s"), signed in; nobody answering skips it, so automation never blocks.
Over SSH it no longer opens a browser on the remote machine.--no-openskips both. - History replay keeps whole messages up to 50,000 tokens (AbstractRuntime 0.7.0): growing
automations, session chats, run chat, the docs assistants and entity visits replay the newest whole
turns up to 50,000 tokens. No message is cut; the former 40-message, 24,000-character and
per-message caps are gone. Each run records how many earlier messages were not replayed, and the
clients say so. - Voice says what it can do (AbstractVoice 0.13.0, AbstractCore 2.18.0). Voice listings name
the providers that cannot run here and why, instead of an empty list; cloud voice providers are
listed as needing a key until one is configured; a capability route whose engine is not installed
reportsengine_missingwith the install command; an OpenAI key saved in the Providers screen
reaches voice. The installer adds local voice to every install profile: Supertonic text-to-speech
and Whisper speech-to-text (abstractvoice[supertonic,stt]), both CPU, from prebuilt wheels
(skipped where no wheels exist: musl Linux / Alpine, macOS before 13; Whisper on Windows ARM64).
Voice never fails an install: where its packages do not install the gateway is installed without
it. The summary'sVoice:line says what was installed, and a re-run that adds voice restarts the
gateway to load it. - Observer: Edit opens the form, and a calmer Automations page (
@abstractframework/observer
0.2.0). A row's Edit opens the automation's edit form at once, prefilled (title, task,
interval, context, tools); action buttons carry icons; a workspace folder can be browsed from the
browser; Discuss opens a chat with a fork of the automation; a run's Ask chat sends the
whole conversation. - Apple silicon model fits account for the GPU memory limit (AbstractCore 2.18.0): a model that
fits once macOS raises its limit readsneeds_gpu_limitwith the exact command.
Security
- DNS-rebinding protection in the browser apps: an app treats a browser as on this machine only
when both its address and the page's host are loopback, so a rebinding page can neither reveal a
folder nor change the gateway address. Continuum's local-only pages answer onlocalhostor
127.0.0.1only. The gateway's app proxy refuses requests with another origin or an invalid host. - Server-held keys are spent only for authenticated requests (AbstractCore 2.18.0): with a
saved or environment OpenAI key, unauthenticated requests to the AbstractVoice audio routes, the
audio and vision discovery routes, OpenAI-backed vision generation and the capability discovery
routes get401, also withABSTRACTCORE_SERVER_ALLOW_UNAUTHENTICATED=1; an explicit
X-AbstractCore-Provider-API-Keyis spent instead. The music route follows the same rule while
the server holds a music backend key. - The local gateway pointer is written without following links, with mode 0600, and readers reject
a pointer that other users can write.
Changed (pins)
- abstractgateway 0.7.0 (was 0.6.0): apps through
/apps/<app>/, the local gateway pointer,
start at login from the consoles, cloud voice providers listed, the history window on every chat
route, and the terminal console 0.11.0. - abstractcore 2.18.0 (was 2.17.0):
engine_missing,needs_gpu_limit, the saved OpenAI key
for voice, the key guards above, andabstractcore-console0.4.0. - AbstractRuntime 0.7.1 (was 0.6.0): the 50,000-token history window, recorded in each run;
images in replayed history stay images, and an image counts as a flat 512 tokens in the window.
Library callers ofsession_chat_messagesandautomation_timeline_messagesshould read its
changelog's Breaking note. - abstractagent 0.3.17 (was 0.3.16): ReAct sends the runtime's history window when the host
asks for it. - abstractvoice 0.13.0 (was 0.12.0): engine status and unavailable-provider reasons, Qwen3-ASR
on Transformers 5.x, Qwen3-TTS predictor and sampler flags. - abstractassistant 0.9.0 (was 0.8.0): the macOS app finds a gateway through the local gateway
pointer; automation cards say their state in words. - npm: @abstractframework/flow 0.4.0, code 0.6.0, observer 0.2.0, continuum 0.4.0
and entity 0.3.0, all served through the gateway at/apps/<app>/and taking
--gateway-url. - crates.io: abstractgateway-console 0.11.0, abstractcore-console 0.4.0 and
abstractcode 0.7.0. - The pins apply to the base install and to the
apple/gpuextras. Unchanged:
abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvision 0.3.30,
abstractmusic 0.1.15 andabstracttui0.6.0.