Skip to content

AbstractFramework 0.8.0

Choose a tag to compare

@lpalbou lpalbou released this 01 Oct 04:16
· 162 commits to main since this release

The consoles' email and accounts screens are redesigned, the installer never installs less because
of the network, and the console and the apps work over https through tailscale serve. Pins:
AbstractGateway 0.10.0, AbstractCore 2.22.0, AbstractRuntime 0.8.2 and AbstractAssistant 0.11.0;
the terminal consoles abstractgateway-console 0.13.0 and abstractcore-console 0.6.0 and
AbstractCode's terminal client abstractcode 0.8.0; the
browser apps Code 0.9.0, Flow 0.6.0, Observer 0.5.0, Continuum 0.6.0 and Entity 0.5.0. Every other
version is unchanged from 0.7.2.

Changed

  • Email address and mailbox, named apart. Your email address is where sign-in codes and
    notifications go; your mailbox is the connection your agents and automations read and send
    with. The mailbox tabs are IMAP (first and selected), Google and Microsoft. The IMAP
    form shows every server field, pre-filled from the address with the standard settings and then
    the discovered ones (never over a field you edited), asks for no user name, and offers a Login
    field only through My provider uses a different login name. Connecting fills your email
    address when it is empty. A connected mailbox has an Active switch; Advanced holds three
    sentences: who your agents may send to, "At most 100 per hour and 1000 per day.", and the watch
    folder. Same layout in the gateway's web and terminal consoles and AbstractCore's.
  • Send limits default to 100 per hour and 1000 per day (were 20 and 100). Limits you set
    yourself are kept on upgrade; an account that kept the old defaults follows the new ones.
  • Notifications are two switches, Job failed and Approval needed, both on once a mailbox is
    connected. Send a test answers with a sentence: "Sent to …" or why not ("Not sent: hourly
    limit reached (100 of 100 this hour) — resets at 14:05."), with reset times in your local time.
  • One Accounts page. The gateway web console's Accounts page is one table of users and
    entities (Name with an Admin / User / Entity chip, Email address, Mailbox, Runtime, an Active switch; actions Email, Logs,
    Workspace, Rotate, Manage, Delete, each with its reason when it cannot apply), with Create
    user
    and Create entity. Email for everyone below it holds the administrator's
    Mailboxes for users switch, with Agent email tools for users and Sign-in by email
    under Advanced. Logs shows an account's activity from the gateway's audit log. An
    administrator sees every account; a user sees only themself and the entities they created, in
    the consoles and the API.
  • Sidebar groups and Setup. The web console groups its pages as Accounts; Work
    (Workflows, Runtimes, Apps); Models (Providers, Models, Engines, Multimodal); System (Resources,
    Sandbox, Network). Setup at the bottom of the sidebar runs the first-run guide again and keeps
    your choices unless you replace them. The terminal console uses the same groups and S for
    Setup.
  • Sign-in by email says what happened. Forgot your token? Email me a sign-in code answers
    with the outcome: the code is on its way to a masked address, the account has no email address or
    no mailbox to send from, or the send failed.
  • Every on/off setting in the consoles and the apps is a switch named by what it controls.

Added

  • https through Tailscale. tailscale serve --bg http://127.0.0.1:<port> on the gateway's
    computer serves the console and every app at https://<host>.<tailnet>.ts.net/, with sign-in,
    Secure cookies and app handover, and the Network setting can stay localhost. Voice and camera
    in the browser need this https address. See
    Phones and tablets: Reached through Tailscale.
  • The apps work over plain http from another machine. Opened at http://<address>:8080/apps/<app>/
    (a LAN or Tailscale address), the apps start and copy buttons work; a feature that needs https
    says so.
  • AbstractCode's web sidebar shows 25 conversations with Load more; the Observer opens a run
    from a #run/<run_id> link (the Accounts page's Logs link to it).

Fixed

  • Transcription no longer shows "Engine missing: unknown AbstractVoice engine 'huggingface'".
    The recommended setup stores the transcription engine's route; a route written that way before
    is repaired when the configuration loads (a backup is written first).

  • Sign-in through a proxy on the gateway's computer (such as tailscale serve) no longer answers
    403 "origin not allowed"; app manifests and icons load without an app session.

  • Pausing an automation also stops its retries: an occurrence waiting in retry backoff is
    cancelled.

  • Resuming an email automation wakes the mail watcher at once, so mail that arrives right after
    the resume triggers it.

  • Two Node.js installs at once (two apps, or an app and Install Node.js) no longer fail one
    of them; Node.js is downloaded once.

  • Stopping the gateway while it starts waits for the startup and stops what it started.

  • AbstractCore keeps settings it does not know. A settings save keeps keys you added to
    abstractcore.json and keys written by a newer version.

  • Server file routes never serve the gateway's data folder or credential folders, so received
    mail and run ledgers of other users cannot be read through /files/read. Administrators never
    read mail.

  • An upgrade never installs less because of the network. A server error while downloading (a
    502 on PyTorch's wheel) made the installer drop local voice and finish green without it. Now any
    network failure of a uv install (HTTP 5xx, 429, 408, a DNS, connect, reset or closed connection, a
    timeout, a download cut off, uv's Request failed after N retries) runs the same full install
    again on the index-lag waits (15, 30, 60, then 120 s; 8 attempts over about 10 minutes), then stops
    with exit code 1, uv's cause in red and the exact command to run again. uv changes the gateway's
    environment only after every download succeeded, so the previous gateway stays installed and
    working. Python's download and nodejs-wheel get
    the same retries. install.sh and install.ps1.

  • Local voice left out is said in red. The voice fallback now runs only for a deterministic
    incompatibility (uv's resolution failure, e.g. has no wheels with a matching platform tag, a failed
    build, a broken file). The warning gives uv's reason, the summary's first line says … but NOT everything was installed:, the Voice: line is red, the output ends with NOT installed: and
    bootstrap.env records VOICE_SKIPPED=<reason>.

  • The terminal console and abstractcode wait for crates.io. Right after a crate publish, cargo install --version <pin> answered could not find ... in registry and the console was skipped with a
    warning. crates.io's index lag and cargo's network failures now get the same waits; when they run
    out the rest of the install goes on, the summary says in red which crate was not built, and the
    installer exits with code 1.

  • A port changed in a console survives an upgrade. A re-run without --port (the consoles'
    Update) read the port from bootstrap.env, wrote it over the gateway's Network setting and
    restarted the gateway on the old port. The installer now reads abstractgateway network status --json first: a stored port wins, is recorded in bootstrap.env, and is never overwritten unless
    --port is given; a stored port held by another program stops the install with what to do
    instead of moving to another port.

  • Upgrading an install older than 0.6.1 no longer turns options off. An option the installer did
    not have when that install was made (the terminal console before gateway 0.6.0, abstractcode and the
    AbstractCore commands before gateway 0.7.1) was read as opted out, so a 0.4.0 install kept
    --no-core-cli on its first upgrade. Such an option now takes today's default, dated by the
    recorded GATEWAY_VERSION, and the installer says so.

Documentation

  • The root docs describe the email address and mailbox screens, the Accounts page, the sidebar
    groups and Setup, sign-in by email, the installer's retry, and https through Tailscale
    (Email integration,
    Phones and tablets, Install,
    Glossary).
  • Per-user email in
    Email integration and the
    Email inbox agent scenario (settings in the consoles;
    agent email tools off by default; recipient allowlist starting with your own address; the
    framework's own automatic mail never triggers an automation; sign-in by email), phones and
    tablets through the gateway's one address in Phones and tablets
    and the Phone thin client scenario, responsive apps in the
    README, index, architecture, FAQ and getting started, email terms in the glossary, and email rows
    in Troubleshooting and Automations.