Skip to content

v0.19.0

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Nov 02:46
· 2 commits to main since this release
1fc18ec

Before you upgrade

  • A deploy whose backup failed now stops. It used to carry on with nothing to roll back to. --no-backup is the explicit way past.
  • aegis init is stricter. It refuses brackets it used to pass through (database[mysql], redis[x]), and a persistent scheduler on a database of another engine, as aegis add already did.
  • health probe can fail now. It used to pass whenever the process was up. It exits 1 when the API doesn't answer or a component is unhealthy, while a warning still passes. Check anything that uses it as a gate.
  • The health API's status can be warning or info on /health/detailed and /health/dashboard, and it now covers host metrics.
  • health status reads /health/detailed. From a worker or scheduler container in production it gets a 401 or 404, as --detailed already did. Run it from the webserver container there.

Highlights

Calls for the public. Whether a mount's users may call is now its own switch, ChatSurface.calls, so a signed-out visitor can call without the model and voice controls, and never sees the engine or what the call costs. Existing mounts behave as before.

Bounded calls. For when someone other than the operator pays for the minutes. longest_call cues the assistant to wrap up and then ends the call, idle_seconds sets the mount's own quiet, call_check is asked after each saved turn, and on_call_end runs once for every call the gate let through. The page shows why the call ended, and the same conversation carries on in text.

aegis menu: the generator's menu as JSON. It prints every component and service, what its brackets take, and what each requires, recommends and conflicts with. Give it a selection and it answers the init command that builds it, or the rules that refuse it and the components that would satisfy them. Each GitHub release now carries a menu.json.

A cleaner chat trail. With AI_CHAT_SHOW_CALLS off, a chat's step trail says what each step is doing rather than showing its raw call, live and on reload, on every surface.

Overseer > Resources. The stack and free split moves into the CPU and memory chart headers, legends remember hidden lines, a needs-attention card replaces the containers table, and a bar chart shows what each part costs to load.

For developers. A chat mount can declare its pages (ChatSurface.pages), each with the parts an agent may scroll to, highlight or act on, and only a declared page offers the agent a page_action tool. No mount declares a page by default.

Fixed

  • A fresh SQLite stack creates every table. With AI and the scheduler, the scheduler used to come up unhealthy.
  • health status tells a warning from unhealthy, and its tree stays intact at every depth.
  • Overseer's section nav fits a phone: one scrolling row with the current section in view.
  • Deploy commands tell a failed call from a no. storage check, deploy-backups and Overseer's backups, history and events give the reason instead of reading a failure as "none".
  • aegis deploy no longer skips the backup as a first deploy when the connection drops, and aegis deploy-rollback checks the backup before compose down.
  • An arq queue no longer reads Offline while it works, and Waiting no longer counts running jobs.
  • Running falls as jobs finish, not at the next refresh.
  • Overseer Code leaves out a folder it can't open instead of returning a 500, and backups are out of the code page, the source index and RAG.
  • Sessions name iOS browsers.
  • A changed image or video gets a new URL, so it no longer plays the old file after a hard reload.
  • The Worker and Scheduler pages hold up at narrow widths, and Status stays in view.
  • aegis init, add-service and deploy print the Overseer link at the port make serve will publish.
  • A new Overseer page opens at its top, and a pager, filter or chart window keeps your place.

Known issues

These are for the next release.

  • A project with ingress and TLS has DOMAIN and ACME_EMAIL in .env.example, which Settings rejects, so a .env copied from it stops the app at import. Delete the two lines from your .env. (#1977)
  • aegis add htmx on an existing project leaves out the web frontend's PNGs, so the favicon returns 404. (#1975)
  • A project created on 0.18 has no (job_id, started_at) index on job_execution. (#1973)
  • make check-queries can fail on Postgres projects, on scheduler debt the baseline already records. (#1974)

The changelog lists every change.