Repository navigation
Eugene Plexus v0.1.0
The first release. Version 0.1 in the old sense: it works, it is early, and
it has rough edges and known limits, listed below. It is not a claim of
production readiness. Start with the
installation guide.
alpha.6, alpha.5 and alpha.4 update from the console: Machines → the
machine → Versions → Update (alpha.5 and alpha.4 show it as Nodes →
Versions), or run the installer again. See Moving to v0.1.0.
Changes since alpha.6
Cache-aware balancing
- A conversation goes back to the copy of a model that already holds it.
Agent clients such as Claude Code and Codex resend their whole conversation
every turn; on the copy that remembers it, that turn starts sooner. One
Claude Code session on two copies of an 8B model went from 52.8% of its
prompt reused and 6.0 s a turn to 75.3% and 3.2 s. - A new conversation goes to the copy holding the fewest conversations per
slot (loadBalancing: spread, the new default).conversationAffinityis
its own setting, on by default, for every placement. - A llama.cpp server is never sent more than its memory holds. Eugene reads
each server's context pool from the server itself, keeps a running total of
what the turns in progress need, and holds a turn for a moment when it will
not fit, instead of letting the server refuse it or cut a reply off. - A full server is busy, not broken. It no longer trips the circuit breaker
and takes healthy copies out of service, and Claude Code and Codex are told
to retry rather than stop. On an 8B model with four agents per copy, 204 of
204 turns now answer, where 46 did. - The Metrics page shows cached tokens and evictions per copy: a turn that
went back home and found its history gone is a sign that model needs more
memory or another copy. - Slot pinning, a per-profile setting for llama.cpp, off by default, gives
each conversation its own slot and never sends a request to a slot that is
still busy. - The research behind it, with every number:
Sending each conversation home.
Agent clients reuse more of their prompt
- Claude Code's per-session header no longer defeats the prompt cache. A
new Claude Code session on a local model reads about 1,860 tokens instead of
about 19,700. - Claude Code works on Qwen 3.5 and later models, whose templates refused
its mid-conversation system messages (it answered 0 of 20 requests; now
20 of 20). How those messages are folded is a gateway setting,
inConversationSystem. - A template refusal no longer takes a model out of service for every
other client. - vLLM now reports its cached tokens, so the Metrics page shows them.
Open WebUI in the app registry
- Install Open WebUI from Apps, in an operating-system account of its own
on a Windows service or a Linux system install. People sign in to it with
their Eugene accounts. - People can have an optional email address, which Open WebUI uses as their
identity.
Fixes
- A confirmation inside a table row no longer widens the page: the row's
other buttons step aside while it asks
(ui #14). - A recovery checkpoint keeps an app's own data on a Linux system install,
such as Workbench's chats
(specs #11). - Flash attention is On, Off or not set, and not set lets llama.cpp
decide. A profile saved with it unticked before now reads as not set, never
as off (agent #6).
Known issues
- A Claude Code turn reserves its whole answer allowance. The memory budget
counts a turn'smax_tokensin full, and Claude Code asks for 32,000, so a
llama.cpp server with a 64k-token pool runs one Claude Code turn at a time
where two would usually fit. The others wait, they do not fail. - With many llama.cpp servers on one machine, a reply can stall. llama.cpp
pauses for several seconds while it saves and restores its prompt cache;
several pauses in a row trip Eugene's 30-second stall check. In our tests,
3 turns in 3,808. - Brave's rate-limit headers are read as Brave documents them; they have not
been seen from a live Brave account by us.
Verification and limits
- The exact pins passed Windows and Linux CI, the installer suites, and
container acceptance before the image was published. - The packaged installers passed a clean install on Windows and in WSL, as
recorded in the release record. - Upgrading alpha.6 in place on a Linux system install in WSL, as recorded
there. - Cache-aware balancing was measured with 64 real Claude Code and Codex
sessions on up to eight llama.cpp servers
(record); Open WebUI
passed 39 of 39 on GitHub's Windows and Ubuntu runners
(record). The
support matrix links the rest. - An Intel Arc has now been checked on a tester's machine.
- Still owed:
- two physical cards in one machine;
- models on a passed-through NVIDIA card in the container;
- a physical Mac;
- modest-GPU capacity;
- native Linux unattended boot;
- the Windows reboot-before-sign-in checks;
- moderated sessions with people new to Eugene.
- Use a trusted LAN or VPN, and finish first-run setup before enabling remote
access.
Moving to v0.1.0
- From alpha.6, alpha.5 or alpha.4: update each machine from any console
(Machines → the machine → Versions → Update; on alpha.5 and alpha.4,
Nodes → Versions). Or run the installer again:- Windows:
irm https://eugeneplexus.com/releases/v0.1.0/install.ps1 | iex - Linux or macOS:
curl -fsSL https://eugeneplexus.com/releases/v0.1.0/install.sh | sh
- Windows:
- From alpha.3: run the installer again, the command above. It keeps your
passphrase, models, client keys and joined machines. - The container: select
ghcr.io/eugene-plexus/control-plane:v0.1.0and
keep the same data folder. - From alpha.2: a fresh install, as the
alpha.3 notes describe. - A saved load-balancing choice: a
loadBalancingthe gateway wrote for
you moves to the new default,spread; one you chose is kept, and the old
conversationvalue reads as the default with affinity on.
Make a checkpoint before updating, as the
recovery guide describes. A checkpoint
made on alpha.6 restores alpha.6.
Distribution
The GitHub release
provides install.ps1, install.sh, manifest.json and SHA256SUMS.
- The tag is annotated and immutable.
- The manifest records the specs commit and all seven component commits,
the built UI export included. That export's join commands name the v0.1.0
installer, so a worker installs the version its root runs. - Workbench and Open WebUI install from the agent's catalogue at versions
pinned in the agent, so what an install offers is fixed by the release.
The Linux amd64 image is built from the tag and published only after container
acceptance passes (29 checks): ghcr.io/eugene-plexus/control-plane:v0.1.0,
digest sha256:53114c69f5504e36aebba3fdb28e14d62066bbe478e10b649cc22dbf452543d0.
The alphas' tags, assets, containers and website installer URLs remain
available.
These pins fix Eugene's source, not every upstream dependency: Python packages,
uv, engine downloads and model catalogue data can change.