Skip to content

Release: Lite 0.2.0, OpenCode + Pi, universal warm pool, Open WebUI cleanup - #57

Merged
mahmudurrahmanlabib merged 2 commits into
mainfrom
develop
Oct 20, 2026
Merged

mahmudurrahmanlabib merged 2 commits into
mainfrom
develop

Conversation

@mahmudurrahmanlabib

Copy link
Copy Markdown
Member

Brings develop to main:

Schema: unchanged. No dependency, .env.example or deploy/ changes.

Before deploying: set KEEP_FAILED_VMS=false (or remove it) in the prod .env.

After deploying:

  1. Watch /admin/instances → Pre-Baked VMs. Old Hermes-only pool VMs are retired, and universal VMs bake.
  2. npm run chat-ui:migrate (dry run), then npm run chat-ui:migrate -- --apply. This moves Open WebUI agents and repairs boxes stuck on Lite 0.1.0.
  3. Check /admin/models, then deploy one agent per engine. The log should read Deployment complete in Ns (warm pool). Sign in at the agent URL, switch models and send a message.

Not verified: no real agent server has run #56 or #55 yet.

🤖 Generated with Claude Code

mahmudurrahmanlabib and others added 2 commits October 20, 2026 17:02
* Lite 0.2.0: email sign-in, admin-enabled models, no embedded chat

- Lite gets LOGIN_EMAIL + PASSWORD (the agent's generated admin login, shown
  under Access) and AGENT_<ID>_MODELS (the admin-enabled models, named the way
  each engine's ACP server lists them). LOCK_MODEL only when there is no list.
- The dashboard's embedded chat, its /chat-embed route, the embed secret and
  frame origins are gone; Access shows the chat login instead.
- The Controls tab's Model card is gone: the model is picked in the chat.
- Reprovision rewrites Lite's whole env, and a box on an older Lite (0.1.0
  exits at start) is reinstalled; chat-ui:migrate selects those boxes too.
- No AGENT_IDLE_MINUTES (Lite 0.1.0 read it as an agent and exited).

Co-Authored-By: Claude <noreply@anthropic.com>

* Engines accept the chat UI's models; fail fast on a crash at start

- Claude Code: settings.json availableModels; Codex: a model_catalog_json built
  from the installed Codex's own catalog; Hermes: a pinned, idempotent patch so
  an openrouter:<slug> switch stays on OpenRouter (0.19.0 moves some slugs to
  GMI). Each was checked against the pinned engine's ACP server.
- The start script no longer retries a service that crashed at start, and the
  completion log says how long the deploy took and whether it came from the
  warm pool.

Co-Authored-By: Claude <noreply@anthropic.com>

* OpenCode and Pi as beta runtimes, driven over ACP

- OpenCode (opencode-ai 1.19.2, its own `opencode acp`) and Pi
  (@earendil-works/pi-coding-agent 1.2.0 through pi-acp 0.0.33), both on
  OpenRouter, behind CLI_RUNTIMES_ENABLED like Claude Code and Codex.
- The CLI gateway gets a generic ACP driver for them (one agent process per
  turn; resume via session/load; permission requests allowed, as for the SDK
  engines). Checked live against the real OpenCode and pi-acp.
- Neutral placeholder icons until the official marks are added.

Co-Authored-By: Claude <noreply@anthropic.com>

* Universal warm pool: one image with every chat-UI engine

- A universal pool VM bakes Hermes, Claude Code, Codex, OpenCode, Pi, Lite and
  every ACP side into one bootstrap (30KB, under DigitalOcean's 64KB user-data
  cap). A deploy of any of them claims it; only the chosen engine's env,
  config and units are written and started at claim.
- It replaces the Hermes-only target (POOL_SIZE_UNIVERSAL, default 2;
  POOL_SIZE_HERMES still read). The pool key folds in every engine's pin, so a
  bump on any of them retires the pool. OpenClaw keeps its own pool.
- A claim records the baked runtime and Lite versions, so a later reprovision
  does not reinstall Lite.

Co-Authored-By: Claude <noreply@anthropic.com>

* Docs: the new engines, Lite's sign-in and models, the universal pool

Co-Authored-By: Claude <noreply@anthropic.com>

* OpenCode and Pi: offer only models with Hermes' 64k context floor

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
A BYOS server prebaked with Open WebUI kept /opt/open-webui (several GB)
after an agent was deployed on it; only the service was stopped. Every
provision now removes the whole install (unit, /opt/open-webui, env file,
user), with the same steps the migration uses.

It also stops touching Open WebUI when another agent on the same BYOS
server still uses it. Phase B used to stop it on every deploy, so an
OpenClaw install there would have killed a not-yet-migrated agent's chat.
@mahmudurrahmanlabib
mahmudurrahmanlabib merged commit 0674340 into main Oct 20, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant